midi newbie help

accessing extended patches?

Hello n-Trackers,

I’ve been using n-Track to record audio for a while now but I’m just now exploring midi. In addition to softsynths and the synthesizer on my audio card I have a fairly nice digital piano (Roland KR-177) that I’ve been using to enter midi data and then to render it to audio. Here is my question:

The piano has 270 different patches. I can easily set up midi tracks in n-Track that choose among the 127 patches in the GM standard. But I haven’t been able to figure out how to access the other 140 or so patches, notably the main grand piano sample (which is much better than the wimpy MIDI piano 1 patch).

I’ve been searching for a while and I have the manual for the Roland right in front of me but it’s no help either. It does include a table at the back with “number”, “CC 0”, “CC 32” and “PC#” data for each of the 270 patches. But I have no idea how to get n-track to send this data to the piano to choose one of the non-GM patches.

I assume any decent midi keyboard or sound module will be similar.

Thanks in advance for pointing me in the right direction,

Bank Select is in the track properties. There is a Bank list to select what you need…seems to be very broken.

Anyway, that may not work if you are trying to dynamically set patch changes from within the track. For that you’ll have to add CC#32 and CC#0 events to the track. That’s a little tricky with n-Tracks MIDI editing, but it can be done.

When I mess around in the track properties, selecting different Program Name set (click the button that probably says General MIDI just to the right of the Program drop down list) they don’t seem to take all the time, and selecting different selections from the Bank list causes whatever is showing in the button to revert to General MIDI.

This may need a screen shot. I using V4, build 1928.

What you want to do can be done though, and it should be very easy, though at the moment that’s not the case.

I suggest filling out a bug report or emailing Flavio.

Thanks, Phoo. I’m working with 4.05 build 1846 (that’s the one for download right now). Maybe I’ll try the beta you’re using but it doesn’t sound like it’ll solve my problem.

Right now I guess it would be simpler for a beginner like me to set the patch in the properties at the beginning but that doesn’t seem to be working. I will investigate the following and then let you know how it goes.

. . . dynamically set patch changes from within the track. For that you’ll have to add CC#32 and CC#0 events to the track. That’s a little tricky with n-Tracks MIDI editing, but it can be done.

No dice.

I’ve tried adding midi events for bank changes, program changes, Controller 0, and Controller 32 using the “Track => MIDI => MIDI events list” screen but they didn’t seem to have any effect at all.

I’ll send a message to Flavio but if anyone has any advice I’m all ears.


I’m pretty sure the bank select in the track properties is broken, at least from the UI point of view. There are 128*128 or 16384 possibilities. There’s no easy way to get to all of them – no easy way to get to a specific bank – without scrolling from the first to where ever you need to get. Furthermore, many synths don’t display banks in a single value decimal form, or aren’t documented that way. It’s a pain to convert the MSB and LSB values, which may be given as hex or oct to a single dec number. Most don’t bother telling you method of MIDI bank select works either.

Having the possibilities included in the instrument list, as n-Tracks is doing for many synths is a GREAT idea when it works, but gets in the way if that’s the only way to do it, or if that way isn’t working quite right.

I’ll try to experiment with this so more. Maybe I don’t fully understand how it’s implemented in n-Tracks yet. I’ve never needed to use it, at least not in a really long time.

I don’t think upgrading to the beta will help your situation.

Your synth is a Roland. :)

How are the bank values documented? The docs for my D-50 has data in hex, dec, and oct with only slightly enough info to be able to figure out which is which. Banks are in shifted oct (1 to 8 * 1 to 8 as displayed on the buttons, instead of more correct 0-7), patches and most other data in hex (00 - FF), velocities in dec (0-127).

For MIDI banks to work via events, there needs to be three events in specific order

CC#32, value x
CC#0, value y
PATCH, value z

…with 32 or 0 first and the patch always last.

Hmm . . . I will try it again.

For example, the really nice grand piano sample on my synth (which I can’t seem to get to from n-Track) is listed as:

CC 0: 08
CC32: 64
PC#: 001

whereas the wimpy “MIDI PIANO1” which is selected as the default GM patch by n-Track is:

CC 0: 00
CC32: 65
PC#: 001

In the entire list of 270 patches, the CC0 values are all either 00, 01, 02, 04, 07, 08, 09, 11, 16, 24, 32 or 40. Must be decimal?

The CC32 values are all either 00, 02, 64, 65 or 66. Octal or decimal?

The PC# values include every number from 001 to 126 inclusive. Gotta be decimal?

