Bc2000 (for the BCF2000 & BCR2000) group photo

Yahoo Groups archive

Bc2000 (for the BCF2000 & BCR2000)

Index last updated: 2026-04-28 23:16 UTC

Message

Re: Oberheim Matrix 6

2010-03-17 by Royce

Hi Tony,

> I understand. The point is the BCr's sysex is just weak.
> You would need to use a PC & some software like Midiox to map CC values into
> sysex streams to send to the M6R.
> It would be slow and kludgy, but would probably work.

What can't you do that makes the BCR not suitable?

Negative numbers are the only trick and I think that can be solved from the cursory glance I have had of the sysex spec

Multiple parameters in one byte is also a problem in early synths, but this doesn't seem to be the case here. 

Have I missed something??

All the best
Royce


From 
http://machines.hyperreal.org/manufacturers/Oberheim/Matrix-6-1000/info/Matrix-6.sysex.edit.txt
Is this correct sysex???

* sysex format:
0xF0    sysex start
0x10    Oberheim ID
dd      Device ID: 0x02 for M-12 or Xpander, 0x06 for M-6.
opcode  one byte.
(data)
0xF7    sysex end (EOX)

The high bit of each byte is reserved as the status bit, as usual.
Wait at least 20 ms between sysex operations.

* select quick patch edit
0x05    opcode

Send this before changing parameters through remote editing.
"This operation selects the Quick mode of the Patch Edit function.
The M-6 must be in Patch Edit mode in order to act upon parameter
change commands."

* change parameter
0x06    opcode
pp      parameter number, 0-99.
vv      value.  may not be negative. (damn!)

If you want to set negative values, you have to send the whole patch,
breaking the sound.  I can't imagine why they didn't just use bit 6
as a sign bit.

* single patch
0x01    opcode
pp      patch number, 0-99.
xx yy   data, sent nybblewise: 
        a data byte dd is sent as xx=dd&0x0F; yy=dd>>4
cc      checksum:
        the sum of the original data bytes dd, masked with 0x7F.

Here I don't see why they chop up the data bytes; none exceeds 7 bits.

========== patch-format
summarized from Matrix-6 / Matrix-6r MIDI spec, 5/87, for 2.13 ROM.     -eub
read the sysex file first.

* patch data format
byte    param   bits    description
 0-7    n/a     6 each  patch name: ASCII clipped to 6 bits.
 8      48      2       kbd mode      (0) (reassign, rotate, unison, rob) (3)

 9       0      6       dco1 freq
10       5      6            saw shape
11       3      6            pulse width
12       7      2            modulation   (bit 1) (vibrato | bend) (bit 0)
13       6      2            waveforms            (wave | pulse)
14      10      6       dco2 freq
15      15      6            saw shape
16      13      6            pulse width
17      17      2            modulation
18      16      3            waveforms          (noise | wave | pulse)
19      12      6 +/-        detune
20      20      6       mix
21       8      2       dco1 keyboard              (unused | portamento)
22       9      1            click
23      18      2       dco2 keyboard           (kbd track | portamento)
24      19      1            click
25       2      2       sync mode
26      21      7       vcf freq
27      24      6           q
28      25      2           modulation          (vibrato | bend)
29      26      2           keyboard            (keyboard | portamento)
30      30      6           fm
31      27      6       vca1 level
32      44      6       portamento rate
33      46      2                  mode         (speed, time, exp1, exp2)
34      47      1                  legato
35      80      6       lfo1 speed
36      86      2            trigger            (none, single, multi, extern)
37      87      1            lag
38      82      3            waveform      (tri, up, dn, sqr, rnd, noiz, s/h)
39      83      5            retrigger
40      88      5            sample source
41      84      6            amplitude
42-48                   lfo2 params
49      57      3       env1 trigger            (external | multi | reset)
50      50      6            delay
51      51      6            attack
52      52      6            decay
53      53      6            sustain
54      54      6            release
55      55      6            amplitude
56      59      2            lfo trigger        (lfo trig | gated)
57      58      2            mode               (free-run | DADR)
58-66                   env2 params
67-75                   env3 params
76      33      5       tracker source
77      34      6               pt1
78      35      6               pt2
79      36      6               pt3
80      37      6               pt4
81      38      6               pt5
82      40      6       ramp1 rate
83      41      2             mode              (strig, mtrig, xtrig, xgate)
84-85                   ramp2 params
86       1      7 +/-   dco1 freq by lfo1
87       4      7 +/-        p.w. by lfo2
88      11      7 +/-   dco2 freq by lfo1
89      14      7 +/-        p.w. by lfo2
90      22      7 +/-   vcf freq by env1
91      23      7 +/-   vcf freq by pressure
92      28      7 +/-   vca1 by velocity
93      29      7 +/-   vca2 by env2
94      56      7 +/-   env1 ampl by velocity
95      66      7 +/-   env2 ampl by velocity
96      76      7 +/-   env3 ampl by velocity
97      85      7 +/-   lfo1 ampl by ramp1
98      95      7 +/-   lfo2 ampl by ramp2
99      45      7 +/-   port rate by velocity
100     31      7 +/-   vcf fm by env3
101     32      7 +/-   vcf fm by pressure
102     81      7 +/-   lfo1 rate by pressure
103     91      7 +/-   lfo2 rate by keyboard
104             5       mod0 source
105             7 +/-        amount
106             5            target
107-133                 mod1 through mod9

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.