OBERHEIM SYNTH group photo

Yahoo Groups archive

OBERHEIM SYNTH

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

Thread

Dream on, geek: The Überheim Matrix-1000 Project

Dream on, geek: The Überheim Matrix-1000 Project

2014-07-07 by jan@...

This is just a bit of "What if". Please treat it as a thought experiment.


I love my Matrix-1000. I love 8-bit machinery. And I love modding things, finding simple hacks that make things better without taking large chunks of your lifetime.


Good starting point: I'll have to take apart my Obie anyway; the battery will have to be replaced sometime, and there's the v1.13 bugfix firmware update by Fetz.


But why stop there? I think there may be a couple of things you could do to enhance the M1000's scope, following these simple rule:

  1. Tradition: Any modification has to be downward compatible to existing Matrix sounds.
  2. Simplicity: It has to be simple.
  3. Aesthetics: It has to fit the original housing.
  4. Incrementalism: Even if it's something big, you'd start small and move on step by step.
  5. Pragmatism: If it already exists, don't bother building it, buy it.
The reason for the last rule is time - there's never enough of it, at least with me. So to keep moving, it is vital to be able to stop at any point and still have a working unit.

So these are the things I could come up with that might be done.:
  1. A per-voice ring modulator. Switched on by an unused bit in, say, the Unison parameter.
  2. Switching the filter from 4-pole to 2-pole.
  3. Making the M1000 respond in real-time.
OK, Number 3 seems to violate my rules of simplicity and incrementalism - this is a HUGE project, or so it seems. The M1000 is an old beast with a tired heart - the 6809 processor won't be able to respond any faster. But maybe you can use 21st century technology to assist it - use a modern single-chip system, maybe even something like a Raspberry Pi, and have it run the original firmware, based on the technology behind the MAME game machine emulator. Then go ahead and replace the time-consuming modulation calculation routines by native code. Tweak, repeat.

The result wouldn't be a different synth. Anybody who wants to build a totally different synth may go and buy his or her fucking Eurorack system. But it would be a better synth. An object of desire.

So what would you dream up for the Überheim Matrix-1000?

R: [oberheim] Dream on, geek: The Überheim M atrix-1000 Project

2014-07-10 by F.Manduca

Great idea,pal. I would like to see implemented a thing that only Matrix6 seems to have ( afaik ) comparing with our little puppy: filter and resonance discrete for each of its 6 voices.... It makes the sound fatter, more organic, as I can hear on my analog-filtered Korg DW8000.Chorus?
Francesco.
--------------------------------------------
Mar 8/7/14, jan@eggers-elektronik.de [oberheim] <oberheim@yahoogroups.com> ha scritto:

 Oggetto: [oberheim] Dream on, geek: The Überheim Matrix-1000 Project
 A: oberheim@yahoogroups.com
 Data: Martedì 8 luglio 2014, 00:50
 
 
  
 
 
 
   
 
 
     
       
       
       This is just a bit of "What if".
 Please treat it as a thought experiment. 
 I love my Matrix-1000. I love 8-bit
 machinery. And I love modding things, finding simple hacks
 that make things better without taking large chunks of your
 lifetime.
 Good starting point:
 I'll have to take apart my Obie anyway; the battery will
 have to be replaced sometime, and there's the v1.13
 bugfix firmware update by Fetz. 
 But why stop there? I think there may be
 a couple of things you could do to enhance the M1000's
 scope, following these simple
 rule: Tradition: Any modification has
 to be downward compatible to existing Matrix
 sounds. 
 Simplicity: It has to be
 simple. 
 Aesthetics: It has to fit the
 original housing. 
 Incrementalism: Even if
 it's something big, you'd start small and move on
 step by step.
 Pragmatism: If it already
 exists, don't bother building it, buy it.  
 The reason for the last rule is
 time - there's never enough of it, at least with me. So
 to keep moving, it is vital to be able to stop at any point
 and still have a working unit. 
 So these are the things I could come
 up with that might be done.:A per-voice ring modulator.
 Switched on by an unused bit in, say, the Unison
 parameter. 
 Switching the
 filter from 4-pole to 2-pole. Making the M1000
 respond in real-time. OK, Number 3 seems to
 violate my rules of simplicity and incrementalism - this is
 a HUGE project, or so it seems. The M1000 is an old beast
 with a tired heart - the 6809 processor won't be able to
 respond any faster. But maybe you can use 21st century
 technology to assist it - use a modern single-chip system,
 maybe even something like a Raspberry Pi, and have it run
 the original firmware, based on the technology behind the
 MAME game machine emulator. Then go ahead and replace the
 time-consuming modulation calculation routines by native
 code. Tweak, repeat. 
 The result wouldn't be a
 different synth. Anybody who wants to build a totally
 different synth may go and buy his or her fucking Eurorack
 system. But it would be a better synth. An object of
 desire. 
 So what
 would you dream up for the Überheim
 Matrix-1000?
 
     
      
 
     
     
 
 
 
 #yiv7667374665 #yiv7667374665 --

R: [oberheim] Dream on, geek: The Überheim M atrix-1000 Project

2014-07-10 by F.Manduca

Sorry.
I remeber now that probably each CEM chip has a resonance and cutoff section on its own... Am I wrong? So the less organic sound on the M1000 is an issue of the "narrow body" Cem instead of the "regular sized" CEM found on the Matrix6. Or maybe a digital control of the filter on the Matrix 1000 makes them to work too "tight", making them to sound a little poorer...As a cat on a leash looses personality... :-)
Anyway, googleing around, I found an interesting thing about the Cheetah M6, that uses the same narrow body CEM 3396 chips of the Matrix1000. And there is the chance, as the site keeper writes, to add some extra waveforms on the Cheetah. Maybe also on Matrix 1000?
Here are the pages that maybe could be useful to You:

http://www.maad.net/ms6/

http://wolzow.mindworks.ee/analog/m1k-hardware.htm

Just write me what do You think, I know it's too easy to suggest something hard, when You have not to work upon it. But, who knows...?
Cheers,
Francesco.
--------------------------------------------
Gio 10/7/14, F.Manduca <resistenzaaoltranza@...> ha scritto:

 Oggetto: R: [oberheim] Dream on, geek: The Überheim Matrix-1000 Project
 A: oberheim@yahoogroups.com
 Data: Giovedì 10 luglio 2014, 15:31
 
 Great idea,pal. I would like to see
 implemented a thing that only Matrix6 seems to have ( afaik
 ) comparing with our little puppy: filter and resonance
 discrete for each of its 6 voices.... It makes the sound
 fatter, more organic, as I can hear on my analog-filtered
 Korg DW8000.Chorus?
 Francesco.
 --------------------------------------------
 Mar 8/7/14, jan@...
 [oberheim] <oberheim@yahoogroups.com>
 ha scritto:
 
  Oggetto: [oberheim] Dream on, geek: The Überheim
 Matrix-1000 Project
  A: oberheim@yahoogroups.com
  Data: Martedì 8 luglio 2014, 00:50
  
  
   
  
  
  
    
  
  
      
        
        
        This is just a bit of "What
 if".
  Please treat it as a thought experiment. 
  I love my Matrix-1000. I love 8-bit
  machinery. And I love modding things, finding simple hacks
  that make things better without taking large chunks of
 your
  lifetime.
  Good starting point:
  I'll have to take apart my Obie anyway; the battery will
  have to be replaced sometime, and there's the v1.13
  bugfix firmware update by Fetz. 
  But why stop there? I think there may be
  a couple of things you could do to enhance the M1000's
  scope, following these simple
  rule: Tradition: Any modification has
  to be downward compatible to existing Matrix
  sounds. 
  Simplicity: It has to be
  simple. 
  Aesthetics: It has to fit the
  original housing. 
  Incrementalism: Even if
  it's something big, you'd start small and move on
  step by step.
  Pragmatism: If it already
  exists, don't bother building it, buy it.  
  The reason for the last rule is
  time - there's never enough of it, at least with me. So
  to keep moving, it is vital to be able to stop at any
 point
  and still have a working unit. 
  So these are the things I could come
  up with that might be done.:A per-voice ring modulator.
  Switched on by an unused bit in, say, the Unison
  parameter. 
  Switching the
  filter from 4-pole to 2-pole. Making the M1000
  respond in real-time. OK, Number 3 seems to
  violate my rules of simplicity and incrementalism - this
 is
  a HUGE project, or so it seems. The M1000 is an old beast
  with a tired heart - the 6809 processor won't be able to
  respond any faster. But maybe you can use 21st century
  technology to assist it - use a modern single-chip system,
  maybe even something like a Raspberry Pi, and have it run
  the original firmware, based on the technology behind the
  MAME game machine emulator. Then go ahead and replace the
  time-consuming modulation calculation routines by native
  code. Tweak, repeat. 
  The result wouldn't be a
  different synth. Anybody who wants to build a totally
  different synth may go and buy his or her fucking Eurorack
  system. But it would be a better synth. An object of
  desire. 
  So what
  would you dream up for the Überheim
  Matrix-1000?
  
      
       
  
      
      
  
  
  
  #yiv7667374665 #yiv7667374665 --

Re: Dream on, geek: The Überheim Matrix-1000 Project

2014-07-10 by soundprogramer@...

I agree with this projet.

I´ll ad this new especifications:
1º Programable Unison mode with detuning
2º New LFO with faster speed and waveforms, single or poly mode trigering
3º New modulations source + destinations
4º Oscilator waveform phase switch
5º New osc FM mode
6º Better Midi, faster

Chorus will be a super bonus + Delay :)

Re: R: [oberheim] Dream on, geek: The Überhe im Matrix-1000 Project

2014-07-10 by PAUL BURTON

