This year it seems desirable and possible for Madrona Labs to make a Soundplane to CV device. This would be primarily a Eurorack module, but the circuit could also be built into its own enclosure for use with vintage synths etc.
Normally I do most of my design work in private, and only announce a product when it's pretty much done. But we (Brian and I) are going to change it up this time. Because neither of us is that deeply into the Eurorack world, it makes sense to solicit input early on in the process this time. This is going to be a utility device (though hopefully an elegant one) — so before we get too far along, let's make sure it will be useful to you!
The basic idea
USB jack for powering the Soundplane. Module puts out CV / gates / mod outputs for individual touches. Like the Soundplane app, a zone map decides how the Soundplane surface is divided up into notes and what those notes are. You can switch between zone maps, and the name of the current one should be displayed somehow. Aside from this, visual feedback will be at least an LED per Z value. To keep costs low, probably nothing too graphical or fancy.
We're looking for input on things like:
How many voices?
Each voice of touch output will probably have 4 outputs for pitch, x, y and z. Setting up many voices on a modular is not the way most people use them, so I'm guessing that two voices of output will take care of 90% of what people want. We would probably add an expander module for more voices.
Any interesting modes?
A switch that changes z (pressure) into a strict on/off gate might be useful. Any other things like this?
Layout?
individual voice groups vertical or horizontal? voice outputs at bottom or top? I'm thinking top, because a USB jack on the bottom will go to the Soundplane.
Power?
The module will need roughly 250mA at 5v to power the Soundplane. Brian will correct me if I'm wrong. Then there's whatever computing and display the module needs to do, and the outputs. Do we need our own power supply, or a list of compatible Euro power supplies that we can point people to? Any choices in connectivity to make here?
Finally, we're still looking for a great name…
More news on the Soundplane to CV module.
The second phase was hardware design and prototyping.
There are many embedded processors and I did not want to get too deeply into the hardware design process until after I was reasonably sure that the chosen one could handle the task. I recall some 8-bit MCU USB peripherals are limited to a maximum of 256 bytes for isochronous packets, while the Soundplane uses two endpoints of 388 bytes each. The proof of concept phase mentioned last week convinced me that the TM4C1294 can handle the full bandwidth, which makes sense given the 32-bit ARM architecture.
Cortex-A chips - the opposite end of the spectrum - are significantly more expensive, pull vastly more power from an already challenged modular power supply, and are really only necessary when you need serious graphics processing and full operating system support. You will not find a Cortex-A chip for as little as $7, so I am happy with the Cortex-M4F.
The next task after settling on a chip was to arrange all of the external connections to fit the specific GPIO ports. With 128 pins, 90 of which are GPIO, there are many interfacing options. Starting with a system design at a block diagram level, I grouped similar control signals together on the same port to simplify the firmware, and with so many GPIO options I was also able to move functions around the chip to locate them near subsystem groups on the PCB. Despite the 32-bit nature of ARM, the 15 ports are all 8 bits or less, which is a little different from, e.g., the XMOS chip architecture.
A side effect of designing the system first is that many of the expansion boards went through layout and prototyping before the main board. The advantage of handling them first was that they were very quick to design and I could work on the main board while waiting for the expansion boards to come back from fabrication and assembly. Future installments will discuss those.
I then completed the main board PCB design and reviewed it several times before beginning layout. You will see in the photo that it has the requisite Euro rack power connector. Peripherals include a rotary encoder, potentiometer, button, several LED indicators, and the obvious USB A Host port. Besides the many anticipated expansion connectors such as octal MIDI I/O, there are also a couple of quad synchronous serial port headers. Those SSI peripherals may never be used, but they would allow for serious high-speed data connections to other subsystems.
Basic firmware is up and running on this main board and communicating with the Soundplane. A lot more work is needed on the firmware, however, to implement all of the subsystems and get them working together. Obviously, besides the foundational basics, the first test will be to track at least one touch and generate a set of Gate and X+Y+Z Control Voltages that bring Soundplane performance gestures to life on a modular.
There is no particular schedule for future installments of these reports, but I think there should be time for me to put out a few more in the coming weeks.
Cool, it's really interesting to hear your progress
thank you rsdio for these updates, very interesting!
Quick news update: MIDI expansion hardware validated... before moving on to the more complex output features.
Most modular users probably will not need MIDI out (or in), but it seems like a good plan to design the system to handle it as an option. At the very least, the polyphonic features of the Soundplane will be easier to support over MIDI. If MIDI controller messages eat up too much bandwidth, the multiple MIDI ports allow the touches to be sent over separate cables or divided by zones or other schemes that we come up with.
The displayed board has three MIDI outputs and two MIDI inputs. Another board design has four MIDI outputs and one MIDI input. Both boards offer the option to convert the last output to MIDI thru, for the rare users that might need it. The current designs pack five MIDI jacks into the standard Euro height, but if user input suggests that having four MIDI jacks spaced further apart is a better idea, then the boards could easily be altered before production. Four of these expansion boards together, connected to the main board, allow the full potential of eight MIDI outputs and eight MIDI inputs.
As mentioned in earlier installments, MIDI is included because it's easy to support and should be available as an option for those who need it. As part of the Hardware Validation phase, I wanted to briefly test the MIDI subsystem to make sure there are no hardware changes needed on the main board. A quick test has my 1986 vintage Akai VX90 happily producing sounds, controlled by MIDI from the prototype Soundplane host.
The next installment should be the CV Output expansion hardware, which will be part of the base system. I hope to have that update here soon.
New update - OCTOUCH Soundplane CV expander board working!
I'm sure this is the piece that folks have been waiting to see. The pictured board supports a pair of Soundplane touches, with Gate/X/Y/Z outputs for each.
You'll see a couple of LED indicators above each group of four 1/8" CV outputs.
The top jack is intended as Gate, and is very flexible in terms of matching required voltages for various synthesizer brands - including the option for Velocity on Gate (a rare thing that I've actually heard of being used). The associated Gate LED is On or Off to indicate the status of the Gate signal. Currently, the Voltage threshold for that LED is set to 1.5 V since I believe that will work for all necessary settings. The actual CV output signal on the Gate Voltage jack can be as high as 10 V if your synth needs that much.
The next three jacks are for the X, Y, and Z dimensions of the associated Touch. These can be positive-only (probably appropriate for Z-pressure) or bipolar (for X-pitch and/or Y-timbre). The second LED is hard-wired to the Z dimension and lights up in proportion to the positive Voltage strength. The intention is to give feedback about the pressure.
The firmware will allow customization of Voltage ranges to suit various modules, but will have a decent default setting for folks that just want to play. The main board supports more than one of these CV expansion boards for folks who want more than two touches.
For simplicity, the LED functions are set in hardware because I wanted to avoid having complex control signals between the main CPU and the CV expansion just for LED indicators. In particular, I did not want to send high-frequency high-current PWM signals for LED dimming because these boards are all inside a modular synthesizer. I figure it's better to simplify the LED features and focus on good sound without buzzing interference. I also decided not to try to cram four LED indicators per touch, even though that might have been "cool." Although there's room for more LED indicators, I'm reluctant to add the additional circuitry in a product where we should be focused on sound sculpting.
If anyone has comments on these features, please share. It's not too late to change certain details or perhaps add features within reason. I think I've given a hint or two about my design philosophy.
p.s. the code name, octouch, combines the Greek prefix octo- with our favorite word, touch. the assembler mispelled this as Oc Touch, which had me wondering if I could think up another meaning for the letters, but I haven't come up with anything further.
so happy to see this progress!
velocity on gate sounds good, i would suggest adding an option to change from gate to trigger since this could be very useful for pinging resonant filters, exciting things directly with a short trigger...well, at least that's what i always do, so that would be my only wish!
thanks again for the pictures and updates!
@timoka, thanks for the feedback.
I'm fairly certain that trigger functionality and timing could be handled in firmware, including inverted (negative polarity) for compatibility with some, e.g. DotCom, modules. I understand that duration is a consideration for getting a good sound from a low pass gate, so time would be a configuration setting.
Moog S-trigger cannot be supported without significant hardware changes, so an external converter would be needed for that.
testing
Amazing updates. Appreciated.
The inclusion of the MIDI expander is very welcomed.
Velocity on Gate/Trigger is lovely.
Is the current idea that the main module will support up to 8 touches? Or are we looking at building up an array of touch pair modules as shown above and interfacing them to the main module?
Thanks, sequencersampler.
My current thinking is to make it easy on the customer and provide an 8HP panel for 2 touches as the primary model. We assume that will be the most common desire, so it will come as a single module that's ready to go.
The main board supports up to 10 touches, which seems a reasonable limit for humans. How to deliver that is an unanswered question.
Like most modules, there will be separate circuit boards behind the front panel, but I wouldn't expect customers to deal with interfacing individual boards unless that's the only option. Since I doubt we can find bulk discounts on the panels anyway, customers who want more than 2 touches may get a custom front panel that combines everything. For those of you that want MIDI, those jacks could be to the left or right of the CV and main USB sections, but that could affect the length of the ribbon cables. No promises that every combination will be available, but that's my idea so far.
My primary reason for separating the CV board from the main board was to reduce the number of PCB layouts across the various permutations. It should be a bit less expensive to make these submodules all the same and avoid the high prices of low quantity orders.
I briefly researched putting a single touch (4 CV) on the main module, but that ended up being way too tight for one board, so the next logical option was dual-touch units (8 CV, as shown).
Doepfer makes a few expander modules that are only 2HP wide, but that's just too narrow for the octouch boards. If available separately, the octouch would be a 4HP module, but it might actually make more sense to do custom panels that combine the desired number of touches with optional MIDI.
I think that the challenge will be to figure out what the second most common combination of features might be. I think it will be more affordable to have just one or two standard models to make production go more smoothly, with the option of more expensive custom design for customers who need more than the basic model. I think that some cost analysis and a survey would help.
Thanks for your time and input rsdio. There's a lot to think about here. I'm going to digest this and respond later.
First of all, I'm very thrilled about this development. Looking forward to the eventual availability of these modules (as well as soundplane itself).
About providing configuration variety: The usual approach in similar designs is to provide just two modules: A main "base" module, and an expander module. The expanders are normally 4 HP and can be chained as needed, providing the user with flexibility.
For inspiration MIDI-2-CV modules can be consulted. Just two examples: Expert Sleepers FH-1 has FHX-1 expander. Multiple expanders are chained with ribbon cable. I think up to 7 expanders can be connected. Another example is Synthrotek's MST MIDI to CV Converter: It has its own expander module. These are chained by I2C cable.
I think it's totally reasonable to expect a user to be able to daisy-chained the necessary number of expanders and the main module. So I think in this way the flexibility of adding more voices can be handled without custom panels.
Still looking for front panel makers with quantity discounts.
Thanks for the input, kirr. I had the impression that Front Panel Express prices did not allow volume discounts, so they're all technically "custom" panels. I probably have a lot to learn about sourcing panels for mass production.
Have you tried asking on the Muff Wiggler forum?
Many eurorack manufacturers hang out there (Malekko, Synthesis Technologies, Audio Damage, ...) and occasionally insightful manufacturing topics pop up.
I'm sure they'll be happy to help you out.
Happy to see all the progress on this since I last visited the forum!
I tend to agree with Kirr that a two-touch base module with 4hp expanders feels like the most straightforward solution. Another example of this would be the recent expanders made for Monome's Teletype (panels made by MPC: https://www.mpofcinci.com/metal-panels). It would also offer the (admittedly minor) benefit of allowing people some flexibility in how the cv outs are laid out in a case.
If it's at all helpful in terms of user surveys, I'd be interested in 4 touches and a MIDI expander, however that comes about.
Keep up the good work!
Thanks, Chris. Would you be interested in 4-out 1-in, or 3-out 2-in MIDI? In terms of panel space, they're the same.
Is the midi for Soundplane output? If so USB midi ihost is better than midi din.
@rsdio, that's a good question. What were your thoughts on how the touches would be allocated? If I had four touches and four midi outputs, would each output send out all the voices or would it be possible to allocate individual touches to individual outputs? Regardless of the answer, I imagine I'd be less inclined to use MIDI in.
I do think that having a USB MIDI out would be desirable for a lot of folks, but all of my desktop synths and outboard gear is DIN only, so having both options would be ideal if possible.
@chrisharrisx, I'm thinking that one touch per port would allow excellent bandwidth for expression. Another option would be to assign a physical port to a Zone, but I have not studied the typical use cases for Soundplane Zones yet. The latter might be more useful if you want to assign a particular hardware synth to a Zone, assuming that the synth is polyphonic.
@thetechnobear, I don't understand what a USB-MIDI Host would connect to. Usually only MIDI controllers connect to USB-MIDI, but the Soundplane would be the controller in this scenario. I'm assuming that a USB-MIDI Device would actually be compatible with more things, but then we're talking about a computer Host and the whole point of this project is to circumvent the computer that the Soundplane connects to currently.
Another consideration is that this product has devoted its USB port to Hosting the Soundplane, and the kinds of CPU chips that can handle two USB ports are typically more expensive than those that handle just one USB port, not to mention the extra USB jacks that would be needed.
If by iHost you mean an interface to iOS, then that could be expensive considering the various hurdles that need to cleared in order to talk to iOS using Apple's proprietary Device-to-Host switching protocol. Apple has something like USB OTG, but the protocol is different for an iOS Device. I think I'll understand what you're thinking of if you mention specific pieces of gear that you'd want to hook up, because then I could investigate the details.
Thanks for the feedback!
I'm seriously considering RTP-MIDI, but I have no idea how much firmware development effort that will require. If completed, RTP-MIDI should allow a lot of options that do not require dedicated ports.
USB devices are hosted, this is not limited to controllers e.g. A synth that has a USB interface would require USB host, supporting USB midi class compliance.
This is becoming increasing common, and makes sense for MPE hardware given the bandwidth requirements of the data.
It also largely makes din irrelevant, since there are lots of USB to din solutions , which contain flexible routing options, I guess it's convienient but takes up rack space.
As for iOS , as long as you are class compliant it's not an issue, it just works - this is how we connect Axoloti to iOS.
Thanks, @thetechnobear - I just realized that a USB hub would allow the existing hardware design to support both the Soundplane and a USB-MIDI synth. Just more firmware to write.
Of the USB to MIDI DIN solutions, aren't they mostly USB Devices? I know of one or maybe two USB-MIDI Host to DIN solutions, and I recall them being a lot more expensive than USB-MIDI Device to DIN. It seems moot with hub support, but I'm curious as always.
Of the USB to MIDI DIN solutions, aren't they mostly USB Devices?
yes, most are, which is why you want to support usb hosting by being a usb host ;)
MIDI and USB-MIDI should be about equally useful. USB-MIDI does not make DIN irrelevant because the timing is tighter for DIN even though the bandwidth is lower. USB-MIDI creates 1 ms jitter due to the USB frame timing. If you run everything through USB-MIDI, then it does alter the timing to a degree in exchange for gaining higher bandwidth.
The USB-MIDI part of the firmware should support both controllers and synths, the only difference being that one is mostly an input and the other is mostly an output.
The second hardware prototype revisions are in progress. Five OCTOUCH boards are being assembled as of May 23. Two main boards have been ordered, and parts are on the way; they will be assembled as soon as everything arrives.
While waiting for the second wave of hardware, I will be working on firmware. Abstractions for Gate and CV for X, Y, and Z will be created with control over the Voltage range, scale, and polarity. Touch detection will be integrated as soon as the desktop code is ready.
Thanks for the support, folks. Keep the good ideas and feedback coming.
Five new OCTOUCH boards were assembled at the end of May, and test firmware has been developed using MIDI input. The layout has been adjusted to allow for the correct orientation of the capacitors and modular jacks.
i'm very excited to see this project progress! any news?
I'm working on software currently alongside plugin work. The Soundplane touch detector has to be rewritten in order to work on our embedded boards.
thanks randy!
New Main Board prototype in hand for Soundplane to CV module. The DAC was simplified by replacing the external reference with a more expensive variation of the DAC with internal reference. Various layout changes were made to improve the mechanical aspects and hopefully prepare for a smaller board when the prototype phase is finished. The on-board 5V supply was beefed up - note the larger, shielded inductor - but it still needs some work.
I have some firmware changes in the queue to facilitate Randy's work. After that, I hope to order final prototypes.
These updates are great! Super exciting for sure. This might be an odd question but, do you have any ideas on the HP of this module(s) yet? I'm planning out the final free space in my rack and want to make sure I leave enough room.