Jump to content

Chaos Matrix


jackchaos

Recommended Posts

  • Replies 69
  • Created
  • Last Reply

Top Posters In This Topic

what are the filter CCs ?

Optionally you can have the filter cutoff knob send CCs instead of sysex. The sysex is necessary for programming and saving a patch. However the cc improves performance if you want to tweak while playing.

When you enable this feature in the filter menu, the first unused matrix modulation bus is used to modulate filter cutoff with lever 3 (breath controller). The filter knob will then send breath controller CCs instead of sysex.

Edited by jackchaos
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

This is a great controller and I'm going to build one for my Matrix 1000 :-)

Did you get any further with midi merge on the inputs?

One question - I actually have 2 of Matrix 1000 synths connected together as detailed in the Matrix owners manual, so I can either have 12 voices or the two synths layered and detuned for a 6 voice 4 vco per voice monster synth!. Will this controller work with both synth modules at the same time in both of these modes or will it only control one of them?

Link to comment
Share on other sites

  • 4 weeks later...

Modularman

First, let me apologize for the late response. I've set it up so I am notified when new reply's are created. Second, thanks for your interests and I wish you the best making your Chaos Matrix.

As for your questions,

MIDI merge:

I got lazy with the MIDI merge issue and ended up buying an old MIDIMan merge box on eBay. You could just as well build your own merger using one of the projects on this site however. The Chaos Matrix will work fine without one, but the buffer synchronization features will not work without the merge.

2 Matrix's:

That's a good question. I do not have 2 Matrix's to test this with, maybe you can test for me.

Try sending a couple of sysex messages to the first unit in the chain, and test whether you get the response from the MIDI out on the second unit.

Request Edit Buffer, you should receive 275 bytes back

F0 10 06 04 04 00 F7

Then send a parameter change, DCO1 Frequency

high:

F0 10 06 06 00 3C F7

low:

F0 10 06 06 00 10 F7

If both synths change OSC1 pitch, then the Chaos Matrix will work editing both in a 2 unit mode (12 voice) without any changes to the firmware.

As for layering two different sounds on top of one another, the Chaos Matrix currently doesn't support this without changes.

Please, keep us up-to-date on your progress.

Regards,

Patrick

Link to comment
Share on other sites

Patrick,

I am having difficulties opening the .7z file in your original post. 7-Zip gives me an "Incorrect Command Line" error. Could you please upload that in "regular" .zip format again? (Or, tell me what I am doing wrong :unsure: ?)

Thanks, ilmenator

Link to comment
Share on other sites

Hi Patrick,

Many thanks for the reply. I'd reached the same conclusion on midi merge, I'll probably cheat and use a Philip Rees one I have lying around.

I had two Maxtrix 1000's up until a year ago - I sold them because there was no real time panel control; your controller has answered all of the shortcomings of the Matrix 1000 so I've started buying again, I just bought one on ebay three weeks ago and I'm on the lookout for a second unit now, as soon as I get the second one I'll test them both as suggested; 12 voice mode is the one I'd really like to get working, not so bothered about layered mode.

I'm in the process of ordering up the components to build my own Chaos Matrix, hope to be starting in the next week or two, think I'll have to build mine into a 3U or 4U rack case as I'm really short on space. I'll share the panel design when I get it completed.

Many thanks for this great project, looks like it really brings the Matrix 1000 alive!

Allan

Modularman

First, let me apologize for the late response. I've set it up so I am notified when new reply's are created. Second, thanks for your interests and I wish you the best making your Chaos Matrix.

As for your questions,

MIDI merge:

I got lazy with the MIDI merge issue and ended up buying an old MIDIMan merge box on eBay. You could just as well build your own merger using one of the projects on this site however. The Chaos Matrix will work fine without one, but the buffer synchronization features will not work without the merge.

2 Matrix's:

That's a good question. I do not have 2 Matrix's to test this with, maybe you can test for me.

Try sending a couple of sysex messages to the first unit in the chain, and test whether you get the response from the MIDI out on the second unit.