Actually, it has little to do with the narrow vs. wide debate as the two IC's are the same circuit, and this has been debunked. The reality is that the m1000's DCO's are all clocked to a division of the CPU, and the M6 has an additional set of free running clock sources to clock some of the DCO's pitch. This adds a subtle amount of beating/drift between the two OSC's in each voice. It's hardly a massive distinction, and can be resolved somewhat with clever use of the MOD matrix anyway.






On Thursday, July 10, 2014 10:26 AM, "'F.Manduca' resistenzaaoltranza@... [oberheim]" <oberheim@yahoogroups.com> wrote:





 
Sorry.
I remeber now that probably each CEM chip has a resonance and cutoff section on its own... Am I wrong? So the less organic sound on the M1000 is an issue of the "narrow body" Cem instead of the "regular sized" CEM found on the Matrix6. Or maybe a digital control of the filter on the Matrix 1000 makes them to work too "tight", making them to sound a little poorer...As a cat on a leash looses personality... :-)

Anyway, googleing around, I found an interesting thing about the Cheetah M6, that uses the same narrow body CEM 3396 chips of the Matrix1000. And there is the chance, as the site keeper writes, to add some extra waveforms on the Cheetah. Maybe also on Matrix 1000?
Here are the pages that maybe could be useful to You:


http://www.maad.net/ms6/


http://wolzow.mindworks.ee/analog/m1k-hardware.htm


Just write me what do You think, I know it's too easy to suggest something hard, when You have not to work upon it. But, who knows...?
Cheers,
Francesco.
--------------------------------------------
Gio 10/7/14, F.Manduca <resistenzaaoltranza@...> ha scritto:


Oggetto: R: [oberheim] Dream on, geek: The Überheim Matrix-1000 Project
A: oberheim@yahoogroups.com
Data: Giovedì 10 luglio 2014, 15:31


Great idea,pal. I would like to see
implemented a thing that only Matrix6 seems to have ( afaik
) comparing with our little puppy: filter and resonance
discrete for each of its 6 voices.... It makes the sound
fatter, more organic, as I can hear on my analog-filtered
Korg DW8000.Chorus?
Francesco.
--------------------------------------------
Mar 8/7/14, jan@...
[oberheim] <oberheim@yahoogroups.com>
ha scritto:


Oggetto: [oberheim] Dream on, geek: The Überheim
Matrix-1000 Project
A: oberheim@yahoogroups.com
Data: Martedì 8 luglio 2014, 00:50




 






   




     
       
       
       This is just a bit of "What
if".
Please treat it as a thought experiment. 
I love my Matrix-1000. I love 8-bit
machinery. And I love modding things, finding simple hacks
that make things better without taking large chunks of
your
lifetime.
Good starting point:
I'll have to take apart my Obie anyway; the battery will
have to be replaced sometime, and there's the v1.13
bugfix firmware update by Fetz. 
But why stop there? I think there may be
a couple of things you could do to enhance the M1000's
scope, following these simple
rule: Tradition: Any modification has
to be downward compatible to existing Matrix
sounds. 
Simplicity: It has to be
simple. 
Aesthetics: It has to fit the
original housing. 
Incrementalism: Even if
it's something big, you'd start small and move on
step by step.
Pragmatism: If it already
exists, don't bother building it, buy it.  
The reason for the last rule is
time - there's never enough of it, at least with me. So
to keep moving, it is vital to be able to stop at any
point
and still have a working unit. 

So these are the things I could come
up with that might be done.:A per-voice ring modulator.
Switched on by an unused bit in, say, the Unison
parameter. 
Switching the
filter from 4-pole to 2-pole. Making the M1000

respond in real-time. OK, Number 3 seems to
violate my rules of simplicity and incrementalism - this
is
a HUGE project, or so it seems. The M1000 is an old beast
with a tired heart - the 6809 processor won't be able to
respond any faster. But maybe you can use 21st century
technology to assist it - use a modern single-chip system,
maybe even something like a Raspberry Pi, and have it run
the original firmware, based on the technology behind the
MAME game machine emulator. Then go ahead and replace the
time-consuming modulation calculation routines by native
code. Tweak, repeat. 
The result wouldn't be a
different synth. Anybody who wants to build a totally

different synth may go and buy his or her fucking Eurorack
system. But it would be a better synth. An object of
desire. 
So what
would you dream up for the Überheim
Matrix-1000?


     
     


     
     






#yiv7667374665 #yiv7667374665 --

Re: Dream on, geek: The Überheim Matrix-1000 Project

2014-07-11 by jan@...

Off topic: My favourite trick to fatten up Unison is modulating DCO1/2 with random LFO. As the LFOs are created per-voice, the voices detune asynchronously - this adds kind of an analog drift feel to it. If you can spare an LFO, that is ;)

Re: [oberheim] Dream on, geek: The Überheim Matrix- 1000 Project

2014-07-11 by analog gear

I don't quite follow this per-voice argument. Everything that happens in software (LFOs, RAMPs, ENVelopes etc.) is per-voice basis. Every signal that is generated in software is calculated separately for each voice, and the signal generation code is virtually identical to M6 (and 6R), so no hidden secrets here. The only exception is global Vibrato that is 'shared' between voices. Everything that happens in hardware (OSCs, VCF etc.) is one-chip-per-voice anyway.

Another myth that has been circling around for at least 25 years is about the wide body CEM3396s versus narrow body ones. And it has been debunked for a zillion times. I think even Doug Curtis himself commented on this long time ago (or was it Dave Smith?) saying it's not true. The only difference soundwise comes from timer clock circuitry: while on M1000 all timers are driven by CPU clock M6 has three separate LC oscillators resulting in less 'clinical' clock and some minimal drift that is usually perceived as 'more organic' or 'phatter' sound.


Show quoted textHide quoted text
On Thu, Jul 10, 2014 at 5:23 PM, 'F.Manduca' resistenzaaoltranza@... [oberheim] <oberheim@yahoogroups.com> wrote:

Sorry.
I remeber now that probably each CEM chip has a resonance and cutoff section on its own... Am I wrong? So the less organic sound on the M1000 is an issue of the "narrow body" Cem instead of the "regular sized" CEM found on the Matrix6. Or maybe a digital control of the filter on the Matrix 1000 makes them to work too "tight", making them to sound a little poorer...As a cat on a leash looses personality... :-)
Anyway, googleing around, I found an interesting thing about the Cheetah M6, that uses the same narrow body CEM 3396 chips of the Matrix1000. And there is the chance, as the site keeper writes, to add some extra waveforms on the Cheetah. Maybe also on Matrix 1000?
Here are the pages that maybe could be useful to You:

http://www.maad.net/ms6/

http://wolzow.mindworks.ee/analog/m1k-hardware.htm

Just write me what do You think, I know it's too easy to suggest something hard, when You have not to work upon it. But, who knows...?
Cheers,
Francesco.
--------------------------------------------
Gio 10/7/14, F.Manduca <resistenzaaoltranza@...> ha scritto:

Oggetto: R: [oberheim] Dream on, geek: The Überheim Matrix-1000 Project
A: oberheim@yahoogroups.com
Data: Giovedì 10 luglio 2014, 15:31



Great idea,pal. I would like to see
implemented a thing that only Matrix6 seems to have ( afaik
) comparing with our little puppy: filter and resonance
discrete for each of its 6 voices.... It makes the sound
fatter, more organic, as I can hear on my analog-filtered
Korg DW8000.Chorus?
Francesco.
--------------------------------------------
Mar 8/7/14, jan@eggers-elektronik.de
[oberheim] <oberheim@yahoogroups.com>
ha scritto:

Oggetto: [oberheim] Dream on, geek: The Überheim
Matrix-1000 Project
A: oberheim@yahoogroups.com
Data: Martedì 8 luglio 2014, 00:50












This is just a bit of "What
if".
Please treat it as a thought experiment.
I love my Matrix-1000. I love 8-bit
machinery. And I love modding things, finding simple hacks
that make things better without taking large chunks of
your
lifetime.
Good starting point:
I'll have to take apart my Obie anyway; the battery will
have to be replaced sometime, and there's the v1.13
bugfix firmware update by Fetz.
But why stop there? I think there may be
a couple of things you could do to enhance the M1000's
scope, following these simple
rule: Tradition: Any modification has
to be downward compatible to existing Matrix
sounds.
Simplicity: It has to be
simple.
Aesthetics: It has to fit the
original housing.
Incrementalism: Even if
it's something big, you'd start small and move on
step by step.
Pragmatism: If it already
exists, don't bother building it, buy it.
The reason for the last rule is
time - there's never enough of it, at least with me. So
to keep moving, it is vital to be able to stop at any
point
and still have a working unit.
So these are the things I could come
up with that might be done.:A per-voice ring modulator.
Switched on by an unused bit in, say, the Unison
parameter.
Switching the
filter from 4-pole to 2-pole. Making the M1000
respond in real-time. OK, Number 3 seems to
violate my rules of simplicity and incrementalism - this
is
a HUGE project, or so it seems. The M1000 is an old beast
with a tired heart - the 6809 processor won't be able to
respond any faster. But maybe you can use 21st century
technology to assist it - use a modern single-chip system,
maybe even something like a Raspberry Pi, and have it run
the original firmware, based on the technology behind the
MAME game machine emulator. Then go ahead and replace the
time-consuming modulation calculation routines by native
code. Tweak, repeat.
The result wouldn't be a
different synth. Anybody who wants to build a totally
different synth may go and buy his or her fucking Eurorack
system. But it would be a better synth. An object of
desire.
So what
would you dream up for the Überheim
Matrix-1000?









#yiv7667374665 #yiv7667374665 --
#yiv7667374665ygrp-mkp {
border:1px solid #d8d8d8;font-family:Arial;margin:10px
0;padding:0 10px;}

#yiv7667374665 #yiv7667374665ygrp-mkp hr {
border:1px solid #d8d8d8;}

#yiv7667374665 #yiv7667374665ygrp-mkp #yiv7667374665hd {
color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
0;}

