Midi file driven sampler, (RXS) is this a possibility if so where should i start?

Dan Gagnon's icon

Im looking for insight on how to execute this idea

At its core function RXS is a hardware version of the Dr Octorex by Reason Studios, a sampler with midi file looper all in one. You press 1 button and a midi clock sync’d .mid file triggers notes C2(36)-G9(127).     

    Most looping stations rely on time stretching algorithms to not change the pitch while changing the tempo. This leads to a stretching stuttering sound effect if the loop is played a slower tempos, which sounds unnatural.     
    The principal idea of RXS is to alter the tempo of a music loop without changing its pitch or otherwise altering its sound. Using Reason Studios Recycle, loops are "sliced" into a series of separate "beats" or "hits". By altering the timing of these slices (or even quantizing them) with out altering the length of them, a loop can play at different speeds whilst using unmodified sounds for each slice or beat/hit. This process preserves the original pitch and sound of the loop while allowing a greater variety of speed/timing tweaks vs traditional stretching algorithms.

Functionality

* receives midi clock
* outputs stereo audio
* Attack Decay Sustain Release Knobs have control over each “hit” or “note”
* Multiple banks can be loaded into RAM to be able to switch on quickly (each bank/folder is as large as 2 megs)
* Banks are tied/altered by Midi Program Change Messages. Change Program Change Message = Change Bank (midi file and samples)
* Midi note ON C1 (24) Starts the midi loop. Midi note OFF C1 stops the midi loop

Dan Gagnon's icon

I got close BUT im having trouble with the data coming out of the seq object spitting to much information

Holland Hopson's icon

Assuming the sequence is sending out MIDI notes, then the 'next' message is being triggered for note-ons and note-offs. Try the stripnote object.

Dan Gagnon's icon

OK THANKS so much for your insight Holland!

Dan Gagnon's icon

Assuming the sequence is sending out MIDI notes,

i guess it isn't cause the stripnote object doesn't work.

Source Audio's icon

You need to learn what seq outputs - it is a stream of raw midi events.
for a single Note 0n it is 3 bytes , status byte for note on, pitch, velocity
and each of them bangs that next message in your patch

Depending what else that midi file has inside, like note off,
controllers or whatever , each message will produce at least 2 bytes,
in most cases 3 and again each of them bangs the next message.

I guess you place single notes in the midi file to trigger that next message, to play new sample.
if it is for example midi note C3 on channel 1, then message would be
144 48 100 for velocity 100
Note off might come in as note on with velocity 0, or
dedicated note off message with release velocity
128 48 64 for example.
To make it simple for you, I'd suggest
output of seq should go to midiparse
and you create detector for given Note On to trigger that next message.

Even when that works, that samples will sound choped and maybe produce clicks and pops,
if new note gets triggered before the previous one faded out.
You need poly or some kind of cross player to fix that.

Dan Gagnon's icon

Thank you so much for you insight MUCH appreciated!