Synth Forum

Notifications
Clear all

send program changes to external midi keyboard without sacrificing playable part

17 Posts
4 Users
0 Reactions
877 Views
 Rob
Posts: 94
Estimable Member
Topic starter
 

I bought a YC stage keyboard, which is connected to my MODX via MIDI. I want to use the MODX as master keyboard that sends program changes to the YC. The expression and sustain pedals on my MODX also control the YC. I only want YC sounds when I use its keyboard, NOT when pressing MODX keys. I got this working by dedicating one of the parts 1-8 for the YC, selecting Zone and setting the note limit to e.g. C-2 C-2. However, since I typically already need one part for the drum pattern and one for my MIDI bass pedals, I then have only 5 playable parts left per performance. It seems unnecessary to dedicate a playable part simply for sending program changes to an external keyboard and controling its expression and sustain. When I send program changes via e.g. the part that is controlling bass pedals, it works initially, but somehow program change messages are not saved.

Is there a way to send program changes, and control expression and sustain of an external keyboard using parts 9-16, or otherwise avoid sacrificing a playable part?

 
Posted : 29/01/2023 3:21 pm
Jason
Posts: 8259
Illustrious Member
 

I'm not thrilled with how Zone control works. I think the part zone menu note range shouldn't limit the notes sent to the internal tone generator and should only impact note ranges of the external device. This isn't the way it works - so you're left finding a different way.

Instead of burning a Part in the range of 1-8, you can instead burn a Part in the range of 9-16 that sends MSB/LSB/PC information to an external controller. When you recall a Performance the MSB/LSB/PC information is sent from Part 9-16 (zone control) just like it would otherwise be sent if it was Part 1-8. No need for keyboard control. No need for any notes in the note range (under zone control). The message is sent and spare a Part in the range of 1-8.

Still, I agree it would be better if we could tell zone control "don't send any notes to my external controller, but do send MSB LSB PC -- or other items currently with on/off switches under Zone control".

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 30/01/2023 12:15 am
 Rob
Posts: 94
Estimable Member
Topic starter
 

Thanks Andrew and Jason.

@Jason, I tried setting this up on the MODX via a Part in the 9-16 range, but couldn't get it to work: I see the YC responding to the program that I'm selecting on the MODX (program change) and the YC also responds to footpedals connected to the MODX. However, when I then store the MODX performance and then call it up again later, it doesn't send a program change to the YC.

Any thoughts on what I might be doing wrong?

 
Posted : 30/01/2023 10:00 am
Jason
Posts: 8259
Illustrious Member
 

For me, I tested using an RD2000 as the slave keyboard (proxy for your YC) and my Montage as the master (proxy for your MODX - has the exact same MIDI capabilities).

On Montage (MODX):

1) In the advanced [UTILITY] setup, made sure that Zone Master was turned on. It wasn't - so I turned it on.
2) Recalled Preset "EP & Jazz Gt Comp" (because I wanted to start with something with multiple instruments and use an existing Part to send MSB/LSB/PC -- which didn't pan out)
... skipping past what didn't work
3) Added Part 9 as "CFX Stage". It doesn't matter what I add there - just any single-Part. I picked "CFX Stage".
4) Edited Part 9, navigated to the Zone menu "Part 9" -> (Common) -> "Part Settings" -> "Zone Settings"
5) Turned (Part) Zone On, set note limit to C-2 through C-2 (probably overkill), set transmit channel to 5, Made sure "Bank Select" and "Pgm Change" buttons are set to "On". Left "MIDI Send" as OFF. Configured MIDI Bank MSB/LSB to 000/000 and Midi Pgm Num to 008. What this does to my RD2000 is set zone 5's sound to a clav. Originally it's a piano sound.
6) [STORE] the Performance. Named it "rd2k exp"
7) Played the RD2000 zone 5 and heard it was a piano sound - OK, ready to test.
8) [PERFORMANCE] (HOME), touched the Performance Title, then turned the Data Dial one click forward which changed the Performance to something else then one click back which brings me back to the "rd2k exp" Performance I created.
9) Played the RD2000 zone 5 and heard it was changed (MSB/LSB/PC) to a clav sound.

