Recording MIDIpal notes in a sequencer

Hello ,
Is it possible to record the generated Arpeggio notes by the MIDIpal in a sequencer such as Cubase ?

Yes, connect the MIDI out of the MIDIpal to the MIDI in of a MIDI interface connected to your computer.

Hi,
using a MidiREX here to record sequencr notes from the MIDIpal, this way :
master sequencer > MIDIpal > MidiREX

I’m having hang notes problems when playing back sequences from the MidiREX.
I tried to trace the problem and finally found that MIDIpal send its last noteOff AFTER receiving the clock stop, so MidiREX never record that one… :confused:

That happen 30% of the times in my system, maybe that’s just me.
Please, could someone confirm this ?

I confirm that the MIDIpal attempts to send the clock stop message before stopping pending notes.

I can change that.

that would be cool !
thanks Olivier!
ps: I love the MIDIpal, especially since the last 1.4 firmware update : the note clocked sequencr is really great.

While your at hanging notes…and maybe feel like adressing some more… I use the scale app a lot and changing the transpose while playing sequences in it also tends to produce a lot off hanging notes. Especially since the new CC supported firmware this is a cool feature. I use a CC LFO from the MidiAlf to change the transpose function while playing sequences. This generates really nice progressing sequences.
Sorry if i have brought this up before, maybe i did i’m not sure.

Fixed (but not tested - don’t have access to a MIDIpal at the moment).

just tested your new build and… argh, sorry, it behave the same as before :confused:

Hey, sorry, I misunderstood your problem!

I thought that the MIDIpal was generating the master clock too (in which case, the problem can be solved with the above patch).

When the MIDIpal is used as a slave there’s no way of fixing this. How could it be possible? The MIDIpal doesn’t know in advance it’s going to receive a stop message, so it cannot stop the pending notes before the stop message is received…

ah ok, I guess it’s because the external clock stop is written without processing…
I’m not very comfortable with c++ but i had a look at the 1.2 firmware code and wonder if it would work :
in midipal.cc, there is a call to midi_parser.PushByte(byte)
which seems to be the place where the incoming clock_stop can be processed,
maybe with a call to app.FlushQueue before writing the clock_stop out ?

Actually, a possible fix would be to prevent the Stop message from behind forwarded in Arpeggiator::OnRawMidiData

And then recreate it manually in Arpeggiator::OnStop

cool, thanks for the help !
i did what you told, here it is :

void ShSequencer::OnRawMidiData(
uint8_t status,
uint8_t* data,
uint8_t data_size,
uint8_t accepted_channel) {
// Forward everything except midi_stop and note on for the selected channel.
if (status ![](= 0xfc &&
status )= (0x80 | channel_) &&
status != (0x90 | channel_)) {
app.Send(status, data, data_size);
}
}

void ShSequencer::OnStop() {
if (clk_mode_ != CLOCK_MODE_INTERNAL) {
Stop();
//midi_stop send at last :
app.Send(0xfc,0 ,0);
}
}

it’s tested and working ok for me.

here is the .syx file :

So happy you fixed that yourself!

I’m also happy to have learn something. :slight_smile:
Many thanks for sharing your code.