How come this is such a pain? I would think there are a whole lot of folks trying to interface with outboard MIDI equipment.

Anyway, phoo, I owe you a beer for this.

If I eventually get it to work, then make that a GOOD beer.


The patch values are decimal for sure. I bet the CC values are hex though. They look very similar to the patch/bank values in GM.DLS, the soft synth DLS instruments used by the DirectMusic Synthesizer. The banks in that are listed in hex with ranges as you are seeing. The tip may be that the patch values are three digits 000 while the CC values are just two digits 00. Of course that doesn’t make it so. Octal is ruled out becaue there are individual digits above 7 ot 8.

Since the default GM piano is being called up when sending CC0:00, CC32:65, PC:001 try changing that to:



(I’m off to work…I’ll keep an eye on this thread.)

No Joy. Have a look at this screenshot. I set up a blank midi track on midi channel 1 and set the properties for an instrument that is obviously NOT a piano (harmonica). Then I placed the controller and program changes that you suggested and then a few random notes.

When I hit play my synth starts blowing the ol’ harp instedda tinklin’ the ivories. :( I also tried sending controller 32 first. What am I doing wrong?

Thanks again for any help!

By the way, shouldn’t the program change at least set it to some kind of piano? I don’t get it.

Looks good to me, except for one small thing that probably isn’t it. :)

Add a tick of time to each event so you know for a fact they are going out in the order you think they are. They should go out in the order listed, and most likely are. Adding a tick will insure that’s the case. Also, nuke the harmonica as an experiment (none). Yes, it should be overridden if the events are working.

01.001.001 CC0:000
01.001.002 CC32:101
01.001.003 PC:001

One last thing to check. Make sure Filter Program Changes is not checked in the MIDI settings. That’s over in the prefs. It would be funny in a way if that was the problem the whole time. I think it defaults to being on, which is a bit odd.

I think someone was having problems with MIDI volume in a recent post - Filter volume/Pan events. I bet that’s their problem, too. I didn’t realize those were defaulting to on until just now.

SUCCESS! You nailed it, phoo.


Make sure Filter Program Changes is not checked in the MIDI settings. That’s over in the prefs.

That was it. It also turns out that we didn’t need to convert between decimal and hex. Also the “program change #” that is displayed in the event list seems to be off by one.

Example: If I go to the “program change#” event and open up it’s properties then choose “110 - Bagpipe” it results in a value of 109 for PC# but it still plays the bagpipe!

Anyway, sending
01.001.001 CC0 : 8
01.001.002 CC32: 64
01.001.003 PC# : 0 (chosen as “1 - Acoustic Grand Piano”)

plays my nice grand piano sample (which is listed in my manual as 8, 64, 1). Awesome!

What is your beverage of choice?



Beverage of choice? Believe it or not - good coffee - a mug that hold three cups, with 3 spoons of sugar and about 1/4 skim milk. Of course I get that free at work, but that’s not exactly what I call good coffee. :)

Your experience is great to know, because this is something that seems elusive at times. I’m still sure the track properties need fixing up…maybe this weekend.

Quote (mrtoad @ Aug. 10 2005,06:29)

Mr Toad? You don’t happen be Phil from Columbus, OH?

Oh, and real espresso or Turkish coffee is way better. :)

No, I am not Phil from Ohio. Sorry, Bubba.

About fixing the track properties; I’m just happy that I can select all of my patches now.

I couldn’t find my particular synth in the LONG list of (mostly Roland) hardware that you see when clicking on the “Instruments” button on the properties of a MIDI track. I also tried googling for any online resources for this synth but found nothing. Roland doesn’t even seem to remember making it :angry: although they do have some info on other KR series instruments (probably useless, though).

Well, let me know if there’s amything else I can do.


Well, how many Mr Toads can there be? :)


I couldn’t find my particular synth in the LONG list of (mostly Roland) hardware that you see when clicking on the “Instruments” button on the properties of a MIDI track.

You can always edit banks_default.txt in C:\Program Files\FASoft
-Track Studio 4
. That’s a simpe text file so you can easily see the pattern and add whatever you need.

That file just relates program change events to patch names on the outboard gear, right?

My synth supports the GM standard so I’ve just been using [General MIDI + numbers] and I think all the patches are named appropriately for the synth.

Since I have to send the extra CC0 and CC32 events to get to the non-GM patches I don’t know how editing that text file could help; unless I’m misunderstanding something (I am definitely a MIDI noob!)


Well, how many Mr Toads can there be?

At least two now, I guess :O