- This topic is empty.
-
AuthorPosts
-
-
January 8, 2016 at 11:27 pm #113153Analog DessertMember
What is the Sysex Device ID for the H8000FW?
https://www.eventideaudio.com/
support/downloads/midi-sysex- messages I’m told that this document was made for the DSP4000 — but also applies to the H8000FW.
For example, in the doc it says :======0xF0 0x1C <H4000> <id> <message_code> <lots-o-bytes> 0xF7<H4000> is 0x70 (decimal 112).======I am wondering what that equivilant value would be for the H8000FW -
January 8, 2016 at 11:30 pm #142098
We kept the 4000 value for the 8000 in the interests of compatability.
-
July 13, 2016 at 6:34 am #143812Analog DessertMember
Thanks Nick — but no workizzle =[ For example, lets say my device ID is 1 — per the manual, the SysEx to press Soft Button 2 would be
F0 70 01 01 FF FB FF FF F7
I have also tried sending device ID as 00, but nothing I craft seems to have any affect. Would you beable to provide an example Sysex message that would press Soft Button 2?
Cheers 🙂
-
July 13, 2016 at 9:00 pm #143822Analog DessertMember
oops, in my above message I forgot to specify the “Eventide” Byte —
F0 1C 70 01 01 FF FB FF FF F7
That is the sysex that I intended to post, that is not doing anything.
-
July 14, 2016 at 1:17 pm #143826
hi – I'm out for a few days – I'll get back to you on Monday.
-
July 18, 2016 at 3:16 pm #143852
Sorry for the delay in replying. I needed to have an H8K in front of me.
Your problem is not the Sysex ID – this can be either zero, or whatever your unit is set to.
The reason why this is not working for you is that MIDI messages cannot contain anything which is 80 hex or above (the high bit signifies a command). This is why the document you mention says "With many messages, a "byte" is actually two bytes. Since MIDI allows only 7 bits of data, we split an 8 bit byte into two 4 bit nibbles and send the nibbles. The most significant nibble is sent first."
Note that "nibble" is undefined – if you are not a programmer, you may not know that it is a 4 bit value.
So, the actual message data must be sent as two bytes per byte, with the high 4 bits being zero. The message you are trying to send should be:
F0 1C 70 00 01 0F 0F 0F 0B 0F 0F 0F 0F F7
-
July 18, 2016 at 3:30 pm #143853Analog DessertMember
Nick — Thanks for the example! It will be valueable for anyone who stumbles upon this thread. I’ve seen you answer this question a few times over the years — so I appologize in advance, but this is exactly what I was missing (and I’m a programmer, so It makes perfect sense to me now, nom nom nom, I mustve skipped that paragraph in the manual, hehe)
-
July 20, 2016 at 2:56 am #143868Analog DessertMember
Just incase anyone cares — I’ve created a VST Controller for the H8000 / DSP40000
With the press of a “Toggle Key”, the PC Keyboard Arrow Keys correspond to the Eventide’s Arrow Keys, the PC Keyboards Numpad Keys -> Eventides Numpad Keys, etc, etc.
Am I allowed to post a download link from my website?
-
July 20, 2016 at 3:46 am #143869Analog DessertMember
Last question — When I was testing every key-press with my VST, I noticed two things:
LEFT (Bit 16)
RIGHT (Bit 24)
Those work as one would expect — like Cursor LEFT/RIGHT.
UP (Bit 7)
DOWN (Bit 6)
Those are not Cursor UP/DOWN, but rather, increment or decrement the current value, as If one was scrolling the data entry wheel.
I was unable to simulate a “CURSOR UP/DOWN” KeyPress — any insights?
Thanks! :}
-
July 20, 2016 at 2:44 pm #143874
Looks like cursor up/down are combinations – I show the following:
#define KEY_KILL 0xFFFFFDFF
#define KEY_PREVIOUS 0xFFFEFFFF
#define KEY_NEXT 0xFEFFFFFF
#define KEY_UP (KEY_NEXT & KEY_KILL)
#define KEY_DOWN (KEY_PREVIOUS & KEY_KILL)
-
July 20, 2016 at 11:57 pm #143885Analog DessertMember
It works! Awesome.
Can you share the values for switching between Processor A/B as well?
It seems like you have more specific information for the H8000 than is currently available in the DSP 4000 Sysex Manual. What else can you share? The more the merrier, as eventually I’d like to fully develop this VST to be a complete controller for the H8000FW.
If you don’t want to post any complete header files or methods here, you could send anything useful to analog.dessert (A) gmail.com
-
July 21, 2016 at 6:44 pm #143901
Here are the full list of key codes (I think the A/B key is KEY_MACHINE):
#define KEY_NONE 0xFFFFFFFF /* —- —- —- —- —- —- —- —- */
#define KEY_UNUSED 0xFFFFFFFE /* —- —- —- —- —- —- —- —X */
#define KEY_LEVELS 0xFFFFFFFD /* —- —- —- —- —- —- —- –X- */
#define KEY_SOFT4 0xFFFFFFFB /* —- —- —- —- —- —- —- -X– */
#define KEY_PATCH 0xFFFFFFF7 /* —- —- —- —- —- —- —- X— */
#define KEY_ENTER 0xFFFFFFEF /* —- —- —- —- —- —- —X —- */
/* CXL */
#define KEY_OOPS 0xFFFFFFDF /* —- —- —- —- —- —- –X- —- */
#define KEY_DEC 0xFFFFFFBF /* —- —- —- —- —- —- -X– —- */
#define KEY_INC 0xFFFFFF7F /* —- —- —- —- —- —- X— —- */
/* SELECT */
#ifndef PRATAS
#define KEY_CLICK 0xFFFFFEFF /* —- —- —- —- —- —X —- —- */
#define KEY_CLICK_HOLD 0xFFFFFEFE
#endif
/* TAP */
#define KEY_TAP 0xFFFFFEFF
/* BYPASS/MUTE */
#define KEY_KILL 0xFFFFFDFF /* —- —- —- —- —- –X- —- —- */
#define KEY_KILL_HOLD 0xFFFFFDFE /* —- —- —- —- —- –X- —- —- */
#define KEY_SOFT3 0xFFFFFBFF /* —- —- —- —- —- -X– —- —- */
#define KEY_SETUP 0xFFFFF7FF /* —- —- —- —- —- X— —- —- */
#define KEY_MINUS 0xFFFFEFFF /* —- —- —- —- —X —- —- —- */
#define KEY_NINE 0xFFFFDFFF /* —- —- —- —- –X- —- —- —- */
#define KEY_SIX 0xFFFFBFFF /* —- —- —- —- -X– —- —- —- */
#define KEY_THREE 0xFFFF7FFF /* —- —- —- —- X— —- —- —- */
/* < */
#define KEY_PREVIOUS 0xFFFEFFFF /* —- —- —- —X —- —- —- —- */
#define KEY_USER2 0xFFFDFFFF /* —- —- —- –X- —- —- —- —- */
#define KEY_SOFT2 0xFFFBFFFF /* —- —- —- -X– —- —- —- —- */
#define KEY_PARAMETER 0xFFF7FFFF /* —- —- —- X— —- —- —- —- */
#define KEY_ZERO 0xFFEFFFFF /* —- —- —X —- —- —- —- —- */
#define KEY_EIGHT 0xFFDFFFFF /* —- —- –X- —- —- —- —- —- */
#define KEY_FIVE 0xFFBFFFFF /* —- —- -X– —- —- —- —- —- */
#define KEY_TWO 0xFF7FFFFF /* —- —- X— —- —- —- —- —- */
/* > */
#define KEY_NEXT 0xFEFFFFFF /* —- —X —- —- —- —- —- —- */
#define KEY_USER1 0xFDFFFFFF /* —- –X- —- —- —- —- —- —- */
#define KEY_SOFT1 0xFBFFFFFF /* —- -X– —- —- —- —- —- —- */
#define KEY_PROGRAM 0xF7FFFFFF /* —- X— —- —- —- —- —- —- */
#define KEY_DOT 0xEFFFFFFF /* —X —- —- —- —- —- —- —- */
#define KEY_SEVEN 0xDFFFFFFF /* –X- —- —- —- —- —- —- —- */
#define KEY_FOUR 0xBFFFFFFF /* -X– —- —- —- —- —- —- —- */
#define KEY_ONE 0x7FFFFFFF /* X— —- —- —- —- —- —- —- */
#define KEY_HELP 0xFFFFF7F7 /* —- —- —- X— —- X— —- —- */
#define KEY_UP (KEY_NEXT & KEY_KILL)
#define KEY_DOWN (KEY_PREVIOUS & KEY_KILL)
#define KEY_MACHINE (KEY_USER1 & KEY_KILL)
#define KEY_HOTKEYS KEY_MACHINE
#define KEY_PROGRAM_HOLD 0xF7FFFFFE
#define KEY_PARAMETER_HOLD 0xFFF7FFFE
#define KEY_SOFT1_HOLD 0xFBFFFFFE
#define KEY_SOFT2_HOLD 0xFFFBFFFE
#define KEY_SOFT3_HOLD 0xFFFFFBFE
#define KEY_SOFT4_HOLD 0xFFFFFFFA
#define KEY_SETUP_HOLD 0xFFFFF7FE
#define KEY_UPDATE 0xFFFFF7FD
#define KEY_UNIT 0xFBFFFFFD
#define KEY_UNKNOWN 0x80000000
-
July 23, 2016 at 9:18 am #143907Analog DessertMember
Thanks :] I’ve added a GUI to my Application EXE & VST, customizable key-mappings, and the ability to communicate with the H8000 via MIDI or Serial. It’s coming along quicker than I expected 😀
Questions :
Do you happen to know what KEY_UPDATE, KEY_UNIT, KEY_KILL, or KEY_KILL_HOLD can be used for?
I’m at the point where Id like to sync the H8000 Screen with a Bitmap on the App/VST, but every time I make the SYSEXC_SCREEN_WANT call, the H8000 displays a “Sent 3000 Bytes, etc.” message. Is there a way to supress that message, or is there a better way / do you have any pointers on how I should go about doing somewhat real time screen syncronization, or do you think this aspect will always be a little bit choppy?
The manual says “At the end is two nibbles the form a 1 byte checksum. This byte added to all the bytes including the size bytes should equal zero” This is a little confusing, can you reword / explain a little bit better the bold part?
-
May 8, 2017 at 2:44 pm #146332Analog Dessert wrote:
Do you happen to know what KEY_UPDATE, KEY_UNIT, KEY_KILL, or KEY_KILL_HOLD can be used for?
KEY_UPDATE – this is the '2' key that is used at startup to go into update mode
KEY_UNIT – this is used by eve/net
KEY_KILL – this is the bypass key
KEY_KILL_HOLD – this is pressing and holding the bypass key (see below).
Analog Dessert wrote:I'm at the point where Id like to sync the H8000 Screen with a Bitmap on the App/VST, but every time I make the SYSEXC_SCREEN_WANT call, the H8000 displays a "Sent 3000 Bytes, etc." message. Is there a way to supress that message, or is there a better way / do you have any pointers on how I should go about doing somewhat real time screen syncronization, or do you think this aspect will always be a little bit choppy?
This is what it is, I'm afraid.
Analog Dessert wrote:The manual says "At the end is two nibbles the form a 1 byte checksum. This byte added to all the bytes including the size bytes should equal zero" This is a little confusing, can you reword / explain a little bit better the bold part?
This is for error detection – a sum total is kept of all the bytes sent for a message, then a byte is sent which is zero minus the sum, so that when all the bytes (including this check sum) are added together, the result is zero.
-
-
May 7, 2017 at 4:45 pm #146318Analog DessertMember
Nick, Thanks for all your help so far. It’s really appreiciated! And have another question.
Setting the “BYPASS” Bit 9, bypasses the whole unit, or whatever you have selected in the bypass options. But also in the bypass options, there are buttons to bypass just DSP A / B,
How can I bypass just “DSP A”, or just “DSP B” ?
-
May 8, 2017 at 2:49 pm #146333Analog Dessert wrote:
How can I bypass just "DSP A", or just "DSP B" ?
See p.91 and p.110 of the latest UM.
-
-
May 8, 2017 at 1:42 am #146324Analog DessertMember
Another addon question to my one above — to switch between “Processor A, and Processor B” you suggested I use :
#define KEY_MACHINE (KEY_USER1 & KEY_KILL)
Which sucessfully acts as a ‘toggle’ — but that is problematic (as I must know the original state of the machine to keep track of weather the screen is displaying the parameters for A or B).
Is there a sysex or bit I can send to definitively switch the unit to the Processor A or Processor B screen?
-
May 8, 2017 at 2:55 pm #146334Analog Dessert wrote:
Is there a sysex or bit I can send to definitively switch the unit to the Processor A or Processor B screen?
There is no direct command to do this.
You might be interested in the attached document, which gives some extensive byt complicated remote control examples.
-
-
May 8, 2017 at 3:22 pm #146335Analog DessertMember
That’s awesome. Thank you so much!
As for the DSP Bypassing — Per page 110 — It sounds like the user would need to be involved in some sort of setup. As I am making an Application / VST, this is not ideal.
Is there a specific sysex string I can use to definitively bypass DSP A, and another sysex string I can use to bypass DSP B? Or am I missing something
Cheers
-
May 8, 2017 at 4:56 pm #146336Analog Dessert wrote:
Is there a specific sysex string I can use to definitively bypass DSP A, and another sysex string I can use to bypass DSP B? Or am I missing something
Doesn't really work like that. You choose the CC that you want to use, and tell the unit about it, as described. Some setup is required. Otherwise, you can be sure that the CC we wanted to use would be needed for something else.
For sysex, look at the document I attached – but it is a lot of work.
-
-
-
AuthorPosts
- You must be logged in to reply to this topic.