MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI-OX >> Mapping Questions >> Asr10 Sysex parameter control
(Message started by: movation on Jan 30th, 2024, 5:43pm)

Title: Asr10 Sysex parameter control
Post by movation on Jan 30th, 2024, 5:43pm
I want to control some Parameters on the ASR10 Sampler by Ensoniq with my Midi Controller (Doepfer Pocketfader).
I am trying to familiarize myself with Sysex in general and since it is all new ground i do progress very slowly. I was able to change the parameter Mastertune with Midi-OX.
But i was not able to change specific parameters regarding the Wavesample. I guess i have some mistake in my String.

Iwould love to control the following Wavesample Parameters via Sysex. Page 44. in the Manual:

Loop Position (%)
Loop Start (%)
Loop End (%)

I attached the ASR10 sysex specification.
https://mega.nz/#!2QlijY6K!FmdMHoy_fMJSXwxSYD8NIyX4KiWf2aoUXxEGCfv3CKg

Any assistance is greatly appreciate  :)

Title: Re: Asr10 Sysex parameter control
Post by movation on Jan 30th, 2024, 5:57pm
The Monitor input in Midi-OX gives me this String for Loop Position 0%

SYSX: F0 0F 03 00 11 00 00 00 00 00 01 20 03 00 00 0B 38 F7

The last three bytes of the message before F7 are changing. These last three bytes must correspond to the % value of the parameter.

Title: Re: Asr10 Sysex parameter control
Post by Breath on Feb 1st, 2024, 9:25pm
Hi
see page 39 to PUT A PARAMETER...

Assume that EXT wants to edit the Filter 1 Cutoff value for WaveSample 1 in Instrument 1
(in hexadecimal notation, assuming MIDI BASE CHANNEL = 1, transmitted as 00
( channel - 1 = transmitted channel. eg channel 3 i s transmitted as 02))

Header        Cmd     Inst  /  Layer / Sampl    filter 1 cutoff    value = 5    Sysex end
F0 0F 03 00  11     00 00    00 00   00 01        14 01          00 00 00 05   F7
So...................................................
F0 0F 03 00  11     00 00    00 00    00 01       20 03           00 00 0B 38   F7

Page 13 gives the PARAMETER PUT  command (11)  details

Here comes the tricky part...

The value is in the 4 bytes before the F7 (Sysex end).
Midi data can only be below the value of 80 that is 00 to 7F = 0 to 128
That is, the top bit - bit 7 (the bits are numbered like Midi channels 0 to 7, not 1 to 8) is always = 0.
Called a 7 bit value.

So to get the full byte (00 to FF = 0 to 255) you need to use two Midi data bytes (the two 7 bit values push together and ignore the bit 7)
Ensonic use two different ways of sending bigger numbers...

12 Bit values
Two midi data bytes gives a range of 00 00 to 7F 7F  which is 0 to 16,383  (the bits are 0111 1111 = 7F so 7F 7F= 0111 1111 0111 1111)
We will call these 14 bit 'words' but that is too big for most of Ensonic values so they use 12 bit words instead with bit 6 and 7 of each byte always being 0
Each byte is 0 to 3F = 0000 0000 to 0011 1111
Combining two of these 6 bit bytes into a 12 bit word
00 00 to 3F 3F = 00 to 8127

16 Bit numbers
BUT the parameter value can be bigger than 8127 so Ensonic SOMETIMES uses 16 bit numbers 0000 to FFFF  = 0 to 65,535
They use 3 bytes starting with the most significant to the least significant
So the max value is 0000 1111 - 0011 1111 - 0011 1111
So it is two of the common 12bit numbers with an additional 4 bits at the start to give 16 bits

All the 0's are ignored leaving
1111 - 11 1111 - 11 1111  = 4 bits + 12bits + 12 bits= 16 bits

Is this what you were looking for?
You might find my Midi calculator, with Hex, decimal & binary displays, useful here
https://www.bwalk.com.au/Convert/Convert.html

All the best
Royce



MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.