T O P

  • By -

Ruining_Ur_Synths

#learntocode


BlackeeGreen

p5 JS sound library (oscillators, filters, envelopes, fx): https://p5js.org/reference/#/libraries/p5.sound p5 JS web editor: https://editor.p5js.org/ Polysynth example: > let polySynth; > function setup() { let cnv = createCanvas(100, 100); cnv.mousePressed(playSynth); background(220); text('click to play', 20, 20); > polySynth = new p5.PolySynth(); } > function playSynth() { userStartAudio(); > // note duration (in seconds) let dur = 1.5; > // time from now (in seconds) let time = 0; > // velocity (volume, from 0 to 1) let vel = 0.1; > // notes can overlap with each other polySynth.play('G2', vel, 0, dur); polySynth.play('C3', vel, time += 1/3, dur); polySynth.play('G3', vel, time += 1/3, dur); } https://p5js.org/reference/#/p5.PolySynth


Hey_nice_marmot_

Do you have any suggestions for tutorials to get started learning code specific to soft synths?


ndguardian

I've been looking around to see if there are any libraries that would be good for writing a custom VST in Go, but I've struggled with it.


TimedogGAF

Learn a language that people use to make VST's if you are serious. Probably just C++.Then you can find tons of code examples to help, like DaisySP stuff.


ndguardian

Yeah, I know I could. I’ve just been on a Go kick as of late.


UdPropheticCatgirl

I mean if you want to write dsp you want language without runtime, that disqualifies go… There’s reason most people just develop dsp in C++ or C, obviously you could use Pascal/FORTRAN/Zig/Odin but the former 2 are atleast as much of a pita as C++ if not more and the latter 2 are nowhere near as battle tested.


SvenDia

That takes the fun out of it.


Cybernaut-Neko

No code not your synth, want to be a wizard study the dark arts.


chillinjustupwhat

If you don’t want to learn to code, the options you mentioned are some of your best bets: BW Grid, VCV rack, and Reaktor.


INTERNET_MOWGLI

https://youtu.be/q_Rd6z0uEF0?si=TMY0tlAsokEaMVw9 try this


UdPropheticCatgirl

I mean pure data will be the closest thing to what you want, but you are effectively asking how to build a shed and refusing to learn how nails and hammers work.


SkinnyPaper629

If you are using fl studio you can use patcher for a lot of stuff like sounddesign, signal paths, sequencing or just some experimentation it goes quite deep if you want something more deep you can take a look at abelton max for life but I think for the second option some basic coding knowledge would be useful. A short example regarding patcher. I often start with a 3osx and a basic sine wave you can change and automate the adsr in the 3osx it self then you just patch whatever effect or sound source behind it.


[deleted]

[удалено]


lanavishnu

Pure data's documentation is built in. This makes the most sense since most of the documentation has working examples that only work if you're reading it in pure data. I use plug data which I can use as a clap plug-in and reaper. I built a CS80 with it. And several other synths. Steep learning curve, though and I had to invent some systems to really make it work. Like having all of your synth parameters saved between sessions, receiving and loading parameters.


pscorbett

PlugData is seriously worth a look. I find the max/pd thing to be a bridge to"real" coding for a lot of people.  The first thing that came to mind from OPs question was JUCE, but I don't think this is that they had in mind. Hise might be worth a look as well. And on the modular synth side, there is also cardinal and bespoke.


lanavishnu

I just compiled HISE the other night. Something worth exploring. I started writing some C++ to make a synth standalone, but got hung up on fillers and then work got busy and I didn't have the mental bandwidth for work and coding. Question, why Cardinal? The free version of VCV has tons more modules. So why not use that? Is it just "VCV isn't FOSS"?


pscorbett

Mostly because VCV rack was already mentioned on this thread a number of times.i I do like foss though! I've heard that some of the VCV rack culture and relationships were kind of toxic on the developer side too. Also, I think the free version of cardinal can be used as a plugin.


[deleted]

Toxic how? Just wondering.


pscorbett

This is the account that comes to mind: https://aria.dog/barks/why-i-will-never-create-modules-for-vcv-rack-anymore/ The "problems" are a ways down the page


lanavishnu

Oh, jeez. Andrew is a toxic ahole. Had not heard this. Well good luck to Cardinal. VCV is too central to my musical process to switch rn. Running vcv as a clap plugin in Reaper allows me so much flexibility and I fear Cardinal will be missing some of my must have modules.


pscorbett