#yiv7667374665 #yiv7667374665ygrp-mkp #yiv7667374665ads {
margin-bottom:10px;}

#yiv7667374665 #yiv7667374665ygrp-mkp .yiv7667374665ad {
padding:0 0;}

#yiv7667374665 #yiv7667374665ygrp-mkp .yiv7667374665ad p {
margin:0;}

#yiv7667374665 #yiv7667374665ygrp-mkp .yiv7667374665ad a {
color:#0000ff;text-decoration:none;}
#yiv7667374665 #yiv7667374665ygrp-sponsor
#yiv7667374665ygrp-lc {
font-family:Arial;}

#yiv7667374665 #yiv7667374665ygrp-sponsor
#yiv7667374665ygrp-lc #yiv7667374665hd {
margin:10px
0px;font-weight:700;font-size:78%;line-height:122%;}

#yiv7667374665 #yiv7667374665ygrp-sponsor
#yiv7667374665ygrp-lc .yiv7667374665ad {
margin-bottom:10px;padding:0 0;}

#yiv7667374665 #yiv7667374665actions {
font-family:Verdana;font-size:11px;padding:10px 0;}

#yiv7667374665 #yiv7667374665activity {
background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}

#yiv7667374665 #yiv7667374665activity span {
font-weight:700;}

#yiv7667374665 #yiv7667374665activity span:first-child {
text-transform:uppercase;}

#yiv7667374665 #yiv7667374665activity span a {
color:#5085b6;text-decoration:none;}

#yiv7667374665 #yiv7667374665activity span span {
color:#ff7900;}

#yiv7667374665 #yiv7667374665activity span
.yiv7667374665underline {
text-decoration:underline;}

#yiv7667374665 .yiv7667374665attach {
clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
0;width:400px;}

#yiv7667374665 .yiv7667374665attach div a {
text-decoration:none;}

#yiv7667374665 .yiv7667374665attach img {
border:none;padding-right:5px;}

#yiv7667374665 .yiv7667374665attach label {
display:block;margin-bottom:5px;}

#yiv7667374665 .yiv7667374665attach label a {
text-decoration:none;}

#yiv7667374665 blockquote {
margin:0 0 0 4px;}

#yiv7667374665 .yiv7667374665bold {
font-family:Arial;font-size:13px;font-weight:700;}

#yiv7667374665 .yiv7667374665bold a {
text-decoration:none;}

#yiv7667374665 dd.yiv7667374665last p a {
font-family:Verdana;font-weight:700;}

#yiv7667374665 dd.yiv7667374665last p span {
margin-right:10px;font-family:Verdana;font-weight:700;}

#yiv7667374665 dd.yiv7667374665last p
span.yiv7667374665yshortcuts {
margin-right:0;}

#yiv7667374665 div.yiv7667374665attach-table div div a {
text-decoration:none;}

#yiv7667374665 div.yiv7667374665attach-table {
width:400px;}

#yiv7667374665 div.yiv7667374665file-title a,
#yiv7667374665
div.yiv7667374665file-title a:active, #yiv7667374665
div.yiv7667374665file-title a:hover, #yiv7667374665
div.yiv7667374665file-title a:visited {
text-decoration:none;}

#yiv7667374665 div.yiv7667374665photo-title a,
#yiv7667374665 div.yiv7667374665photo-title a:active,
#yiv7667374665 div.yiv7667374665photo-title a:hover,
#yiv7667374665 div.yiv7667374665photo-title a:visited {
text-decoration:none;}

#yiv7667374665 div#yiv7667374665ygrp-mlmsg
#yiv7667374665ygrp-msg p a span.yiv7667374665yshortcuts {
font-family:Verdana;font-size:10px;font-weight:normal;}

#yiv7667374665 .yiv7667374665green {
color:#628c2a;}

#yiv7667374665 .yiv7667374665MsoNormal {
margin:0 0 0 0;}

#yiv7667374665 o {
font-size:0;}

#yiv7667374665 #yiv7667374665photos div {
float:left;width:72px;}

#yiv7667374665 #yiv7667374665photos div div {
border:1px solid
#666666;height:62px;overflow:hidden;width:62px;}

#yiv7667374665 #yiv7667374665photos div label {
color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}

#yiv7667374665 #yiv7667374665reco-category {
font-size:77%;}

#yiv7667374665 #yiv7667374665reco-desc {
font-size:77%;}

#yiv7667374665 .yiv7667374665replbq {
margin:4px;}

#yiv7667374665 #yiv7667374665ygrp-actbar div a:first-child
{
margin-right:2px;padding-right:5px;}

#yiv7667374665 #yiv7667374665ygrp-mlmsg {
font-size:13px;font-family:Arial, helvetica, clean,
sans-serif;}

#yiv7667374665 #yiv7667374665ygrp-mlmsg table {
font-size:inherit;font:100%;}

#yiv7667374665 #yiv7667374665ygrp-mlmsg select,
#yiv7667374665 input, #yiv7667374665 textarea {
font:99% Arial, Helvetica, clean, sans-serif;}

#yiv7667374665 #yiv7667374665ygrp-mlmsg pre,
#yiv7667374665
code {
font:115% monospace;}

#yiv7667374665 #yiv7667374665ygrp-mlmsg * {
line-height:1.22em;}

#yiv7667374665 #yiv7667374665ygrp-mlmsg #yiv7667374665logo
{
padding-bottom:10px;}


#yiv7667374665 #yiv7667374665ygrp-msg p a {
font-family:Verdana;}

#yiv7667374665 #yiv7667374665ygrp-msg
p#yiv7667374665attach-count span {
color:#1E66AE;font-weight:700;}

#yiv7667374665 #yiv7667374665ygrp-reco
#yiv7667374665reco-head {
color:#ff7900;font-weight:700;}

#yiv7667374665 #yiv7667374665ygrp-reco {
margin-bottom:20px;padding:0px;}

#yiv7667374665 #yiv7667374665ygrp-sponsor #yiv7667374665ov
li a {
font-size:130%;text-decoration:none;}

#yiv7667374665 #yiv7667374665ygrp-sponsor #yiv7667374665ov
li {
font-size:77%;list-style-type:square;padding:6px 0;}

#yiv7667374665 #yiv7667374665ygrp-sponsor #yiv7667374665ov
ul {
margin:0;padding:0 0 0 8px;}

#yiv7667374665 #yiv7667374665ygrp-text {
font-family:Georgia;}

#yiv7667374665 #yiv7667374665ygrp-text p {
margin:0 0 1em 0;}

#yiv7667374665 #yiv7667374665ygrp-text tt {
font-size:120%;}

#yiv7667374665 #yiv7667374665ygrp-vital ul li:last-child {
border-right:none !important;
}
#yiv7667374665


Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-11 by Dave Garfield

Hi, all!

And if I may add to this (which BTW, is an Excellent idea!), I like to simulate the often less-than-perfect high-frequency tracking of VCOs by turning OFF Keyboard Control at the DCOs, and going to the Matrix Modulation section, where I'll send Keyboard voltage to one DCO with a value of 62 - just barely less than the normal value of 63.  This way, you'll get that VCO beating in the upper range of the keyboard.
Thanks, and I hope that this helps someone out there.
Dave Garfield - Colorado, USA 


On Friday, July 11, 2014 3:24 AM, "jan@... [oberheim]" <oberheim@yahoogroups.com> wrote:
  


  
Off topic: My favourite trick to fatten up Unison is modulating DCO1/2 with random LFO. As the LFOs are created per-voice, the voices detune asynchronously - this adds kind of an analog drift feel to it. If you can spare an LFO, that is ;)

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-11 by Dave Garfield

I should learn to proof read things.  I meant to turn off Keyboard Control to ONE DCO, not both.  That encourages the mis-tracking simulation.  Sorry. 


On , Dave Garfield <daveogarf@...> wrote:
  


Hi, all!

And if I may add to this (which BTW, is an Excellent idea!), I like to simulate the often less-than-perfect high-frequency tracking of VCOs by turning OFF Keyboard Control at the DCOs, and going to the Matrix Modulation section, where I'll send Keyboard voltage to one DCO with a value of 62 - just barely less than the normal value of 63.  This way, you'll get that VCO beating in the upper range of the keyboard.
Thanks, and I hope that this helps someone out there.
Dave Garfield - Colorado, USA 


On Friday, July 11, 2014 3:24 AM, "jan@... [oberheim]" <oberheim@yahoogroups.com> wrote:
  


  
Off topic: My favourite trick to fatten up Unison is modulating DCO1/2 with random LFO. As the LFOs are created per-voice, the voices detune asynchronously - this adds kind of an analog drift feel to it. If you can spare an LFO, that is ;)

Re: [oberheim] Dream on, geek: The Überheim Matrix-1000 Project

2014-07-14 by F.Manduca

