Jump to content
  • 0

Sending a program change to an external synth


Lawrie Anness

Question

Apologies if this is novice stuff, but if I wanted to specify a patch on my (Korg) external synth, how would I use the information CC00 16, CC32 3, PC 22?  Do I "insert a series of controllers" and just include that data?  Scared to mess something up, so a step-by-step or a link to instructions would be much appreciated.

 

Thanks L 

image.png

Link to comment
Share on other sites

16 answers to this question

Recommended Posts

  • 1
1 hour ago, Lawrie Anness said:

Thanks to you all for the responses.    905133...  Thanks for tracking down the .ins file.  Ridiculously, I had found that myself but due to downloading it incorrectly, Windows 10 decided to turn it into a text file.  Anyway, I downloaded properly this time and IT WORKS.    I now have a proper list of Banks and Patches I can use in the track setup, so many many thanks!

Glad to hear this works!!!  Actually, I set my PC to open *.ins files in Notepad as the default.  Almost all of my hardware modules have Preset User Banks and I edit the names in my tweaked *.ins file using Notepad.  Super easy!  

I think I also use the "Normal" bank switching method for my gear. I will check that out and also look at the Korg file to see if its different.  

UPDATE (revised): Bank lists like [Korg Pa4X Bank 00 GM/XG] and [Korg Pa4X User2] define the banks by enumerating the names of the presets in those banks.

In a later section, the bank switching values themselves are listed under the name the Instrument Name:

Quote

.Instrument Definitions

[Korg Pa4X Arranger (www.korgpa.sk)]
Patch[15488]=Korg Pa4X Bank 00 GM/XG
Patch[15489]=Korg Pa4X Bank 01
Patch[15490]=Korg Pa4X Bank 02

etc.

  • 15488 / 128 = 121      - So, the bank switching MSB = 121 and the LSB = 0.
  • 15489 / 128 = 121 with a remainder of 1 - So, MSB = 121, LSB = 1.

The CC0 value is the MSB number and the CC32 value is the LSB number for bank switching.

Quote

Normal

Take the value of Controller 0, multiply it by 128, and add the value of Controller 32 to derive the bank number.

Note: A synthesizer manufacturer may refer to Controller 0 as the MSB (Most Significant Byte) and to Controller 32 as the LSB (Least Significant Byte).

HOWEVER: If you have the correct *.ins file installed correctly (and it is set up correctly--lined up on a per port / per-channel basis), you shouldn't need to figure out the CC0 and CC32 Bank switching values.  For example:

image.png.0b1e4e887cc4dd5c4015a81e1d936cf2.png 

Here I have port 1 channel 1 set up to look at one of my E-Mu *.ins files. Specifically, it is looking at one of the Instrument Definitions for a Sound ROM I have installed [Module: Virtuoso 2000; Bank 1280].  

I think the Korg *.ins file should work the same way. 

Hope this helps explain the relationship between the CC0 and CC32 values as listed in the Korg User Manual and how to select specific banks based on the *.ins file.

Edited by User 905133
to update the reply with additional information
Link to comment
Share on other sites

  • 0

Thanks 905133.  I had looked at that previously, but can't get to a place where I can add the three parameters  CC00, CC32, PC.  I don't have (and can't find) an instrument definition file for a Korg PA4X, so I concluded that I was stuck with sending the three data items I listed.  The Korg manual gives these three data items for each patch.  

Link to comment
Share on other sites

  • 0
4 hours ago, Lawrie Anness said:

I don't have (and can't find) an instrument definition file for a Korg PA4X, so I concluded that I was stuck with sending the three data items I listed.  

I just did a quick internet search and found this. I didn't look at the *.ins files themselves, but maybe there's one for your model.

3 hours ago, JoseC said:

You need to insert a new event in the Event List. Click on it to edit, the dialog box above appears. just change its kind and add the desired values.

This ^ .  I use the insert button (computer keyboard) to put in an event used, and then click on it to change the "Kind."

EDIT Just took a quick look. Here's the instrument definition header.  Also, it looks like the author has drum keys defined, too! 

; instrument define Korg Pa4X for Cakewalk/Sonar

; written by (Anton Janosik) www.korgpa.sk - 16.10.2015 01.16h  

NOTE: I am not familiar with the PA4X or Korg Instrument Definitions and the file has some things that I haven't seen in the *.ins files I have used.

Edited by User 905133
to add a note about the *.ins file
Link to comment
Share on other sites

  • 0

I have a thought or two - while program changes can certainly be inserted, in a recording project, I tend to create a separate midi track, and associated audio track(s) for each different preset/sound created by given external keyboard synth. 

For a soft-synth like Reaktor, I typically insert a new instance of the soft-synth, along with new midi/audio tracks for the new sound created by the additional instance of the soft-synth.  

