My debut synthesizer plugin, Cadmium

Hey all.

Been quite some time since I posted around these parts, but I’ve been busy. Over the past few years, I’ve been working on a host of audio development projects, and I’m incredibly excited (and, truthfully, anxious) to finally be able to release this one.

It’s called Cadmium, and it’s a synth based entirely around a concept called “vector phase-shaping” (VPS). Up until now, Circle2 is the only other synth (that I know of) which features this algorithm, and in Cadmium I’ve exposed considerably more of the capabilities of VPS.

The sound signature is everything from classic PM and FM tones through buzzy, droney timbres, and even absurd jungle basses (if you’re into that). I took some inspiration from the Mutable Shruthi-1 and paired this pretty unabashedly digital oscillator engine with a much smoother filter.

It’s now available from my website, LHI Audio, and runs on Windows, Mac, and Linux. No ARM builds for the RPi yet, but soon :wink: (realistically, sometime next year).

As mentioned, this is my first real venture out into the world of releasing audio software, so any and all feedback is much appreciated. And, hey, send me any sounds you come up with. The craziest thing about releasing a synth like this is listening to everybody find their own unique style with it.

-w

36 Likes

The audio on the website sounds great! Excited to download the demo and play around.

1 Like

The demos sound great! Congrats on the release!

1 Like

Oh wow, this is very cool – exactly my style :star_struck: I can see this quickly becoming one of my favorite softsynths, alongside Aalto :smiley: I’m definitely going to have to pick this one up.

A couple of things:

– The red modulation destinations or headers (e.g. lfo1) tend to turn black after being clicked on. It makes them harder to locate later (at least at first, until you get used to where everything is).

– The labels for modulation destinations are just too small to read. Some of them I can make out if I squint, others I have no hope. If the GUI were resizable or the text was just a bit larger it’d probably be fine, at least on my monitor.

– Not having any preset loading/saving interface in the GUI makes it rely on the host, and my particular host (Maschine) is really awkward with that.

– It’d be really cool to be able to modulate modulation – for instance, have env2 control the amount of modulation that lfo1 is doing to theta.

Is there something planned for that space to the left of “Global Distortion”? :smiley:

1 Like

So many things about this are great! Love the look and sound immediately. At first I was a bit bummed that there was no way to use the oscillators as modulation sources, then i realized that all the LFOs go to audio rate and track. That’s awesome!

I agree with @Starthief that it would be awesome to have a way to modulate modulation depth (I guess that’s the typical complaint of people used to modular synths). Also +1 on a scalable UI and some form of preset management inside the plugin.

I’m a little handicapped financially right now, but I’ll buy this for sure in the near future.

1 Like

I was going to go ahead and buy it this morning, but the Buy Now links don’t seem to go anywhere even if I bypass my VPN and turn off uBlock. :frowning:

Here’s an example of working with presets in Maschine. I don’t know if, on a non-widescreen monitor it’s even possible to move the plugin GUI out of the way to make enough room to get to the preset menu.
http://starthief.net/stuff/why_maschine_preset_management_sucks.png

I wish Maschine had better preset management, but they’re unlikely to do it because they want people using NKS instead. Most synth plugins over a certain minimal size/complexity do have their own, though. All that said, I’m unlikely to use presets much myself anyway :slight_smile:

Hi @wrl I’m happy to see that the demo is out!
Unfortunately, I get the following error when trying to load the plugin in Bitwig 2.4.0:

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: Could not read VST plug-in metadata
64 bit plugin host reported errors: Pluginhost returned non zero exit code 255

32 bit plugin host reported errors: Pluginhost returned non zero exit code 255

This is under Arch Linux x64.

I was going to go ahead and buy it this morning, but the Buy Now links don’t seem to go anywhere even if I bypass my VPN and turn off uBlock.

Oh no! I’m using Paddle for checkout, so that’ll need to be whitelisted, but if you’ve got uBlock disabled… If you’re familiar with using the web inspector/debugger in your browser of choice, could you see if any errors show up in the JS console?

Here’s an example of working with presets in Maschine.

Seems like my and NI’s assumptions were at odds here – I assumed that hosts generally provided at least passable preset management, and NI assumed that plugins managed their presets internally. I postponed implementing a full preset management interface in Cadmium because I want to set aside enough time to really get it right, but somebody else recently commented that just some next/previous buttons for stepping through the presets would be enough. Strongly considering doing something in that vein as a stopgap.

