Xhip (subtractive/hybrid synthesizer)

Discuss anything new and newsworthy! See http://planet.linuxaudio.org and https://libreav.org/news for more Linux Audio News!

Announcements of proprietary software may fit better in the Marketplace.


Moderators: raboof, MattKingUSA, khz

asbak
Established Member
Posts: 897
Joined: Thu Sep 11, 2014 3:04 pm
Has thanked: 71 times
Been thanked: 64 times

Re: Xhip (subtractive/hybrid synthesizer)

Post by asbak »

Just add glowsticks, Ibiza, E's and a time machine set back to 1999
Some Focal / 20.04 audio packages and resources https://midistudio.groups.io/g/linuxaudio
User avatar
Linuxmusician01
Established Member
Posts: 1542
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 772 times
Been thanked: 142 times

Re: Xhip (subtractive/hybrid synthesizer)

Post by Linuxmusician01 »

Didn't read the whole topic carefully. Instead decided to do a quick test though. I use Qtractor. I loaded the 32 bit version of Xhip w/ DSSI: worked/looked/sounded fine. Loaded the 64 bit version w/ Carla (because DSSI only supports 32 bit): worked/looked/sounded fine too. I like the fact the there's a 32 bit version! Thanks man. For 64 bit Windows VST's one needs Carla in Linux. That's one potential extra crash (Carla has a GUI and seems somewhat "complicated" to me). DSSI is very old and stable in my opinion and it doesn't need an extra Window/application to be opened in my DAW.

I don't know what your conclusion is but to me it works just fine. Might actually become one of my fav. VST's because of the straight forwardness of the GUI and the approach of its monophonic, multiple voice, subtractive synsthesis. :)
aciddose
Established Member
Posts: 14
Joined: Tue Oct 03, 2017 9:26 pm

Re: Xhip (subtractive/hybrid synthesizer)

Post by aciddose »

Latest news regarding native Linux Xhip is that I've compiled the effects successfully.

Still no native 32-bit version, it's a bit difficult to manage multiple targets without using cmake or similar systems. The IDE I've been using (codelite) is really not that great at editing configurations and requires hundreds of repetitive clicks. That said I'll get it done eventually, managing multiple targets doesn't make a whole lot of sense until I have all the bugs/issues worked out.

For now the 64-bit native version of Xhip Effects seems to work great which is awesome as I was really missing the effects when working with the synth on Linux. Even better, this alpha version of the effects incorporates some of the skinning capabilities I've been working on recently so for now at least the Linux version is actually far ahead of the Windows version.
Attachments
compressor2.0.png
compressor2.0.png (133.21 KiB) Viewed 1315 times
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: Xhip (subtractive/hybrid synthesizer)

Post by skei »

awesome!
thanks for these!

i did a quick test, and it seems all of them works, except for follower.so, which doesn't appear in either bitwig, reaper (linux version) or carla (standalone)..

the gui is flickering, no double buffering?
aciddose
Established Member
Posts: 14
Joined: Tue Oct 03, 2017 9:26 pm

Re: Xhip (subtractive/hybrid synthesizer)

Post by aciddose »

Yes I haven't implemented double buffering yet, there is very little documentation online for xlib related stuff. I don't believe DBe will work with SHM buffers/blits. To be honest the best possible way to do things is very unclear as I suspect it depends heavily upon the video driver and window manager in use.

The Windows bitblt() in GDI does all this for you automatically with a single function call which makes the implementation very simple. Unfortunately xlib is more flexible and everything could be communicated across the network, this makes the implementation incredibly complicated. So it'll just be a matter of time until I can figure out how to get it working correctly in all situations with one simple implementation.

For the follower ... it seems I forgot to include some source files. I wonder if it's possible to get gcc to warn/error during link if local symbols (not via dynamic libs) are undefined (yes: -z defs). I suppose asking these sorts of questions in the dev forums/irc would likely get me some good answers although that's a later step toward perfection.

I've updated the version on the alpha page, I also have my todo list and issues/changes lists posted here where I talk briefly about the double-buffering issue.

Also I've added a new vocal filter effect.
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: Xhip (subtractive/hybrid synthesizer)

Post by skei »

yeah, i know.. xlib documentation is not good.. but i learned a lot from this site: https://tronche.com/gui/x/xlib/
i have been hacking away on my own library/framework for years, and i'm still not sure if i do things the 'best' way..
but it seems to work well, so i hope i can avoid having to go back to these low level things :-)
aciddose
Established Member
Posts: 14
Joined: Tue Oct 03, 2017 9:26 pm

Re: Xhip (subtractive/hybrid synthesizer)

Post by aciddose »

Okay I've implemented a very "quick and dirty" double buffering solution using MIT-SHM. This can't possibly work perfectly because all it does is replace the drawing directly to the buffer with a fast dirty rectangle memcpy from backbuffer to frontbuffer. So during the memcpy of each individual line segment it is still possible the xserver will read the buffer and copy a partially drawn buffer to the screen.

That said it does seem to minimize flicker to the point that I'm "fairly certain" I can see it drawing incorrectly one frame out of 100 or so, but I'm not completely certain about that because it happens so rarely and I have no way to capture the output to verify what I think I'm seeing is actually on the screen. Since I assume this method is not perfect though it won't hurt to improve upon it... once I figure out how to do that.

