ref: cfb81dff3e9a09bd943bec1a814f35c41432c356
parent: 4f9a59e413f0cf404b136a7a1696968ecddd8372
author: Chris Moeller <kode54@gmail.com>
date: Mon Jan 11 04:00:26 EST 2010
{11/29/2006 6:00:28 AM}2006-11-01 00:50 UTC - kode54
- IT renderer now cuts existing notes when it reaches a note where the instrument
references an invalid sample. (jumping under trees.it)
2006-10-14 08:33 UTC - kode54
- IT renderer pattern loop processor now resets the rows played to clear table
per channel regardless of whether order changed since last loop start was
initiated. This is correct, since two pattern loop starts in a row means that
a loop will never jump to the first loop point.
git-tfs-id: [http://localhost:8080/tfs/DefaultCollection/]$/foobar2000/files/plugins.root;C136
--- a/dumb/src/it/itrender.c
+++ b/dumb/src/it/itrender.c
@@ -1225,7 +1225,7 @@
if (!channel->played_patjump)
channel->played_patjump = bit_array_create(256);
else {
- if (channel->played_patjump_order != sigrenderer->order)
+ //if (channel->played_patjump_order != sigrenderer->order)
bit_array_reset(channel->played_patjump);
}
channel->played_patjump_order = sigrenderer->order;
@@ -1318,7 +1318,7 @@
channel->sample = channel->instrument;
channel->truenote = channel->note;
}
- if (!(channel->sample >= 1 && channel->sample <= sigdata->n_samples && (sigdata->sample[channel->sample-1].flags & IT_SAMPLE_EXISTS) /* && sigdata->sample[channel->sample-1].C5_speed*/))
+ if (!(channel->sample >= 1 && channel->sample <= sigdata->n_samples && (sigdata->sample[channel->sample-1].flags & IT_SAMPLE_EXISTS) && sigdata->sample[channel->sample-1].C5_speed))
channel->sample = 0;
}
@@ -2673,7 +2673,7 @@
instrument_to_sample(sigdata, channel);
if (channel->note < 120) {
if ((sigdata->flags & IT_USE_INSTRUMENTS) && channel->sample == 0)
- return 1;
+ it_retrigger_note(sigrenderer, channel); /* Stop the note */ /*return 1;*/
if (entry->mask & IT_ENTRY_INSTRUMENT)
get_default_volpan(sigdata, channel);
} else
--
⑨