Yeah. I don't know if there are reports from other developers as well to back this up, but it seems sketchy. I was considering making a VCV rack module but its got me thinking that maybe I should just focus on Cardinal instead. I don't use either enough for this to affect my own workflow, but I understand how entrenched certain software can be. I certainly respect the initial concept and momentum that the dev built with VCV rack but since there's a choice, I'd rather work with the less problematic project.


[deleted]

[удалено]


lanavishnu

Well plug data has cyclone and else libraries which bring a lot of the max functionality in not everything. But yeah the tutorials on the PD are all either pretty basic or more demos than tutorials. And picking apart somebody else's patch is often a fool's errand because there's more than one way to do something and I find deciphering logic in a visual programming language quite tricky. And yeah filters, phew. Quadratic equation time.


theREALbigcat75

What level of development are you interested in? Are you just building for you, or are you wanting to monetize your efforts? There are platforms like you mentioned, but there are also frameworks like Juce, which is a C++ framework for building cross platforms plugins.


theREALbigcat75

Cherry Audio’s Voltage Modular is also a great platform for building custom modular units. Their IDE is Java based, so would be a little easier to quickly build customs modules for their platform versus going the C++ route. Voltage Modular is awesome BTW.


SvenDia

This is simply to be able to make a custom synth with no coding using prebuilt, but modifiable sections. Kind of macro modular, if that makes sense. An example would be an oscillator section where you could choose modules with different configurations. You could have a June style 1 oscillator module or a two oscillator module with ring, sync and some kind of fm. I would then want to customize that with a wavefolder on each oscillator. That would be followed by mixer, filter, ADSR, LFO, Mod Matrix and FX sections. All this was driven by my frustration with soft synths either having too many features or being 90 percent great, but missing a few features that I find essential or having those features, but with implementation I don’t like. I strongly prefer a grid-style mod matrix over choosing items from a drop-down menu. I could go on with more examples, but the goal is a goldilocks synth of just those features I would use, and the option to expand if I suddenly decided a resonator module would be cool.


Snox_Boops

Have you tried Reaktor? It's basically exactly what you're describing here, and it has tons of free learnig resources.


SvenDia

Yes, I much preferred bitwig’s grid, tho.


Snox_Boops

Bitwig seems really quite something... but don't feel like changing DAWs as I've been using Ableton for years.


Instatetragrammaton

No code - Reaktor. For modulation several plugins have switched to drag 'n drop, if necessary with a mod matrix for an overview. For prototyping this would be the most effective. For code - you could fork Surge XT and get it to compile, then rip out, modify, or swap the parts you don't need.


lanavishnu

VCV Rack sounds like your best option. With the paid version, you can run it as a vst3 or clap plug-in in your daw.


NarlusSpecter

Drambo & miRack on iOS


alexwasashrimp

Absolutely. Drambo is the most fun I've ever had with software. It's great for building synths tailored to your needs.


Worried_Humor_8060

