Midi control message for Multipad.

Started by Arnak, April 30, 2019, 05:00:59 PM

Previous topic - Next topic

Arnak

Hi,

Does anyone know if there is a midi control code for turning on a specific multipad on a T4?

I have checked the data list but cannot see one. :(

Martin

jsb1999

Yes, it is possible.
On Genos, select  Menu - MIDI - External Controller
Here you can trigger many useful functions, including Select Registration and MultiPad A,B,C,D, and MultiPad Stop.
Basically, you are sending a (very low) note on a certain channel.
There is a similar function on Tyros, I believe it refers to the MFC10 controller.

Arnak

Hi JSB,

Thanks for the reply. :)

Yes, I agree that the Genos has that option for the pads but unfortunately, the T4 does not.

Regrettably, I can't afford a Genos. :'(

I'll have to keep researching....

Martin

jsb1999

I think the same functionality is available on Tyros...

FUNCTION - MIDI - (Edit) - go to the MFC10 tab.

Arnak

Hi JSB,

I have just checked on my T$, no multipads listed in the MFC10 tab sadly.  :'(

Martin

tyrosaurus

Quote from: Arnak on May 01, 2019, 06:16:54 PM
I have just checked on my T$, no multipads listed in the MFC10 tab sadly.

Hi Martin,

The 'multi pad' functions really are in the MFC10 list of functions on a T4 (I don't know about a T$ though!  ;)) - they are near the bottom of the list so you will need to scroll down it (using the #4 to #6 buttons) to find them.

Unfortunately you won't be able to find out what MIDI message is generated when you trigger one of them - it's all kept internal!

However you can still use the functions by assigning them to a note in the table and then sending the relevant note over the selected MIDI channel/port by whatever means you like - it doesn't have to be an MFC10!


Regards

Ian

Arnak

Hi Ian,

Thanks very much for the reply. :)

I found the pads OK but they are only listed in the transmit section of the MFC10 not in the receiving part. ???

So I don't know if the midi command can be received from an external device such as an Arduino.

It also means that I am unable to set the command in the MFC10 receive window.

If you have any ideas about that it would be great. ;D

The T$ clearly only exists on my pc keyboard. :-X

** Update **

I rang Yamaha Support and they confirmed it is possible only with the MFC10 but could not tell me how to program the MFC10 how to send the midi message to the pads and the MFC10 manual does not mention that which is very strange.

I agree that if the MFC10 can do it, it should be possible to do so with an external controller but how?

Martin


tyrosaurus

Hi Martin,

I have just set up the MFC10 template on my Tyros4 to trigger the Multi Pad and Multi Pad Stop functions.

Then I sent the relevant notes to the T4 from my computer using MIDI-Ox (I don't have an MFC10).

As I expected, it worked!  The Multi Pads were started and stopped when I sent the relevant notes.

Just make sure that you set the MIDI channel and port that you want to use in the MCF10 template - there is only one display for this,  not a separate Transmit and Receive.

You should note that Yamaha apply their version of the octave numbering system for the notes in the template where Middle C (MIDI note #60) is 'C3'. Whilst this is the correct MIDI note number, many others would consider Middle C to be 'C4'.   This means that the note shown for switch #0 as 'C#-1' is MIDI note #13, and so on in Yamaha octaves.  Many others would refer to this note as 'C#0'. 

I don't know who you spoke to at Yamaha, but if you have to contact them again, I would definitely insist on speaking to someone else!  :'(   Maybe this 'expert' hasn't read the Tyros4 Reference Manual, which at the bottom of page 131 specifically states:

Using a computer or another MIDI instrument instead of the MFC10
The following two settings on the MFC10 Page can be saved not to the MFC10 but to the Tyros4 as a MIDI template.
• Note number/Tyros4 function assignment pairs
• Control change number/Tyros4 parameter change assignment pairs
If you are not using an MFC10, you can have note numbers and control change messages from any other
appropriate MIDI device (such as a computer, sequencer or master keyboard) control the Tyros4. Make sure to
set the appropriate channel in this display for control by the external device.


Based on what I have seen, I can't see any reason why you couldn't use something like an Arduino to send the notes to the keyboard as long as the notes are transmitted to the T4 MIDI port and channel that you set in the MFC10 template.


Regards

Ian

Arnak

Hi Ian,

That is amazing, thank you very much. ;D

** 3rd Update **

Found it in the midi MFC template, how to change the input to the pads... phew, I had missed that one.

Thanks for the advice on the difference in the Yamaha note numbering, that would have had me scratching my
head. ???

So if I understand the Yamaha numbering correctly then C#-1 is midi number 1 or is it 13, depending on which chart I use?

Yes, I agree, clearly, the Yamaha tech didn't know what he was talking about. ???

I'm OK with the Arduino setup, or I will be once I have it constructed as I have been researching that side of the project for some time and I believe I now understand it sufficiently to make it work.... I hope. ::)

Thanks,

Martin


tyrosaurus

Hi Martin,

From your edit to your latest post, it seems that you have worked out how to set the MFC10 template up.
If I have misinterpreted your current situation regarding setting up the template, let me know.

Here are a few observations which may be of interest to you:

The notes shown in the MFC10 template are in Yamaha octave numbers which calls Middle C (MIDI note 60) as C3.

The first note which is shown as C#-1 in the template is actually MIDI note 13.

The final note is shown as F#1 and is actually MIDI note 42.

Years ago I monitored the MIDI notes that actually triggered the MFC10 template switches and entered them in a spreadsheet. This shows the absolute MIDI note number for each switch, irrespective of what Yamaha wants to call them in octave terms!   I've attached a PDF version of this if it is of any use to you.

The MIDI notes sent to the T4 must have a velocity of at least 1 to trigger the switch.   

To check the situation, I have used several different MIDI sources to send the control notes to the T4. 
These include another keyboard, both by playing the relevant note using the keys, and playing back a MIDI song containing the notes.  I have also used a computer with both MIDI-OX and a virtual keyboard program called VMPK, and even MixMaster playing the song that I mentioned earlier.  All these worked.  So as you can see, the keyboard does not care about the type of MIDI source that is sending the incoming notes to the relevant MIDI port!   However it doesn't work if you play a MIDI on the internal Song Player of the T4 that you want to control (although even this may be possible if you directly connect the T4 MIDI OUT to it's MIDI IN and set the MIDI templates accordingly - I haven't bothered to try this)!

Regarding the Multi Pad functions:

For the ones that start a specific MP, the MP is triggered at the beginning of the note.

However the Multi Pad Stop switch doesn't respond until the end of the note (the Note OFF event)!
So when you program your Arduino, I suggest that you send short notes so that the MP Stop occurs essentially on receipt of the note.

If a style is not running when you start a repeating (looped) MP, then if you send the same note again, the pad resets to the beginning and continues to run.

If a style is running when you start a repeating (looped) MP, it syncs with the style and does not reset to the beginning if you send the note again.

Single shot MPs (not looped) always restart from the beginning each time that you send the control note whether a style is running or not.


I hope that this information is of interest to you.

It would be interesting to know how you get on with your project once you get the parts.


Regards

Ian

[attachment deleted by admin]

Arnak

Hi Ian,

WOW! That post is amazing thanks very much. ;D

That will make setting up the Arduino so much easier.

A point of interest that I noticed from your midi to note octave chart you supplied is that C# note 13 is shown on the chart as an octave -2 rather than as on your latest template C# -1 is shown as 13.

As the octaves below 0 on the octave chart go -2 then -1, could they just be the wrong way around on the chart?

All the parts are on the way, I will keep you updated on how the construction proceeds and take photo's and make diagrams in case anyone else wants to use this option as quite a few switches could be used for many functions as per your list.

Martin


tyrosaurus

Hi Martin,

You are correct, the chart is wrong!  :-\

The first row, covering MIDI notes from 0 to 11 should be -2 in Yamaha octaves.

The second row, covering MIDI notes from 12 to 23 should be -1.

The other rows are correct.

There was an error in the formula used in the original spreadsheet for these two rows!

Thanks for pointing it out. I can't believe how I missed it myself!  :'(

I have corrected the error and attached a PDF of the correct version.


I hope that the project goes well and look forward to your updates.



Regards

Ian

[attachment deleted by admin]

Arnak

Hi Ian,

Thanks very much for the corrected chart. ;D

That sort of thing is easy to miss.

I also do some hobby engineering and after a late night, I often find that the part I made last night is wrong after I took so much care to get it right. :'(

Martin

Tyros5Mad

This is very cool stuff!!! I have said before that this web site and forum is the best resource for Yamaha arranger owners and this discussion proves it once again.

I have been wondering how to trigger the pads and in fact not only that but my TC Helicon Perform VK as well. This now has me thinking about how I can include that functionality into my Midi Maker software.

So thanks all. I will bookmark this discussion and refer to it as I move forward.
---------------------------------------------------------------------------------------

So if I understand this correctly:

Step 1 is to set up a MFC-10 template on the the Keyboard (Genos in my case)
Step 2 is to program my software to send the appropriate note to the keyboard on a selected channel (is that channel set up in the MFC-10 template?)

Regards, Richard

Arnak

Hi Richard,

That sounds possible and interesting.

I see the Helicon has a midi input so it is probably possible to use an Arduino linked to foot switches to trigger the tabs if you wanted to?

Have a think about what you want to achieve so we can discuss the possibilities. 8)

Martin

Tyros5Mad

Quote from: Arnak on May 04, 2019, 08:13:31 PM
Hi Richard,

That sounds possible and interesting.

I see the Helicon has a midi input so it is probably possible to use an Arduino linked to foot switches to trigger the tabs if you wanted to?

Have a think about what you want to achieve so we can discuss the possibilities. 8)

Martin

Martin thanks for the response.

I wrote some software called Midi Maker (now at version 2) to create midi backing tracks which can be played directly to the keyboard.
I already have some commands programmed such as Start/Stop accompaniment and Vocal Harmony On/Off (Genos VH) using Sy*** commands

There are no Sy*** commands to turn the pads on or off and that was frustrating.
This discussion has opened a new line of research for doing that as well as other things so thanks again for bringing it up and thanks to the others for talking about the solutions.

As for the Perform-VK, it is connected to my keyboard via midi and I have programmed a midi setup to send the chord data to the VK for harmony using midi port 1 channel 2
The next step, which I have not solved was how to turn the harmony on/off or change the presets. This discussion has opened up possible solutions for that.

Regards, Rich

[attachment deleted by admin]

Tyros5Mad

Getting just a bit excited here about new possibilities, given the new knowledge gained from this thread.

Setting up the external controller is a breeze  8)
Programming Midi Maker to to send the notes to turn things on and off at the right time in the midi file is trivial as well    ;D 8)

What is not yet clear is how tell the keyboard to send a command to my TC Helicon device to turn on the harmony or select a different preset. I see there's a midi template for  Master Keyboard so I can use that but the question is how to send a command from my software to the template to tell it to turn on the TC Helicon harmony. I am sure it can be done, I will sleep on this.  :P

Regards, Richard

Arnak

Hi Richard,

I think I can understand what you are trying to do but I'm not completely sure that I have it correct.

Where does the Master Template come in?

If I understand it correctly, the keyboard would have a midi file playing that at certain predetermined points would send a midi signal out to the Helicon to make the changes, is that correct?

That would seem simple to do so I am probably misunderstanding what you are trying to do. :-\

I'm sure we can work it out between us. 8)

Martin






Tyros5Mad

Quote from: Arnak on May 05, 2019, 08:15:03 AM
Hi Richard,

If I understand it correctly, the keyboard would have a midi file playing that at certain predetermined points would send a midi signal out to the Helicon to make the changes, is that correct?

That would seem simple to do so I am probably misunderstanding what you are trying to do. :-\

Martin

This is exactly what we want to do but the execution is not that straightforward. Everything is controlled from the computer. The workflow is as follows:

1. The midifile is created and played from a midi player on the computer.
2. We want to control things like the pads, start and stop etc and so we set up the external controller to receive certain notes to provide the control.  This part is relative simple to do.
3. To control the voice processor we have to send a Control Change message from the computer to the keyboard and ask it to send it on to the voice processor. This is the part I have to figure out. The Master Kbd template is set up to control external devices so we have to use that in some way I think.

There are so many knowledgeable people on this forum so someone will will help for sure.

Now it is bed time.
Regards, RL

Arnak

Hi Richard,

Thanks for clarifying how it works together.

A question spring to mind, why not send the signal directly from the PC to the Helicon using a midi splitter cable?

Would that avoid having to use the keyboard to repeat the control message?

Martin




Tyros5Mad

Quote from: Arnak on May 05, 2019, 12:24:28 PM
Hi Richard,

Thanks for clarifying how it works together.

A question spring to mind, why not send the signal directly from the PC to the Helicon using a midi splitter cable?

Would that avoid having to use the keyboard to repeat the control message?

Martin

We cannot do that because remember we have to send chord data to the voice processor from the keyboard as well.

Regards RL

Arnak

Hi Richard,

OK, I did not know that.

Is the chord data being sent continuously or is the data sent only when the chord changes?

If it is that way then could a routine be written to check for chord data being sent and then send a control signal to the Helicon when there is a gap in the keyboard sending?

I'm just throwing out ideas at this point until I fully understand how the Helicon is controlled.

Martin

Tyros5Mad

Martin,

Chord data is sent pretty much all the time. The VK is set up to respond on Port A - channel 2. My midi template has been modified to send data for lower, style chord 1 and 2, and song channels 12, 13 (chords) to channel 2. So it does not matter whether I am playing live or from the computer or a midi song at the keyboard, the chord data is sent to the VK.

I have done one thing already this morning which is to add code to my app to look for a forward slash "/" and replace it with a CR (ascii 13) and that's working just fine.

I have also set up the external controller functions C0, C#0, D0, Eb0  to turn on mpads 1 - 4 and and E0 = mpad stop. I will be testing those functions today.

Then I will tackle sending CC info to the VK.

Regards, RL

Arnak

Hi Richard,

That sounds great, it seems that you are getting there now. :D

Martin

Tyros5Mad

Hi All,
I did a bunch of tests and using the computer to send codes via notes to control keyboard functions works very well as has been stated already in this thread. Many functions such as style variations, multi-pads, VH, Fade In/Out etc can be controlled.

However:
As Ian mentioned this type of control will only work from the external device. Playing a file containing these controls on the keyboard itself will not work. So, if the goal is to create a backing track to be used on the keyboard as well as a computer then this method will not help.

Luckily most of the functions, variations, intros, endings, start/stop, VH and other functions can also be triggered via a sy*** message and this WILL work when a file is played back on the keyboard itself.

Unfortunately, multi-pad control is not one of the functions that can be set via sy*** messages. This being the case I am not going to include multi-pad control in my Midi Maker software because that might mislead users of the software into thinking that it will also work on the keyboard. Still, it has been a great experiment so thanks to all for the discussion.

A new version of Midi Maker will be released soon. It will contain some extra functionality to break up lyric lines correctly for the keyboard and to be able to use an external midi player to play the midi file from the computer. I am using VanBasco's Karaoke player but other apps can also be used.

Regards, Richard

Arnak

Hi Richard,

Thanks for the update.

I'm glad you have made some progress. :D

Could you not send midipad control messages in the midi file at the appropriate places as they are just note messages as Ian has already succeeded in doing?

Martin

Tyros5Mad

Martin,

Yep did that, all works well from the computer. Take the file over to the keyboard and it won't work because the keyboard does not use the external device when the file is playing on the keyboard itself. Ian mentioned that one could use midi out and back in again to get the data but that's not something I want to do.

No, I will finish off my backing tracks on the keyboard by operating the multi-pads manually if I need to use them. Ian also mentioned a software app called VMPK (pic below). I checked that out and it works very well. This is a very versatile app so it could be used to control my Perform VK or Roland VT-4 for example.

So this discussion has been a great learning period for me. Thanks again all.

Regards, RL (AKA Master Yoda)

[attachment deleted by admin]

Arnak

Hi,

** Latest Update **

The display is working, I don't know why. :)

After yet another recompile it just started working for some unknown reason, phew!

I HATE it when this sort of thing happens as I am left with no idea what happened as I hadn't changed anything.

So on with the testing.

Old Update:

Just a quick update on my progress so far. ;)

Still waiting for the arcade switches to arrive from China!

The programming of the Arduino is proving to be very problematic when attempting to get the connected display to work in order to see if the midi output is correct.

Over 2 weeks attempting to get it to work but no luck so far.

I think I'll have to hold off on the display and concentrate on the midi output and see if I can get that to work.

More updates once I have some progress to report.

Martin

Tyros5Mad

Good to hear Martin,

FYI Guys and gals I am releasing the latest version of Midi maker today. Just preparing a post now.

Regards, Richard

Arnak

Hi Richard,

I Hope that the Midi maker is coming on well?

Just to let you know, with a lot of help I now have 2 switches working so the code looks good so far.

I will test it on the keyboard tomorrow.

Now to add 3 more switches and if that works I can make the box...

Martin