Thanks a lot, pal. Very useful info !! Yet, a less clinical sound would be welcome, anyway..... Is there a lack of chorus on M1000? I think it would be a great option. It's often implemented on the greatest synths ( I own an Elka Synthex, one of the best choruses ever made on board..), since it changes the sound dramatically. Don't know anyway if it would be hard to be implemented on a 1 rack unit machine.
Btw: the "ring modulation" attempt would be great, one of my favourite options...
Cheers,
Francesco.
--------------------------------------------
Ven 11/7/14, analog gear margus.kliimask@gmail.com [oberheim] <oberheim@yahoogroups.com> ha scritto:

 Oggetto: Re: [oberheim] Dream on, geek: The Überheim Matrix-1000 Project
 A: oberheim@yahoogroups.com
 Data: Venerdì 11 luglio 2014, 13:58
 
 
  
 
 
 
   
 
 
     
       
       
       I don't quite follow this
 per-voice argument. Everything that happens in software
 (LFOs, RAMPs, ENVelopes etc.) is per-voice basis. Every
 signal that is generated in software is calculated
 separately for each voice, and the signal generation code is
 virtually identical to M6 (and 6R), so no hidden secrets
 here. The only exception is global Vibrato that is
 'shared' between voices. Everything that happens in
 hardware (OSCs, VCF etc.) is one-chip-per-voice anyway.
 
 
 Another myth that has been
 circling around for at least 25 years is about the wide body
 CEM3396s versus narrow body ones. And it has been debunked
 for a zillion times. I think even Doug Curtis himself
 commented on this long time ago (or was it Dave Smith?)
 saying it's not true. The only difference soundwise
 comes from timer clock circuitry: while on M1000 all timers
 are driven by CPU clock M6 has three separate LC oscillators
 resulting in less 'clinical' clock and some minimal
 drift that is usually perceived as 'more organic' or
 'phatter' sound.
 
 
 http://www.wolzow.com/analog/m1k-hardware.htm
 
 
 On Thu,
 Jul 10, 2014 at 5:23 PM, 'F.Manduca' resistenzaaoltranza@...
 [oberheim] <oberheim@yahoogroups.com>
 wrote:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
  
 
 
 
   
 
 
     
       
       
       Sorry.
 
 I remeber now that probably each CEM chip has a resonance
 and cutoff section on its own... Am I wrong? So the less
 organic sound on the M1000 is an issue of the "narrow
 body" Cem instead of the "regular sized" CEM
 found on the Matrix6. Or maybe a digital control of the
 filter on the Matrix 1000 makes them to work too
 "tight", making them to sound a little poorer...As
 a cat on a leash looses personality... :-)
 
 
 
 Anyway, googleing around, I found an interesting thing about
 the Cheetah M6, that uses the same narrow body CEM 3396
 chips of the Matrix1000. And there is the chance, as the
 site keeper writes, to add some extra waveforms on the
 Cheetah. Maybe also on Matrix 1000?
 
 
 
 Here are the pages that maybe could be useful to You:
 
 
 
 http://www.maad.net/ms6/
 
 
 
 http://wolzow.mindworks.ee/analog/m1k-hardware.htm
 
 
 
 Just write me what do You think, I know it's too easy to
 suggest something hard, when You have not to work upon it.
 But, who knows...?
 
 Cheers,
 
 Francesco.
 
 --------------------------------------------
 
 Gio 10/7/14, F.Manduca <resistenzaaoltranza@...>
 ha scritto:
 
 
 
 Oggetto: R: [oberheim] Dream on, geek: The Überheim
 Matrix-1000 Project
 
  A: oberheim@yahoogroups.com
 
  Data: Giovedì 10 luglio 2014, 15:31
 
  
 
  Great idea,pal. I would like to see
 
  implemented a thing that only Matrix6 seems to have (
 afaik
 
  ) comparing with our little puppy: filter and resonance
 
  discrete for each of its 6 voices.... It makes the sound
 
  fatter, more organic, as I can hear on my
 analog-filtered
 
  Korg DW8000.Chorus?
 
  Francesco.
 
  --------------------------------------------
 
  Mar 8/7/14, jan@...
 
  [oberheim] <oberheim@yahoogroups.com>
 
  ha scritto:
 
  
 
   Oggetto: [oberheim] Dream on, geek: The Überheim
 
  Matrix-1000 Project
 
   A: oberheim@yahoogroups.com
 
   Data: Martedì 8 luglio 2014, 00:50
 
   
 
   
 
    
 
   
 
   
 
   
 
     
 
   
 
   
 
       
 
         
 
         
 
         This is just a bit of "What
 
  if".
 
   Please treat it as a thought experiment. 
 
   I love my Matrix-1000. I love 8-bit
 
   machinery. And I love modding things, finding simple
 hacks
 
   that make things better without taking large chunks of
 
  your
 
   lifetime.
 
   Good starting point:
 
   I'll have to take apart my Obie anyway; the battery
 will
 
   have to be replaced sometime, and there's the v1.13
 
   bugfix firmware update by Fetz. 
 
   But why stop there? I think there may be
 
   a couple of things you could do to enhance the
 M1000's
 
   scope, following these simple
 
   rule: Tradition: Any modification has
 
   to be downward compatible to existing Matrix
 
   sounds. 
 
   Simplicity: It has to be
 
   simple. 
 
   Aesthetics: It has to fit the
 
   original housing. 
 
   Incrementalism: Even if
 
   it's something big, you'd start small and move
 on
 
   step by step.
 
   Pragmatism: If it already
 
   exists, don't bother building it, buy it.  
 
   The reason for the last rule is
 
   time - there's never enough of it, at least with me.
 So
 
   to keep moving, it is vital to be able to stop at any
 
  point
 
   and still have a working unit. 
 
   So these are the things I could come
 
   up with that might be done.:A per-voice ring modulator.
 
   Switched on by an unused bit in, say, the Unison
 
   parameter. 
 
   Switching the
 
   filter from 4-pole to 2-pole. Making the M1000
 
   respond in real-time. OK, Number 3 seems to
 
   violate my rules of simplicity and incrementalism -
 this
 
  is
 
   a HUGE project, or so it seems. The M1000 is an old
 beast
 
   with a tired heart - the 6809 processor won't be able
 to
 
   respond any faster. But maybe you can use 21st century
 
   technology to assist it - use a modern single-chip
 system,
 
   maybe even something like a Raspberry Pi, and have it
 run
 
   the original firmware, based on the technology behind
 the
 
   MAME game machine emulator. Then go ahead and replace
 the
 
   time-consuming modulation calculation routines by
 native
 
   code. Tweak, repeat. 
 
   The result wouldn't be a
 
   different synth. Anybody who wants to build a totally
 
   different synth may go and buy his or her fucking
 Eurorack
 
   system. But it would be a better synth. An object of
 
   desire. 
 
   So what
 
   would you dream up for the Überheim
 
   Matrix-1000?
 
   
 
       
 
        
 
   
 
       
 
       
 
   
 
   
 
   
 
   #yiv7667374665 #yiv7667374665 --

Re: [oberheim] Dream on, geek: T he Überheim Matrix-1000 Project

2014-07-15 by resistenzaaoltranza@...

Yes ! And, You are right, Synthex is absolutely a great machine and only about 1500 were made (btw, my Elka needs to be repaired, since it sounds now very basic.... Maybe sounds are gone for a faulty chip, and hope is not an Eprom, or if lucky only the presets battery dead and it needs only to be changed with a reload of the programs....) ! Eng. Maggi did a masterpiece almost on the fly. I knew the keyboard player of the '70s progressive italian rock band Metamorfosi, who owns a vertical panel monophonic custom synth from Maggi, since he was his classmate at the college. A genius he told me !

Re: Dream on, geek: The Überheim Matrix-1000 Project

2014-07-22 by jan@...

Just when you think that you've seen it all: This guy has already figured out how to upgrade the Matrix' filters to Xpander-like flexibility.

MIOS Project - Oberheim - M1000 XPANDER {PCB traces uploaded} - Design Concepts

There are a couple of flaws, though. First, you'd have to build six PCBs and figure out how to fit them into the M-1000's housing. Second, you'd have to rewrite the firmware - and add some more CV multiplexing. But well.

Still, I think tinkering with the M1000's hardware and firmware is well possible. I've started collecting the basic knowledge in a Google Doc - have a look, and if you'd like to add something, comment.

Matrix-1000 Hardware Primer - Google Docs



R: [oberheim] Re: Dream on, geek: The Überhe im Matrix-1000 Project

2014-07-22 by F.Manduca