For external synths that are multi-timbral, no need for program changes, other than perhaps at the beginning of the song, to have the project send the presets for each midi channel, so that makes sense.

For external synths that are not multi-timbral, I just bounce to audio, once the midi data for that track associated with that preset from the external synth is captured and edits are done.  That frees up that external synth for me, so that I can create new midi/audio tracks for the next preset from that external synth.  I can then apply whatever effects and settings and such, for each of the associated audio tracks, and it is just easier on MY brain to keep things separated/grouped by preset.

Anyways, just a thought, and maybe I am not being as crafty as I could be, but I like the separation.  :)

Bob Bone

Link to comment
Share on other sites

  • 0

Thanks to you all for the responses.    905133...  Thanks for tracking down the .ins file.  Ridiculously, I had found that myself but due to downloading it incorrectly, Windows 10 decided to turn it into a text file.  Anyway, I downloaded properly this time and IT WORKS.    I now have a proper list of Banks and Patches I can use in the track setup, so many many thanks!

If the forum is not dying of boredom with this topic, I am afraid the other methods of inserting a bank/patch change event defeated me.  Based on what I read, I decided the bank select method should be Normal.  The Help file seemed to indicate it should be "Normal" because the Korg didn't respond to only one of the methods.  The formula said the bank number should be CC0 x 128 + CC32, which in my case =2051.  I put this in the bank select (not sure if it was accepted) but then the patch box just showed normal GM patches and my PC event changed the patch to a Rhodes Piano, not the guitar indicated in the Korg manual. 

Education would be welcome...   Can I put in three events - one for CC00, One for CC32 and one for PC? 

And Bob, thanks for interesting idea regarding the conversion to audio.  Something I will follow up.

Edited by Lawrie Anness
additional "thank you"
Link to comment
Share on other sites

  • 0
3 hours ago, Robert Bone said:

For external synths that are multi-timbral, no need for program changes, other than perhaps at the beginning of the song, to have the project send the presets for each midi channel, so that makes sense.

It depends on work flow. 

Some projects I have done just use the initial synth patch/preset as set in the track widgets.  In those cases I wouldn't insert a program change in the middle just for the heck of it. However, sometimes I have changed presets on a track in the middle after the fact.  I might insert a program change via the Event List in those cases. Sometimes I will insert a program change from a keyboard but will later either want to remove it, or change the bank/patch.

I used to sometimes use a separate track for controllers. When I did that, I might have also used that track for program changes in some projects.  (This was before automation lanes, though.)

3 hours ago, Robert Bone said:

I tend to create a separate midi track, and associated audio track(s) for each different preset/sound created by given external keyboard synth. 

I have some synth module templates that use a similar approach.  Every channel (up to 32 midi channels on several modules) are there, color coded by module, in per-module track folders.  With this approach, it makes little sense to me to insert program changes in the middle of a track

However, after working with the massive orchestration template, often I just want to create music as I go (at least for the initial stages, to get the ideas down)  and might have an initial patch on each track, but will insert back/program command at the beginning.  With this work flow method, I retain the initial patch I used and can also try some other patches--from the start or in certain sections.

Not saying one work flow is absolutely preferable; just enumerating different possible work flows.

Link to comment
Share on other sites

  • 0

There were discussions that concluded with a formula to work out the number and I worked out a way to just use the external synth program change number. Basically in Event List I set Control 0 to the MSB number and then set Patch Controller with Controller 32  set as bank select method,  LSB number as Bank and Program Change number as Patch  in  Patch Controller.

Program Change sent.png

Link to comment
Share on other sites

  • 0
On 11/21/2021 at 6:31 PM, sjoens said:

Was this ever possible using a single controller in PRV?

  Its been a while since I did Bank Switching on a regular basis, but I seem to recall that the midi specs call for a two-byte program change command (0xCn 0xnn) following the Bank Switching CCs.  So, I set up a hardware sound module and tested this with the help of a usb keyboard to record and playback Bank Switching LSBs and MSBs and Program Changes.  That test confirmed my recollection.  Not sure though if different hardware or soft synths would be behave differently.

Unfamiliar as I am with the PRV, I switched to the PRV and drew in some Bank Switching CCs on top of my test recording.  They seemed to be put into the Event List and also required Program Changes to take effect.  I did not test with any soft synths.

Since I don't use the PRV (except for testing things) but I am slowly moving in the direction of trying to make used of the PRV, I'd be interested in your results. 

UPDATE: Just inserted TTS-1.  Seems to behave the same way.  (Had to use the usb keyboard for CC0; couldn't figure out how to draw CC0 in.)

Edited by User 905133
to add results of an additional test
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...