... note I used MIDI Channel 5 only because the preset on the RD2000 I started with had a modeled piano on zone 1 (MIDI Channel 1) and for some reason you cannot MSB/LSB/PC change the modeled pianos like you can the standard sampled sounds. This is just a quirk of this particular preset in this particular keyboard. Zone 5 on the RD2000 has a standard sampled piano so I used that and MSB/LSB/PC changes work.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 30/01/2023 6:12 pm
Jason
Posts: 8259
Illustrious Member
 

... this isn't about the RD2000 - but in case someone with more RD2000 experience wanders here ...

If I set the MSB/LSB/PC to 84/00/1-128 then I can get Zone 1 (MIDI Ch 1) to change.

I don't use my RD2000 like this so there's a lot about the MIDI implementation I have no experience with. For the original question - this is no matter because the only goal here was to get the RD2000 to automatically do something in response to MSB/LSB/PC messages embedded in one of the Parts 9-16.

EDIT: On the RD2000 in order to change the "Program" (which is similar to a Performance in MODX) you must send MSB/LSB/PC to the "Program Change Channel". I don't know YC as well, but in MODX you always send these parameters to Channel 1 (when keyboard is in Multi-Channel Mode) and the RD2000 allows for setting a specific channel (or OFF). By default, the program change channel on the RD2000 is Channel 16. So ... Now I have one Performance called "rd2k exp" that uses Part 9 to send a MSB/LSB/PC 84/64/0 (Jazz Piano on the RD2000) on Channel 16 and a second Performance called "rd2k exp2" that uses Part 9 to send a MSB/LSB/PC 84/64/62 (Touch Wah Clav/Slap Bass program on the RD2000). When I switch between these two Performances on Montage (MODX) - now the program changes from Jazz Piano to the Bass+WahClav) on the slave keyboard (which is acting as your YC).

Also, a word on the MIDI cabling: I had a single MIDI cable connected between the Montage's MIDI Out and the RD2000's MIDI IN. There was no cable connected for the other direction as it wasn't necessary for this. Of course the Montage(MODX) is configured in MIDI (not USB) mode for this to work without attaching a computer/tablet.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 30/01/2023 6:43 pm
 Rob
Posts: 94
Estimable Member
Topic starter
 

I got it working from MODX part 16 Jason, many thanks for your help!

Interestingly, different from you I can only send program changes from the MODX if MIDI Send is as ON (which seems logical). Also, in order to send program changes to the YC from the MODX, I have to set MIDI Bank MSB to 063.

 
Posted : 31/01/2023 11:14 am
Jason
Posts: 8259
Illustrious Member
 

MIDI send will send the MIDI as you real-time change the values within the edit menu and turning it off will allow for you to change the MSB/LSB/PC without immediately sending these values. No matter if the button is on or off the MSB/LSB/PC is sent when you recall this Performance.

Either way - glad you got this to work.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 31/01/2023 4:31 pm
 Rob
Posts: 94
Estimable Member
Topic starter
 

Having experimented a bit more, I found that I do need to put the external keyboard (YC) on part 1-8 in order for the expression and sustain pedals MIDI signal from my MODX to work on the YC. So apparently the MODX can send program changes from parts 1-16, but for sustain and expression pedals to work on both the MODX and a second keyboard, the MODX MIDI out signal needs to come from part 1-8. Probably logical, since pedals normally are meant to affect playable parts.

 
Posted : 03/02/2023 8:17 am
Bad Mister
Posts: 12303
 

[quotePost id=120275]Having experimented a bit more, I found that I do need to put the external keyboard (YC) on part 1-8 in order for the expression and sustain pedals MIDI signal from my MODX to work on the YC. So apparently the MODX can send program changes from parts 1-16, but for sustain and expression pedals to work on both the MODX and a second keyboard, the MODX MIDI out signal needs to come from part 1-8. Probably logical, since pedals normally are meant to affect playable parts.[/quotePost]To gain a better understanding of how MIDI works on your MODX - I hope you can see the difference in how I state the facts:

