View Full Version : midi bank changes?
wa7bqb
11-02-2005, 04:24 PM
I've just installed the USB driver and USB suitable cabling. All works well, so far. I have also completed a Sonar instrument definition file, and have verified the patch and bank information.
I don't seem to be able to get bank information to work even though I can check the event view in Sonar to see that bank information is being sent. The CVP309 always substitutes a similar GS compatible voice.
What must be sent to switch the CVP to the MegaVoice choices, for example? The data list for my instrument says these are from bank 1024 or 1025 (MSB=8 and LSB=0 or 1). Thank you for any information on bank switching via midi.
-Dale-
dancaputi
11-03-2005, 05:14 PM
Dale,
1024 = 400 hex or MSB=4, LSB=0
1025 = 401 hex or MSB=4, LSB=1
Also, make sure you have "Song Auto Revoice" set to OFF.
- Dan C.
Midi Magic
11-03-2005, 05:26 PM
Hi Dale
Here is some info on the MSB LSB.
First arm yourself with the "Reference Booklet" (CVP3xx) on pages 2 & 59 you will see all of the Voices and a list of numbers.
Under ORGAN you will see Click Organ MSB 0 LSB 112 Program Change 18
Control Change 0 0
Control Change 0 112
Program Change 18
The MSB stands for "Most Significant Bit" and
LSB stands for "Least Significant Bit" which makes the CVP do
a "Bank Change" you then issue a Program Change.
These Bank changes allow you to select different voices over and
above the basic, ie a program change of 19 will give you Pipe Organ.
But you will see from the list there is more then one voice 19.
The other voices live in different banks. (112, 115, 116, 113 etc)
On the CVP it looks like this:
Ctrl 0 112 Bank LSB
Ctrl 32 0 Bank MSB
Prg 18
Now I do NOT have any Mega Voices on my 209 but looking at your Voice Data book the Mega Voices have the MSB of 08H (page 59)
From that, I would try sending the following to the cvp:
Ctrl Change 0 0
Ctrl Change 32 8
Prg Change 20
This should give you a Fretless Bass
wa7bqb
11-03-2005, 05:44 PM
Thanks for your suggestions. Although it's true that :
400h =1024d
under the rules for controller 0 and controller 32 it's val(msb) *128 + val(lsb). If that is correct (according to all the midi standards I could find), then msb=8 and lsb=0 works out to be:
8*128 + 0 = 1024
I have since learned something by the school of hard knocks, namely, that the patches (using the method I just referred to) work as expected when I save a song on a removable media like a floppy or thumb drive, etc. However, when sending the SAME codes via midi, the CVP309 offers a "GS Compatible voice." I could think of a couple of reasons why this might be so.... if Yamaha wanted to prevent the sending of midi files for some copyright reason, that would be a step towards their goal, and also the more sophisticated patches may contain additional DSP processing in addition to the basic patch. So in order to 'capture' the nuances of the Megavoice (for example) you would also need to send the control codes for the various DSP information, along with the patch code.
Long story short: if I want to make styles (my original purpose for the midi project, anyway) then i need to program the codes as per the method above (I created an instrument definition file for Sonar, accordingly) and then transport the style information via a removable media (not midi) if the final result is to sound as expected. For general testing the GS voice is probably good enough.
Who would have thought that Roland (GS) would set the standard for this Yamaha (XG, etc.) product? Who would have thought that Yamaha wouldn't have implemented midi messages according to their own reference data list or said differently, in an unconventional manner?
Getting to know this instrument has it's reward's though, and like most things, there's usually more than one way to skin a cat!
-Dale-
dancaputi
11-03-2005, 11:27 PM
Ok, so the LSB is not a 8-bit byte given the combined "1024" notation - I can accept that (it's dumb but I suppose bit 7 is not used... whatever) - But this business about GS I really don't get....
It should work and it's definately not a matter of copyrite. There's probably something in the midi setup on the CVP -or- maybe there's a SysEx to enable the MegaVoices. Try sending a "XG system on" (F0,43,10,4C,00,00,7E,00,F7) in your song pre-roll data.
[more thoughts:]
Are you getting any bank changes over the wire? (i.e. can you get Midi Magic's Organ example to work?).
Maybe Sonar is the problem... What happens when you play the output file from another midi player? - like YAMplayer (shameless plug).
- Dan C.
Midi Magic
11-04-2005, 03:17 AM
Hi Dan
All you need to send are the 3 commands as stated above.
2 Control changes and 1 Program change. The 2 Control changes MUST be sent in the correct order.
You should try the organ sound first and then try the mega voice.
I do not have Sonar so I can not help you with that end of things.
You may like to try and see if it works by changing the voices on the cvp by using the Song Creator.
wa7bqb
11-04-2005, 07:23 AM
Thanks for your efforts here. Sorry about the delay getting back to you. I guess I didn't make it clear that it DOES work correctly with the patch change information I discussed as created in Sonar, when I save songs onto removable media and hand carry it over to the Yamaha for use there.
It does NOT work correctly when sent via midi. I have checked event lists from Sonar, and the patch message is correct leaving the PC. It shows up at the Yamaha as a"GS Compatible Voice" and they do respond to different patch codes, but with some corresponding "GS Compatible Voice."
So I know that the patch change codes have been correctly calculated and sent, but get translated (with auto revoice off). I don't remember testing it with auto revoice on ... I'll do that this evening when I get home from work. By the way, I've tried this with Band In A Box, Power Tracks Pro, some style players, and the result is the same (when using midi). in addition to Sonar. So Sonar is just going along with the conventional wisdom and doesn't seem to be the problem.
Isn't this stuff fun?
-Dale-
Midi Magic
11-04-2005, 09:41 AM
Hi
Have you checked the midi settings on the CVP.
Go to "Function" - "Midi"
Select "All Parts" "Edit" then tap across to "Receive"
Make sure ALL channels have ticks across the board.
dancaputi
11-04-2005, 10:46 AM
I'm missing something...
How do you know it's a "GS Compatible voice" and not GM, GM1, GM2 or XG? So many of the voices are common to many of the standards.
And don't worry, I am paying attention :rolleyes:
- Dan C.
wa7bqb
11-04-2005, 07:49 PM
re: dancaputi;:
Well, the information displayed in the voice panel says it is a "GS Compatible Voice." Other than that I guess I don't *really* know. The voice that gets selected is in the same family as the voice actually requested, for example, if I selected on midi channel 2, DynoSteel2, Live!, (Bank 116, pgrm 25) or (MSB=0, LSB=116, prg=26); then via midi I get "GS Compatible SteelGuitar" under Mixing Console | Song Channel (1-8) | and selection "C" channel 2.
Likewise, other voices such as piano, strings, etc., also yield voices GS compatible with the selection. Martin Arroyo from Yamaha customer support has asked me to call him about this. I will do that as soon as I can. I think that the short answer is midi just doesn't directly access the voices per the Yamaha data list. What I need to do is check out the correlation between the GS compatible voice codes and the codes I send. At least I'd know what to expect that way.
By the way, I don't mean to sound ungrateful in any way for your comments. I just don't really understand my machine yet, and am crawling ever so slowly up the learning curve. If it were easy and obvious I wouldn't learn anything and might fade from boredom. No sign of that, yet though!
I previously had a Kurzweil k2500 and I still have a Roland KR-570 so I am not completely blitzed by all this midi business. Which is not to be confused with expert in any way, either! I have about 10 years experience dabbling with these machines, though.
I work for the local natural gas utility as an electronics technician. Over the last 20 years I have built most of our telemetry systems which work in a similar manner to the midi protocol, though different in structure. These systems work via microwave radio or telephone to communicate the status of the natural gas environment in our local distribution region. Hence we have about 400 (or so) of them scattered all over the northwestern Oregon and southwestern Washington area. I am also a licensed electrician and amatuer extra class ham; so suffice to say that I'm not a newbie to the industry, either.
I only mention this because there isn't any way for me to introduce myself to you or let you know 'where I'm at' from a technical point of view.
I'll just keep poking around until I "get it" and enjoy all I can. One might think that after eight hours or more in the workday I would have about had it with the techie stuff ... but I guess I'm just wierd that way!
-Dale-
wa7bqb
11-04-2005, 08:03 PM
re: Midi Magic;
No, I had not checked that until now. However, default mode on the Function | Midi | All Parts | Edit | Receive panel has them all checked, though. And I do see midi data during receive on the corresponding channels. I just did a quick song via Sonar using the DynoSteel2 ;Live! voice on track 2 and channel 2. Of course, the CVP309 selected GS Compatible SteelGuitar for me, but I could see the red activity on channel 2 from this screen.
Checking the track view in Sonar, I could also see that I was sending the Bank 116 Dynosteel ;Live! patch on channel 2. I'm using the "Normal" bank select method, though I have tried them all, and no matter which method I tell Sonar to use, the result is always the same ... at least to the extent I have tried this.
-Dale-
Midi Magic
11-05-2005, 03:49 AM
Hi
Can I suggest you send the midi command for a voice the cvp only has ONE of. There are two DynoSteel guitars and it is confusing.
Lets do the Hc8'+4'
To select this voice I would send:
Control Change = 0 123 This is the LSB for the bank 123
Control Change = 32 0 This is the MSB for the Bank 123
Program Change = 7
These commands MUST be sent in this order.
Please send these commands on channel 1 from Sonar and let me know which voice it uses.
BTW If you select a voice via midi it will not change the voice of the keyboard.
If the above works, then to select a Mega voice, (again I don't have Mega voices to prove this) I would send:
Control Change = 0 0 This is the LSB for the bank 0
Control Change = 32 8 This is the LSB for the bank 8
Program Change = 2
This should give you SteelGuitar.
One more thing. Have you turned on the "Displaying the Voice Program Change Number" on page 200 of your manual?
FUNCTION - UTILITY - TAB to CONFIG 2. Switch the DISPLAY VOICE NUMBER menu ON and OFF.
I have used the above commands from my Atari computer using the Notator program and it has always worked.
wa7bqb
11-05-2005, 08:40 AM
Thanks for all your commentary, and I have thankfully found my problem. It turns out that my instrument definition file did a great job of sending the bank information but not the program number. It was my own fault, since I used the program name (not the program number) after the MSB / LSB Bank change information in my instrument definition file.
Thanks too, for MS Word vba macros! I was able to automate the insertion of the correct program number along side the existing line entry in the file ... otherwise I would be spending another week inputting all that data <again>.
At least for the voices I've tried thus far, everything works as expected. The Megavoices, etc. all come up on the panel as requested via midi now. (And I'm a little bit smarter, too!)
-Dale-
dancaputi
11-05-2005, 11:29 PM
Ok, that's great... but one question remains:
Why did it work when played from the CVP's internal seqeuncer?
- Dan C.
wa7bqb
11-06-2005, 08:08 AM
I've been wondering about that, too. It must be because the actual program number was sent , but not the data list number to identify that patch. Basically, the list looked like this before corrections (example):
[Bank 116]
4= VintageEP ;Regular
5= NewTines ;Regular
16= BrightDraw ;Regular
17= 60'sOrgan ;Regular
-- etc. --
the working version looks like this:
[Bank 116]
4=5 VintageEP ;Regular
5=6 NewTines ;Regular
16=17 BrightDraw ;Regular
17=18 60'sOrgan ;Regular
-- etc. --
Notice the patch side of the "=" sign is zero based and the data list side is one based. So I don't fully know why it worked with removable media, but it may just be the way the machine interprets the message given what it had to work with.
Sure is nice to be able to get the setting, though. Especially when there are multiple program change messages within a single track!
wa7bqb
11-06-2005, 09:05 AM
I was reviewing my patch list for use in the Band In A Box program and found this bit of information that might also explain the GS compatible voice situation:
"An undocumented feature of the XG modules is their ability
to use Roland's GS mode in addition to the GM and XG
modes. If you are sharing your songs with others who have a
Roland unit, you may wish to consider using the Yamaha
module in the GS mode."
This is part of the XG.DOC file you get when requesting information about the Yamaha patch list. So maybe my insufficient instrument data list wormed its way into that feature?
I dunno ...
-Dale-
vBulletin® v3.6.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.