Request Edit Buffer, you should receive 275 bytes back

F0 10 06 04 04 00 F7

Then send a parameter change, DCO1 Frequency

high:

F0 10 06 06 00 3C F7

low:

F0 10 06 06 00 10 F7

If both synths change OSC1 pitch, then the Chaos Matrix will work editing both in a 2 unit mode (12 voice) without any changes to the firmware.

As for layering two different sounds on top of one another, the Chaos Matrix currently doesn't support this without changes.

Please, keep us up-to-date on your progress.

Regards,

Patrick

Link to comment
Share on other sites

  • 7 months later...

2 Do you sell it ?

Hi François,

MIDIboxes are easy to build yourself, even if you have very little or no knowledge in electronics. We are a very helpful community, and we encourage everybody to build their own boxes. Just buying devices is not encouraged, as you will then not be able to troubleshoot if anything goes ever wrong with your box. If you have built the box yourself, then you will have enough knowledge about it to be helped via the forum!

Go to the ucapps website for some reading about the hardware!

Best, ilmenator

Link to comment
Share on other sites

  • 1 month later...

Dear Patrick

It has been a year now and I wish you a happy new new year :ahappy:

So, i've just finished my matrix1000 controller, essentially based on your nice design. I 've added some additional buttons, but for later.

SO, i've got a problem : i downloaded your source files but as i did not follow your design (AIN, DIN and DOUT pins placements differ in fact) i've edited pots.h and din.h to correspond to my design but it seems that it doesn't do the trick :getlost:

i just type

make

in Mac OSX terminal, in the corresponding folder, as i do for other app

I am absolutly sure about the pin numbers because i used the ain64_din128_dout128 app to note the pin number. Each button, each LED, each pot is responsive, so my hardware is correct. I think that the major problem sits in the compile process on my computer. Is there anything to clean do you think ?? I already cleaned /ouput but doesn't do anything ...

I would be pleased to get some of your help

Best regards

EDIT : I've uploaded my .c and .h files if somebody wants to observe the difference between my config and the one of JackChaos

Matrix_Controller.pdf

post-4619-047597900 1295317492_thumb.jpg

post-4619-074562900 1295317503_thumb.jpg

post-4619-046017800 1295317517_thumb.jpg

post-4619-066785500 1295317524_thumb.jpg

din.c

din.h

encoders.c

encoders.h

pots.c

pots.h

Edited by julienvoirin
Link to comment
Share on other sites

after several hours into code, i think i've maybe understood :

Din buttons are not defined into .h but into .c, isn't ?

in .h, we define the place in the array, isn't ?

EDIT : Problem solved

In fact your app uses a double double array if i well understood :

1st array defines DIN/DOUT pin connection in .h, linked to a second array for display in .c

2nd array is for AIN, same "way of making things" than for din/dout

I am right ?

All the code is very very well constructed and well thought :thumbsup:

Edited by julienvoirin
Link to comment
Share on other sites

Julien

Congrats on getting this far!

Are any of the controls working... pots, leds, encoders?

Its been a while since I looked at the source but taking a quick look...

Apologies, the DIN/DOUT config could have been made cleaner.

Yes you will have to edit both din.c and din.h to config pins.

din.c:

Has to be filled in (DIN_ConfigMap[32])

The dins need to be listed in order that correspond to their pin number in the array. And of course each entry must point to the the DOUT pin for its corresponding LED.

din.h has a few of the pins in din.c #defined to improve code readability wherever its used. So make sure anything in din.h that starts off with #define DIN_ or #define DOUT_

pots.c:

Rearrange the entries in PotConfigMap[] to correspond to their pin positions.

Then edit the #define POT_OSC1_***, POT_FILTER***, etc. in pots.h to match their config in pots.c

Link to comment
Share on other sites

Are any of the controls working... pots, leds, encoders?

Yes ! except Filter Sustain certainly cause buffer is empty (not yet connected the matrix 1000 to) :sweat:

