New DSSI synthesizer, check it out

Support & discussion regarding DAWs and MIDI sequencers.

Moderators: MattKingUSA, khz

jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

varpa wrote:On AVLinux 5.0.2 - Using your synth with jack-dssi-host and a midi keyboard worked initially but then some notes got stuck permanently on which could only be stopped by quitting program.

with Qtractor 0.5.3.18 works, GUI appears but generates huge number of xruns.
I've now fixed every bug except for the hung notes bug, which I'm currently working on. Once that's fixed, I'll release a new version that should be rock-solid.

As far as the Xruns, check to see if it's because one of your CPU cores is hitting 100%. I have some aggressive compiler optimizations lined up for the next release that should help with that.
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

Update: It turns out that Ray-V actually inherited the hanging notes bug from Less_Trivial_Synth, which is an official DSSI example plugin that I gutted out to use as the base for Ray-V.

I've asked the DSSI folks to look into it. Once that's fixed, Ray-V should be in pretty good shape. I'm going to wait until the hung-note bug is fixed to release another update, as it doesn't do any good to fix the other 3 problems with that one still lurking around.
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

I just released an update on my sourceforge.net site that fixes the following issues:

Hung notes and missed notes
Re-opening the GUI in a host re-initializes Ray-V to the first preset
Glide always glides up(to the wrong note, in fact) even when it should be gliding down

...which should make it basically usable now for most people.

The following issues still remain:

High CPU usage (which in turn causes Xruns if you run out of CPU)
New bug: The first preset doesn't load when you open the synth for the first time(a trade-off for fixing bug# 2 above)
Glide still has some sub-optimal behavior

There's a lot that can be done to optimize CPU usage, and I already have some patches in the works that should help. I expect to have a CPU-optimized release out within a week or so. My initial estimates are that CPU usage can be reduced by perhaps 75%, maybe more depending on what kind of CPU you have.
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

Hey everybody,

I just released a 1.0.3 update that should make Ray-V usable for just about everybody.

http://sourceforge.net/projects/libmodsynth/files/

I've fixed a few bugs, but this release is mostly about hardcore CPU optimizations. This is the approximate CPU usage I'm getting on my desktops PCs now.

Patch: 2 x 7 unison saw oscillators
Benchmark: Play 8 notes simultaneously

Machine 1:

AMD Llano quad-core APU, 2.6ghz
CPU usage: 50% of one core, no Xruns

Machine 2:

AMD FX-8120 8-core, 3.2ghz
CPU usage: 30% of one core, no Xruns


...which should alleviate most people's Xruns. The patch wasn't playable on either machine before, so it was probably about 200% of one CPU core, so this should be a huge improvement for everybody.

The only 3 bugs I know of now are:

1. Controlling the knobs with a MIDI hardware controller doesn't work properly (although host automation does)
2. Rarely, something weird happens at startup and it only makes a clicking sound when you play a note
3. The first patch isn't loaded when you first open an instance of Ray-V(a tradeoff for fixing a more serious bug)

As soon as I can fix these bugs(and any other bugs you report), I'm going to start working on the 2nd plugin in the series, which will be more advanced, with flexible modulation and wavetable oscillators.
werock
Established Member
Posts: 58
Joined: Wed Nov 05, 2008 11:23 am

Re: New DSSI synthesizer, check it out

Post by werock »

Thanks, I look forward to trying it out.

Just out of curiousity, were the optimizations in your API, or just in this particular plugin?
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

werock wrote:Just out of curiousity, were the optimizations in your API, or just in this particular plugin?
The optimizations are in the audio processing modules within the API itself. I took all of the expensive functions in the main loop that used division, fabs, sin, log and exp, etc... and plotted them to tables that can use a fast linear interpolation to get an approximated value with accuracy to about 0.1%. It was something I intended to do anyways, but the higher-than-expected CPU usage of the standard C library made me decide to do it sooner rather than later.

Such optimizations were a standard practice in hardware design, which is how EMU, Yamaha, etc... were able to make such good digital hardware back with ye olden 80s/90s DSP chips.
werock
Established Member
Posts: 58
Joined: Wed Nov 05, 2008 11:23 am

Re: New DSSI synthesizer, check it out

Post by werock »

I've tried it from within Renoise (v2.6) - it appears in the list of DSSI instruments, but when selecting it there is no output, and when pressing the 'ext editor' button in Renoise (which should bring up the GUI) nothing happens.

I also tried the jack-dssi-host and it wouldn't start from there either. Initially I got the messages:

Code: Select all

cannot read response from jack server (No such file or directory)

jack-dssi-host: Error: Failed to connect to JACK server
Then I tried without Jack running and as the superuser and got:

Code: Select all

