From waal@cwi.nl Mon Dec 14 16:22 WET 1992 Received: from charon.cwi.nl by sihp03.si.estec.esa.nl with SMTP (16.7/16.2) id AA28920; Mon, 14 Dec 92 16:21:58 GMT Return-Path: Received: from gans.cwi.nl by charon.cwi.nl with SMTP id AA20738 (5.65b/3.2/CWI-Amsterdam); Mon, 14 Dec 1992 17:23:26 +0100 Received: by gans.cwi.nl with SMTP id AA28943 (5.65b/3.2/CWI-Amsterdam); Mon, 14 Dec 1992 17:23:25 +0100 Message-Id: <9212141623.AA28943.waal@gans.cwi.nl> To: Andrea TONI Subject: Re: -- Obie M1000 -- In-Reply-To: Your message of "Mon, 14 Dec 1992 10:32:16 MET." <9212140933.AA11976.andrea@sihp03.si.estec.esa.nl@charon.cwi.nl> Date: Mon, 14 Dec 1992 17:23:23 +0100 From: Peter de Waal Status: RO In message <9212140933.AA11976.andrea@sihp03.si.estec.esa.nl@charon.cwi.nl> you write: > Hi, > I saw your post in r.m.s .. would you be so kind to pass me on any > infos regarding the M1000 ... > Thanks .. Hi, I don't know how familiar you are with the M1000, so the basics are - 6 voice polyphony synthesizer module - not multitimbral (so listens to only one midi channel at a time) - each voice can use 2 DCO's, other 'equipment' per voice is: - 2 LFO's - 3 envelope generators - 2 ramp generators - the matrix modulation system (10 freely assignable modulation routing channels, so you can modulate the LFO frequency with an envelope generator, or the envelope generator's attack time with the keyboard velocity, or ... - the Matrix 1000 can be programmed only via MIDI - it has 1000 presets, 0-199 are editable, 200-999 are not. With regard to the specific questions that I asked in the r.m.s. post, this is an answer that I received >- the tracking generator (and also tracking points 1-5) The tracking generator is basically a programmable look-up table. A linear input (say, 0-63) is mapped onto a curve (well, not really a *curve*) defined by tracking points 1-5. You can select the input to the tracker, and use the matrix modulation to send the output of the tracker to other inputs. Basically, the tracking generator is used to change the shape of some sort of modulator. For example, let's say you want a weird velocity curve where you have to bang really hard before it has any effect. You might then set up the tracking generator as follows: 63 | 5 | . 47 | . | . 31 | . | . 15 | . | . 0 |1.......2.......3.......4 Tracking points In this fairly trivial example, you'd set trackpoints 1, 2, 3, and 4 to "0", and tracking point 5 to "63". You set velocity as the tracking input. Now, you'd have to hit 3/4 of maximum velocity before you get any output, while maximum velocity will still give you maximum output. Like I said, it's a trivial example, but sometimes useful. The output of the tracking generator isn't hardwired to anything; you only use it if you want to. >- the initial waveshape parameter of the DCO's The waveshape varies the DCO wave (when "wave" or "both" is the selected wave) from triangle to sawtooth. triangle: /\ /\ /\ /\ \/ \/ \/ sawtooth: /| /| /| /| /| |/ |/ |/ |/ (obviously, the frequency doesn't change as I have shown here) A value of 0 corresponds to triangle, while 63 is sawtooth. Or maybe it's the other way around, I can't remember; it's easy to determine by trial and error. Value in between smoothly interpolated. >- the 'click' parameter of the DCO's Adds a kind of click to the attack of the note. Turn it on and listen to it, you'll get the idea. I have personally found it to be useless, but who knows. >- the ramp generators Sort of like one segment envelope generators. When triggered, they go to zero, then rise to full value at a rate determined by their associated speed parameters. Triggering modes are similar to envelopes, if I recall correctly. The ramps can be used as part of the matrix modulation system, and are also hard-wired to control the LFO amplitude. Ramp generator: ---------+ /------------ | / | / |/ ^ trigger point Hope this helps... --- Peter de Waal, CWI, Amsterdam --- From analogue-request@magnus.acs.ohio-state.edu Wed Jul 14 04:49 WET 1993 Received: from quark.magnus.acs.ohio-state.edu by sihp03.si.estec.esa.nl with SMTP (16.7/16.2) id AA07963; Wed, 14 Jul 93 04:48:57 +0100 Return-Path: Received: by quark.magnus.acs.ohio-state.edu (5.65/3.910213) id AA02185; Tue, 13 Jul 93 22:12:35 -0400 Errors-To: analogue-request@magnus.acs.ohio-state.edu Sender: analogue-request@magnus.acs.ohio-state.edu Received: from metro.ucc.su.OZ.AU by quark.magnus.acs.ohio-state.edu (5.65/3.910213) id AA02176; Tue, 13 Jul 93 22:12:17 -0400 Received: by metro.ucc.su.OZ.AU id AA10404 (5.65c/IDA-1.4.4 for analogue@magnus.acs.ohio-state.edu); Wed, 14 Jul 1993 12:12:08 +1000 Received: by tpl68k0 (5.51/2.44); id AA19743; Tue, 13 Jul 93 14:19:20 EST From: markb@tplrd.tpl.oz.au (Mark Bower) Message-Id: <9307130419.AA19743@tpl68k0> Received: by sydrd14 (4.1/2.14); id AA22062; Tue, 13 Jul 93 14:19:52 EST Date: Tue, 13 Jul 93 14:19:52 EST To: analogue@magnus.acs.ohio-state.edu Subject: from comp.music Status: RO may be of use to some of you... Article: 10051 of comp.music Xref: tplrd comp.music:10051 comp.misc:8185 comp.protocols.misc:1523 Path: tplrd!tpsrd!csn!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!agate!doc.ic.ac.uk!uknet!bnr.co.uk!corpgate!crchh327.bnr.ca!davisonj From: davisonj@bnr.ca (John M Davison) Newsgroups: rec.music.makers.synth,comp.music,rec.music.synth,comp.misc,comp.protocols.misc Subject: Oberheim MIDI System-Exclusive Protocol Question: Signed Integers Followup-To: rec.music.makers.synth Date: 8 Jul 1993 20:46:44 GMT Organization: Bell-Northern Research, Richardson, Tx. Lines: 390 Distribution: inet Message-ID: <21i13k$nf2@crchh327.bnr.ca> NNTP-Posting-Host: crchh7ab.bnr.ca Summary: How are negative values represented on Matrix-6/Matrix-6R/Matrix-1000? Keywords: Oberheim MIDI Matrix-6 Matrix-6R Matrix-1000 Analogue Electronic Now that I am the proud owner of a Peavey PC-1600 MIDI slider controller, I have been busy programming said controller to send Remote Parameter Edit messages to my Oberheim Matrix-6R in order to edit patches more quickly than could be done using the front panel buttons alone. Since the Matrix-6R MIDI manual was unavailable, I used the Matrix-1000 manual information, since the MIDI implementations of the Matrix-6, the Matrix-6R, and the Matrix-1000 are supposed to be nearly identical. I am presently in the first phase of programming my PC-1000 to send MIDI System-Exclusive messages to the Matrix-6R: that is, I am programming the sliders to send the patch parameters under the jurisdiction of the "06H" (Remote Parameter Edit) sequence, described on page 43 of the Matrix-1000 owner's manual (Second Edition, July 1988). Everything is going OK except for two things: 1. The Matrix-6R's response to certain parameter specifications is very sluggish. For example, while the DCO1 Frequency parameter updates more or less instantaneously as a function of the slider position, the VCF Frequency parameter updates much more sluggishly: often the Matrix-6R will hang for a couple of seconds before jumping to the most recently transmitted value. This does not appear to be a problem with the PC-1600 (although it would be nice to have a "slider position sample rate" feature on the PC-1600 in order to thin the MIDI data stream and reduce the chance of overflowing the Matrix-6R's MIDI input buffer, which is what I suspect is happening. 2. For Matrix-6R parameters which accept negative values, I cannot seem to make my PC-1600 generate the appropriate bit representation of a given negative number. When I choose the "single byte" format for the slider position value in the output string sequence and set the "Lo" limit to -63 and the "Hi" limit to +63 on the PC-1600 (this is for a parameter whose legal range is {-63, ..., +63}), the positive values work fine with the Matrix-6R, but the supposedly "negative" values being sent from the PC-1600 are being interpreted as values in the range of 64 to 127. I have tried setting the "Lo" limit to -256 and the "Hi" limit to +256 while still using the "single byte" format in order to force the PC-1600 to send out byte values that cover the whole range of all 8-bit combinations, regardless of the assumed format for representation of negative numbers, but even then, nowhere in the travel of the slider does the Oberheim register the receipt of a bona fide negative number. This would indicate to me that the Oberheim Matrix-6R and the Peavey PC-1600 are dealing with bit #7 in the "single byte" slider position value in a fundamentally different way as regards representation of negative numbers. If anyone can give me a clue about how I can reconcile this difference short of restricting my slider output values to the positive subset of a given value range, please let me know. The J.L. Cooper FaderMaster Matrix-6-related presets can successfully send signed integer data to the Matrix-6R; what do I need to do to make my PC-1600 do the same? What follows is the notes I made while setting up the PC-1600 sliders for the "06H" (Remote Parmeter Edit) section of the Matrix-6R's MIDI implementation. Note that Matrix Modulation and "Master" parameters are not yet covered -- one thing at a time! Again, any and all advice/war stories/etc. are appreciated. ------------------------------------------------------------------------------- The following parameters are sent to the Matrix-6 (or Matrix-1000) in "Quick Edit" mode by sending the following sequence of MIDI bytes (note that each MIDI byte is represented by a pair of hex digits): F0 10 06 06 param_byte value_byte F7 The F0 is the MIDI sys-ex flag. The 10 is the Oberheim identification byte. The first 06 is the Matrix-6/Matrix-6R/Matrix 1000 identification byte. The next 06 is the byte that indicates "Remote Parameter Edit". The param_byte indicates the parameter whose value is being set. The value_byte indicates the value. The F7 indicates the end of the sys-ex packet. The allowable param_byte values and their associated value_byte ranges are listed below. Note that values that are not defined below produce undefined results. Signed range values are encoded in 2's complement representation. The Matrix-1000 manual says that "All values are sign-extended from bit 6 into bit 7 except for parameter 121 (VCF frequency). Range checking should be done on the value of each parameter _before_ it is sent." Parameter| Range | Description | Comments Dec| Hex | | | ---+-----+-------------+------------------------+------------------------------ 0 | 00 | 0 to 63 | DCO1 Init Freq | LSB = 1 semitone | | | | seems to respond to | | | | settings from 0 to | | | | 127 ---+-----+-------------+------------------------+------------------------------ 1 | 01 | -63 to +63 | DCO1 Freq by LFO1 Amt | ---+-----+-------------+------------------------+------------------------------ 2 | 02 | 0 to 3 | DCO1 to Sync Mode | 0 = no sync | | | | 1 = soft sync | | | | 2 = medium sync | | | | 3 = hard sync | | | | (DCO1 syncs to DCO2) ---+-----+-------------+------------------------+------------------------------ 3 | 03 | 0 to 63 | DCO1 Init Pulse Width | 0 = 0% | | | | 63 = 100% ---+-----+-------------+------------------------+------------------------------ 4 | 04 | -63 to +63 | DCO1 PW by LFO2 Amt | ---+-----+-------------+------------------------+------------------------------ 5 | 05 | 0 to 31 | DCO1 initial waveshape | 0 = sawtooth | | | | 31 = triangle ---+-----+-------------+------------------------+------------------------------ 6 | 06 | 0 to 1 | DCO1 Waveform Enable | bit 1 = sawtooth/triangle | | | | bit 0 = rectangle ---+-----+-------------+------------------------+------------------------------ 7 | 07 | 0 to 3 | DCO1 Fixed Modulations | bit 1 = Vibrato LFO | | | | bit 0 = Lever 1 ---+-----+-------------+------------------------+------------------------------ 8 | 08 | 0 to 1 | DCO1 Fixed Modulations | bit 1 = not used | | | | bit 0 = Portamento ---+-----+-------------+------------------------+------------------------------ 9 | 09 | 0 to 1 | DCO1 Click | 0 = off | | | | 1 = on ---+-----+-------------+------------------------+------------------------------ 10 | 0A | 0 to 63 | DCO2 Init Freq | LSB = 1 semitone | | | | seems to respond to settings | | | | from 0 to 127 ---+-----+-------------+------------------------+------------------------------ 11 | 0B | -63 to +63 | DCO2 Freq by LFO1 Amt | ---+-----+-------------+------------------------+------------------------------ 12 | 0C | -31 to +31 | DCO 2 Detune | ---+-----+-------------+------------------------+------------------------------ 13 | 0D | 0 to 63 | DCO2 Init Pulse Width | 0 = 0% | | | | 63 = 100% ---+-----+-------------+------------------------+------------------------------ 14 | 0E | -63 to +63 | DCO2 PW by LFO2 Amt | ---+-----+-------------+------------------------+------------------------------ 15 | 0F | 0 to 31 | DCO2 initial waveshape | 0 = sawtooth | | | | 31 = triangle ---+-----+-------------+------------------------+------------------------------ 16 | 10 | 0 to 7 | DCO2 Waveform Enable | bit 2 = noise | | | | bit 1 = saw/tri | | | | bit 0 = rectangle ---+-----+-------------+------------------------+------------------------------ 17 | 11 | 0 to 3 | DCO2 Fixed Modulations | bit 1 = Vibrato LFO | | | | bit 0 = Lever 1 ---+-----+-------------+------------------------+------------------------------ 18 | 12 | 0 to 3 | DCO2 Fixed Modulations | bit 1 = keyboard tracking | | | | enable | | | | bit 0 = portamento ---+-----+-------------+------------------------+------------------------------ 19 | 13 | 0 to 1 | DCO2 Click | 0 = off | | | | 1 = on ---+-----+-------------+------------------------+------------------------------ 20 | 14 | 0 to 63 | Mix | 0 = DCO 1 | | | | 63 = DCO 2 ---+-----+-------------+------------------------+------------------------------ 21 | 15 | 0 to 127 | VCF Initial Frequency | LSB = 1 semitone ---+-----+-------------+------------------------+------------------------------ 22 | 16 | -63 to +63 | VCF Freq by Env1 Amt | ---+-----+-------------+------------------------+------------------------------ 23 | 17 | -63 to +63 | VCF Freq by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 24 | 18 | 0 to 63 | VCF Init Resonance | 63 = oscillation ---+-----+-------------+------------------------+------------------------------ 25 | 19 | 0 to 3 | VCF Fixed Modulations | bit 1 = Vibrato LFO | | | | bit 0 = Lever 1 ---+-----+-------------+------------------------+------------------------------ 26 | 1A | 0 to 3 | VCF Keyboard | bit 1 = Keyboard | | | Modulation | bit 0 = Portamento ---+-----+-------------+------------------------+------------------------------ 27 | 1B | 0 to 63 | VCA1 (Exponential) | | | | Init Amt | ---+-----+-------------+------------------------+------------------------------ 28 | 1C | -63 to +63 | VCA1 by Velocity Amt | ---+-----+-------------+------------------------+------------------------------ 29 | 1D | -63 to +63 | VCA2 by Env2 Amt | ---+-----+-------------+------------------------+------------------------------ 30 | 1E | 0 to 63 | VCF FM Init Amt | ---+-----+-------------+------------------------+------------------------------ 31 | 1F | -63 to +63 | VCF FM Amt by Env3 Amt | ---+-----+-------------+------------------------+------------------------------ 32 | 20 | -63 to +63 | VCF FM Amt by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 33 | 21 | 0 to 20 | Tracking Generator | | | | Input Source Code | ---+-----+-------------+------------------------+------------------------------ 34 | 22 | 0 to 63 | Tracking Point 1 | ---+-----+-------------+------------------------+------------------------------ 35 | 23 | 0 to 63 | Tracking Point 2 | ---+-----+-------------+------------------------+------------------------------ 36 | 24 | 0 to 63 | Tracking Point 3 | ---+-----+-------------+------------------------+------------------------------ 37 | 25 | 0 to 63 | Tracking Point 4 | ---+-----+-------------+------------------------+------------------------------ 38 | 26 | 0 to 63 | Tracking Point 5 | ---+-----+-------------+------------------------+------------------------------ 39 | 27 | | unused | ---+-----+-------------+------------------------+------------------------------ 40 | 28 | 0 to 63 | Ramp 1 Rate | ---+-----+-------------+------------------------+------------------------------ 41 | 29 | 0 to 3 | Ramp 1 Mode | 0 = Single Trigger | | | | 1 = Multiple Trigger | | | | 2 = External Trigger | | | | 3 = External Gated ---+-----+-------------+------------------------+------------------------------ 42 | 2A | 0 to 63 | Ramp 2 Rate | ---+-----+-------------+------------------------+------------------------------ 43 | 2B | 0 to 3 | Ramp 2 Mode | 0 = Single Trigger | | | | 1 = Multiple Trigger | | | | 2 = External Trigger | | | | 3 = External Gated ---+-----+-------------+------------------------+------------------------------ 44 | 2C | 0 to 63 | Portamento Initial | | | | Rate | ---+-----+-------------+------------------------+------------------------------ 45 | 2D | -63 to +63 | Portamento Rate by | | | | Velocity Amt | ---+-----+-------------+------------------------+------------------------------ 46 | 2E | 0 to 3 | Portamento Mode | 0 = Constant Speed | | | | 1 = Constant Time | | | | 2 = Exponential | | | | 3 = Exponential | | | | (difference between 2 and 3 | | | | not known) ---+-----+-------------+------------------------+------------------------------ 47 | 2F | 0 to 1 | Legato Portamento | | | | Enable | ---+-----+-------------+------------------------+------------------------------ 48 | 30 | 0 to 3 | Keyboard Mode | 0 = Reassign same note | | | | 1 = Rotate | | | | 2 = Unison | | | | 3 = Reassign w/Rob ---+-----+-------------+------------------------+------------------------------ 49 | 31 | | unused | ---+-----+-------------+------------------------+------------------------------ 50 | 32 | 0 to 63 | Env1 Initial Delay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 51 | 33 | 0 to 63 | Env1 Initial Attack | | | | Time | ---+-----+-------------+------------------------+------------------------------ 52 | 34 | 0 to 63 | Env1 Initial Decay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 53 | 35 | 0 to 63 | Env1 Initial Sustain | | | | Level | ---+-----+-------------+------------------------+------------------------------ 54 | 36 | 0 to 63 | Env1 Initial Release | | | | Time | ---+-----+-------------+------------------------+------------------------------ 55 | 37 | 0 to 63 | Env1 Initial Amplitude | ---+-----+-------------+------------------------+------------------------------ 56 | 38 | -63 to +63 | Env1 Amplitude by | | | | Velocity Amount | ---+-----+-------------+------------------------+------------------------------ 57 | 39 | 0 to 7 | Env1 Trigger Mode | bit 2 = External Trigger | | | | bit 1 = Multi Trigger | | | | bit 0 = Reset ---+-----+-------------+------------------------+------------------------------ 58 | 3A | 0 to 3 | Env1 Mode | bit 1 = Free Run | | | | bit 0 = DADR Mode ---+-----+-------------+------------------------+------------------------------ 59 | 3B | 0 to 3 | Env1 LFO Trigger Mode | bit 1 = LFO trigger | | | | bit 0 = Gated ---+-----+-------------+------------------------+------------------------------ 60 | 3C | 0 to 63 | Env2 Initial Delay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 61 | 3D | 0 to 63 | Env2 Initial Attack | | | | Time | ---+-----+-------------+------------------------+------------------------------ 62 | 3E | 0 to 63 | Env2 Initial Decay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 63 | 3F | 0 to 63 | Env2 Initial Sustain | | | | Level | ---+-----+-------------+------------------------+------------------------------ 64 | 40 | 0 to 63 | Env2 Initial Release | | | | Time | ---+-----+-------------+------------------------+------------------------------ 65 | 41 | 0 to 63 | Env2 Initial Amplitude | ---+-----+-------------+------------------------+------------------------------ 66 | 42 | -63 to +63 | Env2 Amplitude by | | | | Velocity Amount | ---+-----+-------------+------------------------+------------------------------ 67 | 43 | 0 to 7 | Env2 Trigger Mode | bit 2 = External Trigger | | | | bit 1 = Multi Trigger | | | | bit 0 = Reset ---+-----+-------------+------------------------+------------------------------ 68 | 44 | 0 to 3 | Env2 Mode | bit 1 = Free Run | | | | bit 0 = DADR Mode ---+-----+-------------+------------------------+------------------------------ 69 | 45 | 0 to 3 | Env2 LFO Trigger Mode | bit 1 = LFO trigger | | | | bit 0 = Gated ---+-----+-------------+------------------------+------------------------------ 70 | 46 | 0 to 63 | Env3 Initial Delay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 71 | 47 | 0 to 63 | Env3 Initial Attack | | | | Time | ---+-----+-------------+------------------------+------------------------------ 72 | 48 | 0 to 63 | Env3 Initial Decay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 73 | 49 | 0 to 63 | Env3 Initial Sustain | | | | Level | ---+-----+-------------+------------------------+------------------------------ 74 | 4A | 0 to 63 | Env3 Initial Release | | | | Time | ---+-----+-------------+------------------------+------------------------------ 75 | 4B | 0 to 63 | Env3 Initial Amplitude | ---+-----+-------------+------------------------+------------------------------ 76 | 4C | -63 to +63 | Env3 Amplitude by | | | | Velocity Amount | ---+-----+-------------+------------------------+------------------------------ 77 | 4D | 0 to 7 | Env3 Trigger Mode | bit 2 = External Trigger | | | | bit 1 = Multi Trigger | | | | bit 0 = Reset ---+-----+-------------+------------------------+------------------------------ 78 | 4E | 0 to 3 | Env3 Mode | bit 1 = Free Run | | | | bit 0 = DADR Mode ---+-----+-------------+------------------------+------------------------------ 79 | 4F | 0 to 3 | Env3 LFO Trigger Mode | bit 1 = LFO trigger | | | | bit 0 = Gated ---+-----+-------------+------------------------+------------------------------ 80 | 50 | 0 to 63 | LFO1 Init Freq | ---+-----+-------------+------------------------+------------------------------ 81 | 51 | -63 to +63 | LFO1 Freq by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 82 | 52 | 0 to 7 | LFO1 Waveform | ---+-----+-------------+------------------------+------------------------------ 83 | 53 | 0 to 31 | LFO1 Retrigger Point | 0 = 0 radians | | | | LSB = pi/16 radians ---+-----+-------------+------------------------+------------------------------ 84 | 54 | 0 to 63 | LFO1 Init Amplitude | ---+-----+-------------+------------------------+------------------------------ 85 | 55 | -63 to +63 | LFO1 Amplitude by | | | | Ramp 1 Amt | ---+-----+-------------+------------------------+------------------------------ 86 | 56 | 0 to 3 | LFO1 Trigger | 0 = No Trigger | | | | 1 = Single Trigger | | | | 2 = Multi Trigger | | | | 3 = External Trigger ---+-----+-------------+------------------------+------------------------------ 87 | 57 | 0 to 1 | LFO1 Lag (Portamento) | | | | Enable | ---+-----+-------------+------------------------+------------------------------ 88 | 58 | 0 to 31 | LFO1 Sampled Source | | | | Number | ---+-----+-------------+------------------------+------------------------------ 89 | 59 | | unused | ---+-----+-------------+------------------------+------------------------------ 90 | 5A | 0 to 63 | LFO1 Init Freq | ---+-----+-------------+------------------------+------------------------------ 91 | 5B | -63 to +63 | LFO1 Freq by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 92 | 5C | 0 to 7 | LFO1 Waveform | ---+-----+-------------+------------------------+------------------------------ 93 | 5D | 0 to 31 | LFO1 Retrigger Point | 0 = 0 radians | | | | LSB = pi/16 radians ---+-----+-------------+------------------------+------------------------------ 94 | 5E | 0 to 63 | LFO1 Init Amplitude | ---+-----+-------------+------------------------+------------------------------ 95 | 5F | -63 to +63 | LFO1 Amplitude by | | | | Ramp 1 Amt | ---+-----+-------------+------------------------+------------------------------ 96 | 60 | 0 to 3 | LFO1 Trigger | 0 = No Trigger | | | | 1 = Single Trigger | | | | 2 = Multi Trigger | | | | 3 = External Trigger ---+-----+-------------+------------------------+------------------------------ 97 | 61 | 0 to 1 | LFO1 Lag (Portamento) | | | | Enable | ---+-----+-------------+------------------------+------------------------------ 98 | 62 | 0 to 31 | LFO1 Sampled Source | | | | Number | ---+-----+-------------+------------------------+------------------------------ 99 | 63 | | unused | ---+-----+-------------+------------------------+------------------------------ NOTES ----- The DCO pulse widths seem to be somewhat frequency-dependent at extreme duty -- John Davison, davisonj@ecn.purdue.edu <---- send followups to THIS ADDRESS!!!!! (Otherwise your mail will bounce!) If you work at NT/BNR, please COCOS to "John Davison". The information contained in this article isn't necessarily representative of Northern Telecom or BNR. Article: 38452 of rec.music.synth Xref: wg rec.music.makers.synth:7530 comp.music:12624 rec.arts.theatre:7354 rec.music.synth:38452 comp.misc:16294 comp.protocols.misc:2368 rec.audio.pro:4281 Path: wg!esatst!sun4nl!mcsun!uknet!bnr.co.uk!bnrgate!corpgate!crchh327.bnr.ca!davisonj From: davisonj@bnr.ca (John M Davison) Newsgroups: rec.music.makers.synth,comp.music,rec.arts.theatre,rec.music.synth,comp.misc,comp.protocols.misc,rec.audio.pro Subject: Oberheim Matrix-6R versus Peavey PC-1600 MIDI Slider Controller Followup-To: rec.music.makers.synth Date: 22 Jul 1993 01:06:27 GMT Organization: Bell-Northern Research, Richardson, Tx. Lines: 66 Distribution: inet Message-ID: <22kp6j$6dq@crchh327.bnr.ca> NNTP-Posting-Host: crchh7ab.bnr.ca Summary: The PC-1600 conforms to MIDI standards; Matrix-6R is probably at fault Keywords: Oberheim MIDI Matrix-6 Matrix-6R Matrix-1000 Analogue Electronic After looking further into the issues described in my previous articles regarding the Oberheim Matrix-6R electronic music synthesizer and the Peavey PC-1600 MIDI Slider Controller, it would seem that my original complaint about Peavey having "gaping holes" in its MIDI implementation was wrong. Its refusal to allow bit 7 to be set in a fader or button message variable parameter is indeed compliant with the MIDI 1.0 specification -- if the MSB _were_ set, this would be a status byte, which would terminate the sys-ex sequence (or screw it up, anyway...I don't have the MIDI spec with me to verify what would happen). Anyway, I sent a raw byte sequence into the Matrix-6R in an attempt to make it accept a negative value (by setting bit 7 in the "value" byte), and that didn't work either. The finger would seem to be pointing at Oberheim, since I've tried practically every bit combination in the "value" byte, and no negative value was received. It may be that it is impossible to send negative values to the Matrix-6R via MIDI remote parameter control. I'm still looking into it. Interesting Oberheim trivium: it turns out that the implementation of Matrix Modulation involves a "mini-compile" each time you adjust the Matrix Modulation settings. Another interesting bit of info: The current location of the 6809 source code for the Matrix-6R is unknown. The original file resides on a Hewlett-Packard hard disk drive for some obsolete Hewlett-Packard minicomputer. The disk drive is known to have been dropped on the floor (and is presumably inoperable). The location of the backup tapes, if they even exist, is unknown. In short, the source code is missing. I have not been able to make any of the Matrix Modulation remote parameter edit commands work with the Matrix-6R. Perhaps I don't have the Matrix-6R in the proper mode, but I think I tried everything. Finally, I have noticed that certain parameters respond sluggishly to remote parameter edit commands; most of these are 7-bit values. Here are the ones that are sluggish: DCO 1 Frequency by LFO 1 Amount DCO 1 Pulse Width by LFO 2 Amount DCO 2 Frequency by LFO 1 Amount DCO 2 Pulse Width by LFO 2 Amount VCF Initial Frequency VCF Frequency by Envelope 1 Amount VCF Frequency by Channel Pressure Amount VCA 1 (Exponentil) Unit Amount VCA 1 by Velocity Amount VCF FM Amount by Envelope 3 Amount VCF FM Amount by Channel Pressure Amount Portamento Rate by Velocity Amount Portamento Mode Envelope 1 Amplitude by Velocity Amount There may be others, but these are ones that I marked in ink on my "Matrix-6 Parameters" table that I use with the PC-1600 to figure out which slider is routed to what. The workaround for VCF frequency (which is a parameter that I like to adjust with some temporal precision) as well as any other parameter that can be adjusted via a Matrix Modulation routing is to devote a Matrix Modulation channel to it and dedicate a Lever to it. Sadly, only Levers 1, 2, and 3 are available. MIDI almost seems like an afterthought on the Matrix-6/6R. -- John Davison, davisonj@ecn.purdue.edu <---- send followups to THIS ADDRESS!!!!! (Otherwise your mail will bounce!) If you work at NT/BNR, please COCOS to "John Davison". The information contained in this article isn't necessarily representative of Northern Telecom or BNR. Article: 38454 of rec.music.synth Xref: wg rec.music.makers.synth:7537 comp.music:12629 rec.arts.theatre:7357 rec.music.synth:38454 comp.misc:16298 comp.protocols.misc:2369 rec.audio.pro:4304 Path: wg!esatst!sun4nl!mcsun!sunic!uunet!europa.eng.gtefsd.com!news.ans.net!cmcl2!usenet From: galanter@nyu.edu (Philip Galanter) Newsgroups: rec.music.makers.synth,comp.music,rec.arts.theatre,rec.music.synth,comp.misc,comp.protocols.misc,rec.audio.pro Subject: Re: Oberheim Matrix-6R versus Peavey PC-1600 MIDI Slider Controller Date: 22 Jul 1993 14:18:59 GMT Organization: New York University Lines: 58 Distribution: inet Message-ID: <22m7kj$puk@cmcl2.NYU.EDU> References: <22kp6j$6dq@crchh327.bnr.ca> Reply-To: galanter@nyu.edu (Philip Galanter) NNTP-Posting-Host: polar.acf.nyu.edu In article <22kp6j$6dq@crchh327.bnr.ca> davisonj@bnr.ca (John M Davison) writes: | After looking further into the issues described in my previous articles |regarding the Oberheim Matrix-6R electronic music synthesizer and the Peavey |PC-1600 MIDI Slider Controller, it would seem that my original complaint about |Peavey having "gaping holes" in its MIDI implementation was wrong. Its refusal |to allow bit 7 to be set in a fader or button message variable parameter is |indeed compliant with the MIDI 1.0 specification -- if the MSB _were_ set, this |would be a status byte, which would terminate the sys-ex sequence (or screw it |up, anyway...I don't have the MIDI spec with me to verify what would happen). For the kind of work you are attempting to do, you really should get a copy and study it. I further wonder if you have Oberheim's sys-ex document...there are numerous schemes for "nibblizing" 8 bit data in midi messages... | | Interesting Oberheim trivium: it turns out that the implementation of |Matrix Modulation involves a "mini-compile" each time you adjust the Matrix |Modulation settings. | .. | | I have not been able to make any of the Matrix Modulation remote |parameter edit commands work with the Matrix-6R. Perhaps I don't have the |Matrix-6R in the proper mode, but I think I tried everything. There are two general ways to create remote editors, the first is to tweak individual parameters via front panel emulation sys-ex or sys-ex commands designed to control individual parameters, the second is to edit a memory copy of the patch in the computer (or other external device) and then download the entire patch every time a change is made. The second is generally more reliable as it leverages off of the ability to dump/load patches, which just about every modern synth is expected to do. It is typically the method used by computer software based editors. The first is more obscure, and is not always supported by the hardware, and is usually more prone to bugs and problems. And since this is sys-ex, the synth maker can do or not do just about anything. |MIDI almost seems like an afterthought on the Matrix-6/6R. Don't confuse what you are trying to do with sys-ex with the rest of MIDI. Its quite possible to create software editors for the Matrix-6/6R, and several exist. At the time the Matrix-6R was designed general purpose MIDI slider controllers for patch editing were not common (if at all available...not sure), and in fact they are still not very common. Given this, and that 99.9% of Matrix-6/6R users get every MIDI response they ever ask for, I'd hardly call it an afterthought.... Phil =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Philip Galanter New York University phone: 212-998-3041 Coordinator 251 Mercer fax: 212-995-4120 Academic Computing New York, NY 10012 internet: galanter@nyu.edu O f f i c e o f A r t s & M e d i a T e c h n o l o g i e s Article: 38455 of rec.music.synth Xref: wg rec.music.makers.synth:7540 comp.music:12632 rec.arts.theatre:7358 rec.music.synth:38455 comp.misc:16299 comp.protocols.misc:2370 rec.audio.pro:4305 Path: wg!esatst!sun4nl!mcsun!uunet!utcsri!utnut!torn!nott!bnrgate!corpgate!crchh327.bnr.ca!davisonj From: davisonj@bnr.ca (John M Davison) Newsgroups: rec.music.makers.synth,comp.music,rec.arts.theatre,rec.music.synth,comp.misc,comp.protocols.misc,rec.audio.pro Subject: Re: Oberheim Matrix-6R versus Peavey PC-1600 MIDI Slider Controller Followup-To: rec.music.makers.synth Date: 22 Jul 1993 14:33:38 GMT Organization: Bell-Northern Research, Richardson, Tx. Lines: 12 Distribution: inet Message-ID: <22m8g2$94d@crchh327.bnr.ca> References: <22kp6j$6dq@crchh327.bnr.ca> NNTP-Posting-Host: crchh7ab.bnr.ca Keywords: Oberheim MIDI Matrix-6 Matrix-6R Matrix-1000 Analogue Electronic By the way, I forgot to mention that one limitation of the Peavey PC-1600 MIDI slider controller that may cause distress among theatre types is that the PC-1600 offers no support for MIDI Show Control. One can, of course, create arbitrary strings of 8-bit bytes (without worrying about whether or not the string you are creating is compliant with MIDI 1.0 or not) via their "String" option, but it would have been nice to see at least some acknowledgement of MIDI Show Control somewhere. -- John Davison, davisonj@ecn.purdue.edu <---- send followups to THIS ADDRESS!!!!! (Otherwise your mail will bounce!) If you work at NT/BNR, please COCOS to "John Davison". The information contained in this article isn't necessarily representative of Northern Telecom or BNR. Article: 38456 of rec.music.synth Xref: wg rec.music.makers.synth:7545 comp.music:12637 rec.arts.theatre:7360 rec.music.synth:38456 comp.misc:16300 comp.protocols.misc:2371 rec.audio.pro:4324 Path: wg!esatst!sun4nl!mcsun!uunet!cs.utexas.edu!rutgers!sgigate!sgi!fido.asd.sgi.com!zuni.esd.sgi.com!elysium!archer From: archer@elysium.esd.sgi.com (Archer Sully) Newsgroups: rec.music.makers.synth,comp.music,rec.arts.theatre,rec.music.synth,comp.misc,comp.protocols.misc,rec.audio.pro Subject: Re: Oberheim Matrix-6R versus Peavey PC-1600 MIDI Slider Controller Message-ID: Date: 22 Jul 93 18:21:19 GMT References: <22kp6j$6dq@crchh327.bnr.ca> <22m7kj$puk@cmcl2.NYU.EDU> Sender: news@zuni.esd.sgi.com (Net News) Distribution: inet Organization: Silicon Graphics, Inc. Mountain View, CA Lines: 23 In <22m7kj$puk@cmcl2.NYU.EDU> galanter@nyu.edu (Philip Galanter) writes: *In article <22kp6j$6dq@crchh327.bnr.ca> davisonj@bnr.ca (John M Davison) * *|MIDI almost seems like an afterthought on the Matrix-6/6R. * *Don't confuse what you are trying to do with sys-ex with the rest of MIDI. *Its quite possible to create software editors for the Matrix-6/6R, and *several exist. At the time the Matrix-6R was designed general purpose *MIDI slider controllers for patch editing were not common (if at all *available...not sure), and in fact they are still not very common. Given *this, and that 99.9% of Matrix-6/6R users get every MIDI response they ever *ask for, I'd hardly call it an afterthought.... * Well, not an afterthought, but certainly also not complete. There is, of course, a way to integrate the two approaches to patch editing that Phil describes, and that is to write an editor in Max, and use the sliders to drive the Max editor. Maybe I'll free up some FreeTime (r) of my own one of these days and write something like that. -- archer Article: 7641 of rec.music.makers.synth Path: wg!esatst!sun4nl!mcsun!uunet!europa.eng.gtefsd.com!howland.reston.ans.net!wupost!news.utdallas.edu!corpgate!crchh327.bnr.ca!davisonj From: davisonj@bnr.ca (John M Davison) Newsgroups: rec.music.makers.synth Subject: Re: Oberheim Matrix-6R versus Peavey PC-1600 MIDI Slider Controller Followup-To: rec.music.makers.synth Date: 24 Jul 1993 04:11:52 GMT Organization: Bell-Northern Research, Richardson, Tx. Lines: 108 Distribution: inet Message-ID: <22qcq8$gjr@crchh327.bnr.ca> References: <22kp6j$6dq@crchh327.bnr.ca> <22m7kj$puk@cmcl2.nyu.edu> <22qbre$gj3@crchh327.bnr.ca> NNTP-Posting-Host: crchh7ab.bnr.ca Summary: MIDI In article <22m7kj$puk@cmcl2.nyu.edu> galanter@nyu.edu (Philip Galanter) writes: >For the kind of work you are attempting to do, you really should get a copy >[of the MIDI 1.0 standard] and study it. Mr. Galanter is right; I should. >I further wonder if you have Oberheim's sys-ex document... I have only the Matrix-1000 document. It supposedly has essentially the same MIDI functionality as the Matrix-6 and Matrix-6R, at least in the remote parameter edit functionality. Again, if anyone out there has docs on the Matrix-6/Matrix-6R besides the Matrix-1000 owner's manual and the first edition of the Matrix-6R owner's manual, I sure would appreciate it if that someone would get in touch with me in order to make my life, and the lives of others who will be using these PC-1600 settings, much easier. >...there are numerous schemes for "nibblizing" 8 bit data in midi messages... Simple single-7-bit-byte-to-8-bit-byte encoding (8-bit MSB padded with 0) seems to be the only format that works with the Matrix-6 and Matrix-6R, at least among the formatting choices the PC-1600 gives you. >| Interesting Oberheim trivium: it turns out that the implementation of >|Matrix Modulation involves a "mini-compile" each time you adjust the Matrix >|Modulation settings. >At the time the Matrix-6R was designed general purpose MIDI slider controllers >for patch editing were not common (if at all available...not sure), and in >fact they are still not very common. That is true, but it was pretty clear back to anyone who understood what was going on at the time the Matrix-6R was manufactured that devices such as the PC-1600 would eventually come out. (Come to think of it, how old is the Lexicon MRC?) The notion of a configurable controller being the MIDI equivalent of synthesizer knobs/sliders/wheels/etc. is as natural and as economically sensible as the idea of a MIDI keyboard controller replacing redundant synthesizer keyboards. The failure to allow the arbitrary assignment of a substantial subset of the 127 MIDI controllers as Matrix Modulation source signals (and I don't call 3 parameters in the Lever 1/2/3 combination "arbitrary assignment of a substantial subset") makes it almost seem like MIDI was an afterthought on the Matrix-6 and Matrix-6R. > Given this, and that 99.9% of > Matrix-6/6R users get every MIDI response they ever ask for, I'd hardly call > it an afterthought.... The above statement does not address the lack of MIDI continuous controller configurability on the Matrix-6 and Matrix-6R. I refer the reader to my previous paragraph: >The workaround for VCF frequency (which is a parameter that I like to adjust >with some temporal precision) as well as any other parameter that can bea >djusted via a Matrix Modulation routing is to devote a Matrix Modulation >channel to it and dedicate a Lever to it. Sadly, only Levers 1, 2, and 3 are >available. MIDI almost seems like an afterthought on the Matrix-6/6R. The lack of MIDI continuous controller flexibility is especially painful in the case of the Matrix-6 and Matrix-6R, which feature only 1 CV input. The number of degrees of freedom is heavily restricted by the small number of continuous control signals (MIDI and CV) that the Matrix-6 and Matrix-6R will accept. In some cases, this can be alleviated by "cheating" and using sys-ex sequences. As far as the assertion that "99.9% of Matrix-6/6R users get every MIDI response they ever ask for", I don't see that as going against the idea that MIDI was an afterthought on the Matrix-6 and Matrix-6R -- actually, given the blue book values for these devices, I would say that their power as synthesizers is underappreciated. One reason for this is the less-than-very-friendly programming interface; another is the fact that one has to jump through some hoops (e.g. using a slider controller to send sys-ex messages and hoping that the synthesizer doesn't choke up on notes in the process) in order to have convenient control over a reasonable number of parameters. One of the reasons that synthesizers like the Juno-106 and the Memorymoog have enjoyed such popularity is because of the great deal of sonic flexibility immediately available to the user during a performance due to an abundance of ergonomically laid-out knobs/buttons/switches/etc. The Juno-106 is a particularly good example -- the Juno-106 sound engine is quite simple, but its user interface does such a good job of allowing and encouraging the user to speedily move around the instrument in real time that the simplicity of the sound engine isn't as much of an Achilles' heel as it would be with an instrument that had a less friendly user interface, such as the Moog Source. The Yamaha DX/TX series, Oberheim Matrix-6, Matrix-6R, and Matrix-1000 could be said to represent the opposite -- cramming lots of power into a device and then giving it a weak performance interface that encourages performers not to vary a lot of parameters continuously in real time. There was no excuse for this; the MIDI 1.0 standard has always had provisions for sending a relatively large number of parameters, continuous and otherwise, down the pipe in a simple, device-independent fashion. Say, maybe if someone could poke around that broken disk drive or find a backup tape or old hardcopy, one could hot-rod the 6809 code to handle arbitrary MIDI continuous controllers as an alternative to some of the internal Matrix Mod sources...? It must be late; I'm starting to talk silly. -- John Davison, davisonj@ecn.purdue.edu <---- send followups to THIS ADDRESS!!!!! (Otherwise your mail will bounce!) If you work at NT/BNR, please COCOS to "John Davison". The information contained in this article isn't necessarily representative of Northern Telecom or BNR. Article: 4540 of rec.music.makers.synth Path: estwmz.wm.estec.esa.nl!sun4nl!mcsun!uknet!doc.ic.ac.uk!agate!howland.reston.ans.net!torn!nott!bnrgate!nmerh207!corpgate!crchh327.bnr.ca!crchh7ab.bnr.ca!not-for-mail From: davisonj@bnr.ca (Jack Wasserman) Newsgroups: rec.music.makers.synth Subject: Re: INFO NEEDED: Oberheim M-6 Date: 20 Sep 1993 00:32:49 -0500 Organization: Bell-Northern Research, Richardson, TX Lines: 396 Message-ID: <27jfa1$f2h@crchh7ab.bnr.ca> References: <3340001@isoit109.bbn.hp.com> Reply-To: davisonj@sdf.lonestar.org (John Davison) NNTP-Posting-Host: crchh7ab.bnr.ca Summary: here's something X-Disclaimer: Pay no attention to the "From: " header. My name is John Davison. In article <3340001@isoit109.bbn.hp.com>, #Eric Iversen wrote: >Does anyone out there have any technical information on the >Oberheim Matrix-6 ?? ... >A detailed MIDI spec would be just what I need. Use this information at your own risk. It isn't complete (i.e. it doesn't cover everything the MIDI manual does), and I don't guarantee it to be accurate either, but it's definitely a place to start. Send me electronic mail if you need a copy of the Matrix-6 manual, the Matrix-6R manual, the Matrix-1000 manual, or the Matrix-6 MIDI manual. Unfortunately, I don't have schematics, but I am working on getting some more technical information from someone who used to work for Oberheim. The following parameters are sent to the Matrix-6 (or Matrix-1000) in "Quick Edit" mode by sending the following sequence of MIDI bytes (note that each MIDI byte is represented by a pair of hex digits): F0 10 06 06 param_byte value_byte F7 The F0 is the MIDI sys-ex flag. The 10 is the Oberheim identification byte. The first 06 is the Matrix-6/Matrix-6R/Matrix 1000 identification byte. The next 06 is the byte that indicates "Remote Parameter Edit". The param_byte indicates the parameter whose value is being set. The value_byte indicates the value. The F7 indicates the end of the sys-ex packet. The allowable param_byte values and their associated value_byte ranges are listed below. Note that values that are not defined below produce undefined results. Signed range values are encoded in 2's complement representation. The Matrix-1000 manual says that "All values are sign-extended from bit 6 into bit 7 except for parameter 121 (VCF frequency). Range checking should be done on the value of each parameter _before_ it is sent." Dec Hex Range Description Comments ---+-----+-------------+------------------------+------------------------------ 0 | 00 | 0 to 63 | DCO1 Init Freq | LSB = 1 semitone | | | | seems to respond to | | | | settings from 0 to | | | | 127 ---+-----+-------------+------------------------+------------------------------ 1 | 01 | -63 to +63 | DCO1 Freq by LFO1 Amt | ---+-----+-------------+------------------------+------------------------------ 2 | 02 | 0 to 3 | DCO1 to Sync Mode | 0 = no sync | | | | 1 = soft sync | | | | 2 = medium sync | | | | 3 = hard sync | | | | (DCO1 syncs to DCO2) ---+-----+-------------+------------------------+------------------------------ 3 | 03 | 0 to 63 | DCO1 Init Pulse Width | 0 = 0% | | | | 63 = 100% ---+-----+-------------+------------------------+------------------------------ 4 | 04 | -63 to +63 | DCO1 PW by LFO2 Amt | ---+-----+-------------+------------------------+------------------------------ 5 | 05 | 0 to 31 | DCO1 initial waveshape | 0 = sawtooth | | | | 31 = triangle ---+-----+-------------+------------------------+------------------------------ 6 | 06 | 0 to 1 | DCO1 Waveform Enable | bit 1 = sawtooth/triangle | | | | bit 0 = rectangle ---+-----+-------------+------------------------+------------------------------ 7 | 07 | 0 to 3 | DCO1 Fixed Modulations | bit 1 = Vibrato LFO | | | | bit 0 = Lever 1 ---+-----+-------------+------------------------+------------------------------ 8 | 08 | 0 to 1 | DCO1 Fixed Modulations | bit 1 = not used | | | | bit 0 = Portamento ---+-----+-------------+------------------------+------------------------------ 9 | 09 | 0 to 1 | DCO1 Click | 0 = off | | | | 1 = on ---+-----+-------------+------------------------+------------------------------ 10 | 0A | 0 to 63 | DCO2 Init Freq | LSB = 1 semitone | | | | seems to respond to settings | | | | from 0 to 127 ---+-----+-------------+------------------------+------------------------------ 11 | 0B | -63 to +63 | DCO2 Freq by LFO1 Amt | ---+-----+-------------+------------------------+------------------------------ 12 | 0C | -31 to +31 | DCO 2 Detune | ---+-----+-------------+------------------------+------------------------------ 13 | 0D | 0 to 63 | DCO2 Init Pulse Width | 0 = 0% | | | | 63 = 100% ---+-----+-------------+------------------------+------------------------------ 14 | 0E | -63 to +63 | DCO2 PW by LFO2 Amt | ---+-----+-------------+------------------------+------------------------------ 15 | 0F | 0 to 31 | DCO2 initial waveshape | 0 = sawtooth | | | | 31 = triangle ---+-----+-------------+------------------------+------------------------------ 16 | 10 | 0 to 7 | DCO2 Waveform Enable | bit 2 = noise | | | | bit 1 = saw/tri | | | | bit 0 = rectangle ---+-----+-------------+------------------------+------------------------------ 17 | 11 | 0 to 3 | DCO2 Fixed Modulations | bit 1 = Vibrato LFO | | | | bit 0 = Lever 1 ---+-----+-------------+------------------------+------------------------------ 18 | 12 | 0 to 3 | DCO2 Fixed Modulations | bit 1 = keyboard tracking | | | | enable | | | | bit 0 = portamento ---+-----+-------------+------------------------+------------------------------ 19 | 13 | 0 to 1 | DCO2 Click | 0 = off | | | | 1 = on ---+-----+-------------+------------------------+------------------------------ 20 | 14 | 0 to 63 | Mix | 0 = DCO 1 | | | | 63 = DCO 2 ---+-----+-------------+------------------------+------------------------------ 21 | 15 | 0 to 127 | VCF Initial Frequency | LSB = 1 semitone ---+-----+-------------+------------------------+------------------------------ 22 | 16 | -63 to +63 | VCF Freq by Env1 Amt | ---+-----+-------------+------------------------+------------------------------ 23 | 17 | -63 to +63 | VCF Freq by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 24 | 18 | 0 to 63 | VCF Init Resonance | 63 = oscillation ---+-----+-------------+------------------------+------------------------------ 25 | 19 | 0 to 3 | VCF Fixed Modulations | bit 1 = Vibrato LFO | | | | bit 0 = Lever 1 ---+-----+-------------+------------------------+------------------------------ 26 | 1A | 0 to 3 | VCF Keyboard | bit 1 = Keyboard | | | Modulation | bit 0 = Portamento ---+-----+-------------+------------------------+------------------------------ 27 | 1B | 0 to 63 | VCA1 (Exponential) | | | | Init Amt | ---+-----+-------------+------------------------+------------------------------ 28 | 1C | -63 to +63 | VCA1 by Velocity Amt | ---+-----+-------------+------------------------+------------------------------ 29 | 1D | -63 to +63 | VCA2 by Env2 Amt | ---+-----+-------------+------------------------+------------------------------ 30 | 1E | 0 to 63 | VCF FM Init Amt | ---+-----+-------------+------------------------+------------------------------ 31 | 1F | -63 to +63 | VCF FM Amt by Env3 Amt | ---+-----+-------------+------------------------+------------------------------ 32 | 20 | -63 to +63 | VCF FM Amt by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 33 | 21 | 0 to 20 | Tracking Generator | | | | Input Source Code | ---+-----+-------------+------------------------+------------------------------ 34 | 22 | 0 to 63 | Tracking Point 1 | ---+-----+-------------+------------------------+------------------------------ 35 | 23 | 0 to 63 | Tracking Point 2 | ---+-----+-------------+------------------------+------------------------------ 36 | 24 | 0 to 63 | Tracking Point 3 | ---+-----+-------------+------------------------+------------------------------ 37 | 25 | 0 to 63 | Tracking Point 4 | ---+-----+-------------+------------------------+------------------------------ 38 | 26 | 0 to 63 | Tracking Point 5 | ---+-----+-------------+------------------------+------------------------------ 39 | 27 | | unused | ---+-----+-------------+------------------------+------------------------------ 40 | 28 | 0 to 63 | Ramp 1 Rate | ---+-----+-------------+------------------------+------------------------------ 41 | 29 | 0 to 3 | Ramp 1 Mode | 0 = Single Trigger | | | | 1 = Multiple Trigger | | | | 2 = External Trigger | | | | 3 = External Gated ---+-----+-------------+------------------------+------------------------------ 42 | 2A | 0 to 63 | Ramp 2 Rate | ---+-----+-------------+------------------------+------------------------------ 43 | 2B | 0 to 3 | Ramp 2 Mode | 0 = Single Trigger | | | | 1 = Multiple Trigger | | | | 2 = External Trigger | | | | 3 = External Gated ---+-----+-------------+------------------------+------------------------------ 44 | 2C | 0 to 63 | Portamento Initial | | | | Rate | ---+-----+-------------+------------------------+------------------------------ 45 | 2D | -63 to +63 | Portamento Rate by | | | | Velocity Amt | ---+-----+-------------+------------------------+------------------------------ 46 | 2E | 0 to 3 | Portamento Mode | 0 = Constant Speed | | | | 1 = Constant Time | | | | 2 = Exponential | | | | 3 = Exponential | | | | (difference between 2 and 3 | | | | not known) ---+-----+-------------+------------------------+------------------------------ 47 | 2F | 0 to 1 | Legato Portamento | | | | Enable | ---+-----+-------------+------------------------+------------------------------ 48 | 30 | 0 to 3 | Keyboard Mode | 0 = Reassign same note | | | | 1 = Rotate | | | | 2 = Unison | | | | 3 = Reassign w/Rob ---+-----+-------------+------------------------+------------------------------ 49 | 31 | | unused | ---+-----+-------------+------------------------+------------------------------ 50 | 32 | 0 to 63 | Env1 Initial Delay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 51 | 33 | 0 to 63 | Env1 Initial Attack | | | | Time | ---+-----+-------------+------------------------+------------------------------ 52 | 34 | 0 to 63 | Env1 Initial Decay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 53 | 35 | 0 to 63 | Env1 Initial Sustain | | | | Level | ---+-----+-------------+------------------------+------------------------------ 54 | 36 | 0 to 63 | Env1 Initial Release | | | | Time | ---+-----+-------------+------------------------+------------------------------ 55 | 37 | 0 to 63 | Env1 Initial Amplitude | ---+-----+-------------+------------------------+------------------------------ 56 | 38 | -63 to +63 | Env1 Amplitude by | | | | Velocity Amount | ---+-----+-------------+------------------------+------------------------------ 57 | 39 | 0 to 7 | Env1 Trigger Mode | bit 2 = External Trigger | | | | bit 1 = Multi Trigger | | | | bit 0 = Reset ---+-----+-------------+------------------------+------------------------------ 58 | 3A | 0 to 3 | Env1 Mode | bit 1 = Free Run | | | | bit 0 = DADR Mode ---+-----+-------------+------------------------+------------------------------ 59 | 3B | 0 to 3 | Env1 LFO Trigger Mode | bit 1 = LFO trigger | | | | bit 0 = Gated ---+-----+-------------+------------------------+------------------------------ 60 | 3C | 0 to 63 | Env2 Initial Delay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 61 | 3D | 0 to 63 | Env2 Initial Attack | | | | Time | ---+-----+-------------+------------------------+------------------------------ 62 | 3E | 0 to 63 | Env2 Initial Decay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 63 | 3F | 0 to 63 | Env2 Initial Sustain | | | | Level | ---+-----+-------------+------------------------+------------------------------ 64 | 40 | 0 to 63 | Env2 Initial Release | | | | Time | ---+-----+-------------+------------------------+------------------------------ 65 | 41 | 0 to 63 | Env2 Initial Amplitude | ---+-----+-------------+------------------------+------------------------------ 66 | 42 | -63 to +63 | Env2 Amplitude by | | | | Velocity Amount | ---+-----+-------------+------------------------+------------------------------ 67 | 43 | 0 to 7 | Env2 Trigger Mode | bit 2 = External Trigger | | | | bit 1 = Multi Trigger | | | | bit 0 = Reset ---+-----+-------------+------------------------+------------------------------ 68 | 44 | 0 to 3 | Env2 Mode | bit 1 = Free Run | | | | bit 0 = DADR Mode ---+-----+-------------+------------------------+------------------------------ 69 | 45 | 0 to 3 | Env2 LFO Trigger Mode | bit 1 = LFO trigger | | | | bit 0 = Gated ---+-----+-------------+------------------------+------------------------------ 70 | 46 | 0 to 63 | Env3 Initial Delay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 71 | 47 | 0 to 63 | Env3 Initial Attack | | | | Time | ---+-----+-------------+------------------------+------------------------------ 72 | 48 | 0 to 63 | Env3 Initial Decay | | | | Time | ---+-----+-------------+------------------------+------------------------------ 73 | 49 | 0 to 63 | Env3 Initial Sustain | | | | Level | ---+-----+-------------+------------------------+------------------------------ 74 | 4A | 0 to 63 | Env3 Initial Release | | | | Time | ---+-----+-------------+------------------------+------------------------------ 75 | 4B | 0 to 63 | Env3 Initial Amplitude | ---+-----+-------------+------------------------+------------------------------ 76 | 4C | -63 to +63 | Env3 Amplitude by | | | | Velocity Amount | ---+-----+-------------+------------------------+------------------------------ 77 | 4D | 0 to 7 | Env3 Trigger Mode | bit 2 = External Trigger | | | | bit 1 = Multi Trigger | | | | bit 0 = Reset ---+-----+-------------+------------------------+------------------------------ 78 | 4E | 0 to 3 | Env3 Mode | bit 1 = Free Run | | | | bit 0 = DADR Mode ---+-----+-------------+------------------------+------------------------------ 79 | 4F | 0 to 3 | Env3 LFO Trigger Mode | bit 1 = LFO trigger | | | | bit 0 = Gated ---+-----+-------------+------------------------+------------------------------ 80 | 50 | 0 to 63 | LFO1 Init Freq | ---+-----+-------------+------------------------+------------------------------ 81 | 51 | -63 to +63 | LFO1 Freq by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 82 | 52 | 0 to 7 | LFO1 Waveform | ---+-----+-------------+------------------------+------------------------------ 83 | 53 | 0 to 31 | LFO1 Retrigger Point | 0 = 0 radians | | | | LSB = pi/16 radians ---+-----+-------------+------------------------+------------------------------ 84 | 54 | 0 to 63 | LFO1 Init Amplitude | ---+-----+-------------+------------------------+------------------------------ 85 | 55 | -63 to +63 | LFO1 Amplitude by | | | | Ramp 1 Amt | ---+-----+-------------+------------------------+------------------------------ 86 | 56 | 0 to 3 | LFO1 Trigger | 0 = No Trigger | | | | 1 = Single Trigger | | | | 2 = Multi Trigger | | | | 3 = External Trigger ---+-----+-------------+------------------------+------------------------------ 87 | 57 | 0 to 1 | LFO1 Lag (Portamento) | | | | Enable | ---+-----+-------------+------------------------+------------------------------ 88 | 58 | 0 to 31 | LFO1 Sampled Source | | | | Number | ---+-----+-------------+------------------------+------------------------------ 89 | 59 | | unused | ---+-----+-------------+------------------------+------------------------------ 90 | 5A | 0 to 63 | LFO1 Init Freq | ---+-----+-------------+------------------------+------------------------------ 91 | 5B | -63 to +63 | LFO1 Freq by Mono | | | | Pressure Amt | ---+-----+-------------+------------------------+------------------------------ 92 | 5C | 0 to 7 | LFO1 Waveform | ---+-----+-------------+------------------------+------------------------------ 93 | 5D | 0 to 31 | LFO1 Retrigger Point | 0 = 0 radians | | | | LSB = pi/16 radians ---+-----+-------------+------------------------+------------------------------ 94 | 5E | 0 to 63 | LFO1 Init Amplitude | ---+-----+-------------+------------------------+------------------------------ 95 | 5F | -63 to +63 | LFO1 Amplitude by | | | | Ramp 1 Amt | ---+-----+-------------+------------------------+------------------------------ 96 | 60 | 0 to 3 | LFO1 Trigger | 0 = No Trigger | | | | 1 = Single Trigger | | | | 2 = Multi Trigger | | | | 3 = External Trigger ---+-----+-------------+------------------------+------------------------------ 97 | 61 | 0 to 1 | LFO1 Lag (Portamento) | | | | Enable | ---+-----+-------------+------------------------+------------------------------ 98 | 62 | 0 to 31 | LFO1 Sampled Source | | | | Number | ---+-----+-------------+------------------------+------------------------------ 99 | 63 | | unused | ---+-----+-------------+------------------------+------------------------------ [the following is taken from a previous discussion about Matrix-6 sys-ex] ... Anyway, I sent a raw byte sequence into the Matrix-6R in an attempt to make it accept a negative value (by setting bit 7 in the "value" byte), and that didn't work either. The finger would seem to be pointing at Oberheim, since I've tried practically every bit combination in the "value" byte, and no negative value was received. It may be that it is impossible to send negative values to the Matrix-6R via MIDI remote parameter control. I'm still looking into it. Interesting Oberheim trivium: it turns out that the implementation of Matrix Modulation involves a "mini-compile" each time you adjust the Matrix Modulation settings. Another interesting bit of info: The current location of the 6809 source code for the Matrix-6R is unknown. The original file resides on a Hewlett-Packard hard disk drive for some obsolete Hewlett-Packard minicomputer. The disk drive is known to have been dropped on the floor (and is presumably inoperable). The location of the backup tapes, if they even exist, is unknown. In short, the source code [assembly code] is missing. I have not been able to make any of the Matrix Modulation remote parameter edit commands work with the Matrix-6R. Perhaps I don't have the Matrix-6R in the proper mode, but I think I tried everything. Finally, I have noticed that certain parameters respond sluggishly to remote parameter edit commands; most of these are 7-bit values. Here are the ones that are sluggish: DCO 1 Frequency by LFO 1 Amount DCO 1 Pulse Width by LFO 2 Amount DCO 2 Frequency by LFO 1 Amount DCO 2 Pulse Width by LFO 2 Amount VCF Initial Frequency VCF Frequency by Envelope 1 Amount VCF Frequency by Channel Pressure Amount VCA 1 (Exponentil) Unit Amount VCA 1 by Velocity Amount VCF FM Amount by Envelope 3 Amount VCF FM Amount by Channel Pressure Amount Portamento Rate by Velocity Amount Portamento Mode Envelope 1 Amplitude by Velocity Amount There may be others, but these are ones that I marked in ink on my "Matrix-6 Parameters" table that I use with the PC-1600 to figure out which slider is routed to what. The workaround for VCF frequency (which is a parameter that I like to adjust with some temporal precision) as well as any other parameter that can be adjusted via a Matrix Modulation routing is to devote a Matrix Modulation channel to it and dedicate a Lever to it. Sadly, only Levers 1, 2, and 3 are available. MIDI almost seems like an afterthought on the Matrix-6/6R. Supposedly Gibson is considering reviving Oberheim; we'll see. -- +--------+ |John | "Who says MS-DOS isn't multitasking? You |Davison | just need one box per task!" +--------+ -- Mike Meyer, mwmeyer@ingres.com From analogue-request@magnus.acs.ohio-state.edu Tue Aug 31 09:28 WET 1993 Received: from quark.magnus.acs.ohio-state.edu by sihp03.si.estec.esa.nl with SMTP (16.7/16.2) id AA24525; Tue, 31 Aug 93 09:28:33 +0100 Return-Path: Received: by quark.magnus.acs.ohio-state.edu (5.65/3.910213) id AA12033; Tue, 31 Aug 93 02:50:34 -0400 Errors-To: analogue-request@magnus.acs.ohio-state.edu Sender: analogue-request@magnus.acs.ohio-state.edu Received: from nic.lth.se by quark.magnus.acs.ohio-state.edu (5.65/3.910213) id AA12028; Tue, 31 Aug 93 02:50:32 -0400 Received: from axisab.axis.se by mail.lth.se with bsmtp (Smail3.1.28.1 #2) id m0oXPXs-000MTpC; Tue, 31 Aug 93 08:50 MET DST Received: by axisab.axis.se (/\==/\ Smail3.1.25.1 #25.6) id ; Tue, 31 Aug 93 08:46 MET DST Message-Id: From: ricard@axis.se (Ricard Wolf) Date: Tue, 31 Aug 93 08:46:17 MET DST X-Mailer: Mail User's Shell (7.0.1 12/13/89) To: "Nathan F. Janette" , analogue@magnus.acs.ohio-state.edu Subject: Re: Rack-mount Synths? Status: RO > > The '1000 is a non-splittable version of the Matrix-6R, and > it uses > > solely digital tuning, which at least to my ears sounds > sligthly more > > static than the 6R's analogue oscs. > > > > The MS-6 uses the same 'synth engine', i.e. sound chips as > the Matrix-6 > > and Expander do (Curtis 3396), > > I thought the Matrix-6(R) used DCOs, which is one of the > reasons it cost > so much less than an Xpander. A Matrix-6(R) sure sounds > different than an > Xpander to me! (Says Nathan, justifying the cost of his > Xpander) Yes, true, definitely. The 3396 is a vcf-vca-and-half-a-dco-chip. The '1000 and the '6/6R and MS-6 all use DCO's, in the sense that the oscillator frequency is digitally counted down from a master hi-frequency oscillator. However, in the '1000 and MS-6, this oscillator is common to all voices and oscillators, whereas the '6/6R uses separate hi-freq-oscillators for the two oscillators in a voice, hence a more 'analog' (i.e. random) pitch shift between the oscillators. The Xpander/Matrix-12 uses true VCO's, i.e. an audio frequency oscillator generating its pitch from a control voltage. Apart from the difference in oscillators, I think the Xpander uses different sound chips las well (anyone verify this?) /Ricard -- Ricard Wolf / | \ / | /- email: ricard@axis.se Axis Communications AB /__| \/ | \__ uucp: axisab.se!ricard S - 223 70 LUND / | /\ | \ Tel: +46 46 19 18 63 SWEDEN / | / \ | \__/ Fax: +46 46 13 61 30 -- "This is the age of Showbusiness - get an image fix" -- From axisab!ricard@lth.se Thu Sep 2 13:49 WET 1993 Received: from nic.lth.se by sihp03.si.estec.esa.nl with SMTP (16.7/16.2) id AA28867; Thu, 2 Sep 93 13:49:22 +0100 Return-Path: Received: from axisab.axis.se by mail.lth.se with bsmtp (Smail3.1.28.1 #2) id m0oYD4m-000MVTC; Thu, 2 Sep 93 13:43 MET DST Received: by axisab.axis.se (/\==/\ Smail3.1.25.1 #25.6) id ; Thu, 2 Sep 93 13:03 MET DST Message-Id: From: ricard@axis.se (Ricard Wolf) Date: Thu, 2 Sep 93 13:03:25 MET DST X-Mailer: Mail User's Shell (7.0.1 12/13/89) To: Andrea TONI Subject: Re: Good old analog FX boxes? Freeway Jam? and Rack-mount Synths? Cc: analogue@magnus.acs.ohio-state.edu Status: RO > > The '1000 is a non-splittable version of the Matrix-6R, and it uses solely > > digital tuning, which at least to my ears sounds sligthly more static than the > > 6R's analogue oscs. > ^^^^^^^^^^^^^ > Hi Ricard, > Woshhh !! the 6R Osc are as DCO as the 1000 as far as I remember .. Well, yes, they're DCO's in one sense, but in the 6R the frequency for the two oscillators is derived from two seperate non-synced high frequency oscillators (actually four I think, since it is splittable) so two oscs in a voice are never really synced...whereas the 1000 derives its frequencies from a common oscillator - crystal controlled I think, as opposed to the 6/6R. > DO you really think the 6R sounds different from the 1000 ? I haven't made a lot of tests, but I did seem to find the 1000 a bit more 'static'. > And btw .. I read your comment about the DX7 and the II .. > does your opinion apply to the TX802 as well ?? Yes, probably. It most definitely uses the same chips as the 'II. > I always tought that the new DAC on the II series cleans up > the final out and improve the dynamic range a lot ? > Isn't it .. ?? Yes, it does, but that's not what I was getting at. Somehow, you loose most of the 'cutting edge' that the old DX-7 has, and a lot of the 'dirtyness' in the sound seems to come from the FM process, not the DAC. /Ricard -- Ricard Wolf / | \ / | /- email: ricard@axis.se Axis Communications AB /__| \/ | \__ uucp: axisab.se!ricard S - 223 70 LUND / | /\ | \ Tel: +46 46 19 18 63 SWEDEN / | / \ | \__/ Fax: +46 46 13 61 30 -- "All I want to do is see you, don't you know that it's true" -- Article: 11956 of rec.music.makers.synth Newsgroups: rec.music.makers.synth Path: wg!esatst!sun4nl!EU.net!uunet!elroy.jpl.nasa.gov!decwrl!parc!xerox!beesley From: beesley@parc.xerox.com (Ken Beesley) Subject: Matrix-6r questions Message-ID: <1993Nov19.032957.20956@parc.xerox.com> Sender: news@parc.xerox.com Organization: Xerox PARC Date: Fri, 19 Nov 1993 03:29:57 GMT Lines: 29 If you are a guru who knows all about the Matrix-6r, I'd really appreciate your help. I'm thinking of buying one for use with a wind controller (the Yamaha WX7). I have questions like the following: 1. How easy/hard is it to layer two patches together? 2. I believe that there is a portamento mode, called something like "constant time" portamento, that takes the same amount of time slurring between two notes regardless of the interval involved. Is this true? Can this Portamento Time be controlled? How? 3. I believe that there is a "fingered portamento" mode that does the slurring only if the next key is pressed before releasing the previous one. Other notes, played separately, do not get slurred. I also believe that for this fingered portamento mode you have to be in Mono mode with all six oscillators "stacked" on one note. Is this true? 4. Can you have fingered portamento and constant time portamento simultaneously? 5. Can you, simultaneously, layer two patches, have fingered portamento and constant-time portamento? This would yield one really fat sound. Portamentos would be triggered only when a new Note-ON is received before the previous note's Note-OFF, and the slur between any two notes would take the same amount of time, regardless of the interval. Possible? Thanks, Ken Article: 11960 of rec.music.makers.synth Newsgroups: rec.music.makers.synth Path: wg!esatst!sun4nl!EU.net!uunet!olivea!sgigate.sgi.com!fido.asd.sgi.com!zuni.esd.sgi.com!prophet.esd.sgi.com!gints From: gints@prophet.esd.sgi.com (Gints Klimanis) Subject: Re: Matrix-6r questions Message-ID: Sender: news@zuni.esd.sgi.com (Net News) Organization: Silicon Graphics, Inc. References: <1993Nov19.032957.20956@parc.xerox.com> Date: Sat, 20 Nov 93 01:10:14 GMT Lines: 45 In article <1993Nov19.032957.20956@parc.xerox.com>, beesley@parc.xerox.com (Ken Beesley) writes: |> |> If you are a guru who knows all about the Matrix-6r, I'd really appreciate |> your help. I'm thinking of buying one for use with a wind controller (the |> Yamaha WX7). I have questions like the following: |> |> 1. How easy/hard is it to layer two patches together? Cake. Put your M6 into split mode, assign lower and upper patch the same number and set the key limits such that the lower patch upper limit is at maximum value and upper patch limit at minimum value. This way, you have two patches spanning the entire MIDI note range. Unfortunately, the voice allocations are in groups of two, so for a layer, one patch will get 4 voices while the other gets 2. If you find your layered patch way out of tune, likely due to LFO pitch modulation, you'll have to go back into Single mode to edit your patch such that the LFO's are synchronized. The value should not be OFF. If your layered patches sound HUGE, reduced the number of oscillators per voice in the basic patch by switching the #06 Wave Select parameter to OFF. |> 2. I believe that there is a portamento mode, called something like |> "constant time" portamento, that takes the same amount of time slurring |> between two notes regardless of the interval involved. Is this true? Can |> this Portamento Time be controlled? How? Have little experience with wind controllers. The portamento time may be dynamically modulated by any MIDI controller via the Matrix modulation. You may choose from linear, constant or exponential portamento. |> 3. I believe that there is a "fingered portamento" mode that does the |> slurring only if the next key is pressed before releasing the previous one. |> Other notes, played separately, do not get slurred. I also believe that for |> this fingered portamento mode you have to be in Mono mode with all six |> oscillators "stacked" on one note. Is this true? The "fingered" portamento is obtained by engaging Single mode parameter #47 Legato Portamento. You need to be in mono (Unison) keyboard mode ito use this parameter. In Split mode, you can control the number of oscillators staced in MONO mode by changing the voice allocation per patch: 2, 4, 6. |> 4. Can you have fingered portamento and constant time portamento |> simultaneously? You can have fingered portamento with linear, constant or exponential portamento. |> 5. Can you, simultaneously, layer two patches, have fingered portamento and |> constant-time portamento? This would yield one really fat sound. Portamentos |> would be triggered only when a new Note-ON is received before the previous note's |> Note-OFF, and the slur between any two notes would take the same amount of time, |> regardless of the interval. Possible? In your Split Mode layer, set one patch to mono mode with Legato portamento on and another patch with legato portamento off. Hope I've helped.