You do not "need to put the external keyboard (YC) on Parts 1-8".
What you want to express here is: You need to put the external keyboard (YC) on a MIDI Channel being transmitted by the MODX for the Expression CC11 and Sustain CC64 to work. CC messages are in the category of MIDI messages known as Channel Messages - means they are communicated on a specific MIDI Channel. Knowing WHEN the MODX is sending OUT via MIDI is going to be critical.

In other words, the MODX keyboard and controllers must be actively transmitting on the MIDI Channel that your YC is set to receive in order to get the result you are seeking.
While true, the MODX can transmit on multiple MIDI channels, simultaneously, when the KBD CTRL feature is used and those channels are 1-8. They only need transmit their data when you are recording to a sequencer or recording MIDI to a DAW. The MIDI data generated by the MODX for the internal Tone Generator should only be captured and played back to the MODX Tone Generator - in general, do not use these messages to trigger external MIDI devices. If fact, what you want to do is prevent these MIDI messages from going OUT, altogether.

When you activate KBD CTRL (that green icon found on PARTs 1-8), your MODX will Transmit Out via MIDI on the correspondingly numbered MIDI Channels. If, for example, you have KBD CTRL on PARTs 1, 2, 3 and 4, then you MODX will normally generate MIDI OUT on MIDI Channels 1, 2, 3 and 4 respectively.

BUT, and its a big ol' but... But did you know?
When you are communicating with an external device it is always wise to use the ZONE MASTER function - it lets you determine what each Part slot is sending OUT via MIDI. if it is transmitting any MIDI data at all.

Turning the ZONE Switch ON for a Part initially prevents it from transmitting OUT via MIDI... here's how that works:
Let's use a MODX 4-Part Performance as an example... 3 internal MODX Parts - with one slot dedicated for the YC.
__When using the ZONE MASTER function - you must activate an internal program for each PART slot you wish to activate. So if you activated ZONE Part slots 1, 2, 3 and 4 you could, if you so desired, set Parts 1, 2 and 3 so that the ZONE only communicated with internal Parts. Here's how:

You do so by activating the ZONE switches in each of Parts 1, 2, and 3;
"ZONE" = ON and set the "INT SW" = ON in Zones 1, 2 and 3. You will be able to 'Play' these three Parts as a MODX Performance.
This will mean that your MODX will NOT transmit OUT via MIDI, at all under these conditions.
You will be able to play PARTS 1, 2 and 3 from the internal Tone Generator but no MIDI data is sent to the MIDI OUT!!!

You could then activate the "ZONE" switch in Part 4 = ON, but this time set the "INT SW" = OFF and set the "Transmit Channel" = whatever channel you want your YC to respond on. You have now created a ZONE specifically for your YC. (always highly recommended - the data that the MODX generates for itself should be used only for the MODX. Data generated by the ZONE slot you specifically program for the YC, should always be used when you want to control this device). STORE your PERFORMANCE - your External slot will be stored with the Performance can be copied, exchanged and recalled via Category Search.

Now because all four PARTs have KBD CTRL = ON - the Zones will all be active. Zones 1, 2, and 3 will communicate internally while Zone 4 will communicate to your YC (externally).

If you want to use a non-KBD CTRL Zone Part... In my example that would be Parts 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, and 16 you would need to *select* these Parts directly so that the MODX would actively transmit OUT from these Part slots.

Just simply using Parts 1-8 is not enough - true only Parts 1-8 can be KBD CTRL active... but any and all 16 Part slots can transmit OUT via MIDI -- it is the rules that govern WHEN, that change the deal.

KBD CTRL Parts will only transmit when you have selected a COMMON area (like the HOME button--where the Performance Name is highlighted) or you have selected any of the linked KBD CTRL Parts. They all act as a group - when you can address one of them you are transmitting to all of them.

If the ZONE switch is active for a slot then it DOES NOT TRANSMIT OUT via MIDI unless you activate the "Transmit Ch" function to make it do so.

Best Practice: Create a separate ZONE Part slot for your external device (YC) - You do so by placing a 'dummy' internal MODX program in the slot, then set the "INT SW" (Internal Switch) = OFF, set the "Transmit Ch" as you require to address the YC.