Going to address a few of your earlier concerns here as well –

The red modulation destinations or headers (e.g. lfo1) tend to turn black after being clicked on. It makes them harder to locate later (at least at first, until you get used to where everything is).

Especially from the screenshot you’ve posted, it seems that you have an AMD GPU. Am I correct on that assumption? If so, that’s a known drawing glitch and one I’m currently investigating. One of the downsides of doing a UI all in OpenGL is that I’m largely at the mercy of the GPU vendors, but honestly AMD on Windows is really the only issues I’m seeing anymore. At least, until Apple removes GL entirely. :anger:

The labels for modulation destinations are just too small to read. Some of them I can make out if I squint, others I have no hope. If the GUI were resizable or the text was just a bit larger it’d probably be fine, at least on my monitor.

Noted, and scalable UI is definitely on the roadmap. I have to do some plumbing to do in order to enable resolution-independence, but it’s on the list. Probably Q1 or Q2 next year.

It’d be really cool to be able to modulate modulation – for instance, have env2 control the amount of modulation that lfo1 is doing to theta.

Also on the list! This one’s embarassing, actually, because the real reason it’s not there is just because I ran out of space in the UI. Got a UI overhaul planned for Q1/Q2 next year (same time as the DPI independence) which will also let me add controls for unipolar/bipolar modulation signals (currently they’re all unipolar except for the sine LFO, which is bipolar).

Is there something planned for that space to the left of “Global Distortion”? :smiley:

Short term? Pre/post filter routable sinusoid sub-osc and noise “oscillator”. Longer-term, the UI’s going to be reorganised pretty substantially.

-w

1 Like

At first I was a bit bummed that there was no way to use the oscillators as modulation sources, then i realized that all the LFOs go to audio rate and track. That’s awesome!

Yeah, I wanted to use the oscillators as mod sources too, but some of the internals preclude that somewhat (Cadmium is juggling… a number of different sample rates internally). Long-term, I will probably revisit this and see about making them work as mod sources (which would allow for things like cross-carrier feedback FM, oof!), but don’t currently have this on the roadmap.

Everything else though, as mentiond in the reply to @Starthief’s post, I’ve got planned. :slight_smile:

Thanks everybody else for the kind words as well!

-w

1 Like

Thanks for the hint, I forgot I was also running PrivacyBadger. It was blocking Paddle, so I disabled it for your site and used the “you broke this website and you promised you wouldn’t” reporting feature. :wink: All good now :white_check_mark:

Yep, it’s a Radeon R9 380. (I used to be a game developer, and though I worked in DirectX I was all too used to things that just randomly don’t work on one card or another… :scream:

Yeah, that plus displaying the name of the current preset would be pretty much all that’s needed I think.

Very cool :slight_smile:

Just released 1.0.2, which finally fixes the AMD GPU issues on Windows. @Starthief, this should resolve your graphical issues. :slight_smile:

Also, both @Starthief and @x2mirko – appreciate y’all showing love elsewhere on the net (KVR and Reddit respectively). It’s a big mindshare game, and having enthusiastic people jumping into discussions makes a big difference (to my mental state as well, hah!).

Should have most of the serious bugs taken care of now, so it’s on to bigger things like AudioUnit support and CPU optimisation.

4 Likes

That works nicely – and it turns out some other UI elements were also invisible before. I didn’t realize there were 3 modulation inputs per parameter :smiley:

Yeah, it was a really obscure bug in AMD’s GL runtime. The driver and Cadmium had some… disagreements about the OpenGL specification, shall we say.

1 Like

This looks/ sounds really good but… slight gripe… Could you be a bit more upfront about what Plugin platform/s this is. I looked at the web page but I had to look at the manual before I saw it described as VST. So I’m guessing this isn’t something that works in Protools. But maybe I’m wrong?

I am only griping as I really like the idea of it. Best wishes for the project.

@Zedkah Hey, thanks for the feedback. I’ve added a more prominent note about the available plugin formats (format, currently) in the first few paragraphs.

No Protools/AAX support yet. Priority is AU first, then LV2 for the Linux crew, and then either VST3 or AAX after that. If I had to estimate a timeframe… mid-2019, unlikely to be much sooner.

1 Like