Oh-oh, very interesting indeed!! This is the evidence how old synths can be enhanced nowadays, well done! Maybe, in those days they made them, they decided not to add some features in order to keep the price a little lower, or ( more probably ) to make them not to compete with their higher price products... ;-) . Did I mention that a chap made a modding on a Korg DW8000 adding some extra custom waveforms banks to the original 16? A genius indeed, but he wrote that he doesn't want to share the project with other owners... Lack of time and too much effort, he writes, but I know that lots of owners ( me as first ) would also pay for the only infos as well, if not the diy kit.... And I bet this would be accomplished  with not so much effort... ( envy,envy....) :-D
--------------------------------------------
Mar 22/7/14, jan@... [oberheim] <oberheim@yahoogroups.com> ha scritto:

 Oggetto: [oberheim] Re: Dream on, geek: The Überheim Matrix-1000 Project
 A: oberheim@yahoogroups.com
 Data: Martedì 22 luglio 2014, 13:36
 
 
  
 
 
 
   
 
 
     
       
       
       Just when you think that you've seen it all:
 This guy has already figured out how to upgrade the
 Matrix' filters to Xpander-like
 flexibility. 
 MIOS
 Project - Oberheim - M1000 XPANDER {PCB traces uploaded} -
 Design Concepts  
   
         
     MIOS
 Project - Oberheim - M1000 XPANDER {PCB tr...  
 MIOS
 Project - Oberheim - M1000 XPANDER {PCB traces uploaded} -
 posted in Design Concepts: ...turning a Matrix M1000 into a
 monster Xpander ? ...     
   
 
 
 View on midibox.org
       
 
 Preview by Yahoo    
    There
 are a couple of flaws, though. First, you'd have to
 build six PCBs and figure out how to fit them into the
 M-1000's housing. Second, you'd have to rewrite the
 firmware - and add some more CV multiplexing. But
 well. 
 Still, I think
 tinkering with the M1000's hardware and firmware is well
 possible. I've started collecting the basic knowledge in
 a Google Doc - have a look, and if you'd like to add
 something, comment. 
 Matrix-1000
 Hardware Primer - Google Docs  
         Matrix-1000
 Hardware Primer - Google Docs   JavaScript
 isn't enabled in your browser, so this file can't be
 opened. Enable and reload.      
   
 
 
 View on docs.google.com 
      
 
 Preview by Yahoo    
    
 
 
 
     
      
 
     
     
 
 
 
 #yiv8607297745 #yiv8607297745 --

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-22 by Bob Grieb

Hi,
 
   I think there are a few mistakes in your Google Doc description.
We can discuss it off-line if you like.   For instance, the filters are
configured as 4-pole by the way the 3396 chip is designed.  The op amp
voltages simply set the resonance and the cutoff frequency.
 
     But I am writing to ask if you have a copy of the Matrix 1000
EPROM image.  I'd like to look at the patched code for the bug fixes
and see if the same code is in the Matrix 6/6R.
 
    Thanks,
 
        Bob 



________________________________
Show quoted textHide quoted text
 From: "jan@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com
Sent: Tuesday, July 22, 2014 7:36 AM
Subject: [oberheim] Re: Dream on, geek: The Überheim Matrix-1000 Project










Just when you think that you've seen it all: This guy has already figured out how to upgrade the Matrix' filters to Xpander-like flexibility. 


MIOS Project - Oberheim - M1000 XPANDER {PCB traces uploaded} - Design Concepts

             MIOS Project - Oberheim - M1000 XPANDER {PCB tr...
MIOS Project - Oberheim - M1000 XPANDER {PCB traces uploaded} - posted in Design Concepts: ...turning a Matrix M1000 into a monster Xpander ? ...
View on midibox.org       Preview by Yahoo
 
There are a couple of flaws, though. First, you'd have to build six PCBs and figure out how to fit them into the M-1000's housing. Second, you'd have to rewrite the firmware - and add some more CV multiplexing. But well. 



Still, I think tinkering with the M1000's hardware and firmware is well possible. I've started collecting the basic knowledge in a Google Doc - have a look, and if you'd like to add something, comment. 


Matrix-1000 Hardware Primer - Google Docs

     Matrix-1000 Hardware Primer - Google Docs
JavaScript isn't enabled in your browser, so this file can't be opened. Enable and reload.
View on docs.google.com       Preview by Yahoo

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-22 by Bob Grieb

Hi Again,
 
    I found the Matrix 1000 firmware binary image in the
files section.   Should have looked there before.
 
    Thanks,
 
       Bob 



________________________________
Show quoted textHide quoted text
 From: "jan@eggers-elektronik.de [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com
Sent: Tuesday, July 22, 2014 7:36 AM
Subject: [oberheim] Re: Dream on, geek: The Überheim Matrix-1000 Project










Just when you think that you've seen it all: This guy has already figured out how to upgrade the Matrix' filters to Xpander-like flexibility. 


MIOS Project - Oberheim - M1000 XPANDER {PCB traces uploaded} - Design Concepts

             MIOS Project - Oberheim - M1000 XPANDER {PCB tr...
MIOS Project - Oberheim - M1000 XPANDER {PCB traces uploaded} - posted in Design Concepts: ...turning a Matrix M1000 into a monster Xpander ? ...
View on midibox.org       Preview by Yahoo
 
There are a couple of flaws, though. First, you'd have to build six PCBs and figure out how to fit them into the M-1000's housing. Second, you'd have to rewrite the firmware - and add some more CV multiplexing. But well. 


Still, I think tinkering with the M1000's hardware and firmware is well possible. I've started collecting the basic knowledge in a Google Doc - have a look, and if you'd like to add something, comment. 


Matrix-1000 Hardware Primer - Google Docs
    

     Matrix-1000 Hardware Primer - Google Docs
JavaScript isn't enabled in your browser, so this file can't be opened. Enable and reload.
View on docs.google.com       Preview by Yahoo

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by lists@...

I've thought about this exact idea before. I think you have basically two initial courses of action.

1) Reuse the binary firmware

You could use this either with an FGPA implementation of the 6809 or a C virtualization on some other system on a chip architecture. This has been done before for the 6809

https://github.com/sharebrained/robotron-fpga


http://www.hermannseib.com/english/synths/ppg/wavesim.htm


You could try speeding up the Matrix by running the clocks faster, but I don't think you would get usable results as the envelopes and LFOs are more than likely tightly coupled to the clock speed of the CPU.


This guy did manage to do something similar,

Cheetah MS6 Firmware Upgrade


Though note the number and complexity of features wasn't incredible. I emailed the author Richard about this a while ago and is knowledgeable on 8 bit CPU synth hacking and could be a helpful resource on this path.


Hacking the firmware to add new features or replace buggy code would also be quite the difficult task. Someone would need a good chunk of time and be well versed in 6809 assembly. For anything beyond the academic nature of such a project, my opinion is re-using the binary firmware isn't a good option now that fast, cheap, flash able embedded systems are available, which brings me to...


2) Re-write the firmare from scratch for a different arch


This has been done before as well for other synths

http://kiwitechnics.com

http://gligli.github.io/p600fw/

The latter project could be helpful since it's open source and for a synth of similar architecture. Not the same CPU but they're both 8 bit CPUs controlling DACs for CV. Some code could probably even be shared, like LFO and envelopes.

I'd wager that the Matrix has much more complicated set of features since it has many more modulation options so this would also be quite the undertaking. But this option has the advantage of being able to easily expand the feature set and be easily upgraded via USB data dumps.

The down side is you probably wouldn't get perfect patch replication. Unless you decompile, find and step through the implementations for the original envelops and LFOs they will likely be somewhat different in shape. Some could see this as an improvement through and you could create snappier envelopes and new wave shapes, just some purists may not be on board.


I'm currently working on porting the p600fw project to the SC Max/6trak line of synths. Much easier project since the 6 trak is basically a p600 with 1 less osc per voice. It has an added sequencer but I wouldn't even care about replicating that since I haven't even used it myself. It would gain the ARP from the p600fw though!



Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by jan@...

I'm pretty sure there are lots of errors (found one just now), after all, I've just started. Please do mention anything you've seen, or just leave a comment in the doc

Concerning the 4-pole filter: you are right, of course. Had a closer look at the MIOS project linked above and saw that he's basically replacing the output VCA and parts of the filter circuitry to be able to modify the filter characteristics.

Concerning the M6: There are obviously a couple of differences in the schematics, e.g. the 6522 VIA which is absent from the M1000, but I guess they kept the basic design. And the M6 schematics scans are slightly better to read.


Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by Bob Grieb

Hi,

  I have been working for the last month to get a Verilog simulation up and 

running of the M6/M6R.    I finally got it to pass calibration a couple of 

days ago.  The benefit of having a simulation is that I can press keys, send 

MIDI, etc, and watch the control voltages, RAM locations, which subroutines
to what, etc.   I can see everything, dump memory, etc.   I am using a 6809 model
from opencores.   The 8254, 6522, and 3396 models are mine, and were the 

toughest part of getting things going.  I did this last year for the SCI MAX and 

Multitrak, to learn about their firmware so that I could make some changes.

    Anyway, not sure what I want to do now.  I don't think changing the 6809 code
would offer a speed-up, although probably certain parts could be done differently
to be faster.   Things that the original two programmers did not try to make as fast as 

possible.  The spare EPROM socket could be used to add look-up tables, for instance
to replace multiplications, which take multiple cycles.  But actually, the direction 

I am leaning is to take something like the Teensy++2.0, which seems to have the 

power pins in the same place as the 6809, and write new code for that.  I think
trying to exactly replicate the M6 waveforms and features would be a rather large
amount of effort, especially for just one person.   But as a group project, it might
be more manageable.   With the code being open-source.   The performance of
the AVR (16 MIPS) should be much better than the 6809, and if attention is paid
to making MIDI changes faster, maybe it could be OK.   


     Now that I have the simulation up and running, I am just trying different things
to learn more about the code.   I found how they detect if it's a 6R or a 6.   There is 

one pin on a chip this is tied differently between the two, which the CPU can read.
Also, I can see in the code where on the 6R they are talking to the optional remote
keyboard.   


    A re-write of the Matrix code would be a big project.   I may get started just for
the experience of learning about how to do it, knowing that I may never finish the 

project.  Or if something else comes along, I may never work on it at all...

    BTW, since the Matrix 1000 hw is similar, I suspect one project could generate
new code for the Matrix 6, 6R, and 1000.

    I have started comparing code between the 6 and the 1000.   Found some routines
that are exactly the same.  Probably lots of the code was ported over, with changes 

to the patch storage format, and for the oscillator frequency difference.

    Looks like the code for these units was NOT written in assembly.  I am guessing 

a C compiler was used.  (The Six Trak, Max, and Multi-trak, on the other hand, were coded 

in Z80 assy)   I wonder if the C code is still around.   The names of the programmers
are in the code.  Maybe one of them still has a copy?  Having the source code would
make this a much simpler project.    


     Best wishes,

          Bob Grieb



________________________________
Show quoted textHide quoted text
 From: "jan@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com 
Sent: Wednesday, July 23, 2014 5:54 AM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project
 


  


I'm pretty sure there are lots of errors (found one just now), after all, I've just started. Please do mention anything you've seen, or just leave a comment in the doc

Concerning the 4-pole filter: you are right, of course. Had a closer look at the MIOS project linked above and saw that he's basically replacing the output VCA and parts of the filter circuitry to be able to modify the filter characteristics. 

 
   Oberheim Matrix-6 Schematics  
Matrixsynth's Oberheim Matrix-6 Schematics set  
View on www.flickr.com     Preview by Yahoo    
 Concerning the M6: There are obviously a couple of differences in the schematics, e.g. the 6522 VIA which is absent from the M1000, but I guess they kept the basic design. And the M6 schematics scans are slightly better to read.

Re: [oberheim] Re: Dream on, geek: The Überh eim Matri x-1000 Project

2014-07-23 by John Leimseider

Many years ago, Tony Karavidas got one of the simulators from Oberheim... I don't know if he still has it. He works at Dave Smith Instruments and also owns Encore Electronics.

Sent from my iPad

On Jul 23, 2014, at 6:25 AM, "Bob Grieb bobgrieb@... [oberheim]" <oberheim@yahoogroups.com> wrote:

Hi,

I have been working for the last month to get a Verilog simulation up and
running of the M6/M6R. I finally got it to pass calibration a couple of
days ago. The benefit of having a simulation is that I can press keys, send
MIDI, etc, and watch the control voltages, RAM locations, which subroutines
to what, etc. I can see everything, dump memory, etc. I am using a 6809 model
from opencores. The 8254, 6522, and 3396 models are mine, and were the
toughest part of getting things going. I did this last year for the SCI MAX and
Multitrak, to learn about their firmware so that I could make some changes.

Anyway, not sure what I want to do now. I don't think changing the 6809 code
would offer a speed-up, although probably certain parts could be done differently
to be faster. ; Things that the original two programmers did not try to make as fast as
possible. The spare EPROM socket could be used to add look-up tables, for instance
to replace multiplications, which take multiple cycles. But actually, the direction
I am leaning is to take something like the Teensy++2.0, which seems to have the
power pins in the same place as the 6809, and write new code for that. I think
trying to exactly replicate the M6 waveforms and features would be a rather large
amount of effort, especially for just one person. But as a group project, it might
be more manageable. With the code being open-source. The performance of
the AVR (16 MIPS) should be much better than the 6809, and if attention is paid
to making MIDI changes faster, maybe it could be OK. ;

Now that I have the simulation up and running, I am just trying different things
to learn more about the code. I found how they detect if it's a 6R or a 6. There is
one pin on a chip this is tied differently between the two, which the CPU can read.
Also, I can see in the code where on the 6R they are talking to the optional remote
keyboard.

A re-write of the Matrix code would be a big project. I may get started just for
the experience of learning about how to do it, knowing that I may never finish the
project. Or if something else comes along, I may never work on it at all...

BTW, since the Matrix 1000 hw is similar, I suspect one project could generate
new code for the Matrix 6, 6R, and 1000.

I have started comparing code between the 6 and the 1000. Found some routines
that are exactly the same. Probably lots of the code was ported over, with changes
to the patch storage format, and for the oscillator frequency difference.

Looks like the code for these units was NOT written in assembly. I am guessing
a C compiler was used. (The Six Trak, Max, and Multi-trak, on the other hand, were coded
in Z80 assy) I wonder if the C code is still around. The names of the programmers
are in the code. Maybe one of them still has a copy? Having the source code would
make this a much simpler project. ;

Best wishes,

Bob Grieb

Show quoted textHide quoted text
From: "jan@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com
Sent: Wednesday, July 23, 2014 5:54 AM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project



I'm pretty sure there are lots of errors (found one just now), after all, I've just started. Please do mention anything you've seen, or just leave a comment in the doc

Concerning the 4-pole filter: you are right, of course. Had a closer look at the MIOS project linked above and saw that he's basically replacing the output VCA and parts of the filter circuitry to be able to modify the filter characteristics.

Concerning the M6: There are obviously a couple of differences in the schematics, e.g. the 6522 VIA which is absent from the M1000, but I guess they kept the basic design. And the M6 schematics scans are slightly better to read.






Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by zap@...

Hi Bob,
it would be really great if you could patch the midi handling code to be able to change the mod matrix on the 6R. This is possible on M1000 but not on M6.
Also reprogramming the MIDI handling from SysEx to CC or even NRPN would be a huge benefit and maybe even improve midi performance.
Cheers,
Stephan

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by Bob Grieb

Hi Joe,
 
   If you try to get oscillator tuning code working on the SCI MAX,
you will need to work with the custom chip that it uses, since the counters
are in there.  Also, to get faster envelopes, you may want to increase the 
basic timer interrupt rate, which is 7 mSec IIRC.  That's also generated in 
the custom chip.
 
    There is information on my web site (tauntek) about that chip, but I never
figured out how to change the interrupt rate.  I hope it's possible...
 
    Bob 
 

________________________________
Show quoted textHide quoted text
 From: "lists@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com 
Sent: Tuesday, July 22, 2014 8:36 PM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project
  


  


I've thought about this exact idea before. I think you have basically two initial courses of action.

1) Reuse the binary firmware

