Synth Forum

Notifications
Clear all

Get the Initial State of Yamaha RefaceCS using CoreMidi

7 Posts
2 Users
0 Reactions
1,925 Views
Posts: 0
New Member
Topic starter
 

I just want to know how to get the initial state of Yamaha refaceCS controls using CoreMidi. I have gone through video of Yamaha refaceCS web environment where initial state of keyboard populates on sync button click. Is there specific command used to get the initial states of all controls. At present, I am getting value of control on its movement.

 
Posted : 03/05/2018 7:38 pm
Martin
Posts: 0
Eminent Member
 

If you haven't done that already you should download the datalist manual from here.

You can send a sysex message (BULK REQUEST) to the CS, and it will return a message containing all current parameter values. (BULK DUMP)
It's also possible to send a message that will ask for the setting of one parameter remotely, without the need to move a slider.

It's described in the datalist manual. I used the manual to develop my Reface DX/CS/CP/YC editor panels for Ctrlr.

 
Posted : 03/05/2018 9:45 pm
Martin
Posts: 0
Eminent Member
 

For example:
To request the current voice parameter data from your Reface CS you need to use this SysEx request:

[code type=markup]
F0 43 2n 7F 1C 03 0E 0F 00 F7
[/code] (hexadecimal values, where n is a midichannel value between 0 and F)

The format of the returned SysEx dump with all values is described in detail in the datalist manual.

 
Posted : 04/05/2018 6:54 am
Posts: 0
New Member
Topic starter
 

Thanks Martin. As you mentioned, I tried following code snippet

var method:MIDICompletionProc = MyMIDIReadDumpBlock //global function
let buffer:UnsafePointer = UnsafePointer([0xF0,0x43,0x20,0x7F,0x1C,0x03,0x0E,0x0F,0x00,0xF7])
var sendRequest = MIDISysexSendRequest(destination: self.virtualDestinationEndpointRef,
data: buffer,
bytesToSend: 10,
complete: false,
reserved: (0, 0, 0),
completionProc: method,
completionRefCon: UnsafeMutableRawPointer(&method))
MIDISendSysex(&sendRequest);

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
In this case my callback completionProc called but MidiReadBlock not invoked. Because of which I am not able to get the message event. There may be error in buffer values or other parameters.

 
Posted : 05/05/2018 3:42 am
Martin
Posts: 0
Eminent Member
 

Sorry, I'm afraid I don't know anything about coremidi programming.

 
Posted : 05/05/2018 8:36 am
Posts: 0
New Member
Topic starter
 

Hi Martin,
I have following queries

Q1: If I want to get the state of control "LFO ASSIGN", can I use PARAMETER REQUEST with following format
[0xF0,0x43,0x30,0x7F,0x1C,0x03,0x30,0x00,0x02,0xF7]

The basic difference I found in Parameter Request and Bulk Dump is the third parameter 3n (Parameter), 2n (Dump Request).

Q2: What value passed for "n". I passed 0,1,2. Is there any way to get the channel number.

 
Posted : 07/05/2018 10:29 pm
Martin
Posts: 0
Eminent Member
 

Q1: If I want to get the state of control "LFO ASSIGN", can I use PARAMETER REQUEST with following format
[0xF0,0x43,0x30,0x7F,0x1C,0x03,0x30,0x00,0x02,0xF7]

Looks OK to me on paper. I cannot test, since I don't own a Reface CS though

The basic difference I found in Parameter Request and Bulk Dump is the third parameter 3n (Parameter), 2n (Dump Request).

Correct.

Q2: What value passed for "n". I passed 0,1,2. Is there any way to get the channel number.

I would try 0. To change the MIDI channels you have to do some magick that can be found in the manual. Something like " while holding this and that key turn on the power". I think also firmware 1.30 is required for that but I'm not sure. The Reface DX has a menu function for it.

There is a way to get the channel number ... if you already know what the channel number is 😮

 
Posted : 10/05/2018 12:33 pm
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us