Hey all ![]()
Short version:
I need help with building hardware to interface a core module with SRAM.
Very long version: (sorry!)
I’m back from the dead
Some of you may remember that I was working on an x0x (rm1x/electribe/schaltwerk/whatever) style sequencer before I disappeared, and I must admit that I’m very surprised that someone hasn’t given this a shot while I’ve been gone. I see that there is still much interest in this idea, however as the design would branch away from the standard MBHP/MIOS design, progress seems to come to a halt.
I’ve moved house (just 4000km’s away), left behind a lot of things that have been in my way, and got a great job with great pay… So I want to make hay while the sun shines. I’ve done lots of work on the design and inner working of this thing, theres a stack of code and pseudocode and notes and half-made stuff. I’m fairly sure I can make this work with a single core module now, but there is one issue that I just can’t seem to solve. RAM.
The way I see it, there are several available solutions:
-
Newer PIC - eg 18F4525 - This PIC is pin compatible with the 452, will need some minor code changes to work, but has 4 times the RAM onboard. This is nice, but I don’t think that it will be enough.
-
New Core Module based on FPGA - eg cyclone - LOTS of work! If others were interested in helping out a LOT, I would do this, but otherwise it may be too much work for me alone. I’m sure TK is too busy for this and he should be involved in any such project. So maybe this is out of the question.
-
External SRAM - There has been talk of this in the past. TK was even kind enough to suggest pin wirings and a suitable chip

I’m very confident that I can deal with all the code, but hardware is not my strong point. What I am hoping is that someone here knows enough about the hardware side, to design a board with more RAM that will work OK so that I can do the code. I will be happy to pay for any hardware required to make the board if you can get this to work.
Some notes from TK on SRAM:
For common SRAM chips a lot of connections have to be made: i.e. a 128k SRAM needs 17 address lines, 8 data lines and 3 control lines… the number if wires could be reduced by using a latch like known from 8051 devices, and the data bus could be shared with the LCD bus — but this would result into a design far from the (easy-to-solder) MBHP
…
So long most pins are free, you could hook a 128k SRAM (like the 628128 ) to the core directly - here an example:
data lines could be connected in parallel to the LCD port, 8 address lines could be multiplexed with the data lines like known from 8051 designs (by using a 74HC573 latch)
8 additional address lines could be connected to J5
the remaining address line to J7:RC
the chip select to J7:SO
the latch enable to J15:RS
the R/W to J15:RW
You need to implement a (simple) read and write routine for RAM accesses (RAM_Write, RAM_Read) and put it into your application. The resulting access time should be about 2 microseconds (ca. 20 instructions) - fast enough for large data structures.
SRAMs can be buffered with a small 3V battery
Is it really that easy?! Do I need to add anything else (pull up/down resistors or caps or something)?
How about J6 (AIN) and J10 (SID)? Analog ins and MBSID won’t be supported by the seq, can I use those? I can check the datasheet to see if the port is compatible, but I hope that someone here knows, so I don’t have to read that darn PDF for hours (again) ![]()
It would be great if this could be made into a kind of Core Module ‘daughterboard’, which would allow normal a core module to be used, and then the new module with the SRAM and latch IC’s piggyback on top of that, and then LCD module etc from there. This will keep the project much closer to the MBHP project design. (even thouh the software may not be 100% MIOS compatible)
For those who haven’t read about my ideas over the last years:
Once I can get the SRAM to work, a little programming will result in something like a shaltwerk / zeit / phaedra / fruiyloops interface, mixed with the awesome but now apprently extinct ( :‘( The link died in the last 48 hours) Signal Arts Performance Seqeuncer and the Manikin Schrittmacher. The idea is to have independent tracks of independent play speeds and lengths, which can trigger either MIDI stuff such as notes or CC’s etc, or they can be used to trigger other tracks, manipulate other tracks’ play speed and length, manipulate note/velocity/cc/gate length values and mutes in other tracks, or even within the same track. It’s basically a semi-modular sequencer. Think of a kind of hardware version of Five 12’s Numerology.
The UI would consist of (among standard things like menu buttons and jogwheel and LCD etc) a scanned matrix of 8 steps by 12 tracks. The reason for choosing 12 tracks is to allow a matrix editing mode where one track can be expanded to take up the whole button matrix. This will allow a whole octave of notes over 8 steps. Obviously this mode will have octave up/down buttons.
There would be no song modes or pattern chaining etc as a separate section, instead just normal tracks can be used to sequence other tracks in order.
For example, Track 1 of 4 steps, plays at 1/4 master tempo. Steps 1, 2 and 3 play the drum break programmed into track 2. Step 4 plays the sequence in track 3, which has a drum fill programmed into it for the end of the bar.
Meantime, track 4 with 2 steps plays at 1/4 the speed of track 1 (1/16th of master tempo). This track changes the trigger on step 4 of track 1, so that a different fill is played at the end of each set 4 bars.
You could have track 5 playing a 5 step pattern at 5/4 speed - polyrhythms. These five steps will loops in sync with the 4 step tracks above.
You could have track 6 playing a 5 step pattern at master tempo - polymeters. This way, 4 steps will play for every 4 beats at master tempo. The 5th step plays at the same time as the first step of the next loop, the 2nd step of the next, the 3rd step of the next, Every 20 beats, the two loops will start together.
I would also like to include an ‘envelope’ mode where steps act like envelope breakpoints for midi cc’s or NRPN’s etc, various MIDI FX (gaters, delays, etc) and an arp/transposer. This is one of the few things I haven’t actually tried to do yet so no promises ![]()
You can of course take this concept much further by doing weird (silly) things like, uhmmm, playing a 13 step track at 3 times 7/5 of master tempo (21/5) which triggers another pattern to move backwards and forwards step-by-step (say 3 steps forward, then 4 steps back, then 2 steps forward, then 5 steps back etc) through a pingpong loop, on which each step changes the loop mode of another pattern at 63x master tempo which controls the start point of a reverse loop which changes the breakpoints of an envelope sending MIDI CC’s to do filtersweeps on your MBSIDÂ
Or something stupid like that …
There are other things too but this post is already WAY too long :-\
Please feel free to send me any ideas you have which you would like to see included, or to volunteer help ![]()
Regarding the Zyklus MPS: (and Vangelis Direct)
I only just discovered this today (I’ve been researching this subject for years and somehow missed it) while reading posts from while I was away. Guys, you were looking for a manual for the machine, you can find it at:
You’ll also find the preliminary spec for a new sequencer called the Improvisor. Just in case anyone is thinking “Hey, this stryd guy is stealing the idea”, start searching this forum and find my ideas for this being expressed over 2 years earlier
And the ideas are much older than that.. I say this because I do not want people to think I am stealing ![]()
Congratulations if you made it this far!!! ;D