You could use this either with an FGPA implementation of the 6809 or a C virtualization on some other system on a chip architecture. This has been done before for the 6809

http://koti.mbnet.fi/~atjs/mc6809/
http://members.optushome.com.au/jekent/system09/
https://github.com/sharebrained/robotron-fpga

http://www.hermannseib.com/english/synths/ppg/wavesim.htm


You could try speeding up the Matrix by running the clocks faster, but I don't think you would get usable results as the envelopes and LFOs are more than likely tightly coupled to the clock speed of the CPU.

This guy did manage to do something similar,
Cheetah MS6 Firmware Upgrade

    
     Cheetah MS6 Firmware Upgrade  
The new MS6 firmware I'm currently offering, version 
1.3, based on the V9.0 Cheetah ROM, has the following extra features: MIDI bank select (CC #0), globally and per-part. Program change per-part.         
View on www.maad.net       Preview by Yahoo           

Though note the number and complexity of features wasn't incredible. I emailed the author Richard about this a while ago and is knowledgeable on 8 bit CPU synth hacking and could be a helpful resource on this path.

Hacking the firmware to add new features or replace  buggy code would also be quite the difficult task. Someone would need a good chunk of time and be well versed in 6809 assembly. For anything beyond the academic nature of such a project, my opinion is re-using the binary firmware isn't a good option now that fast, cheap, flash able embedded systems are available, which brings me to...

2) Re-write the firmare from scratch for a different arch

This has been done before as well for other synths
http://kiwitechnics.com/

http://gligli.github.io/p600fw/

 The latter project could be helpful since it's open source and for a synth of similar architecture. Not the same CPU but they're both 8 bit CPUs controlling DACs for CV. Some code could probably even be shared, like LFO and envelopes.

I'd wager that the Matrix has  much more complicated set of features since it has many more modulation options so this would also be quite the undertaking. But this option has the advantage of being able to easily expand the feature set and be easily upgraded via USB data dumps.

The down side is you probably wouldn't get perfect patch replication. Unless you decompile, find and step through the implementations for the original envelops and LFOs they will likely be somewhat different in shape. Some could see this as an improvement through and you could create snappier envelopes and new wave shapes, just some purists may not be on board.
 


I'm currently working on porting the p600fw project to the SC Max/6trak line of synths. Much easier project since the 6 trak is basically a p600 with 1 less osc per voice. It has an added sequencer but I wouldn't even care about replicating that since I haven't even used it myself. It would gain the ARP from the p600fw though!

Re: [oberheim] Re: Dream on, geek: The Überh eim Ma trix-1000 Project

2014-07-23 by analog gear

Hi,

On Wed, Jul 23, 2014 at 3:24 PM, Bob Grieb bobgrieb@... [oberheim] <oberheim@yahoogroups.com> wrote:
Show quoted textHide quoted text

I have started comparing code between the 6 and the 1000. Found some routines
that are exactly the same. Probably lots of the code was ported over, with changes
to the patch storage format, and for the oscillator frequency difference.

Looks like the code for these units was NOT written in assembly. I am guessing
a C compiler was used. (The Six Trak, Max, and Multi-trak, on the other hand, were coded
in Z80 assy) I wonder if the C code is still around. The names of the programmers
are in the code. Maybe one of them still has a copy? Having the source code would
make this a much simpler project.


If this code came from a C compiler I would really love to get my hands on this one. The core part of the code (signal generation) is very tight and highly optimized, not a single C compiler I've been playing with (eg. for AVR family) generates that good code. Besides, different parts of the code have quite different style and are obviously written by different people.

I tracked down one of the original programmers ten years ago. The story he told me was that core of the code (originally written by Ryle and Doidic, two geniuses) was ported from Xpander to Matrix-6, changing MIDI and adding the new User Interface, and then from M-6 to M-1000, adding the next User Interface and making more changes to MIDI. The code was done with a cross-assembler on a PDP. Then one day, before the M-1000 firmware was 100% finished the removable disk with the sources fell on the floor, and there were no backups. So they shipped it out as is. End of the story, and the source code.

This is what was told to me. Anyway, the later the part of the code the sloppier it looks. M-1000 code has quite a lot of dormant code from M-6, and even from Xpander, that is not used. Plus a lot of simple and pretty basic errors that would have been fixed if they had had more time (a few of them were fixed by someone in 1.1.3 hack). Plus unfinished MIDI implementation, etc etc.

Concerning simply running it on 6309 at clock speed higher than 2 MHz, that has been discussed here: the code uses a _lot_ of cycle counting and loop based timing.

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by Dan Nigrin

FWIW, Marcus Ryle is still reachable \u2013 he's the CEO of Line 6. I was able to contact him for help with my work on the Oberheim DSX Hack application I am developing (I am very close to success, but life got in the way and I've slowed way down over the last 6 months).

Dan
--
Dan Nigrin / Defective Records / http://defectiverecords.com
CycliC, M185 & Klee Sequencers / MC-4 & MC-202 Hack / Audio Plugin Player / General MIDI Player / Major Malfunction
Jack OS X / http://jackosx.com

From: "analog gear margus.kliimask@... [oberheim]" <oberheim@yahoogroups.com>
Reply-To: <oberheim@yahoogroups.com>
Date: Wednesday, July 23, 2014 at 9:49 AM
To: <oberheim@...m>
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

Hi,

On Wed, Jul 23, 2014 at 3:24 PM, Bob Grieb bobgrieb@... [oberheim] <oberheim@yahoogroups.com> wrote:

I have started comparing code between the 6 and the 1000. Found some routines
that are exactly the same. Probably lots of the code was ported over, with changes
to the patch storage format, and for the oscillator frequency difference.

Looks like the code for these units was NOT written in assembly. I am guessing
a C compiler was used. (The Six Trak, Max, and Multi-trak, on the other hand, were coded
in Z80 assy) I wonder if the C code is still around. The names of the programmers
are in the code. Maybe one of them still has a copy? Having the source code would
make this a much simpler project.


