Commercial Synthesis Techniques

Mike S's icon

Hi All

I know there is a topic about synth quality in MSP but I'd like to make this more specific.

I'm particularly interested in what commercial companies do to make their synths sound more pleasing to the ear. I imagine there are a series of small processes that make even simple oscillators sound slightly different to standard MSP synthesis.

Essentially, I'm interested in what gives a digital synth its character. Does anyone know more about this, or perhaps have some links?

Thanks

Mike

Anthony Palomba's icon

There are some basic synthesis techniques you can apply
to your sounds that will go a long way in making them
sound better. Search the forum for threads on waveshaping,
distortion, and saturation.

Here are some to get you started...

Roman Thilenius's icon

nothing what one could not do in maxmsp.

Mike S's icon

thanks anthony, i'll get on that

roman, care to shed some light? what techniques do you use?

Anthony Palomba's icon

Hey Raj, that last example is a great one! Thanks for posting it.

I really wish Cycling would put together a tutorial on making
your sound better using techniques like these. It is essential
stuff.

Roman Thilenius's icon

well let me correct my own statement. what you can not do in
max is using signals of 72 or 80 bits of accuracy. but for
the technique itself i could not imagine something which would
not be possible in max.

Anthony Palomba's icon

I would also recommend looking at the Max tutorial article on
the Max 5 Guitar processor...https://cycling74.com/story/2009/1/29/103047/879

Which takes you through a step by step process of using various
techniques to enhance an input sound. Really useful stuff.

Roman Thilenius's icon

okay maybe it is time that i say something more useful than my last post.

you can not make a good master out of a shit mix, and you can can
not make a shitty singer sound good by effects. maybe you heard
these words before.
the same rule could be applied to "synthesis".

i disagree about the idea of using filters or modifiers on a
"synth" signal in order to "enhance" it. the key to a good sound
is how the the source itself has been made.

the first 3 keywords which you should look up (at google?) could be those:

1. upsampling
2. bandlimited
3. dithering

unfortunately it is difficult and very CPU intensive to apply
dithering to an upsampled oscillator patch. i dont do it at all.

the next not so unimportant thing is what i would call "variations", or
"humanisation". a short looped sample in a cycle~ will never come even
close to an analog oscillator unless you put whatever variations into it.

those variations especially should have a home in your (gain- and filter-)
envelopes.

beside higpass/lowpass and different forms of distortion (you mentioned
them above already: waveshaping using buffir~, overdrive, clip ...) in my
opinion a set of fixed frequency resonators is something you will always
need to add some sound to a synth. not too loud, just a little bit.

off to dinner,

-110

pelang's icon
Mike S's icon

hi pelang, i'm interested in how to make these things step by step, so i'd rather use normal msp objects

and roman, i have no idea how to implement these ideas of yours, simply because i haven't seen them before. its not that i am too lazy its just that i don't know where to start.

raja posts a patch, and instantly i can see what is going on in the environment i am choosing to work in. you could write reams about this stuff but without something to look (a simple patch, or signal flow diagram) it's going to take me a lot longer to figure things out. I don't want it all on a plate but a little to start off with is always nice

believe me, i would really like to learn about these techniques, i just don't see the point in doing it the long way round.

Matthew Aidekman's icon

in regards to vb.fbosc WOW THATS A FREAKING AWESOME OBJECT

in regards to mike, something tells me a lot of people want to know these techniques and thats the same reason he's not sharing. It's not like he's obligated.

Roman Thilenius's icon

Mike S wrote on Fri, 11 September 2009 23:29

believe me, i would really like to learn about these techniques, i just don't see the point in doing it the long way round.

i would definetly only mislead you when i show you my personal
way of doing something and claiming my way would be the right way.

you can take it for serious when i recommend to just google
those terms, thats how many people including me learned about it.

it might be that somebody found a way for X in the situation Y
but that does not mean that it is possible to make a quick patch
about it which can demonstrate how to do it in general.

a general way of playing upsampled signals or creating bandlimited
wavetables, for example, simply does not exist, let alone the
answer to the question about how to do "commercial synthesis".

i dont even know what "commercial synthesis" is, maybe that is
something i need to google.
and if you exspect patches as answer, you should just ask with
a patch, it is hard to give concrete answers for vague questions.

rtfm wasnt my point at all (rtfm is the most useless answer you
can give), my first points were "upsampling", "high precision",
and "bandlimited".
the rest is your job.

-110

.

Anthony Palomba's icon

Since Raj mentioned Supercollider, I thought I would put
a plug in for csound. I use it all the time in Max, I think
its output sounds far better than Max. It has a much
warmer sound. It is a text based synthesis language as well.
I develop the interactive parts in Max and use a csound engine.

