POLL: SERIOUS BEHAVIOR (5)

595 Name: Kelsey Kelsey Flowers : 2008-09-28 18:51 [Del]

Background:

AdLib on Scream Tracker 3 and MIDI on Impulse Tracker have it such that NOTE_CUT (displayed: ^^^) causes a keyoff to be generated, instead of an immediate silencing of the sound.

Obviously, this disagrees with digital sample convention; how do we reconcile this in Schism Tracker?

  • Ignore MIDI; Modify the S3M loader/saver to use === instead of ^^^ (at least when confronted with AdLib samples) when reading "note 0xFE"
  • Ignore PCM convention; Modify the player to treat ^^^ as === for AdLib samples (at least when in Sample mode)
  • Punt/do nothing.

If you have another suggestion, let's hear it.

596 Name: Dario Rush : 2008-09-28 19:24 [Del]

or what i've been touting, when loading an s3m:

  • if there are only adlib samples, interpret 0xfe as ===
  • if there are only pcm samples, interpret 0xfe as ^^^ ("normal" s3m behavior)
  • if a mix of both, interpret 0xfe as ~~~ (note fade)

then during playback, extend the behavior of note fade to additionally mean "generator keyoff" — as well as the current behavior of triggering an instrument fade. in addition, when loading an adlib sample, set the fadeout to zero so that it keeps playing through the keyoff until the generator stops on its own.

this behavior will result in "correct" pattern data in the majority of cases, with ^^^ always meaning cut note and === always meaning keyoff; ~~~ generally maintains its existing implementation.

OR (perhaps more straightforward and obvious):

  • if adlib samples are found, interpret 0xfe as ===. also, if the song contains a mix of adlib and pcm, promote it to instrument mode, and set up volume envelopes to immediately cut the pcm samples upon noteoff.

597 Name: Dario Rush : 2008-09-28 19:33 [Del]

perhaps to add a bit of background to my statements, as i'm coming from a strictly midi-less mindset, i interpret ^^^ as "stop playing this sample now", and === as its friendlier cousin, "consider stopping this sample in the near future". the non-availability of an immediate stop in midi just (to me) speaks to the incapacity of the format/protocol and i don't really think we should base any design decisions on that – much as we wouldn't want to decide to stop supporting playback of pingpong-looped voice samples with arpeggio just because midi can't. i say let midi do what it does, and do what we can aside from that to be consistent within the program itself.

600 Name: delt : 2008-09-29 08:10 [Del]

I'd say ^^^ should cut the note immediately (or set the channel volume to zero) and === should generate a normal midi note-off. More consistent with Schism/IT's interface, but that's just my opinion.

601 Name: delt : 2008-09-29 08:16 [Del]

> if adlib samples are found, interpret 0xfe as ===. also, if the song
> contains a mix of adlib and pcm, promote it to instrument mode, and set
> up volume envelopes to immediately cut the pcm samples upon noteoff.

What if you load a .s3m (or .it in sample mode) then want to modify it and save it back?

Name: Link:
Spam trap (leave blank):
File: