How Do I Send MIDI Info To Multiple Instruments in a ReWire Slave App?

Jul 13, 2008 at 4:28pm

How Do I Send MIDI Info To Multiple Instruments in a ReWire Slave App?

Hello, I am trying to figure out how I can send midi info to multiple instruments simultaneously from MaxMSP to Reason. I’ve been messing around with ddg’s 4th Rewire Essentials patch but am only able to control the instrument that I have selected in Reason.

Here’s the 4th ReWire Tutorial patch so ppl can get an idea:

– Pasted Max Patch, click to expand. –

On a separate note, I was looking for the 4th ReWire Essentials tutorial, in order to better understand sending midi info, but am not able to find it. Does C74 remove tutorials from their website after a given period of time, b/c it’s nowhere to be found (through either searching the website or google).

Thanks for any help!

#38862
Jul 13, 2008 at 7:00pm

From what little experimenting I’ve done, I’ve only been able to target 5 different instruments in Reason at the same time. Try these steps:
1. Once you have your patch loaded and Reason running at the same time, go into Reason, select “Preferences…” from the top-left Reason menu.
2. Select “Advanced Control” from the top pop-up menu and change Bus A, Bus B, Bus C, Bus D pop-up menus all to MaxMSP1.
3. Then back within the main Reason interface, scroll to the top of the device-rack to the main “Reason Hardware Device”(click the arrow on the left of its panel to expand it).
4. On the “Reason Hardware Device” click the “Adv. MIDI Device” button(just below the green LCD-type character display and to the left of all the AudioOutput meters) to show the Advnaced MIDI device router.
5. Select “Bus Select” button “A”.
6. Just below, click the downward pointing arrow for a pop-up menu of all available Reason instruments to select an instrument for “Channel 1″ within Bus A.
7. Repeat step number 6 for Bus B, Bus C, and Bus D(you are basically choosing a Reason instrument for MIDI Bus A, Channel 1, MIDI Bus B, Channel 1, MIDI Bus C, Channel 1, and MIDI Bus D, Channel 1(Channel 1 only for now(i haven’t figured out why it’s not easy to target other channels yet…))).
8. Go to your Max/MSP patch(or use the altered one I’m pasting below) and create 3 additional [toggle]->[metro100]->[random 128]->[makenote 100 80]->[pack 0 0]->[midi 0 0 144 $1 $2] objects but change the bus-number for the midi messages to be 1, 2, 3, and 4… (for example [midi 0 2 144 $1 $2] for Bus2 which actually targets Reason Bus B, Channel 1).

BASICALLY, IT’S THE BUS NUMBER OF THE MIDI MESSAGE to the rewire~ object.

9. This step isn’t really a step but an additional suggestion for experimenting. Create one additional set of randomly generated makenote-packed-to-midimessage objects to try out different bus numbers by changing the pack arguments to [pack 0 0 0] and then change the bottom midi message to [midi 0 $3 144 $1 $2] and connect a number box to pack’s 3rd inlet to experiment with bus number. Then you can try to assign instruments to Reason Bus A, channel 2-16 and the same for Busses, B, C, and D and then scroll the number box to attempt to find how to target the other Bus’s Channel numbers besides Channel 1.

I haven’t had much luck in easily finding how to target Channels 2-16 within Bus A, B, C, and D but that last step would be one way to search for them(I have found additional ones but so far, can’t explain why they are assigned to certain bus numbers).

Additionally, if your midi message is set to Bus# 0(i.e. [midi 0 0 144 $1 $2]), then that’s the fifth instrument you can surely target at the same time which happens to be the one you’ve highlighted within Reason’s sequencer interface(by clicking on it from the list in the left-side of the sequencer).

Regrettably, this only targets 4 out of the 64 available channels within Reason’s hardware device interface at the top of the rack, and 1 additional selected instrument, but hopefully it’s a start in the right direction. Hope it helps!

Here’s the quick modified patch to help speed things up:

– Pasted Max Patch, click to expand. –
#135953
Jul 13, 2008 at 7:03pm

One more thing, Darwin only wrote 2 “ReWire essentials…” articles. The 4 test-patches are from the part-two article. He also wrote a third article recently called “Rewire 3: Subversion with ReWire”. I’m pretty sure those 3 are all there is, but… I could be wrong.

Best of luck.

#135954
Jul 13, 2008 at 7:33pm

Thanks for such a thorough reply RabidRaja! And also, thanks for clarifying the Rewire Tutorials, I had those 4 patches so I just naturally assumed they each corresponded to a separate tutorial :-P

I messed around with your patch a bit, and reread ddg’s midi section in the 2nd ReWire tutorial, and found out how to control channels 2-16 for Buses A-D. Basically, it’s just a matter of changing the third argument in the midi message.

So, let’s say you want to send a midi message to Channels 1 and 10 in Bus A, the respective midi messages would be:

(channel 1, bus A): midi 0 1 144 $1 $2
(channel 10, bus A): midi 0 1 *154* $1 $2

so the third argument will be from 144-160, with each number controlling one of the 16 different channels in that bus.

with the 4 Buses with 16 channels each, plus the 1 synth you can select, that’s 65 possible instruments to control at one time from MaxMSP to Reason. :-D yay!

#135955
Jul 13, 2008 at 7:38pm

Suweet! I’ll be using this too more often now so it was really good we could figure it all out! Thanks for posting your solution!

#135956
Jul 14, 2008 at 7:06am

I am trying to do something very similar in Ableton. I’m able to send midi note on information to a single midi instrument in ableton live (operator), but can’t for the life of me work out how to control multiple instruments at once. I’ve attempted using the patches posted here as a template, but can’t seem to get atwo makenote messages to be registered in live at the same time.

Any input would be greatly appreciated.

#135957
Jul 14, 2008 at 7:10am

Doing some more exploring, Rabid, thought i’d let you know about a little trick i came across. despite success earlier today, i was encountering problems with sending reason multichannel midi info. i found out that if you hook up the makenote object directly to a noteout object, then click on the noteout when the patcher’s locked, you can send the midi info to MaxMSP 1, 2 or IAC Driver. All of these can be routed to a bus in Reason. You can then set the channel in the noteout with the right inlet.

#135958

You must be logged in to reply to this topic.