If this code came from a C compiler I would really love to get my hands on this one. The core part of the code (signal generation) is very tight and highly optimized, not a single C compiler I've been playing with (eg. for AVR family) generates that good code. Besides, different parts of the code have quite different style and are obviously written by different people.

I tracked down one of the original programmers ten years ago. The story he told me was that core of the code (originally written by Ryle and Doidic, two geniuses) was ported from Xpander to Matrix-6, changing MIDI and adding the new User Interface, and then from M-6 to M-1000, adding the next User Interface and making more changes to MIDI. The code was done with a cross-assembler on a PDP. Then one day, before the M-1000 firmware was 100% finished the removable disk with the sources fell on the floor, and there were no backups. So they shipped it out as is. End of the story, and the source code.

This is what was told to me. Anyway, the later the part of the code the sloppier it looks. M-1000 code has quite a lot of dormant code from M-6, and even from Xpander, that is not used. Plus a lot of simple and pretty basic errors that would have been fixed if they had had more time (a few of them were fixed by someone in 1.1.3 hack). Plus unfinished MIDI implementation, etc etc.

Concerning simply running it on 6309 at clock speed higher than 2 MHz, that has been discussed here: the code uses a _lot_ of cycle counting and loop based timing.

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by Bob Grieb

I could be wrong about the use of a compiler.   Saw some strange things, like a branch
to the next instruction, that I never thought a human would do, but I guess it could have
been overlooked.  Also, some branches to rts instructions.  If this code was written in 
assembly, then the people who wrote it are very clever indeed!  Messing with the stack 
in the MIDI code.  Very scary.   
 
Love the story about dropping the code disk.  No backup?   Hard to imagine, even back
then.  I guess those disk paks were expensive for the PDP-8 or 11.
 
Have you done much AVR assy coding?  I have done lots of PIC assy, but no AVR.
 
I did see a bunch of places in the code where they used a little loop to create a delay
when talking to the hw.   It wouldn't be that hard to find those and change them.
The simulator is good at things like that.  In the calibration code, they are using the 
timers in the VIA chip, not code loops.  But making an FPGA with a 50 MHz 6809,
which would need its own local Flash for code and also fast SRAM seems like a lot
of work, and for sure would be SMT, which means most people couldn't build it
themselves, as opposed to using a Teensy which makes it a pure sw project.
 
Also, based on what I have heard about some of the delays in the current code, even 
a 6809 that was 25 times as fast might not really solve the problem.  Seems like the 
structure of the code needs to change as far as how MIDI updates are handled.
 
Bob
 

________________________________
Show quoted textHide quoted text
 From: "analog gear margus.kliimask@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com 
Sent: Wednesday, July 23, 2014 9:49 AM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project
  





Hi,



On Wed, Jul 23, 2014 at 3:24 PM, Bob Grieb bobgrieb@... [oberheim] <oberheim@yahoogroups.com> wrote:

 
>  
>    I have started comparing code between the 6 and the 1000.   Found some routines
>
>that are exactly the same.  Probably lots of the code was ported over, with changes 
>
>to the patch storage format, and for the oscillator frequency difference. 
>
>
>    Looks like the code for these units was NOT written in assembly.  I am guessing 
>
>a C compiler was used.  (The Six Trak, Max, and Multi-trak, on the other hand, were coded 
>
>in Z80 assy)   I wonder if the C code is still around.   The names of the programmers
>are in the code.  Maybe one of them still has a copy?  Having the source code would
>make this a much simpler project.    
>
>
> 

If this code came from a C compiler I would really love to get my hands on this one. The core part of the code (signal generation) is very tight and highly optimized, not a single C compiler I've been playing with (eg. for AVR family) generates that good code. Besides, different parts of the code have quite different style and are obviously written by different people. 

I tracked down one of the original programmers ten years ago. The story he told me was that core of the code (originally written by Ryle and Doidic, two geniuses) was ported from Xpander to Matrix-6, changing MIDI and adding the new User Interface, and then from M-6 to M-1000, adding the next User Interface and making more changes to MIDI. The code was done with a cross-assembler on a PDP. Then one day, before the M-1000 firmware was 100% finished the removable disk with the sources fell on the floor, and there were no backups. So they shipped it out as is. End of the story, and the source code. 

This is what was told to me. Anyway, the later the part of the code the sloppier it looks. M-1000 code has quite a lot of dormant code from M-6, and even from Xpander, that is not used. Plus a lot of simple and pretty basic errors that would have been fixed if they had had more time (a few of them were fixed by someone in 1.1.3 hack). Plus unfinished MIDI implementation, etc etc. 

Concerning simply running it on 6309 at clock speed higher than 2 MHz, that has been discussed here: the code uses a _lot_ of cycle counting and loop based timing.

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by Bob Grieb

Hi Dan,
 
    If you would be inclined to either contact Marcus, or give me his contact info,
perhaps off-line, it would be great to know if the source code for the M6 is around
somewhere.   Even if it's assy, it would still be very useful for any sort of mod project.
He may know something about it even if he doesn't have it.
 
     Thanks,
 
        Bob
 

________________________________
Show quoted textHide quoted text
 From: "Dan Nigrin dan@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com 
Sent: Wednesday, July 23, 2014 10:26 AM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project
  





FWIW, Marcus Ryle is still reachable – he's the CEO of Line 6.  I was able to contact him for help with my work on the Oberheim DSX Hack application I am developing (I am very close to success, but life got in the way and I've slowed way down over the last 6 months).

Dan
-- 
Dan Nigrin / Defective Records / http://defectiverecords.com/ 
CycliC, M185 & Klee Sequencers / MC-4 & MC-202 Hack / Audio Plugin Player / General MIDI Player / Major Malfunction
Jack OS X / http://jackosx.com/ 

From:  "analog gear margus.kliimask@... [oberheim]" <oberheim@yahoogroups.com>
Reply-To:  <oberheim@yahoogroups.com>
Date:  Wednesday, July 23, 2014 at 9:49 AM
To:  <oberheim@yahoogroups.com>
Subject:  Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project


  
Hi,



On Wed, Jul 23, 2014 at 3:24 PM, Bob Grieb bobgrieb@... [oberheim] <oberheim@yahoogroups.com> wrote:

 
> 
>    I have started comparing code between the 6 and the 1000.   Found some routines
>
>that are exactly the same.  Probably lots of the code was ported over, with changes 
>
>to the patch storage format, and for the oscillator frequency difference.
>
>
>    Looks like the code for these units was NOT written in assembly.  I am guessing 
>
>a C compiler was used.  (The Six Trak, Max, and Multi-trak, on the other hand, were coded 
>
>in Z80 assy)   I wonder if the C code is still around.   The names of the programmers
>are in the code.  Maybe one of them still has a copy?  Having the source code would
>make this a much simpler project.    
>
>
>

If this code came from a C compiler I would really love to get my hands on this one. The core part of the code (signal generation) is very tight and highly optimized, not a single C compiler I've been playing with (eg. for AVR family) generates that good code. Besides, different parts of the code have quite different style and are obviously written by different people.

I tracked down one of the original programmers ten years ago. The story he told me was that core of the code (originally written by Ryle and Doidic, two geniuses) was ported from Xpander to Matrix-6, changing MIDI and adding the new User Interface, and then from M-6 to M-1000, adding the next User Interface and making more changes to MIDI. The code was done with a cross-assembler on a PDP. Then one day, before the M-1000 firmware was 100% finished the removable disk with the sources fell on the floor, and there were no backups. So they shipped it out as is. End of the story, and the source code.

This is what was told to me. Anyway, the later the part of the code the sloppier it looks. M-1000 code has quite a lot of dormant code from M-6, and even from Xpander, that is not used. Plus a lot of simple and pretty basic errors that would have been fixed if they had had more time (a few of them were fixed by someone in 1.1.3 hack). Plus unfinished MIDI implementation, etc etc.

Concerning simply running it on 6309 at clock speed higher than 2 MHz, that has been discussed here: the code uses a _lot_ of cycle counting and loop based timing.

Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by Dan Nigrin

Sure Bob \u2013; I'll get his email to you offline tonight when I get home (don't have it here at work). Worth a shot!

Dan
--
Dan Nigrin / Defective Records / http://defectiverecords.com
CycliC, M185 & Klee Sequencers / MC-4 & MC-202 Hack / Audio Plugin Player / General MIDI Player / Major Malfunction
Jack OS X / http://jackosx.com

Show quoted textHide quoted text
From: "Bob Grieb bobgrieb@... [oberheim]" <oberheim@yahoogroups.com>
Reply-To: <oberheim@yahoogroups.com>
Date: Wednesday, July 23, 2014 at 10:46 AM
To: "oberheim@yahoogroups.com" <oberheim@yahoogroups.com>
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

Hi Dan,
If you would be inclined to either contact Marcus, or give me his contact info,
perhaps off-line, it would be great to know if the source code for the M6 is around
somewhere. Even if it's assy, it would still be very useful for any sort of mod project.
He may know something about it even if he doesn't have it.
Thanks,
Bob

From: "Dan Nigrin dan@defectiverecords.com [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com
Sent: Wednesday, July 23, 2014 10:26 AM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project



FWIW, Marcus Ryle is still reachable \u2013 he's the CEO of Line 6. I was able to contact him for help with my work on the Oberheim DSX Hack application I am developing (I am very close to success, but life got in the way and I've slowed way down over the last 6 months).

Dan
--
Dan Nigrin / Defective Records / http://defectiverecords.com/
CycliC, M185 & Klee Sequencers / MC-4 & MC-202 Hack / Audio Plugin Player / General MIDI Player / Major Malfunction
Jack OS X / http://jackosx.com/

From: "analog gear margus.kliimask@... [oberheim]" <oberheim@yahoogroups.com>
Reply-To: <oberheim@yahoogroups.com>
Date: Wednesday, July 23, 2014 at 9:49 AM
To: <oberheim@yahoogroups.com>
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