host: Ready
synth_qt_gui starting...
QGtkStyle was unable to detect the current GTK+ theme.
/usr/local/lib/dssi/ray_v/LMS_qt: symbol lookup error: /usr/local/lib/dssi/ray_v/LMS_qt: undefined symbol: _ZN9QListData11detach_growEPii
I'm running AVLinux 4.2.

Hopefully this is useful...
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

I see the current version of AV Linux is 5.0.3, how old is AV Linux 4.2? I would guess it's probably a dependency issue. Either because AV Linux is Debian-based, or because 4.2 is too old. TBH, I've only tested Ray-V with Ubuntu, and I didn't include any dependencies with the .deb file, because I assumed that everybody's jackd/ALSA stack would already have those dependencies(and also because I just haven't gotten around to it yet).

I'm downloading the latest AV Linux to see if I can reproduce. In the mean-time, you could try installing the following dependencies (which may have different names in AV Linux), and see if that helps:

sudo apt-get install liblo-dev dssi-dev ladspa-sdk libasound2-dev g++ qjackctl libqt4-dev libjack-jackd2-dev libsndfile1-dev libsamplerate0-dev libsm-dev uuid-dev cmake liblscp-dev libmad0-dev

If that does help, I'll add some of them as dependencies to the .deb file.

...also, try this command to see if it helps with your ability to run jackd properly without running it as root:

sudo usermod -g audio $USER

#the above command requires you to log off and back on after running it.
werock
Established Member
Posts: 58
Joined: Wed Nov 05, 2008 11:23 am

Re: New DSSI synthesizer, check it out

Post by werock »

Yes, 4.2 is a year or so old, can't quite remember!

I'll have a look at those packages, but it will be a couple of days before I get a chance now.

I can normally run jack as myself, I was just trying different things to try and get the host to start without error.
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

As it turns out, at the top of page 2, I'm quoting Varpa who is saying that 5.0.2 does work, albeit with a bug that has since been fixed...

Please let me know whenever you find out if installing those dependencies fixes it in 4.2. If it doesn't fix it, then it looks like it may be time for an upgrade :mrgreen:
slowpick
Established Member
Posts: 457
Joined: Mon Apr 25, 2011 10:09 am

Re: New DSSI synthesizer, check it out

Post by slowpick »

jeffh wrote:I did manage to fix the
It looks like some distros have a twist on the way /etc/hosts is implemented,
that can meddle with dssi connecting to the gui. Here is an example I found,

http://old.nabble.com/jack-dssi-host-td30398457.html

If it's possible to code your base library to control or reset network managers
to seamlessly allow dssi to roam loose, that could be a big advantage for the
future instruments you create.
jeffh
Established Member
Posts: 217
Joined: Wed Jan 18, 2012 1:27 pm
Location: East Coast, USA
Contact:

Re: New DSSI synthesizer, check it out

Post by jeffh »

slowpick wrote: If it's possible to code your base library to control or reset network managers
to seamlessly allow dssi to roam loose, that could be a big advantage for the
future instruments you create.
Nice find, thanks for that.

I could probably have it reset that file every time, but I think that would require a gksudo prompt for the users password, and possibly also a restart of networking, which would probably annoy most people quite a bit.

I think what I would like to go about it going forward is just to ditch the OSC/liblo portions of the code altogether, and give it a native Qt GUI that interacts directly with the DSSI engine from a separate thread, instead of from a separate process over the loopback networking interface. There's really no good reason to invoke networking protocols just to run a DSSI plugin on the same machine. If anybody here is more experienced with C++ and Qt than I am, and is able and willing to write a patch to make that happen, I am open to outside contributions. :mrgreen: If not, I'll eventually do it myself, but admittedly I'm still very much a noob to developing on Linux, so that may be a while.


****on an unrelated note****

For my early adopters out there, I have some very solid improvements to playability and musicallity coming up in the next release. Both pitchbend and filter cutoff are now being internally smoothed in the latest Git builds, which sounds much better than before when modulating either of them in real-time. I have also fixed the filter cutoff to be accurate, whereas before it was actually off by a substantial amount.
slowpick
Established Member
Posts: 457
Joined: Mon Apr 25, 2011 10:09 am

Re: New DSSI synthesizer, check it out

Post by slowpick »

Sounds like you have a great solution in sight 8) QT is used in lots of
important audio apps, so extra dependencies should be few and far between.
slowpick
Established Member
Posts: 457
Joined: Mon Apr 25, 2011 10:09 am

Re: New DSSI synthesizer, check it out

Post by slowpick »

I had a similar issue, and found this command that reset the network,
so dssi would be able to broadcast the gui

service network restart

the computer replies:

Shutting down loopback interface:
Bringing up loopback interface:
Post Reply