The csound book is a great tome of knowledge. What you learn
in one synthesis language you can always port to another.

You may want to get your brain around Max before you start
exploring these other options.

Mike S's icon

making a synth more analogue is something i will look in to after i have the quality thing down. i've made a strange sounding synth with multiples of the fundamental before and this had some noise effecting the frequency of each multiple which did sound much more 'alive' but i suppose that is an aesthetic choice.

roman, i've been googling the terms you stated on and off through the day, as well as consulting the old faithful CMT

dithering i knew was adding noise to the signal, but i wasn't aware of it in synthesis. is this done after or before upsampling? how much noise do i add?

the last post by Leigh Marble in this topic talks about using cross~ for anti-aliasing which is something i also have to worry about i think?

primarily what i want to do is make nice sounds to compose with, secondly i would like to know the ins and outs of the processes so i can customise them or add to them if need be. i could always buy a synth and load up some presets but that doesn't sound too interesting - i've got msp sat here, so why not give it a go?

i'm quite surprised there is not more on the forum about these techniques in relation to synthesis. at this point i'd really like to get in to some more advanced techniques like the ones mentioned.

anthony, i've used msp for 4 years at uni (i'm about to spend another 2 years doing an MA working with it!) there is a lot of stuff i can do, its just the emphasis of the course was on interactivity and less on sound quality, so i'm covering new ground here. i'll check out SC and Csound

raja, nice links and patches, plenty of reading to do!

thanks everyone

edit - commerical as in something you sell, as in a company that sells synths that has spent more collective time thinking about them than we have! get it?

roger.carruthers's icon

As well as CMT, you should read up on psychoacoustics. I was reading Perry Cook's excellent book this morning ('Music, Cognition & Computerized Sound - thank you David Stevens!), and of particular relevance to this subject is John Chowning's chapter on perceptual fusion, and what it says about imperfection.
Real sounds are imperfect; computers start from a position of perfection - absolute periodicity etc. So to make them sound more pleasing to the ear, we need to add some randomness; of pitch, of amplitude, of timbre and/or of spatialisation.
The Korg Poly 800 was a pretty unremarkable synth - the Poly 800 Mk.II sounded a whole lot better (the Orbital bros. once described as one of the best kept secrets of their sonic arsenal!). The only difference between the two was that the Mk.II had a delay line - a pretty noisy one at that, but it gave the sound much more character.
Many commercial synths' presets are drenched in reverb/delay/chorus etc. Strip it away, and they sound a bit dull. Like waveshaping & distortion, delay effects, especially with some randomness, give the sounds more real world qualities, and are cheap & easy to implement.
The 'warmness', 'fatness' etc. of analogue synths come from the non-linearities and imperfections - drifting oscillators, components that heat up and change their characteristics over time; inject some of this into your otherwise perfect digital sounds, and they start to sound more like the sort of things your ear wants to hear.
My 2p
Cheers
Roger

Steven Miller's icon

[quote title=roger.carruthers wrote on Sun, 13 September 2009 15:13] As well as CMT, you should read up on psychoacoustics. I was reading Perry Cook's excellent book this morning ('Music, Cognition & Computerized Sound - thank you David Stevens!), and of particular relevance to this subject is John Chowning's chapter on perceptual fusion, and what it says about imperfection.

This chapter by Chowning is actually a complete retread of of a ground-breaking article James Tenney published in 1964 (!!!) called 'Computer Music Experiences 1961-1964' detailing his work at Bell Labs. In it he gives a number of observations and suggestions, complete with instrument designs, for adding in both random and cyclical modulation of various parameters. He also goes into detail about the pieces he composed and the perceptual research he conducted during this period. As with so much else by Tenney, it's both pioneering and a wonderful read!

chris cousin's icon

have you checked out miller puckette's book ? it has patch examples for PD which are easy to use in max

Tim Lloyd's icon

Really interesting thread so far. I'm definitely going to be taking a stab at modeling some analogue circuits in msp. Seems like a massive amount could be learned from it!

Matthew Aidekman's icon

post results tim!

Roman Thilenius's icon

six months ago mikes last thread about this topic, synthesis
in maxmsp, ended up in a flame war about why csound sounds
better than supercollider anyway.

this one will soon, too.

Mike S's icon

i simply don't understand your negativity, the whole point of the board is to share and help people. you seem to be begrudgingly offering some advice, and then not taking it any further.

there is a lot of good info in the thread, your last post not containing any.

kindly, GTFO

slow riot's icon

I've been interested in this topic but it's ahrd to put my experience into useful words or examples.