Hi,

On Wed, Jul 23, 2014 at 3:24 PM, Bob Grieb bobgrieb@... [oberheim] <oberheim@yahoogroups.com> wrote:
I have started comparing code between the 6 and the 1000. Found some routines
that are exactly the same. Probably lots of the code was ported over, with changes
to the patch storage format, and for the oscillator frequency difference.

Looks like the code for these units was NOT written in assembly. I am guessing
a C compiler was used. (The Six Trak, Max, and Multi-trak, on the other hand, were coded
in Z80 assy) I wonder if the C code is still around. The names of the programmers
are in the code. Maybe one of them still has a copy? Having the source code would
make this a much simpler project.


If this code came from a C compiler I would really love to get my hands on this one. The core part of the code (signal generation) is very tight and highly optimized, not a single C compiler I've been playing with (eg. for AVR family) generates that good code. Besides, different parts of the code have quite different style and are obviously written by different people.

I tracked down one of the original programmers ten years ago. The story he told me was that core of the code (originally written by Ryle and Doidic, two geniuses) was ported from Xpander to Matrix-6, changing MIDI and adding the new User Interface, and then from M-6 to M-1000, adding the next User Interface and making more changes to MIDI. The code was done with a cross-assembler on a PDP. Then one day, before the M-1000 firmware was 100% finished the removable disk with the sources fell on the floor, and there were no backups. So they shipped it out as is. End of the story, and the source code.

This is what was told to me. Anyway, the later the part of the code the sloppier it looks. M-1000 code has quite a lot of dormant code from M-6, and even from Xpander, that is not used. Plus a lot of simple and pretty basic errors that would have been fixed if they had had more time (a few of them were fixed by someone in 1.1.3 hack). Plus unfinished MIDI implementation, etc etc.

Concerning simply running it on 6309 at clock speed higher than 2 MHz, that has been discussed here: the code uses a _lot_ of cycle counting and loop based timing.





Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

2014-07-23 by jan@...

Making use of current hardware, and rewriting code for a platform like the AVR, makes a lot of sense. To do that, we'd need to know a *lot* about what the original code actually does, though.

To make things easier, I'll switch the Google Doc over to "Everybody may edit".

Still marvelling about that project of yours, Bob. Rebuilding a Matrix as a Verilog model - incredible!

Re: [oberheim] Re: Dream on, geek: The Über h eim Matrix-1000 Project

2014-07-23 by Bob Grieb

Debugging the model was fun, but now that it's working, I am forced to
decide what the next step is, if anything.  Any project here would be a lot of work.
As someone mentioned, trying to get new code to behave exactly as the original
as far as the envelopes, voltage ranges for each parameter, etc might be almost 
impossible.  But if the new code doesn't match the sound of the old, is it even 
worth doing?   One could make a different synth using the M6 hw, but is there
any point to that?
 
   Bob  

________________________________
Show quoted textHide quoted text
 From: "jan@eggers-elektronik.de [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com 
Sent: Wednesday, July 23, 2014 6:37 PM
Subject: Re: [oberheim] Re: Dream on, geek:  The Überh eim Matrix-1000 Project
  




Making use of current hardware, and rewriting code for a platform like the AVR, makes a lot of sense. To do that, we'd need to know a *lot* about what the original code actually does, though.

To make things easier, I'll switch the Google Doc over to "Everybody may edit". 

Still marvelling about that project of yours, Bob. Rebuilding a Matrix as a Verilog model - incredible!

Re: [oberheim] Re: Dream on, geek: The Über h eim Matrix-1000 Project

2014-07-24 by lists@...

---In oberheim@yahoogroups.com, <bobgrieb@...> wrote :

Debugging the model was fun, but now that it's working, I am forced to
decide what the next step is, if anything. Any project here would be a lot of work.
As someone mentioned, trying to get new code to behave exactly as the original
as far as the envelopes, voltage ranges for each parameter, etc might be almost
impossible. But if the new code doesn't match the sound of the old, is it even
worth doing? One could make a different synth using the M6 hw, but is there
any point to that?
Bob

Any mods would be using the same hardware, just different software. The VCO, VCA, and VCA would all be the same still.

Even a mod that uses the stock firmware with a replacement CPU, would not be identical to the original. If the point is to be identical, then why make any mods at all? The point isn't to make a new synth but to improve the current synth by fixing bugs and adding features. Even if you were to look at it as a "new synth", a good reason why would be that no one is making an affordable, pure analog, polyphonic synth. Especially not one that fits in a 1U.

My statement about not being completely backwards compatible to the original was in regards to patches. I think this is an issue with any upgrade. Even a fully stock firmware with a CPU replacement has potential to have differences because the timers or analog outputs may not be identical with a new chip no matter how closely you model at. And what then, as soon as you make additions to the firmware you essentially are creating a new synth. The general tone of which will still be that of the M6 line since it's using the same analog voice path.

I believe the way to go is a ground up rewrite of the feature set of the M6 in C. Even better if there's one that's a CPU socket compatible replacement like p600fw had with Teensy++ 2.0 into the Z80 socket.

It will be easier to improve upon, which is whole point of a modding project in the first place. Kiwi technics and the p600fw project have proved this to be a viable path and have made great success with single a single developer. Writing a firmware in C opens up the option of having many collaborators. If you go the route of hacking features into the original firmware using hardware sims, you limit the pool to a very small number of people who know that kind of tech.
Reverse engineering and understanding the original firmware is important to understand how the LFOs, envelopes and cross modulation of such work per cycle. I would assume the project would want to improve the bit depth of those parameters as well, as a big request of the M6 series is to add smooth filter sweeps, which would benefit greatly from a 24bit midi implementation, but aliased to the original filter stepping. For LFO and Envelope you could have an original clock synced version and then add snappier envelopes for better percussion options. Once you have a good C platform for that it's easy to add many different shapes to both. Having to do that by injecting mods into the binary blob wold be a big undertaking for any new addition which would have to include regression testing to make sure it doesn't interfere with any of the original code in some unforeseen way.

My point is, no matter what, it's not going to be original, in the sense that original patch dumps might have slight tonal differences, so why shoot for perfection. The point isn't to restore it like it's a rusting vintage car, but to make a hot rod out of an old engine and chassis, for less than a new sportscar.

Show quoted textHide quoted text
From: "jan@... [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com
Sent: Wednesday, July 23, 2014 6:37 PM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project



Making use of current hardware, and rewriting code for a platform like the AVR, makes a lot of sense. To do that, we'd need to know a *lot* about what the original code actually does, though.

To make things easier, I'll switch the Google Doc over to "Everybody may edit".

Still marvelling about that project of yours, Bob. Rebuilding a Matrix as a Verilog model - incredible!




Re: [oberheim] Re: Dream on, geek: The Überh ei m Matrix-1000 Project

2014-07-24 by Daniel Forró

There are more third party firmware upgrades offered for different synths:

Europa for Roland Jupiter 6

New OS for Roland JX10

New OS for Roland JX10 and MKS70

Hawk800 for Korg Poly800/EX800

And for MIDI processor Yamaha MCS2

Maybe more can be found...

Daniel Forro

Show quoted textHide quoted text
From: "lists@joemattiello.com [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com
Sent: Tuesday, July 22, 2014 8:36 PM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh eim Matrix-1000 Project

This guy did manage to do something similar,

2) Re-write the firmare from scratch for a different arch

This has been done before as well for other synths

Re: [oberheim] Re: Dream on, geek: The Überh ei m Matrix-1000 Project

2014-07-24 by lists@...

Hawk800 is a nice upgrade. More than just a simple drop in replacement though. It requires soldering quite a bit of leeds and a custom PCB since it was before the plethora of cheap SOCs came. I'm actually still waiting for my PCB to be shipped, he only does it a few times a year in batch :/

very small Matrix6 firmware bug

2014-08-09 by Bob Grieb

Hi.    I discovered a small bug in the Matrix 6/6R firmware recently.   I found a place
in the code that has a table of jump addresses based on the incoming MIDI byte.
The byte is checked to see if it's 7 or less, but there are only entries in the table for
0-6 values.  If a 7 comes in at the wrong time, the M6 will crash.

This may seem unlikely, but I am not so sure.  If MIDI messages are coming in 

too fast for processing, the input buffer will fill up and it may be possible to start
getting invalid MIDI sequences in this case.  The code normally ignores any invalid
sequence, but not the one I found.  Not sure if this explains anything or not, but I thought
it was interesting.

You can crash an M6/M6R by sending:


F0  (sysex)
10  (Oberheim)
06  (M6)
07  this is not a valid opcode, and was supposed to be ignored...

It's an easy EPROM patch, but may not be worth the trouble.  More testing needed...
The code in the Matrix 1000 looks quite different.


    Bob



________________________________
 From: "lists@joemattiello.com [oberheim]" <oberheim@yahoogroups.com>
To: oberheim@yahoogroups.com 
Sent: Thursday, July 24, 2014 12:17 AM
Subject: Re: [oberheim] Re: Dream on, geek: The Überh ei m Matrix-1000 Project
 




Hawk800 is a nice upgrade. More than just a simple drop in replacement though. It requires soldering quite a bit of leeds and a custom PCB since it was before the plethora of cheap SOCs came. I'm actually still waiting for my PCB to be shipped, he only does it a few times a year in batch :/

Re: very small Matrix6 firmware bug

2014-08-09 by jan@...

Bob, would you be willing to share your insights on disassembling the M6/M1000 code? I'm still planning to take a closer look at the code and what it does, and it would be great to get an initial boost. I'm far away from your level of competence and knowledge (although I did some serious 8-bit coding in the late 80's), and instead of time, I've got two small kids. I'm also a lazy bastard. And so I'm hoping I could learn from what really skillful hackers like you have already found out.

How about generating a comments and labels file for disassemblers? :)

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.