I'd like to finish my synthesizer but it's hard

DSP, Plug-in and Host development discussion.
puffin
KVRer
15 posts since 17 Jan, 2020

Post Fri Jan 17, 2020 9:47 am

Hi, suppose you want to create a software synthesizer and you know roughly what kind of music it is for and what the core ideas are, how do you go on?

Take a sheet of paper and write down what you want to achieve? List possible and impossible things? Or is it more like prototyping and having fun?

I'm stuck. I have this synthesizer that can do a few basic things and I want it to become like Novation Peak or something that sounds fascinating.

quikquak
KVRian
665 posts since 6 Aug, 2005 from England

Re: I'd like to finish my synthesizer but it's hard

Post Fri Jan 17, 2020 12:09 pm

For me, creativity is an evolutionary process. I need to iterate many ideas before something settles down, and it usually doesn’t go in expected ways. So I probably can’t advise apart from saying ‘just experiment.’ + Program quickly! 😁

codec_spurt
KVRAF
4045 posts since 21 Sep, 2005

Re: I'd like to finish my synthesizer but it's hard

Post Fri Jan 17, 2020 1:25 pm

puffin wrote:
Fri Jan 17, 2020 9:47 am
Hi, suppose you want to create a software synthesizer and you know roughly what kind of music it is for and what the core ideas are, how do you go on?

Take a sheet of paper and write down what you want to achieve? List possible and impossible things? Or is it more like prototyping and having fun?

I'm stuck. I have this synthesizer that can do a few basic things and I want it to become like Novation Peak or something that sounds fascinating.

Hi, suppose you want to create a software synthesizer and you know roughly what kind of music it is for and what the core ideas are, how do you go on?

First of all, don't ever, EVER, assume you will know what kind of music it is for!

If you are thinking like that, then it's time to go back to school, don't collect 200 quid and don't even think about making a synth. IMHO.

I've seen synths like Rapture used to great effect in Orchestral scores, I've heard whole trance tracks made in nothing but synth1 - you know - don't assume. Let your audience decide. I say this as a non-developer. I'm pretty sure any accomplished real life devs wouldn't disagree with this though. Don't second guess your audience!


Take a sheet of paper and write down what you want to achieve? List possible and impossible things? Or is it more like prototyping and having fun?

Exactly! You got it.

I recently have been taking stock of my life and all the work I have done over the years. It involves a lot of very old hard drives. I was surprised to see a quite developed prototype for a soft synth that I designed when I was foolish enough to think that someone so pea-brained as me could ever bring a project like that to completion. Still, it was pretty advanced - I knew what I wanted to do. In the right hands someone could make it work.

I not only worked out the main core of the synthesis but I mocked up a basic gui in Flash as well.

But yes, prototype, mock up, have fun.


I'm stuck. I have this synthesizer that can do a few basic things and I want it to become like Novation Peak or something that sounds fascinating.

Well, imagine my shock when I realised after all those years, I actually did make that synth, but I'd just forgotten about it!

Image

And it sounded great! I made some great little musical snippets with it.

However...

Imagine my even greater shock when I realised I had totally f**ked it up by confusing the volume controls and the waveform types. What a f**king amateur I am! I had one f**king job and I f**king f**ked it up!

Thing still works though. Still sounds good. Synthmaker CM edition.

I probably have it around somewhere and I'd like to dig it out and I'd like to get it working. I still have absolutely no recollection of ever making it (what a party that was! :party: ) Bit like the dozens of finished drum and bass and hip hop tracks I found. Man, I must have been drunk. Or maybe the passage of time...

I found the source files. I'll probably release it for a joke.

Just like I made up a half decent synth in Reaktor. Man I got brutalised for that. OK, sure, I did make it off a demo and none of it was my original work, but I said so, and I also ameliorated it into something semi-usable. I got abuse for not releasing the next Monark or Spark as my first synth. I dunno, I guess I just don't know the culture.


All I would say is if you have the passion and the drive and the time to see your project through, then go for it. It's stating the bleeding obvious, but include something unique, GUI wise or function wise, or god forbid even marketing wise. All three if you can and you are off to a good start.

It sounds like you have the right idea.

I'd never inflict my lame pathetic creations on the world (except as a joke), especially as I now know NI bods don't find that kind of thing funny (ha ha!). But maybe one day I will release some of the music I made with them. Even the most basic Synthmaker and Reaktor stuff can be extremely powerful if you take the time.

Ha ha, so you laughed at my VST making prowess, but who is laughing now as you are lost in the revelry of my music making genius? Suckers!


Then I wake up.

And realise it was all just a bloody dream...

puffin
KVRer
15 posts since 17 Jan, 2020

Re: I'd like to finish my synthesizer but it's hard

Post Fri Jan 17, 2020 5:12 pm

Thanks so much to both of you. I've now tried to be serious about it and wrote this text, please take it with a big grain of salt, I sometimes tend to overthink simple things and need an improved emotional state for some reason.

