Madrona Labs Soundplane direct CV control for modular

this was part of the AE modular patch challenge, and partly a project Ive been doing for awhile :slight_smile:
(more details in You Tube description)

So the basic idea is quite simple.
The soundplane software is open source, so take the low level soundplane code which has a libusb implementation, port it to ARM, get it working on the BeagleBone Black with Bela.

Bela is a low latency cape designed for audio use, which also provides analog input and output, 0…5v, perfect for AE Modular.

In the end, it was a bit more work than I expected, as there were some complications and bugs which needed resolving - but in the end I got there (thought I wouldn’t at one point )

This approach is great since the CV comes directly from the hi resolution sensors on the Soundplane, not going via midi which would reduce resolution, and increase latency.
(Ive got a prototype for something similar for the Eigenharp but that’s another story )

Im also excited because this same code works on the Bela Salt module, a Eurorack module - so finally I have direct CV control from my Soundplane into my Eurorack.
(I’ll release another demo video once Ive got the code to the next more refined state :slight_smile: )


Really cool! How many CV outputs do/could you get from one Bela?

Edit: Salt was apparently a limited 30 pieces run. Nice for those who got one…

Bela - 8 analog outputs, 8 analog inputs, and 16 digital (i/o)
(can’t remember if the audio I/O is DC coupled… so could be used as CV i think it possibly is?!)

fine for this, I don’t want that many outputs, as I don’t want a polyphonic modular system.
what Im more interested in doing is ‘zoning’ the surface, and then using the zones as modulation areas.

so for the above, what Ive done is
2 large X/Y/Z zones , going to individual voices, then 2 vertical columns as the ends, which act as ‘sliders’
for the eurorack version, Im also going to be adding digital gates for each of those zones (simple touch on/off)

that said, Ive been playing with Arduino’s recently, and in doing so learnt about how to drive DACs over SPI/I2C … so theoretically, I could drive quite a few via the digital outputs.
(theoretically, another 20 or so, by multiplexing SPI, which would drop rate - but should be ok… though probably id want to slew the output slightly)

of course there are other interesting ways to use this…
you don’t have to (only) output CV, Bela (and Salt) also has 2 channel of audio input and output. so you can use the as many touches as you wish to modulate that internal digital processing.

1 Like

Thats a great achievement and a lot of work I’m sure :wink:
Always pushing boundaries…

Out of curiosity, how would this handle a gesture crossing the line between zones?

(does the note get cut off? does the bend seamlessly continue in the allocated voice? do you travel backwards in time? could the other direction send you hurtling into the future?)

1 Like

good question, as Id been thinking about this myself…

what Ive coded so far is for the note to cutoff, as it seem the most natural.

but last night I was reconsidering this,

I could just just continue - so the zone is only really used to determine the initial ‘role’ of the that touch, but it can be interpreted over the full surface.
e.g. if I touch down in the bass zone, for that touch it will alway use that cv set, even if I then wander into the upper zone. (similarly the upper zone, can wander down into the lower zone)
(in practice, this is more useful for single handed playing, since its not that ergonomic to do it when playing with both hands :wink: )

this works, because the main reason Im zoning the surface is because when Im playing I want to decide which CV channel that touch is going to use … I dont want it to round-robin or similar.

its perhaps not intuitive, so not what you would do if you were ‘releasing’ the software, but if you know this is how it works - I think it will be very playable … (will test this, whilst testing the eurorack version :slight_smile: )

1 Like