MidiArp is an advanced MIDI arpeggiator module that has all standard and a few unique features, such as very musical latch mode, super stable internal clock, nice swing and two modulation sources with velocity, after touch and CC destinations.
MidiArp is designed as a performance instrument suitable for both studio work and live performance.
Firmware (.syx and .hex): midiarp_102 (use midiarp_pal.syx if your device has MIDIpal bootloader)
Firmware source code: midiarp_097_src
Direction, octave range and length
Supported direction modes are: UP, DOWN, AUTO (it’s up or down, depending on if the second pressed note is above or below the first one), UP/DOWN, UP/DOWN2 (this one has doubles end notes), ORDER (notes are played in the order the keys were pressed), CHORD (all notes at once), and RANDOM.
Available octave ranges span up to 4 extra octaves up or down. In addition to the standard octave playback, ranges above 1 can be played in both directions: original octave, 1 octave above, 2 octaves above, then 1 octave above again, then back to original.
Arpeggiator cycle can be limited by LENGTH parameter. For example, if LENGTH is set to 8 and you play triad CEG, the arpeggiator will play CEGCEGCE then repeat, which is useful when you play triads in 4/4 measure or for creating some complex arpeggiator figures with fancy measures.
Arpeggiator pattern can be set to one of the 16 predefined rhythmic patterns. (v0.97+)
Tempo, swing and step/gate length
Tempo can be set anywhere between 25 and 250 beats per minute. The internal clock generator is super stable and supports swing from 0.1% to 99.9% with .1% increments which allow some very subtle grooves.
Default arpeggiator step duration is 1/8th, however it can be set to anywhere between 1/64th triplet and 2 whole notes. Gate duration default is half the step duration and can be set to any duration in the same range, including values longer than the current step setting, creating interesting effects if used with polyphonic sound sources.
Latch, key sync and key start
LATCH mode: when set to on, the arpeggiator will keep playing notes even after you release all keys. MidiArp’s latch mode implementation is special in that it not just merely adds each played note to the playing set until you release all keys. Instead, it reloads arpeggiated notes set with currently held notes every time the key is released making the latch mode much more musical.
KEY SYNC mode: when set to on, the arpeggiator clock is restarted when you play notes after releasing all keys. This is sometimes indispensable when you play live, however may confuse slave MIDI devices if you have any.
KEY START mode: when set to on, the arpeggiator is automatically started when you play notes and it is stopped. Normally you’d have to press the switch to get the arpeggiator going, however with this setting it will be started when you start playing.
Keyboard zones and velocity
ZONE LOW/HIGH: specifies the range of notes that arpeggiator responds to so that you can have you right hand playing arpeggios and your left hand playing a non-arpeggiated bass line, or your left hand playing arpeggios and your right hand playing a solo.
Starting with version 0.96, you can assign different MIDI Channel to send out of zone notes to. This comes handy when you want to back arpeggiated notes with sound from another synthesizer using one keyboard.
VELOCITY mode: when set to ‘key’ (default), the arpeggiated notes will be played back with their original velocity. Setting this to a value between 1 and 127 will result in fixed velocity which is useful for steady arpeggios and when you want to apply predictable modulation, see below.
MidiArp has two modulation sources, each with saw, triangle, square and random waveforms, which can modulate arpeggiated note’s velocity, after touch and controller of your choice, all at the same time.
Modulation period is specified as a number of arpeggiator steps and can be set to ARP (equal to the number of currently played notes), OCTAVE (number of currently played notes multiplied by the number of octaves set by RANGE parameter), or any constant number between 2 and 127.
Modulation amount is specified as a value between -127 and 127 with 0 meaning no modulation. Modulation value is 0 at the start of the modulation period and it reaches the set amount by the modulation period end.
Modulation value is added to the original modulation destination value received by the arpeggiator. Negative amounts subtract modulation value, changing raising saw waveform to inverted saw, triangle to inverted triangle and low/high square to high/low square.
Both modulation sources can be set to the same destination resulting in some complex modulations with two standard waves superimposed on each other. Try setting both modulation sources to CC#10 (pan position), Mod1 length to OCT and Ctrl amount to 127, Mod2 length to ARP with Ctrl amount to 63 and you end up with an arpeggio sound walking from left to right with each octave notes starting to the left from where the previous octave note ended!
MidiArp user interface consists of pages which are selected by encoder rotation. Each page displays a single parameter value.
Clicking the encoder toggles parameter editing mode. Double clicking the encoder saves all arpeggiator settings in the currently selected memory slot on all but the Main pages. The Main page allows you to save arpeggiator settings into a different memory slot.
Pressing the switch starts the arpeggiator if it is stopped, and stops it if it is running. When running with LATCH mode set to on, pressing the switch will silence the currently playing notes without stopping the sequencer. Press the switch again with no notes playing if you need to stop the arpeggiator completely.
Pressing the switch while on the Main in parameter changing mode enters the name editing mode in which switch advances editing character position and encoder rotation select the character under the cursor. Clicking the encoder accepts the edited name.
Repeatedly pressing the switch on the Tempo page in parameter changing mode allows you to set tempo using tap tempo feature.
MIDI Channel, Velocity, Zone High/Low and Mod CC# pages will “learn” the parameter setting if the related MIDI event is received while in parameter editing note. For example, instead of checking what MIDI channel your MIDI keyboard is set to, you can just go to the MidiArp’s MIDI Channel page, play a note, and the channel will be set to the received note’s channel. Or on the Velocity page you can repeatedly play a note adjusting required fixed velocity setting by ear rather than manually.
All MidiArp’s parameters can be altered on the fly without stopping the arpeggiator. The current version does not support arpeggiator parameter setting by external controls, however this could be (and probably will be) implemented in future versions of the firmware.
Snapshot of the arpeggiator settings can be stored into one of the 100 named nonvolatile memory slots for later recall. Saving and loading do not require stopping the arpeggiator which is great for live performance. Each memory slot has a number (00 to 99) and a user definable name which can be “peeked at” during save/load operations.
Active memory slot can be selected using MIDI Program Change message without stopping the arppegiator, which makes it real fun to play live.
Powering the device up with the switch pressed returns all MidiArp settings to factory defaults erasing all your stored arpeggio settings.
Powering the device up with the encoder knob pressed enters the firmware upgrade mode: device expects firmware sysex file to be sent to MIDI IN.