using a midi file to control right hand part on PsR-S970

Started by musicalman, February 11, 2019, 01:05:34 AM

Previous topic - Next topic

musicalman

Hi everyone, I'm new here, so hopefully I have posted this in the correct place :). Apologies for the long post, but I want to be detailed so that my question is understood clearly.
I have recently begun using my Yamaha PSR-S970 for live situations where I make a midi file with instruments such as guitars, bass, drums etc. and leave room for a piano part which I will play live over these other tracks. In the midi files, I always leave channel 1 free for my live playing, but I do switch instruments and other things on channel 1, in the hopes that my live playing will use these settings, but that is not the case. It still uses whatever sound is selected on the panel, so I have to navigate to suitable replacements. This makes it slower for me to switch songs when I'm playing live.

Registrations do make switching easier, but it's just a workaround. I would prefer that the midi files just set everything up. I would assume this is possible, since other keyboards, in fact older PSR keyboards iirc, will just follow the midi file. So I'm hoping it's possible here.

One thing complicating things is that I am visually impaired so most of what I do with the PSR is done on my PC. At a live event I simply know how to switch songs and voices. I'm not very familiar with the keyboard's more advanced operations. Though I wrote down what all the buttons are, I don't know how most of the menus are laid out. So if you want to suggest a procedure to try, I will unfortunately need you to write down the button sequence for it if it's not too much trouble. If it is, then pointing out a section of interest in the manual will still be a great help, since I will know what to pursue, and then I can have someone look at it with me. However if there's a chart or tree or something complex involved (and it looks like there might be from my brief efforts on following the manual) then I may need more detailed help, since the people who would help me likely won't understand what they are looking at, and I won't know what they're seeing.

Alternatively, my geeky side has also been experimenting with system exclusive messages. There is an XG sy*** message, which the PSR supports, that can change the midi channels that the different parts receive. So, my idea was to take the part that's used for right1, and put in a sy*** that would make it receive from channel 1 which is where my live instrument setup is.

Alas it's not that simple. Many synths only support 16 parts, but the PSR actually seems to support 32 parts if you use the second midi port. The second midi port, containing parts 17-32 is mainly used for the keyboard's internal midi playback I think. I know that channel 2 on this port is used for right1, and channel 3 is used for right2. I've had no success trying to change the receive channels for parts 17-32 however. In fact the second port in general seems to be finnocky with sy***. Most parts on the second port won't even respond to an XG reset message. But on the first port (parts 1-16), all my sy*** work as expected.

I'm getting the feeling that the sy*** trail only leads to dead ends. But if there are sy*** I can put in the midi files to accomplish what I'm trying to do, then I'll be satisfied.

So, what solutions do you guys have in mind? Thanks so much for your help!

DerekA

So to summarise ... you want the MIDI file that's playing back to be able to change the voice assigned to panel R1 at certain points in the song as it goes.

I know that you can set the MIDI file to assign panel R1 when it starts playing back, I don't know about changing it again as it plays, but I'm sure someone else will know!
Genos

pjd

Hi --

You'll need to study the Keyboard Voice Song Meta Event in the PSR-S970 Data list, Song Meta Event List, Page 105.

Yamaha have not documented the actual content of this Meta Event, so you'll need to do some reverse engineering.


FF 7F len 43 73 0D 01 [Data]
    Keyboard Voice Voice settings for the RIGHT1,2,3 and LEFT
    Entered to the song from the [SONG CREATOR] > SETUP display.


If you generate this Meta Event into a MIDI file with known panel voices, you can take a look at the actual message in a DAW (Cubase, etc.) Then, it may be possible to work back from the known voices (MSB, LSB, program change, etc.) to determine the Meta Event format.

I'll bet that many other people would like to know!

Hope this helps -- pj

pjd

Page 64 of the S970 Reference Manual describes SONG SETUP and the way to record the Keyboard Voice Meta Event into a MIDI song (file).

The Reference Manual claims these voice settings are the same as the OTS settings. So, that Meta Event may be quite long!