I'm also still able to get Xhip Synthesizer to crash while re-sizing the GUI although I've tried to change the way the window/buffers are freed and called xsync() before doing so. So I have absolutely no idea why it can crash sometimes (but not always!) or how to fix it.

Both the synth and effects are updated on the alpha page.
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: Xhip (subtractive/hybrid synthesizer)

Post by skei »

much better!
tested them quickly in bitwig, and i can't notice any flickering on my machine now..
(i5 2.67ghz, old radeon r7)

a few notes:

* xhip crashed the first time i closed the window, but i haven't been able to reproduce it..

* if i have two instances of the same plugin open at the same time, and closes one of them with the 'X' on the window header,. it crashes.. (i only tested this in bitwig)
aciddose
Established Member
Posts: 14
Joined: Tue Oct 03, 2017 9:26 pm

Re: Xhip (subtractive/hybrid synthesizer)

Post by aciddose »

Seems to be caused by XSync() before XDestroyWindow()... weird. I'll just remove that because I assume XDestroyWindow() should handle such situations already... but why it crashes is really weird. I didn't bother to debug as it's a waste of time since calling XSync() didn't prevent crashing during resize anyway.

Replaced those versions, this one should work at least as well as the previous ones.

Tracking down the issue with resize is going to be a pain. It seems to generate MIT-SHM BadValue but I'm not sure which operation triggers it yet. I guess to test I might need to add XFlush() after every operation...
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: Xhip (subtractive/hybrid synthesizer)

Post by skei »

it might not help at all, but maybe it can give you some hints, or starting points for debugging/testing:
* i call XInitThreads before any other xlib calls
* i have a separate Display pointer for each window
* i never call XSync
* i have XFlush after the following operations:
- XConfigureWindow
- XResizeWindow
- XUnmapWindow
- XReparentWindow
- XSendEvent
* i dont flush or sync before XDestroyWindow either
barbouze
Established Member
Posts: 186
Joined: Tue May 26, 2015 12:26 pm
Has thanked: 2 times
Been thanked: 16 times

Re: Xhip (subtractive/hybrid synthesizer)

Post by barbouze »

Just a quick post to say thanks!
Tested it yesterday and it is a really good sounding synth with nice features! :D
ssj71
Established Member
Posts: 1294
Joined: Tue Sep 25, 2012 6:36 pm
Has thanked: 1 time

Re: Xhip (subtractive/hybrid synthesizer)

Post by ssj71 »

aciddose wrote: Still no native 32-bit version, it's a bit difficult to manage multiple targets without using cmake or similar systems. The IDE I've been using (codelite) is really not that great at editing configurations and requires hundreds of repetitive clicks. That said I'll get it done eventually, managing multiple targets doesn't make a whole lot of sense until I have all the bugs/issues worked out.
I have used cmake its quite good, but actually just the last few days I've played with meson (http://mesonbuild.com) and found it quite straightforward to use without an IDE. When you get to that stage, you might consider it. Sorry, this is a bit OT. No need to rush either like you say. Plus, I don't think many peoples are clamoring for 32 bit linux binaries these days.
_ssj71

music: https://soundcloud.com/ssj71
My plugins are Infamous! http://ssj71.github.io/infamousPlugins
I just want to get back to making music!
User avatar
briandc
Established Member
Posts: 1442
Joined: Sun Apr 29, 2012 3:17 pm
Location: Italy
Has thanked: 58 times
Been thanked: 28 times
Contact:

Re: Xhip (subtractive/hybrid synthesizer)

Post by briandc »

ssj71 wrote:
aciddose wrote: Still no native 32-bit version, it's a bit difficult to manage multiple targets without using cmake or similar systems. The IDE I've been using (codelite) is really not that great at editing configurations and requires hundreds of repetitive clicks. That said I'll get it done eventually, managing multiple targets doesn't make a whole lot of sense until I have all the bugs/issues worked out.
I have used cmake its quite good, but actually just the last few days I've played with meson (http://mesonbuild.com) and found it quite straightforward to use without an IDE. When you get to that stage, you might consider it. Sorry, this is a bit OT. No need to rush either like you say. Plus, I don't think many peoples are clamoring for 32 bit linux binaries these days.
Probably just me. :D I'm actually running a 64-bit pc but with a 32-bit distro (oops!) but everything is running so great that I want to leave it the way it is. :)
If I have to wait until my next pc purchase that's ok. At least I'll make sure to not install a 32-bit distro..!

brian
Have your PC your way: use linux!
My sound synthesis biome: http://www.linuxsynths.com
User avatar
sysrqer
Established Member
Posts: 2523
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 320 times
Been thanked: 151 times
Contact:

Re: Xhip (subtractive/hybrid synthesizer)

Post by sysrqer »

I can't get the fx to appear in renoise 3.1.1, kde neon 64 bit, the synth shows up fine though.
asbak
Established Member
Posts: 897
Joined: Thu Sep 11, 2014 3:04 pm
Has thanked: 71 times
Been thanked: 64 times

Re: Xhip (subtractive/hybrid synthesizer)

Post by asbak »

Thanks again for the synth dev effort and those FX are also looking real nice.
Some Focal / 20.04 audio packages and resources https://midistudio.groups.io/g/linuxaudio
Post Reply