Massive update on the SSP’s software development - MPE, USB and more
It’s time again for an update on the development of the SSP. The past few weeks a lot has happened!
1.) more parts arrived for production of the SSPs
We’re getting ready for the production of the rest of the SSPs! We already have a small number of SSPs from our initial run a while ago which we’ve been using for hardware testing, and will now be producing the rest of the SSPs. Almost all the parts we need have arrived and we’ll be kitting and delivering the parts to our subcontractor over the next weeks. It looks like the first PCB revision of the SSP does not need any fixes or additional revisions, so that is really good news. We’ve also been testing the SSP with multiple power supply solutions and a variety of modules in our intellijel 84hp performance case.
2.) development of the MPE features in full swing
Since our last video where we showed how you can plug a MIDI controller into the SSP’s USB port, have it detected automatically and instantly play a patch, we’ve been working on support for the MPE features of the SSP. For testing we are using a ROLI Seaboard block. For the moment the parameters from the Seaboard are automatically mapped to Wavetable oscillator parameters, such as X, Y and Z and to envelope generators which amplitude-modulate the oscillators. The notes are assigned to voices internally in the SSP’s software, and the modules in the patch are grouped into these voices so they receive pitch and trigger info. The Seaboard’s strike and lift parameters are mapped to scaling of the envelopes, so the wavetable oscillators’ sounds are louder or softer depending on how you play the Seaboard. Press and Slide are used for the Z and Y parameters of the WT Oscillator and the Glide parameter is of course mapped to polyphonic pitch bend.
I’m still working on smoothing code for the parameters and have to do more testing and experimenting with mapping, so I’m not quite ready to do a video yet. I plan to do one somewhere next week so it will be likely in the next KS update. In the photo you can see me play the Seaboard and recording directly into audacity on my mac laptop (more on that below).
3.) testing and bugfixing of the USB audio features both at the kernel and application level
As you might know it’s possible to stream the sound from the SSP’s software directly over USB to your Mac or Windows computer, and you can also stream the signals from the SSP’s input jacks this way as well (so essentially, the SSP acts as a multichannel eurorack-compliant audio interface). With the updates Microsoft has recently done with their Windows 10 creator’s edition, we’ve had to do more testing and bugfixing of the USB audio features.
On Mac we’re mostly done with this, as the USB audio class drivers there have been more mature / predictable over the past years. We’ll continue testing over the next weeks and will have more news on this in the upcoming KS updates. In the photo you can see how I’ve recorded sound from the SSP directly into audacity running on my Macbook pro.
4.) patching across multiple pages of modules
Celine has been working on our patching grid, and we’ve decided to extend the grid so you can have multiple pages of modules and patch across neighbouring pages. The code for this is almost done, and it’s exciting to think of the possibilities of building bigger patches on the SSP. We’ll post some video when she’s ready with all the code for the graphics and the page logic.
5.) visualisations of input and output jacks in input/output modules
I’ve added some graphics to the input/output module screens to make it clear which of the SSP’s jacks correspond to which of the scopes. In the input module editor there are 4 pages of scopes because the SSP has 16 inputs, and you can browse through the scopes and inputs using the LEFT/RIGHT cursor keys (the red buttons).
Each time you go to the next page the visualisation updates. The input module allows you to mix and attenuate/bias/offset any of the input signals, into a modulation signal, which can then be routed to any of the modules in the matrix (or back out to the outputs of the SSP).
In the output module, you have 8 scopes for the 8 outputs, and the visualisation shows you which of the jacks on the SSP are the outputs. In the photo you can see only one cable plugged in but the signal from the output module is actually routed to the 8 output jacks which is why you see the same signal 8 times on the 8 output scopes. Any output module you put in the patcher grid allows you to route its signal to any of the 8 outputs and you can have multiple output modules, allowing you to create different mixes of different signals.
6.) CPU meter added in patching grid
I’ve added a CPU meter to the patching grid, so you can see how much CPU power you have left as you add modules to the grid and patch them. The software will support multiple sample rates, being 48kHz, 96kHz and 192kHz. Depending on your needs you can choose to have a few modules at a really high sample rate or choose to have a lot of modules at a lower sample rate. In the patch below we have 4 wavetable oscillators each running 4 oscillator copies internally (so 16 oscillators with 3D morphing), 4 envelope generators doing amplitude modulation, 2 input processors, 2 LFOs and of course our global delay and reverb section, and all modulations are happening at audio rate.
As you might know all inputs and outputs on the SSP support these sample rates at 32 bit resolution and there is NO difference whether you use the inputs or outputs as audio signals, CV signals or gates. So you have the benefit of these high sample rates for modulation.
7.) update on input/output signal scaling in patching grid
Celine has been working on scaling code for the input and output signals in the patching grid. The idea is that you can use an encoder to scale the incoming signals into a module but also scale its outgoing signal. That way you can achieve any kind of scaling of signals you want, anywhere in your patch.
In the patching grid she also added two scopes, one below the incoming connections and one on the outgoing connection. This way as you scroll through the list (using a different encoder) of input/output targets you can see the signals coming in our going out and what their scaling is. It’s going to be really exciting and incredibly powerful when this is all done.
That’s all for now. We’ll update you again over the next weeks as we continue working on the software for the SSP. It’s a big project but it’s all going well. Our focus is to have a good solid version 1.0 of the software done in April.
Production wise we’re still on track to ship the first SSPs in April and the rest in May. We’ll keep you updated about our progress as our subcontractor starts assembling the SSPs.
Thanks again for your support!
Bert & Celine