-- pj

DerekA

Ah ... so you stop the playback at the point you want to save a panel voice change. You set up the panel voices you want. Then on the song creator 'setup' page make sure that just "keyboard voice" is ticked and press Apply - this puts the SY*** commands into the file at that point.

Do this for all the voice changes, then save the file.
Genos

Normanfernandez

Quote from: DerekA on February 11, 2019, 11:04:00 AM
Ah ... so you stop the playback at the point you want to save a panel voice change. You set up the panel voices you want. Then on the song creator 'setup' page make sure that just "keyboard voice" is ticked and press Apply - this puts the SY*** commands into the file at that point.

Do this for all the voice changes, then save the file.

This worked perfectly.
Thanks. 

But how many Meta Events are created from Keyboard Voices??
Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

DerekA

For me, on T5, it inserted several XG events and a several SY*** events. l guess these are selecting the voice, then applying the XG Voice Set and DSP parameters.

Not sure why you're asking?
Genos

Normanfernandez

Quote from: DerekA on February 12, 2019, 07:20:13 AM
For me, on T5, it inserted several XG events and a several SY*** events. l guess these are selecting the voice, then applying the XG Voice Set and DSP parameters.

Not sure why you're asking?

To be able to Locate the Voice. In ( Meta)
And adjust the timing.
Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

pjd

Enabling the Keyboard Voice option generates only one more event -- the Yamaha Meta Event to select and configure the RIGHT1, etc. voices.

The Yamaha Meta Event is long. I'm testing on Genos and the Keyboard Voice Settings Meta Event is 701 bytes long!

I took a quick look at the Meta Event contents. Yes, the voice MSB, LSB and Program Change numbers are in there -- along with a lot of other data. The Reference Manual says, "Panel settings recorded here are same as the ones memorized to the One Touch Setting." So, in addition to voice selection, there are values for the DSP effect and (probably) VOICE SET.

Since Yamaha haven't documented the data layout, it's tough sledding, i.e., a mess of hex digits and no help.

This would be a good place for a tool, but it would take a lot of reverse engineering.

-- pj


Normanfernandez

Quote from: pjd on February 12, 2019, 09:37:41 AM
Enabling the Keyboard Voice option generates only one more event -- the Yamaha Meta Event to select and configure the RIGHT1, etc. voices.

The Yamaha Meta Event is long. I'm testing on Genos and the Keyboard Voice Settings Meta Event is 701 bytes long!

I took a quick look at the Meta Event contents. Yes, the voice MSB, LSB and Program Change numbers are in there -- along with a lot of other data. The Reference Manual says, "Panel settings recorded here are same as the ones memorized to the One Touch Setting." So, in addition to voice selection, there are values for the DSP effect and (probably) VOICE SET.

Since Yamaha haven't documented the data layout, it's tough sledding, i.e., a mess of hex digits and no help.

This would be a good place for a tool, but it would take a lot of reverse engineering.

-- pj

I went to Sy*** on the Keyboard.
I saw Meta was added.

I can make changes such as
M . B . T

Well actually the only thing I wanted to do.
Norman Fernandez Keyboardplayer
https://www.youtube.com/channel/UCngm8h5k5NmKnowJpkxlDBQ

PSR S770 - Roland FP 30 - PSR 280
Cubase - Kontakt6

musicalman

Thanks for the replies guys!

So, there is no setting to change that can lock the right1 part to follow another channel? That's all I want to do. I highly doubt I'll be able to deal with the meta events generated by the keyboard, if they are as long as you say, and they are largely undocumented. Shame. But I will still be following this thread because this is interesting discussion!

DerekA

The keyboard voice setup does not belong to any particular channel in the MIDI file.

It is controlled by SY*** events in the file. You don't need to worry about what the events look like, you just stop the midi file at the appropriate place, set up R1/2/3, and press the apply button. The system will add all the SY*** events for you.
Genos

John T4

Making sure keyboard voice is ticked when you press execute