I am a non-technical guitarist, who has recently acquired a Yamaha QY100 to
use for playing Midi files as backing tracks. I am a little confused as to
how it actually does this. My assumption was that I could compose the Midi
file on my PC, and transfer it to the QY100 using the supplied Data Filer
software, and then edit it or change sounds as necessary on the QY100. This
works well, up to a point. I had thought that once on the QY100, it would
then be in QY100 format, and any sound changes that I made would not be
affected by the original Midi file, but it appears that it is still using
the program control messages from the original file, as even when I change
sounds, if I start the playback again, it reverts to the original sound.
This means that I can only use the sounds that are available on my PC
sequencer - the GM soundset. Is this what is happening?
The second question is, what can I do about it? Is there a way of
editing the midi file before I transfer it so that I can use the sounds that
I want to? I had hoped that something like Yamaha XG works would do the job,
but it doesn't seem to be available any more. While looking for a solution
to this, it has been suggested that sounds can be changed by sending SysEx
messages, how can I do this? Alternatively, is there a (cheap) PC sequencer
available that allows me to edit the settings? I am on a budget and am
currently using Anvil Studio - I notice there is a Midi add-on for this, but
an email to them asking if it will help has not had a response as yet. I
don't require any audio recording capabilities, simply Midi backing tracks.
Thanks in advance for any help.
Andy Baker
I think you're right as to what's happening [disclaimer: I'm not familiar
with the QY100 -- or Anvil Studio], but it shouldn't restrict you to the
GM sounds.
I'd guess that when you set the voice in a QY100 sequencer track, it
will send the necessary MIDI messages at the beginning of the track, but
the messages from the file then promptly supersede this.
> The second question is, what can I do about it? Is there a way of
>editing the midi file before I transfer it so that I can use the sounds that
>I want to? I had hoped that something like Yamaha XG works would do the job,
>but it doesn't seem to be available any more. While looking for a solution
>to this, it has been suggested that sounds can be changed by sending SysEx
>messages, how can I do this? Alternatively, is there a (cheap) PC sequencer
>available that allows me to edit the settings? I am on a budget and am
>currently using Anvil Studio - I notice there is a Midi add-on for this, but
>an email to them asking if it will help has not had a response as yet. I
>don't require any audio recording capabilities, simply Midi backing tracks.
>Thanks in advance for any help.
>
Probably your best option is to edit the original midifile suitably.
I don't know how Anvil handles editing Program and Control Change events.
There might even be a panel secifically for this. You'll have to consult
your docs (or someone who knows... (:-))
If you're not too familiar with the MIDI message set, there are two types
of message ("event") involved in choosing a voice for a channel. The
basic Program Change events can select one of 128 instruments in a "bank".
To get other voices (out of 547, I see from the QY100 spec), you need to
change the bank, which is achieved by Control Change messages to the
appropriate 'controllers'. There are two relevant ones: Controller "0",
for the most significant bits ('MSB') of the bank number and "32" for
the least significant ('LSB'). These two messages are normally sent
shortly before the Program Change (and often inserted by default by the
sequencer where the file was generated). The same Program Number in
different banks is usually chosen to be 'semantically similar' to the
GM voice (Bank 0/0 BTW), so that a GM synth won't sound *too* far off,
but of course there can be wide variation.
Somewhere in your docs for the QY100, there should be a list of voices with
their corresponding MSB, LSB, and Program values, and you can find the voice
you want from there and add its values to that track of your file. One
word of warning: Yamaha seems to use the LSB part of the bank (leaving MSB
zero), while almost everyone else uses the MSB! Be sure you get them the
right way round...
For comparison, here's a fragment of the table for a YPG-525, that I
extracted a few days ago:
MSB LSB Prog
000 113 001 (Live! Grand Piano)
000 114 001 (Live! Warm Grand Piano)
000 112 001 (Grand Piano)
000 112 002 (Bright Piano)
000 112 007 (Harpsichord)
000 112 004 (Honky-tonk Piano)
000 112 003 (MIDI Grand Piano)
000 113 003 (CP 80)
000 114 005 (Cool! Galaxy Electric Piano)
000 118 005 (Cool! Suitcase Electric Piano)
.......
Your set will likely be similar, but different....
It might also be possible to remove *all* program settings from the midifile.
Everything by default would then be "GM Grand Piano", and you'd have to set
your QY100 up every time, but at least it should play the voice you want.
I don't think you'll want to bother with SysEx for this. These messages
aren't usually needed for voice selection. They are also a real nuisance
to generate, and need excessive poring over manufacturer documentation
that is probably itself buggy...!
If all else fails, there are (free) programs around that convert midifiles
to and from (rather longer!) plain text, which you can edit and convert back
to a midifile with the desired settings.
HTH,
-- Pete --
--
============================================================================
The address in the header is a Spam Bucket -- don't bother replying to it...
(If you do need to email, replace the account name with my true name.)
============================================================================
Hi Pete
Thanks very much for the comprehensive answer. Anvil has an event viewer,
and it appears there is a filter events option, which will allow me to
remove all program change events. If I then transfer the file to the QY-100,
set up the voices on that and resave the file, I think I should be ok
Andy Baker
Sounds good... Dunno whether that will suppress the bank-select messages
too, but it shouldn't matter, as they're only effective if sent *before*
the program-change (and the QY100 should insert that at the very beginning).
Good luck,
Unfortunately, It didn't work. Everything is set to Grand Piano when it gets
to the QY100, but it still won't allow me to restart the track with a
different sound. Interestingly I have found that if I import a Midi file
that contains a drum track, on channel 10, it transfers to the QY100 as a
Grand Piano, but it WILL allow me to change it to a drum kit. Why this is
different I don't know. This works even if I don't use Filter Events before
transferring.
However, I have today purchased the Midi manager add-on for Anvil
Studio, and this allows you to set up your own Midi Synthesizer, so it is
just a case of setting up all the sounds that I want to use, and hopefully
my problem will be solved. Thanks again for your help.
Andy Baker
>Unfortunately, It didn't work. Everything is set to Grand Piano when it gets
>to the QY100, but it still won't allow me to restart the track with a
>different sound. Interestingly I have found that if I import a Midi file
>that contains a drum track, on channel 10, it transfers to the QY100 as a
>Grand Piano, but it WILL allow me to change it to a drum kit. Why this is
>different I don't know. This works even if I don't use Filter Events before
>transferring.
Ackkk! That doesn't make much sense... like none at all...!
I got curious enough to download the QY100 manual and take a peek.
I think I'd make exactly the same assumptions you did -- that each
track stored in the sequencer has a single associated voice that can
be set from the controls (and then should stay that way until changed).
Are you *sure* that Program events got removed, and not just set to 0?
[...which doesn't make any sense, either.]
I gather that you load a midifile from the PC simply by playing it
through the MIDI connection, so it should be equivalent to any other
way of inputting notes. Have you tried creating a track by playing the
built-in keyboard and fiddling with the voices on that?
One probably stupid suggestion: I note that the manual suggests
setting the voice *before* entering a sequence. Can you do that before
sending the (no-program change) file? If that works I'd definitely call
it a bug, but it might be worth trying.
> However, I have today purchased the Midi manager add-on for Anvil
>Studio, and this allows you to set up your own Midi Synthesizer, so it is
>just a case of setting up all the sounds that I want to use, and hopefully
>my problem will be solved. Thanks again for your help.
Took a quick look at the web page for that, too, and it does look
as if it should give you the ability to select the bank (though be sure
it's handling the MSB/LSB partitioning properly -- not clear from the
page).
[I was going to suggest you should try the Yamaha UK forums, but I
noticed in my wandering last night that you've already done that! (:-))
Surprised that no-one with specific knowledge has popped up there.]
Again, good luck!