Apologies, the DIN/DOUT config could have been made cleaner.

it's OK, i've understood :ike:

din.c:

Has to be filled in (DIN_ConfigMap[32])

The dins need to be listed in order that correspond to their pin number in the array. And of course each entry must point to the the DOUT pin for its corresponding LED.

din.h has a few of the pins in din.c #defined to improve code readability wherever its used. So make sure anything in din.h that starts off with #define DIN_ or #define DOUT_

pots.c:

Rearrange the entries in PotConfigMap[] to correspond to their pin positions.

Then edit the #define POT_OSC1_***, POT_FILTER***, etc. in pots.h to match their config in pots.c

I am so excited :frantics: !!!

Would you be OK to help me to implement :

1. Connection to Matrix through I2C, normal core MIDI reserved for notes only ?

2. Bankstick support : all parameters stored in the small EEPROMs instead of the Matrix EEPROM ?

3. Multiple Matrix control (I've got 3!) thanks to 4x I2C ?

4. Arpegiator , synced to midi clock?

I wanted to ship you a IIC module and a 8 bankstick stuffed PCB to help you when you were trying the Merge stuff. PM your postal adress if you are interested

Btw, I really want to prove you my big big big respect for this app, all this so clear code (a good base for Roland Juno PG300 clone :thumbsup: ) and all the doco you've published in the wiki

Next step is silkscreening of the panel and Re'an P301 knobs dealer (maybe eBay if the guys answer me one day)

Thanks again :hug:

Link to comment
Share on other sites

  • 3 weeks later...
1. Connection to Matrix through I2C, normal core MIDI reserved for notes only ?

DONE ! i2c out only as the programmer will manage patches data

2. Bankstick support : all parameters stored in the small EEPROMs instead of the Matrix EEPROM ?

DONE ! tonight it reads and writes into eeprom, writes into bankstick ; tomorrow i will implement read from bankstick

the programmer can ask a patch dump from the matrix1000, then you choose in what bankstick memory it goes (8x100 patches, later 2x8x100 patches)

3. Multiple Matrix control (I've got 3!) thanks to 4x I2C ?
DONE ! using a sort of router algorithm (event of 1st channel routed to 1st i2c and so on ..)

4 buttons allow you to edit 4 matrix 1000 independantly

next enhancement will be 4 EditBuffers for each matrix

:thumbsup:

thanks again to jackchaos :heart: for his so well structured code ! lots of useful functions are implemented and useful for enhancement

and thanks to the genius who created "SysEx Dump Demonstration (and template)" :ahappy: very useful to read/write into BS

Edited by julienvoirin
Link to comment
Share on other sites

Patrick, your code is just amazing ! everything so well documented and clevery thought ! i :heart: you

i've just understood the trick with MIDI_ReceivingEditBuffer=1, inserted into ProgramChange function, relating to MProc_ReceivedEvnt into MIDI_HandleEditBuffer() : whahahah :ike: excellent !

Link to comment
Share on other sites

It tooks me 4 days, but I DID IT !!!

now it reads and writes into bankstick :thumbsup:

Some enhancements need to be done, but here is what you can do with it :

- get single patch from matrix 1000 and store them inside bankstick (8 BS, each having 100 patches)

- load a patch from bankstick, update EditBuffer (so that the LFO leds blink at the good rate for example), tweak it and resave it into bankstick

Then the Matrix1000 is only a sound player, all is managed by the Chaos Matrix :rolleyes:

still a beta code, UI needs to be improved. I 've added several pages to Patch management. If somebody see a good manner to dump a whole bank (100 patches) directly into Bankstick , i am interested. It can be done into void MIDI_HandleEditBuffer(unsigned char byte) of midi.c but it is a little bit hardcore for my poor experience of selfmade coder

EDIT : v0.31 et v0.32 are buggy for bankstick save. beta v0.33 is OK

MatrixBoxSource_JV_beta v0.33.zip

Edited by julienvoirin
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...