Pipe MIDI messages from one app to another.
I wanted to connect Reason Studio to Resolume Avenue so that I could create an automated audio/video composition that was controlled by MIDI. I wanted something that was more performant than the clunky IAC Bus and more stable than MidiPipe.
- Node.js
- Two Midi Applications you want to link
-
Clone this repository.
-
Install the Node dependencies.
npm install
Press Control + C twice, to quit the program.
-
Start the MIDI server with Node.js.
node index.js
-
Goto Reason Studio MIDI Preferences and disable "ReMidi from Reason".
⚠️ Important: If you stop and start the program, you will need to go back into Reason MIDI preferences and disable "ReMidi from Reason" again, otherwise your will start an infinite MIDI loop. -
Choose "ReMidi to Avenue" from the input dropdown.
-
Move the Mod Wheel on the MIDI output and you should see MIDI messages in your terminal.
-
You can select the "ReMidi from Reason" device from another application, and see the same MIDI messages.
In this case I am using Resolume Avenue.
const easymidi = require('easymidi');
const avenue = new easymidi.Output('ReMidi from Reason', true);
const reason = new easymidi.Input('ReMidi to Avenue', true);
reason.on('noteon', ({_type: type, channel, note, velocity}) => {
console.log('Output from Reason', {type, channel, note, velocity});
avenue.send(type, {channel, note, velocity});
});
reason.on('noteoff', ({_type: type, channel, note, velocity}) => {
console.log('Output from Reason', {type, channel, note, velocity});
avenue.send(type, {channel, note, velocity});
});
reason.on('cc', ({_type: type, controller, value, channel}) => {
console.log('Output from Reason', {type, controller, value, channel});
avenue.send(type, {controller, value, channel});
});
console.log('ReMidi is running!');
This simple code allows you to send MIDI messages easily from one application to another.
In my case, I can write an audio/visual composition in Reason. Reason triggers and changes the video clips and parameters in Avenue, making the music and the music video, a singular process.
You can update the code if you want to provide more channels, and change the names.
Contact me you need help.
~ F1LT3R