Make sure, if you wish to play the MODX simultaneously, that the ZONE Switches are set to ON and INT SW set to ON for all Parts you want to sound from the MODX (do not utilize the "Transmit Ch" for these Parts). AND... set the ZONE Switch to ON, the INT SW = OFF and the "Transmit Ch" set to trigger the YC ( you can use any of the 16 MIDI channels available).

If you do not need the MODX to sound, simultaneously, with the YC, then you can use any slot ... just simply directly *select* that Part slot when you wish to use it to control your YC. For example, if you want to setup Part slot 16 as your external Zone to control the YC - setup your ZONE switch for Part 16 to ON, set "INT SW" = OFF, and the "Transmit Ch" to whatever will trigger the YC. You can STORE your setup... and Name the PART "YC Control". You will find that you can recall it and use it in any future Performances you might create. Part slots can be Copied, Exchanged, even searched for as you get to know your MODX.

It is incorrect (incomplete) to just say the MODX can only use Parts 1-8.
What comes into play is - the MODX can transmit on up to eight Channels, simultaneously, from the Keyboard and Controllers (using KBD CTRL function). This means you can "play" on as many as 8 channels at once.
- the MODX can transmit Bank Select/Program Changes, Volume settings and Pan position settings to all 16 MIDI Channels whenever a Performance is recalled if you use the ZONE MASTER function.

Extra Credit:
The MONTAGE/MODX/MODX+ can control up to 8 Parts. They can all be internal or any combination that adds up to a total of 8 simultaneous. You can have 8 ZONE Part slots... where 7 are MODX sounds and the 8th is your YC.
__ If you connect the L/R audio Outputs of the YC to the L/R A/D Inputs of the MODX, you can then assign MODX Effects to the YC, you can morph between internal MODX and external YC sounds within your Performances - use the Super Knob to control what happens to the YC (as well).

 
Posted : 03/02/2023 3:01 pm
 Rob
Posts: 94
Estimable Member
Topic starter
 

Thank you for explaining Bad Mister, and I'm sorry for not using the correct terminology. I'm still not completely clear though:

I have activated the ZONE switch in Part 8, set the INT SW to OFF and Transmit Channel to 8 for the YC to respond to Program Changes, and Expression and Sustain pedal signals. For Parts 1-7 ZONE is OFF. This seems to work fine. Why then should I set ZONE Switches to ON and INT SW to ON for Parts 1-7? What's the advantage of doing this?

 
Posted : 03/02/2023 3:52 pm
Jason
Posts: 8259
Illustrious Member
 

So apparently the MODX can send program changes from parts 1-16, but for sustain and expression pedals to work ... , the MODX MIDI out signal needs to come from part 1-8.

That's correct. The MSB/LSB/PC are things that are set in the Part Zone menu so these are available to send. Parts 9-16 cannot have Keyboard Control turned on. What this means is piano keys AND controllers are not sent to Parts 9-16 (when no Part in range 9-16 is selected). ... and if you did select one of the Parts 9-16 then your controllers (including piano keys) would not be sent to Parts 1-8.

Why then should I set ZONE Switches to ON and INT SW to ON for Parts 1-7? What's the advantage of doing this?

Without activating Zones on Parts 1-7 you don't have the opportunity to tell MODX what to do with the MIDI it sends. By default Part 1 will output MIDI data on MIDI Channel 1, Part 2 on MIDI Channel 2, ... etc through Part 7 on MIDI Channel 7. All of this data would be sent along the MIDI cable connected to your external device. Maybe your external device ignores MIDI data from channels 1-7. That said, the MIDI bus will still have 7x more traffic vs. if you were able to filter out sending MIDI to the external controller from Parts 1-7. If you set the Part Zone MIDI transmit Channel to "off" for Parts 1-7 then this would prevent this MIDI data from being sent to your external device. Depending on the buffering of your MIDI device - it's possible to saturate the bus and cause problems. I have older gear (such as the Voce V3) that has shown issues in this department. Aftertouch will quickly saturate if not turned off (when not needed/used).

Depending on the capabilities of your external device - there really may not be any advantage.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 03/02/2023 5:48 pm
Posts: 0
New Member Guest
 