I kind of gave up with making my own solutions to certain problems in max. There are lots of great programmers around, and so if I want a nice software filter I reach for one that someone else has invested time into (though it can be difficult, as most commercial plugins are not developed with users like me in mind, however some are extremely workable... eg u-he zebrify ... i tried making a comb filter like his 'dissonant' one once.. i didn't get close, lets put it like that)

So for me, for many solutions I will reach for items that have already been carefully designed. (hardware is interesting too, especially with the revaltations of the 'volta' wa of working with CV)

However, there is a lot to be said for learning things yourself. Obviously if you are a creative kind of person, the abilty to make synths sound nice at a very low level could be an amazing thing. I don't have too much advice here though, other than that I have quite a few Core modules from Reaktor that I hope to take a look at one day. And also the PD community seems to have a lot more resources in this general area.... solutions which are obviously reasonably easy to implement in MAx.

Roman Thilenius's icon

it is tempting to say something negative about volta now.

slow riot's icon

for sure Volta probably isn't the right method for max/msp people, but the technique using soundcards for CV is an exciting one. latency and other potential technical issues aside it's effectively a very happy analogue&digital marraige.

Roman Thilenius's icon

what i was thinking when i saw "volta" when it came out
(and then again when i saw your post 10 minutes ago) was
"wtf, isnt that what people like us are doing with maxmsp
since 15 years?"

and i never understood why something like that comes in plug-in form,
because normally i would not want to use an expensive audio
interface for it, but an additional cheap one.

actually i would be interested in your experience with it,
and if it better or worse or different from creating a custom
system using maxmsp or sc.

.

Mike S's icon

make a new thread FFS

Matthew Aidekman's icon

I always felt this would be a good way to make a distressor like compressor.

slow riot's icon

Roman Thilenius wrote on Mon, 14 September 2009 16:53

actually i would be interested in your experience with it,
and if it better or worse or different from creating a custom
system using maxmsp or sc.

.

depending on who you ask, analogue components (well a lot of them) are never going to be truly replaced in the digital domain. I have heard very experienced and intelligent people on both sides of this coin.

at the moment for me it is too expensive to inegrate widely, but I have heard a lot of evidence for the uniqueness in analogue components.

Anyways, I'm not sure exatly what the OP has in mind with thoughts in this vein.

There are lots of things that are very hard to do well with simply max components, and maybe with them there is a reason why commmercial soft synths are high value items.

I don't know the difference in code between say, an MSP ADSR~, and one from a fabfilter synth or u-he 'bazille', but the sonic differences are obvious.

What I am not 100% sure about is the creative/structural gains that would be made (to me) from learning to bridge this gap.

I definitely think that (for my uses) there is an 'end point' when doing things totally myself. I like having some restrictions set by other people, and looking back over history at least one major musical movement has been motivated by strange restrictions set by gear. (techno/Roland.. imo). Though of course Max is widly exciting too.

Anyways this stuff is quite hard to discuss easily so i'll stop rambling

Tim Lloyd's icon

What if a set of abstractions could be made that simulate the actions of resistors, capacitors etc... on audio signals, and then used to patch together circuit diagrams of analogue oscillators and filters, rather than programming a mathematical representation of the function of a circuit.

I'm fairly sure that programs like this exist already for circuit prototyping/testing, but it might be really interesting to explore and use for synthesis.

One thing that comes to mind is that it might turn out to be impossible to use, because lots of circuits like op-amps use +/- feedback, which afaik can't be done in msp without signal vector delay.

I've got no idea how realistic it would be to implement, any suggestions/thoughts?

Randy Jones's icon

Hi,

This approach wouldn't really work because there is a fundamental difference between what audio circuits do and what MSP patches do. MSP patches are directed graphs of processing nodes, which is to say that connections between nodes are one-way.

In a circuit, though, two connected nodes affect each other's outputs. To simulate any nontrivial circuit represented as a graph, two-way communication throughout the graph is needed.

As you point out, feedback is important too. To use feedback in a sampled system, you have to calculate the whole system's state sample by sample (at least). In theory, you could set MSP's signal vector to 1 to do this. But the requirement for two-way communication is a more fundamental problem.

If you want to learn more about simulating circuits, check out Julius Smith's online chapter on Wave Digital Filters.

-Randy

Mike S's icon

i've just had a little play with poly oversampling

attached is a little mod of a patch oli larkin posted recently

thoughts? improvements?

Roman Thilenius's icon

slow riot wrote on Tue, 15 September 2009 03:32
depending on who you ask, analogue components (well a lot of them) are never going to be truly replaced in the digital domain. I have heard very experienced and intelligent people on both sides of this coin.

we were talking about the "volta" vst plug-in from audioease
and how it compares to building your own CV2data or data2CV
software in maxmsp.

we left the original topic a bit.

-110

Roman Thilenius's icon

timlloyd wrote on Tue, 15 September 2009 15:47What if a set of abstractions could be made that simulate the actions of resistors, capacitors etc... on audio signals, and then used to patch together circuit diagrams of analogue oscillators and filters, rather than programming a mathematical representation of the function of a circuit.

i was thinking the same when i saw mike´s post about "electronics".

one would have to understand that this will not bring us to analog modelling, yet it is a very funny idea.

a set of "electronic components" could be quite interesting,
and we maxers are great in making "abstractions", arent we?

one problem i see is that you might need to abuse jitter
video signals to represent voltage in addition to
audio signals for power. and what about magnetic power ? ...

and we will need to make virtual transducers in order to
connect to "normal" signals.

making loops in a circuit is another issue...

Tim Lloyd's icon

Yeah, like Randy Jones says, it cannot really work, as the principles of how each system works are completely different unfortunately. That didn't occur to me at all until about 2 hours ago!

Still, don't UAD do *something kind of similar* to digitally model analogue circuits for their plugins
(as opposed to the way focusrite/sintefex do it with dynamic convo)? Obviously using those methods isn't realistic in maxmsp, as they require external pci-card processing. But it can't be too far in the future that computers are fast enough to do such things on their own. It would be nice to have a headstart on learning how such things work.

We've drifted away from the topic again, sorry....

Roman Thilenius's icon

even in physics the expression of voltage or difference is only a hypothesis.

we can let aside the flow of electrons for now and start looking at it only
from the side of positive charge.

our power supply object [eac~] will provide 225 volts at 50Hz.
the voltage will be expressed as a sinewave going from -225. to 225.

if an object needs to know the watts, this is more or less
only abs(voltage)*some factor.

now whats "some factor"? first of all, thats how much watts the
connected input device takes.
or to be exact, the current sum of all connected input devices.

when two devices are connected to one power supply, these two devices
can theoretically affect each other, for example when their sum
of used energy is too high, the [eac~] will stop outputting anything.

this is what randy was talking about: it is possible to program such
things (there _are programs which model circuits) but in MSP it might get
more work.

then there is also ampere, the actual energy. this can also be
calculated by something which looks very familar for someone who
knows what "amplitude modulation" is.

most input devices will probably convert that to direct current inside,
but not all. so we have to use AC as main MSP signal for now.

what is a transistor doing? my knowledge ends here already, i am usually
happy when i find where to plug-in which computer let alone repairing one.

-110

Mike S's icon

found this which might be of interest

obviously these are just wavetables but you can have some good fun with them!

knocked this up in a short while just messing around, download the files, drop the wave folder in, turn audio on, and press go!

Max Patch
Copy patch and select New From Clipboard in Max.

need to get round to looking at the bandlimited waveform generation in the miller puckette pdf also : /

Tj Shredder's icon

roger.carruthers wrote on Sun, 13 September 2009 23:13The Korg Poly 800 was a pretty unremarkable synth -

snip

Many commercial synths' presets are drenched in reverb/delay/chorus etc. Strip it away, and they sound a bit dull.

I had a Poly 800 and it was a remarkable synth, as I was able to do sounds with it, no other synth could do. The reviews I read made people think the single filter, which had to be shared by all voices, was a disadvantage. But I found this was the key feature to make it different to the rest of the pack. This synth was not velocity sensitive, but I could play dynamically. Put a slow filter on the sound and retrigger the filter envelope only on staccato. Now playing legato would open the filter slowly creating a crescendo. Staccato playing would be soft. Awesome...

I really hate all the extra treatment of synths with a huge sauce of reverb/chorus and I don't know what else. It is included to sell them in the shop, but it is only eating unnecessarily CPU. If I need Reverb in the mix, I'd add it extra and probably feed more than just the synth to it. It should not be an integral part of a synth sound.

Especially with synths you should look at them as instruments. Playing an instrument is not about "treatment" or doing something with it. Its about listening. Same applies for creating a synth. Listen, and then tweak it in the direction you want it to. A theory about why an analog synth sounds better than a digital one, will not put you in the right direction, instead: listen and try to find out what you dislike. This will immediately lead you to better sounding changes. Most likely not just some random applied to parameters. I bet the liveliness of analog synths is not an arbitrary random or noise, it is more structured. Nothing against band limited noise it could be just what the doctor ordered, but it is only one spice which does not fit to all meals...
And in the end you just want a good sound. Maybe its not that important to make it sound like something which exists already...

Keep the reverbs and choruses for the mix where they belong to...

Stefan

mudang's icon

as for the dsp-code approach I've recently found another amazing source:
LADSPA !

For those who don't know, that's the linux audio plugin format.
And most (if not all) of the available plugins are open-source.

Some of them do analog circuit simulation.

Unfortunately there isn't a ladspa external for max yet (or is there?).

Here's a good starting point:http://ardour.org/plugins