Test application on system

I have setup virtualbox and install SSP SDK, VST_SDK, etc.
I can compile that ssp sdk and “.so” file has generated. Now i want to make some modification to develop my application.
So, can i test test my application(make changes in Makefile to create executable file) with my system with chroot? If possible then how can i test it, please guide me.

Kishan Patel.

1 Like

Shooting the Devs a message. @bert

I’ve just started doing some dev, before I got my ssp. ( today). what I did was compile natively on my desktop - since Juce is cross platform you can do most of your development there- just testing on the ssp.
(You can fake the controls from the ssp)


Hello thetechnobear,
So, can you please share some reference code for development. So, i can kick start my development with percussa.
Basically i need some reference that how IO buttons of percussa works and how to code for it.

Hoping for quick reply.

Ive been concentrating on VST dev for now… so dont have example code

but from @bert on the mSSP thread:
the knobs and encoders are basically linux device files that you read from using simple file system calls.

so basically, all you need to do is look at the device tree, or overlay file - and then you can read these ‘files’ for the values - there are plenty of examples on the web of this, as its pretty common on things like rPI.
(if you are familiar with the monome norns, then the code for that is on github, and demonstrates how to do this)

If you are not familiar with this, Id recommend you start with VST development.
as writing full applications on the SSP throws up a number of ‘interesting’ questions if you plan to share it.
e.g. how do you install it, such that a user can switch between synthor and your application.


I did a bit of digging on the SSP (as i need the info later too :wink: )
you’ll find the events to read at:

buttons : /dev/input/by-path/platform-matrix-keypad-event
enc 1 : /dev/input/by-path/platform-rotary@2-event
enc 2 : /dev/input/by-path/platform-rotary@0-event
enc 3 :/dev/input/by-path/platform-rotary@3-event
enc 4 : /dev/input/by-path/platform-rotary@1-event

if you want to know how to read, then just look up Linux input events.

whats your plans?

note: none of the above is needed for VST development, for VSTs you get the encoder/button information from vst parameters, as is shown in the sdk example.

Thank you so much Thetechnobear,
Thats i wanted to clear that i have to read IO events from file or not.
Because in SDK, i can see that all buttons index has defined in “percussa.h” file.
So, if user press any button, “QVCA::setParameter” function should be call. Right?
Actually, i want to show some different-different effects when user press buttons.


obviously, this assumes you have:
compiled .so, copied it over to the SSP plugins folder, loaded the VST in a patch, and brought up the plugin display.

NO, not if you are creating a VST.

sorry, I my getting confused, because you refer to ‘testing my application’ ,
a VST is not an application, it is a module loaded into another ‘host’ application, in this case synthor.

a VST has a defined interface, which you can see in the sdk example.
it does not access the hardware directly

in contrast writing an application, would replace that host application (synthor), and so needs to access the hardware directly.

I guess, you are really talking about writing a VST.
but when dealing with technical development projects we need to be precise with the terms/language we use.
since code need precision :wink:

I appreciate your reply.
And sorry if i confused you. Actually i want to develop VST_Plugins. But first i have to test some basic effects on device. So, first i am trying to access all buttons of device and want to change effect like increase/decrease volume, etc. I am using ssp-sdk. So, how can access and use it with SDK?. If you can describe more in details to me, it will be great when you get some time.

Thanks again.

in the qcva example code, in pluginprocessor.cpp you will find appropriate comments in setParameter on how to proceed - its very clear, I’m not sure what I can add.

from there it’s very similar to normal vst development, so if your not familiar with that, then I guess I’d recommend looking at the juce tutorials on how to create vsts.

Actually i have looking tutorial from some of days and i found that parameters of Pluginprocessor file has changing when any paramer-chage in PluginEditor file. Means when we change volume-slider value in GUI using mouse in our PC and it will affect to audio of PC. But i dont understand that how we can change parameter value of PluginEditor(volume-slider) file when any Button pressed? If you can help me in this i can kick-start my development please.


you cannot use ‘traditional’ gui elements on the SSP vst, since the user does not have access to a mouse/keyboard :wink:

what you need is to get the events from setParameter to the editor, and then you can write your own ‘UI’ that responds to these events.

there are ‘various’ ways to do this,

the simplest way (*) is to do qvca, which is to access the processor from the editor, periodically using a timer, or with an update method being invoked from the processor (see what qvca does in processBlocks, but you could do elsewhere (e.g. setParameter)

the ‘trick’ here, is that the sdk example is storing the last parameter values.
L64 : paramValues[index-Percussa::sspFirst] = newValue;

so you can use these values from the editor.
note: you can assume when a user stops turning an encoder it goes to zero.

(*) be careful with thread safety, as mentioned in the comments, the UI (aka editor) runs in a different thread to the audio processing… so accessing from both could be problematic.
there are many solutions to this - and its discussed widely on the internet and programming texts.

really thats it… thats the ‘simple’ way… that should get you started.
from there you can adapt to your own requirements which depend upon kind of vst your writing, and what it needs to do.

the above should be enough to get you started…
Im not sure how much experience you have with VST, C++ and DSP dev in general,
if you’re new to it, all i can say is … the only way to learn is to ‘get your hands dirty’.

unfortunately, plugin development requires experience in c++, dsp and in this case things like Juce.
it can be a bit daunting at first, but you can only learn by trying.
(also on the SSP this is complicated since you cannot just use the ‘gui builder’ to right the UI, you’ll need to use graphics primitives)

don’t get me wrong, I think it would be useful if we had an ‘easier’ way for people to build plugins for the SSP,
and perhaps I might do something in this area later - but for now, I’m spending a lot of time writing my own plugins (which i think benefits more SSP users) so don’t really have time to spend doing this :frowning:

Thank you so much.
Yes, this is enough to show me direction. Now its time to try and follow your direction. I will come back to you if i got success to make communication between ssp Editor and Processor.


1 Like