MIDIpal firmware hacks
Warning: messing with the firmware and trying to upload your own .syx files to the unit can potentially 'brick' it. Make sure you know how to revert back to the original firmware!
A few undocumented features are available by compiling the firmware with some specific flags.
By default, the EXTRA_DEFINES definition in the makefile (midipal/Makefile) should be:
EXTRA_DEFINES = -DDISABLE_DEFAULT_UART_RX_ISR
You can add other preprocessor defines on this line, prepended by -D. Make sure that DISABLE_DEFAULT_UART_RX_ISR is always there - the MIDIpal does not use interrupts for UART reception (the UART is polled from a 5kHz timer), so this removes the boilerplate ISR handler for UART reception.
This removes most of the apps at the exception of the monitor, the sync latch, and the clock source adds instead a polyphonic sequencer inspired by the JX3P.
The JX3P (and SH-101) sequencer requires dedicated rest / tie buttons, which are not there on the MIDIpal. It was thus decided to use 2 freely assignable keys of the keyboard as rest / tie button. For example, you can assign C1 to rest and D1 to tie - and input a sequence without leaving your keyboard.
The settings are the following:
- run: click to start/stop the sequencer.
- rec: click to start/stop recording (overwrites previously input sequence).
- dub: click to start/stop overdub (records a new layer on top of previous sequence).
- clk: internal/external clock.
- bpm: tempo of the internal clock.
- grv: groove template.
- amt: groove amount.
- div: division of the clock used for each step.
- chn: midi channel to use for recording and for outputting notes.
- rst: midi note that will be used as a "rest" button.
- tie: midi note that will be used as a "tie" button.