Re: [AH] OB-Mx on SoundDiver

From Brian Willoughby
Sent Sun, Aug 25th 2019, 18:59

To answer your first question, Yes. There are still people who speak =
assembler in these modern times. I recently wrote a 6809 disassembler to =
solve a SysEx problem with the Matrix-12.

The documentation was wrong about one command, but I couldn=E2=80=99t be =
sure whether it was the documentation or my code. All I knew at first =
was that I could get all of the other SysEx commands to work perfectly, =
so I was reasonably sure that this last one wasn=E2=80=99t my fault. =
After a lot of work writing a disassembler and then manually deciphering =
the code, I was able to find out the error in the documentation and fix =
my code. It=E2=80=99s not a quick process, but it=E2=80=99s possible. =
The command in question was the one that allows you to put text on the =
three vacuum fluorescent displays - it=E2=80=99s not really too useful, =
but it=E2=80=99s fun.

By the way, for my Matrix-12 / Xpander patch librarian, I managed to get =
around the fact that Oberheim doesn=E2=80=99t allow SysEx dumps from/to =
the edit buffer. Since they allow individual parameters to be edited =
remotely, my librarian takes apart a patch on the computer and then =
sends one parameter at a time. This is tricky, because if you send them =
at full MIDI speed, the poor little 6809 will trip over itself and lose =
some parameters. I found out how much time delay between parameters is =
needed so that the Oberheim isn=E2=80=99t overloaded. This allows me to =
preview a patch on my Matrix-12 without writing it to a memory slot. My =
librarian is not a full editor yet, though.


Excellent work on your hacking the OB-Mx SysEx dump to isolate each =
parameter and determine its format! The fact that part/multi number is =
3x is indeed very strange. It=E2=80=99s very common to see 2x, 4x, 8x, =
et cetera - these are just bit shifts - but 3x is strange. I don=E2=80=99t=
 use SoundDiver, but any SysEx librarian/editor would have to deal with =
this.

Brian


On Aug 25, 2019, at 1:12 AM, Urs Grossenbacher <xxxxxxxxxxxx@xxxxxxx.xx> =
wrote:
> To get the sysex strings was quite a work as I am not capable to get =
the strings by reverse-engineering the operating system.
> Does anybody speak assembler today?=20
> I started with a blank part/multi with every switch set to off and =
every potentiometer set fully counterclockwise.
> Then I recorded an =E2=80=9Einitial" sysex dump from the OB-Mx.
> Afterwards, I changed every possible parameter step by step from =
minimum to maximum, recorded a sysex dump after every parameter change =
and compared them to the "initial one=E2=80=9C to get the sysex format.
> For the tuning tables I could re-use the work already done by Thomas =
Siebert in the original but very, very limited adaption in SoundDiver.
> I definitively have done easier work ;-)
> It comes as little surprise that there are some inconsistencies: why =
to you put three times the part/multi number in its sysex string, e.g.?
> As I am not sure if it is allowed to put the SoundDiver adaption as an =
attachment to the Analogue Heaven list I will directly email you the =
adoption and some xls-files with the sysex strings.
> There are still some blank bytes - probably left free for future =
expansions/OS revisions.
> Beware: as there is no edit buffer yet every change will be directly =
applied to the OB-Mx without further warning - so backup your =
parts/multis/tunings first.
> Before you can really start working with SoundDiver you have to =
manually dump all the parts/multis/tunings first to fill SoundDiver=E2=80=99=
s memory.
> Receiving a globals dump doesn=E2=80=99t work yet - but you can =
initialise globals in SoundDiver and then send them to the OB-Mx.
> For the multi and part ROM: they are prefilled with the default names =
- but they are not filled with data.
> If you want to you can change the adaption temporarily: set the ROM =
bank driver to editable, copy/paste the original RAM data to the ROM, =
set back the ROM bank driver to ROM.
> Enjoy,=20
> Urs v/o synthifan
>=20