My algorithm for synth design version 0.0.0

1) Make a list of synths I like
2) Separate the matter "DSP component quality" from the matter "DSP component type" in my mind. Though, that's unfortunately debatable. But what way to start is there?
3) Go into a modular environment like Reaktor, Bitwig 3 or so
4) Design a non-modular synthesizer that can, by changing parameters only, do the beloved presets of all fav synths from the list, minus ~20% goodness of the fitting "components quality"

4b) That's hell of analysing things work. Like.. in that video with the amazing Novation Peak sound, what's going on at all? Mr. Heckmanns advice on KVR is seemingly, if I may quote him, to own the synth that you want to model. Now thats a point where buying Bazille instead of Novation Peak (whatever) would be cheaper.

Is it frowned upon to model software synth designs? Does it relate to my appearance and how I talk and what license (GPL?) I would like to make it? I actually just wanted to make music and drifted away. And I would never in my life do something that someone (admired, even non-admired) dislikes, publicly, implicitly.

5) Take 5 months time to design that little monster
6) Convert it by hand to fast programming language, it's christmas by now
7) add the 20% components quality by tuning DSP constants and doing typical improvement work
7b) asking here a lot for help to get the needed components quality + their symbiosis (constants etc) into it

Though, wavetable synthesis like e.g. earlevel does it, could I find that quality+flexibility in Reaktor or Bitwig? Synthedit oscillators e.g. had a bit of their own sound,
just...saying. If I force myself I could do it. I must not get dragged away by Reaktor presets (I've never used any such software).

Cost: Reaktor license + life time
Result: Best DSP topology to my knowledge

Sigh. I'm being serious. That's my first idea for it. "code paths" in an modular environment could be hard. I guess it will feel like "oh I just want to program it myself in a programming language". And I might have constant doubts whether point 2) separation of two (arbitrary?) matters is just an illusion to make myself go on. But it could be the whole point of modular environments? Or is that just that a lot of musicians or so don't like C++?

One point of all this is that recompiling different DSP things is not as much fun as I thought. I thought, after having chosen Golang as language for everything, it's so great. But it has turned to "still a lot of text", being able to (still) do programming errors. Awful feeling sitting there and thinking I know nothing about design, and I need a good synth quickly. ;) It feels a bit too low level, and I'm also not sure how much GUI redoing I can handle. I'm doing it just with TextOut on Windows to stay in time at all.

Ugh.

Alternative:

Buy $2000 hardware synth and record it. Plus maybe another one that does something certain better. Ouch.


-----------

Not so important Post Scriptum:

Another way: I could stick to the fact that synthesizers are self-explanatory by removing components from the end of the chain to the beginning of the chain, and adding them back together.

If I was sure there is this thing I would love to have a "copy" (sorry) of, I could start on the "left" side, the oscillator. There's quite a lot work there but analog synths sound so good to me, it would be not that hard for me personally. My thought sounds basic, and the problem is, is that the better way to approach it? I could stay in the programming language, save some money and time instead of investing it in Reaktor, and model closed source components or hardware components by turning of other components that mask them. Though, I don't really know where good sounding software synths are.

The hardware instruments shine with imperfections and saturation or something, and some U-he synths do that too (?), and there's FM8, and then there's just a lot of things with a lot of EQing in it? Looks not like a way to get me the Novation Peak or DSI experience from my software. At some point it's how do you want to make music instead of what DSP do you need, and I'm sorry for having posted that part of my story.

It's late and TBH I wish I could just give someone money to make the synth I love, but I'm afraid if I give them a list of things it should do, they will ask for a 6 digit number. Anyone about to sell their DSP topology, semi-modular or non-modular? Novation, DSI or Linplug sound, the "aww analog" sound, plus piano and orchestra. ;) Sorry.


This is the thing that it's about. No warranty, just for demonstration of problem: https://pastebin.com/7vUmAyc5

quikquak
KVRian
665 posts since 6 Aug, 2005 from England

Re: I'd like to finish my synthesizer but it's hard

Post Sat Jan 18, 2020 2:04 am

You could do a lot of planning, procrastination, and thinking. BUT if this is your first synth, then perhaps you should probably make a few prototypes first, just to see the direction it's going in? Not thinking about coding but actually doing it like a sketch board. It'll probably also be a massive AND enjoyable learning curve. It'll be beneficial in the long run, and, you never know, you might reach your goal quicker than you thought.
Just start Puffin! Just start!
One benefit of buying hardware synths is that you can learn where there is more control over the sweet-spots areas. Also, audio comparisons are always fun. :)

User avatar
BertKoor
KVRAF
11484 posts since 8 Mar, 2005 from Utrecht, Holland

Re: I'd like to finish my synthesizer but it's hard

Post Sat Jan 18, 2020 4:52 am

suppose you want to create a software synthesizer and you know roughly what kind of music it is for
Look up the history of the Roland TB-303, what style of music it was made for. And help god what have they done to it....