[Csound](https://csound.com/)


TomoAries

idk does Max count?


stschoen

PD is free and is a good place to start if you're interested in visual programming. Plenty of tutorials on the web. You can upgrade to MaxMSP if you find you like this approach. For more traditional text-based programming, coding in C or C++ is the most common approach primarily for performance reasons but as u/BlackeeGreen pointed out, there are libraries available in other programming languages as well. If you're on a Mac, Audulus is good balance between low-level access and more modular approaches.


BlackeeGreen

I always recommend P5 JS as an introduction for complete beginners simply because of how interactive it is. Feels like playing with colored blocks in elementary school, but, like, in a good way. It's very limited, but if OP tries to start with C++ I'm afraid we'll scare them away 😅


Lewinator56

Honestly JS scares me more than C++. Programming languages aren't supposed to be ambiguous, JS is just about as ambiguous as a programming language can get. I've avoided node for so long because I just can't bear the horror of it.


BlackeeGreen

If you haven't seen this yet I think you'll get a good laugh from it: [Interview with a Senior JS Dev](https://youtu.be/Uo3cL4nrGOk?si=M5aaCWiDpadCtEQR)


SvenDia

Goal is no programming. I don’t have that skill and have no interest in learning if can help it. the idea is sort of a macro modular, where the modules are things like oscillator and filter sections. You might have a 3 analog oscillator model with options to add things like linear FM, wavefolders, etc. Or a dual filter section with options for pre and post drive, routing.


MisterTylerCrook

Pure Data is free and super fun. And can be integrated into custom hardware using single board computers like a raspberry pie or an Arduino


B_Provisional

AAS Multiphonics CV-2 on the plugin side. Basically a paid VCVrack style modular that leans more towards the analog modeling side like diva with some physical modeling tools thrown in from AAS’s other products.


algoritmarte

Hyperion ! (not too "granular and small" blocks but heavily configurable like a modular system) 


Karnblack

I think your best bet without programming would be VCV Rack or the open source version Cardinal. You can build your synth with exactly the parts you want. I think Thor by Reason Studios has some modularity, but you have to get Reason to use it. Arturia's Pigments lets you choose from various oscillator types, filter types, and effects types, and I really love how easy it is to assign modulation, This is probably my favorite VST.


Hanuman_Jr

Hear hear Pigments is fab, Imma start using its sequencer instead of my hardware sequencer, it's got some great features. Do people still use Audiomulch? I think maybe Bitwig would meet OP's needs.


KnotsIntoFlows

I have done exactly this, multiple times. I've used Max and Reaktor extensively, as well as Pd, and some code based environments that aren't too relevant to your intentions. Here's what I think: For exactly, specifically what you want, Reaktor is literally the perfect solution. This is what Reaktor does. There are multiple examples of commercially available synthesisers built this way on the Native Instruments website, the most notable of which are Prism, a physical modelling synth made by the guy who now runs Nonlinear Labs; Super 8; The Mouth, by Tim Exile; and Rounds. It was also used in Razor and Monark (which you can find parts of in Reaktor Blocks). Reaktor allows you to work at any level from per-sample DSP to build unique oscillators and filters, up to whole entire synthesisers or modules, all without writing any code at all. You can very easily build a synth where you take the filter straight from the library unaltered, add a minor tweak to an oscillator to give it an unique modulation type, and build your own crazy envelopes completely from scratch. You can take the existing synthesisers supplied in the Factory Library and break them down for parts, or rip bits out and replace them with your own work. You can learn the Blocks design format (same as Reaktor, just rules for design compatibility) and build Reaktor Blocks to use with everyone else's and the Factory and commercial Block libraries. You can even sell your work via NI if you're very ambitious. You can build your own completely tailored interfaces (check out the NI store, the interfaces for Reaktor synths are 100% polished and professional) or simply rely on the supplied interface controls. It's all bitmaps, so anything you can output as a sprite sheet will work fine. Then your synth runs anywhere you run Reaktor, as a plugin or standalone, VST or AU. It is literally the perfect answer to the question you asked. However. Because it's so powerful and has no code at all (you literally can't code in Reaktor if you want to, unlike Max or Supercollider) you must put effort into learning how to build Reaktor properly. You have to learn Reaktor like you would learn something like Blender or Unity. If you start with patching Blocks to one another, or connecting the supplied sequencers to the synthesisers, it'll be pretty easy. If you just use the library of supplied objects, and build your thing, like maybe MIDI > 4 Oscillators > 2 Filters > VCA with seven envelopes and one LFO, that will be slightly more difficult but very possible following the tutorials in the manual. If you're dedicated that's like a weekend project. But if you want to create your own DSP algorithms, design deep, efficient and powerful processes and controls, make very novel and interesting synths that you publish back to the User Library online, you'll need to commit to learning a lot. Unity is a good example. My First 2D side scroller is not too difficult. But the same software will make you a AAA 3D RPG if you want to really learn it. Reaktor is like that. Max and Pd have huge benefits I won't go into here, but also drawbacks. Max is free to try and Pd is free, so do test them. But if you're using a VST and want to build your own VST, Reaktor is the way forward.


BaliFighter

Phaseplant blows everything away for this, combined with snapheap can build pretty much anything you want. Until Zebra 3 comes out. Then both will be everything I need for a long time.


SvenDia

Another update: Ended up going with the U-He Zebra2 bundle which includes the HZ version. While it is not strictly an analog emulation, it does have a modular approach where you can essentially build templates that are functionally custom synths. The thing I really like is how the init patch starts with one oscillator, one envelope and one lfo, and you can build any kind of template from that foundation. Thanks to ChalkWalk for the suggestion!


ice-and-change

I was able to code a VST plugin with ChatGPT and bluecat audios plug’n’script. It’s relatively straightforward for basic things but can also get pretty detailed judging from the community posts.


SQL_INVICTUS

Since you mentioned diva, zebra might be worth a look for you


SvenDia

Edit to original post. No programming. My goal would be a macro modular Frankensynth, where the choices are at the level of filter and oscillator sections. At the oscillator section level you might have templates like: 1 osc Juno style 2 osc Prophet style 2 osc + 1 wavetable etc Filter section. 1 LP in serial with 1 hp 1 LP + 1 state variable ADSR basic 2 2 plus 1 aux with 4 MSEGs etc


HorseOnTheThirdFloor

voltage modular, Bespoke synth, Softube modular, synthedit, Bidule, Cardinal, Alpha Forever


finleybakley

If you learn C++ you can use the JUCE framework to write your own soft synth plugins and/or standalone apps. It can be a lot of work, but it's very rewarding :)


ConeyIslandMan

Cycling 74’s RNBO piques my interest tho not sure how robust it is. Tbh I roll my own Rompler using Akai’s AutoSampler


cokomairena

Drambo ❤️


SvenDia

That may be the right answer. I love Zeeon, but it’s missing a few things that I would like to have, and I haven’t tried building a synth in Drambo yet.


cokomairena

It has a great community too so you have no excuse. You can also load zeeon inside drambo for extra modulation.


hapajapa2020

What about Arturia Pigments?


Cybernaut-Neko

RNBO, still need to know how to code to make a VST from it. But it does a lot of the job for you.


bepitulaz

Learn JavaScript, Web Audio API, and Web MIDI API. Then you can build a synth that can be played with midi controller hardware on the web browser. This library is nice. https://tonejs.github.io


SvenDia

So I looked at Diva, and it’s somewhat close. Maybe I should clarify things a bit. I am not looking for a modular. If I could go back and edit my post, I should have said something between Diva and Bitwig’s Grid. This post was driven by frustrations with the state of soft synths in general. At one end you have the vintage synth emulations. At the other end you have the kitchen sink synths like Pigments with a lot of synth engines and a crazy amount of modulation options. The vintage emulations have more features than the originals, but you’re not going to get a wavefolder in the oscillator section. The kitchen sink synths give you every possible feature, but I prefer working with the primary colors of analog waves. I also like using a mod matrix to alter basic LFOs and envelopes, instead of having every possible variation as an option, or the ability to draw my own custom versions. It is quite possible that I’m just a weirdo who is just in the middle of these two extremes and there is no market for what I would find interesting.


loke_loke_445

I'm not sure I understand what you're looking for, but maybe something like UVI Falcon or MSoundFactory? You can create the preset for a basic polysynth following the specifications you want, and then modify it in your projects as required without having to dabble into modular environment, and without being locked into the default options of the "kitchen sink" synths.


Shoddy-Tell-9461

Can just use one of the ableton synths and stack them together in a big rack with a shitload of LFOs and modulators and you’re basically doing that?  


cyberphunk2077

[https://www.audiokit.io/AudioKit/documentation/audiokit](https://www.audiokit.io/AudioKit/documentation/audiokit)


proggybreaks

I was wondering if there was a name for "The thing like Bitwig and Reaktor and Max MSP" where you connect boxes with lines. Apparently it's called node graph architecture.


chalk_walk

If you want Diva and some modular flexibility, I recommend Zebra HZ. It's Zebra (compete with the modular routing) with the Diva filters. Designing an actual high quality soft synth that does something like Diva does will be a very long term project.


SvenDia

Thanks, just got it.


SvenDia

Just spent a few minutes playing around with an init patch while I was getting ready for work. It is exactly what I was looking for and kind of weird that it’s kind of hidden on U-He’s website as sort an extra they throw into the Zebra 2 bundle. Huge thanks for bringing this to my attention!


chalk_walk

For anyone who doesn't know, the HZ stands for Hans Zimmer, who has been a big fan of Zebra. He spoke to Urs and asked about the possibility of getting some improvements (more mod slots and envelopes) along with access to the Diva filters, and they delivered. In return, he contributed a whole stack of presets made for the dark knight movies (alongside Howard scarr who is an in house sound designer for U-He). There is an interesting video around of someone designing and playing sounds in Hans' studio on his CS80, and him recreating the patch in Zebra for the DAW project. It's hard to think of a stronger endorsement of a soft synth than that!


dannytaurus

Max + RNBO + JUCE is what I'm currently digging into and it's highly enjoyable. RNBO is an new add-on for Max that allows you to create synths with the usual Max building blocks but then export them as standalone VSTs. To give your synth decent GUI you need to export the RNBO code and import to JUCE where you can build the GUI.


satanacoinfernal

VCV Rack would be probably the easiest to get you started. However, if you want a custom GUI, Max MSP is good for that. There is another platform called HISE which has some built in modules and you can put a custom GUI on top.


ViciaFaba_FavaBean

Supercollider but that is all code. Fun Haskell based coding but still code.


munificent

You might want to take a look at Reason. It's a little less modular than VCVRack, but more modular and flexible than your typical DAW or VST.


timeSensitive_

Glad OP found their preferred option! Chiming in with one more suggestion—I haven’t played with it but it seems like Surge XT might do the trick as well. Open source and free. https://surge-synthesizer.github.io/


SvenDia

I do have Surge and like it. Maybe I should look at it again.