Evs-1


#41

Awesome, anything you have is much appreciated.


#42

I’ve managed to get the code I had, such as it was, working again today.

The first issue I had was that the machine was not responding to SysEx messages at all. Under Midi Filter make sure that the “S” option is set to 1 (unfiltered). Once I’d figured that out it was plain sailing.

Under “Utilities -> Data Dump” I also confirmed that my machine is still on the default System Channel of 0. Is there a reason for yours to be on 1? I changed mine to System Channel 1 and it seemed to make no difference at all for the button press and dump requests. I’ve read through the system channel part of the manual about 10 times and I’m still none the wiser as to what it actually does - it seems more related to program and group change messages rather than the data request messages.

For the test harness I built I had a simple byte array with one entry per command/request button - clearly I could have been significantly more efficient…

For the requests I have…
(EDIT) For the Dump one sound and request one group the 8th (corrected from 7th - it’s offset 7 so 8th element) element is replaced with the byte representing the sound or group you want.

public static byte requests[][] = {
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x00, 0x00, (byte)0xF7}, // Dump One Sound
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x01, (byte)0xF7},       // Dump All Sounds
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x02, 0x00, (byte)0xF7}, // Request one group
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x03, (byte)0xF7},	    // request all groups
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x04, (byte)0xF7},	    // program change request
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x05, (byte)0xF7},		// Utility request
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x06, (byte)0xF7}, 		// LED status Dump
	{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x20, 0x07, (byte)0xF7} 		// Group settings
	
};

For the button press command each message is of the form

0xF0, 0x00, 0x20, 0x08, 0x01, 0x3n, 0x0x, 0xF7

where n is the system channel number of your EVS and x is the button number.

public static byte remoteButtons[][] = {
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x00, (byte)0xF7},		// Reset
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x01, (byte)0xF7},       // Bank/Util
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x02, (byte)0xF7},		// Cursor Left
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x03, (byte)0xF7},		// Cursor Right
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x04, (byte)0xF7},		// +100
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x05, (byte)0xF7},		// -100
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x06, (byte)0xF7},		// +10
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x07, (byte)0xF7},		// -10
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x08, (byte)0xF7},		// +1
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x09, (byte)0xF7},		// -1
		{(byte)0xF0, 0x00, 0x20, 0x08, 0x01, 0x30, 0x0A, (byte)0xF7}		// Enter
};

#43

Thanks! I have the EVS “on the bench” awaiting some new jack sockets, as soon as those are in I’ll fire it up and take a look at these. Thanks so much for digging them out.

Channel 1 is kind of arbitrary on my part, I’ll see if I can see any difference on this between 0 and 1. I definitely need to check the MIDI filter settings too, thanks for the tip.


#44

This might be “teaching grandma to suck eggs” but… The system channel is not the MIDI channel. It’s effectively a mechanism to distinguish between different EVS-1’s on the same MIDI chain. So unless you have multiple EVS-1’s there is no reason for the system channel to be anything other than 0.

(EDIT) I took another look at your previous reply and for some reason I originally saw the word arbitrary as mandatory. Things make more sense to me now.


#45

Great, thanks again for the pointers - all working here!