Awesome
octane: a MIDI connector
ABOUT
octane harmonizes MIDI devices. Primarily by extending pitch range!
For example, a Bastl microGranny sampler and a KORG SQ-1 sequencer operate with mutually exclusive CC signals. That's where octane comes in! octane offers a simple pitch offset parameter. Suddenly we unlock more interesting interactions for your synths. Make sweet, sweet beats with octane.
DOWNLOAD
https://github.com/mcandre/octane/releases
TECH TALK SLIDES
DOCUMENTATION
https://pkg.go.dev/github.com/mcandre/octane?utm_source=godoc
LICENSE
BSD-2-Clause
RUNTIME REQUIREMENTS
- macOS, Linux, or Windows (experimental)
INSTALL FROM SOURCE
$ go install github.com/mcandre/octane/cmd/octane@latest
CONTRIBUTING
See DEVELOPMENT.md.
TIPS
- Polling may complete faster when MIDI software such as Arturia Analog Lab is running. Though be careful about such software interfering with your jam sessions.
- Polling may complete faster on Linux.
- Any USB MIDI adapter hubs may obfuscate or alter device names.
- MIDI device names may differ between operating systems.
- In a pinch, many MIDI devices can serve as adapters to reach further MIDI devices, using "thru" options.
- By default, octane copies data from all available IN devices to all available OUT devices. Optional
-in
,-out
flags can narrow the mapping.
WE JAMMIN'
A quick hardware example triggers funky beats.
Equipment:
- Speaker (e.g., Anker Sondcore Motion+)
- Sampler (e.g., Bastl microGranny v2 + 2GB microSD card + microSD card reader)
- Sequencer (e.g., KORG SQ-1 + KORG MIDI TRS DIN adapter)
- MIDI controller (e.g., Arturia KeyStep)
- USB to MIDI DIN adapter (e.g., iConnectivity mio 1 in 1 out)
- PC (e.g., Apple MacBook Pro)
- audio cable (e.g. 3.5mm TRS male to male)
- DIN cable (e.g., 5-pin male to male)
- assorted USB A/B/C/micro adapter cables
- assorted power supplies, batteries
Hardware Configuration:
- Ensure speaker is powered on.
- Connect sampler to speaker with an audio cable.
- Ensure sampler is powered on.
- Connect MIDI controller to sampler with a DIN cable.
- Connect MIDI controller to PC with a USB cable.
- Ensure MIDI controller is powered on.
- Set the MIDI controller clock to internal.
- Enable Hold function on MIDI controller, if you have one.
- Connect sequencer MIDI OUT port to DIN adapter.
- Connect sequencer DIN adapter to MIDI IN port of USB adapter.
- Connect MIDI USB adapter to PC.
- Ensure sequencer is powered on.
- Set sequencer pattern to linear, left to right through 8 + 8 = 16 rows.
- Randomize sequencer pitch knobs.
- Set sequencer mode to Step Jump if you have one.
- Ensure PC is powered on.
Software configuration:
- Enumerate PC MIDI devices:
$ octane -list
Polling for MIDI devices...
MIDI IN devices:
* SQ-1 SEQ IN
* mio
* Arturia KeyStep 32
MIDI OUT devices:
* SQ-1 MIDI OUT
* SQ-1 CTRL
* mio
* Arturia KeyStep 32
Normally, the KORG SQ-1 sequencer emits notes too high for Bastl microGranny to understand. We will transpose the notes down four octaves, so that the sequencer can correctly trigger instructions to select different sample sounds.
- Set
-transposeNote
to subtract 48 from each sequencer note. Test octane with different inputs and outputs for your particular setup.
$ octane \
-transposeNote -48 \
-in "SQ-1 SEQ IN" \
-out "Arturia KeyStep 32"
Polling for MIDI devices...
Connected to MIDI IN device: SQ-1 SEQ IN
Connected to MIDI OUT device: Arturia KeyStep 32
(Play a sequence)
#0 [4 d:4] channel.NoteOn channel 0 key 48 velocity 64
#0 [1187 d:1187] channel.NoteOff channel 0 key 48
...
Depending on the host, your MIDI devices may enumerate differently. For example, Linux typically may provide fewer. more generic MIDI instruments.
$ octane \
-transposeNote -48 \
-in "mio:mio MIDI 1 24:0" \
-out "mio:mio MIDI 1 24:0"
- Set a sample going with the MIDI controller piano keys.
- Start the sequencer playing.
- Jam.