Please clarify - are you saying you no longer have this issue?

Having experimented a bit more, I found that I do need to put the external keyboard (YC) on part 1-8 in order for the expression and sustain pedals MIDI signal from my MODX to work on the YC

Are you now able to use a part 9-16?

I have activated the ZONE switch in Part 8, set the INT SW to OFF and Transmit Channel to 8 for the YC to respond to Program Changes, and Expression and Sustain pedal signals. For Parts 1-7 ZONE is OFF. This seems to work fine. Why then should I set ZONE Switches to ON and INT SW to ON for Parts 1-7? What's the advantage of doing this?

Why didn't you follow Bad Mister's advice? He went to great lengths to explain HOW to solve your problem but your reply suggests you haven't followed the advice he gave you:

You do so by activating the ZONE switches in each of Parts 1, 2, and 3;
"ZONE" = ON and set the "INT SW" = ON in Zones 1, 2 and 3. You will be able to 'Play' these three Parts as a MODX Performance.
This will mean that your MODX will NOT transmit OUT via MIDI, at all under these conditions.
You will be able to play PARTS 1, 2 and 3 from the internal Tone Generator but no MIDI data is sent to the MIDI OUT!!!

See that last statement above where it says 'no MIDI data is sent'?

 
Posted : 03/02/2023 5:48 pm
 Rob
Posts: 94
Estimable Member
Topic starter
 

Andrew, I'm not ignoring Bad Misters' advice. I only asked a question for clarification, which was perfectly answered by Jason. Much appreciated!

 
Posted : 03/02/2023 6:00 pm
Posts: 0
New Member Guest
 

I'm not ignoring Bad Misters' advice

No problem - but it helps to get feedback about whether it worked for you or not.

Are you now able to use a part 9-16 the way Bad Mister indicated?

Or are you still having an issue?

 
Posted : 03/02/2023 7:47 pm
Bad Mister
Posts: 12303
 

[quotePost id=120283]Thank you for explaining Bad Mister, and I'm sorry for not using the correct terminology. I'm still not completely clear though:

I have activated the ZONE switch in Part 8, set the INT SW to OFF and Transmit Channel to 8 for the YC to respond to Program Changes, and Expression and Sustain pedal signals. For Parts 1-7 ZONE is OFF. This seems to work fine. Why then should I set ZONE Switches to ON and INT SW to ON for Parts 1-7? What's the advantage of doing this?[/quotePost]In your particular case, none. It will work the way you describe.

Because the data being transmitted OUT from slots 1-7 is being received by no device that you have connected however...
We are talking about UNDERSTANDING how it works. So my in depth details deal with how it is designed to work and what is actually being sent or not sent.

If a device was connected via MIDI and was capable of receiving MIDI on Channel 1, 2, 3, 4, 5, 6, or 7 then the MIDI that is Output from those Part slots would arrive and trigger the connected device.

__ You are using Channel 8 for the YC - when you truly understand how the ZONE function works you will understand why you could use any of the MIDI Channels. If you are thinking that you have to use Channel 8, then you are NOT understanding the significance of this point. By turning the ZONE Switch to ON and the INT SW to ON in Parts 1-7, you ensure that the MODX can trigger the MODX Parts yet send nothing OUT via MIDI... Therefore, you are free to use any of the 16 MIDI Channels to address your YC from the slot designated to control it.

Part slot 8 (ZONE 8) can be set to any MIDI channel you wish... it will not conflict with any of the other slots because they will not be transmitting OUT via MIDI at all.

What if your receiving device only could receive on Channel 1. When you understand the ZONE function you realize that the MODX does not address itself using MIDI Channels. The MIDI Data from any Part can be prevented from being transmitted by using a ZONE, INT SW ON and Transmit Ch = OFF. Say you wanted to address the YC using Channel 1.
You would set the ZONE in Part slot 8 to "Transmit Channel = 1"
Because the MODX Part in Slot 1 will NOT be transmitting any data... therefore Channel 1 is available.

Small point but important to understand.

 
Posted : 03/02/2023 8:08 pm
Page 1 / 2
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us