Regarding the way of working, are you familiar with IT projects? Back in the day, some architect would come up with a system sketch that could handle the administrative tasks of an organisation. Analysts then made detailed plans of what infomation flows where. Technical designers would make detailed designs, programmers then implement it, and finally it got tested. Months and years went by, several handovers, every detail thought out up front. The Waterfall method it's called.

Nowadays we do things differently. A rough direction to go is appreciated, but details are only thought out as needed, not up front. So we start to build a MVP: the Minimal Viable Product. Something actually usable. Then go from there. What is most important to improve? Or have we maybe made some mistakes and start all over? That's cheaper to do after a month than after some years. Still, throwing away months or years of work sometimes is the best thing to do.
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is back online!!

mystran
KVRAF
5575 posts since 12 Feb, 2006 from Helsinki, Finland

Re: I'd like to finish my synthesizer but it's hard

Post Sat Jan 18, 2020 5:53 am

puffin wrote:
Fri Jan 17, 2020 5:12 pm
Alternative:

Buy $2000 hardware synth and record it. Plus maybe another one that does something certain better. Ouch.
This just has to be said: that $2000 hardware synth is going to do absolutely nothing for you until you're already capable of developing a decent sounding software synth. It only really becomes useful when you're already approaching the state of the art and really want to model a particular piece of hardware as accurately as possible, but you are seriously wasting your money if you try to start from the deep end.

Start from the basics: write the most basic synth that will let you make some music. Then you can improve every part of it one by one. Eventually (after a couple of years) if you stick to it, you might find yourself poking an oscillator probe into some hardware synth with it's case removed, but that seriously is not where you should start.
Please just let me die.

User avatar
syntonica
KVRian
550 posts since 25 Sep, 2014 from Specific Northwest

Re: I'd like to finish my synthesizer but it's hard

Post Sat Jan 18, 2020 12:01 pm

Find a synth example and pick it apart to see what does what. If you're a programmer at heart, you'll see a dozen or more things to do different or better. Replace bits of code, a method at a time, until it's all your own code, doing what you want it to do. Pencil and paper help, but use them in congress with looking at code. Save backups of your code often since you'll make changes you hate and need to go back.

Mostly, get some code in front of your eyes and start working! It's not going to program itself!

User avatar
BertKoor
KVRAF
11484 posts since 8 Mar, 2005 from Utrecht, Holland

Re: I'd like to finish my synthesizer but it's hard

Post Sat Jan 18, 2020 1:07 pm

Save backups of your code often
In other words:

Code: Select all

$ git init
$ git add *.*
$ git commit -m "work in progress"
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is back online!!

puffin
KVRer
15 posts since 17 Jan, 2020

Re: I'd like to finish my synthesizer but it's hard

Post Sat Jan 18, 2020 1:26 pm

Thanks so much.

I know I could be stressing it, but may I ask another question? Do you experience the "urge" to write closed source software just for the sake of not getting into conflict with implications of open source, licenses and different laws in different countries?

I think .. I know closed source software also has licenses and agreements and is no different from open source when it comes to laws. But it's more with open source, isn't it? I want to do my best with attribution of works, and looking what things mean and how you have to behave.

Some things seem even to be in favor to the programmer, e.g. that "some math cannot be protected by copyright", something like math terms. I took this information from here where I basically asked what would happen if I include 17 tunings that are taken from a big collection that someone has made from probably expensive books. https://music.stackexchange.com/questio ... al-tunings

I have doubts that people will accept what I do when I might have just combined things, and merely just memorized things that I did not fully understand. On the one side I'm so much interested in having everything open source, on the other hand the implications seem overwhelming. The more open you are, the more you could be criticized.

signalsmith
KVRer
18 posts since 5 Jul, 2018 from Cambridge, UK

Re: I'd like to finish my synthesizer but it's hard

Post Sun Jan 19, 2020 4:26 am

puffin wrote:
Sat Jan 18, 2020 1:26 pm
Do you experience the "urge" to write closed source software just for the sake of not getting into conflict with implications of open source, licenses and different laws in different countries?
For writing code: open-source is easier. You'll need a license either way (the unwritten "implicit" license is a very fuzzy concept which only exists in some countries).

With open-source, you have a bank of off-the-shelf options, each one designed and reviewed by a host of lawyers over the years to make sure that they work well everywhere.

For using other people's code: open-source can sometimes be easier here too. There will be plain-language summaries/guides for what you need to do for all the common licenses - including which other (standard) open-source licenses are compatible. (e.g. JUCE and the VST3 SDK, are licensed as GPL unless you sign a commercial license, so it's simplest if your code is also licensed the same way.)

So (in my view) open-source is actually the simple and easy option. The main reason not to is if you might want to make it commercial in future.

puffin
KVRer
15 posts since 17 Jan, 2020

Re: I'd like to finish my synthesizer but it's hard

Post Sun Jan 19, 2020 5:02 am

Thanks for the explanation, signalsmith. I appreciate it.

Return to “DSP and Plug-in Development”