pouët.net

64k synths

category: music [glöplog]
You "owe" us all great 64k soundtracks. That's the hard part :D
added on the 2016-11-28 15:53:21 by kb_ kb_
Convolution reverb is fantastic sounding and very easy to use but you have to store the impulse. I suppose you could generate that, but I don't think you'll get the benefit easily.

I'm using a bunch of delay lines with prime number lengths mixed together with a hp/lp in the delay line. Cleans things up a ton and is fairly easy to implement.
added on the 2016-11-28 16:11:51 by ferris ferris
Yeah, exposing all variables will be a nightmare!

Usually the length of the comb filters and allpass filters are fixed. In commercial reverbs, a specific setting is the algorithm type: e.g. room or hall etc. (of course they also add some secret sauce).

The comb filters lengths are chosen to be mutually prime so that the total impulse response will have minimal repetitions. Moorer suggest linearly spreading the delay lengths between 1:1.5 ratio. YMMV. This still leave a whole lot of room for experimentation though. A good test is to listen to the reverb's impulse response and identify problems from that.

For the Schroeder/Moorer reverbs, the feedback gains of the comb filters determine the reverberation time. The gain for each comb filter needs to be set such that the gain (or actually attenuation) _per_ _sample_ is the same between comb filters to avoid one comb filter becoming dominant in the tail of the reverb, which you will then hear as annoying repetitions. That'll be one single parameter.

IMO, setting up the allpass filters is the hardest part. These are intended to break up impulsive sounds and spread them out, i.e. to diffuse, on a smaller time scale compared to the comb filter. I keep the lengths and coefficient constant and customize these for each algorithm.

I hope this gives you some hints to attack the problem with some insight and avoids you changing stuff at random, pulling your hair out, take up drinking and then moving to Barbados to start your own karaoke bar.
added on the 2016-11-28 16:19:57 by trc_wm trc_wm
Drift: if you need testers, I'd be happy to try and make some sounds with your synth.
added on the 2016-11-28 16:45:53 by yzi yzi
@Drift: which GUI library are you using for the VSTi?
added on the 2016-11-28 16:53:39 by trc_wm trc_wm
Drift, nice surprise :)
added on the 2016-11-28 16:54:35 by Virgill Virgill
And one simple rule: the more knobs, the bigger the fun!
added on the 2016-11-28 17:06:07 by Virgill Virgill
trc_wm: using vstgui although I have read a lot of people saying Juce is better. The knobs I made in JKnobman which is a pretty awesome tool for making knobs and switches.

The delay times I just copy/pasted from a table that was supposedly tuned for a 2sec reverb time. I need to get my head around the theory a bit more, your advice is really good.

I'll send it out for testing to musicians whose contact details I have. Might be up to a week away or so before it's ready to inflict on other people. Need to document it too as some of the controls need better explanation than the vague labels they have. Really looking forward to some feedback not just on the sound but the way the controls respond. Did a lot of weird non-linear stuff because I wanted to have really precise control over small values on some parameters. Things like envelopes where it is important to have fine control of small values because it is impossible to get transients right for percussion sounds when your controls are jumping 50-100ms at a time. The trade off is precision on longer times but really I don't think time controls up over 5 seconds needs that much granularity.
added on the 2016-11-28 18:01:45 by drift drift
Quote:
For the Schroeder/Moorer reverbs, the feedback gains of the comb filters determine the reverberation time. The gain for each comb filter needs to be set such that the gain (or actually attenuation) _per_ _sample_ is the same between comb filters to avoid one comb filter becoming dominant in the tail of the reverb, which you will then hear as annoying repetitions. That'll be one single parameter.


Literally me now *headdesk*
BB Image
added on the 2016-11-28 18:18:53 by kb_ kb_
it's never too late :)
added on the 2016-11-29 10:01:48 by gopher gopher
Drift: Why not? Have it somewhere? VST?
added on the 2016-11-29 15:53:30 by leGend leGend
Taking a lot longer than I expected to get all the details sorted out. Seems like one of those things you can work on forever and never really be finished. Still lots of stuff I need to add like making oscillator 2 a modulation source for FM and hard sync of oscillator 1. But I might wait until I rewrite the mod matrix which works but runs like shit, I need some time to think of a better way to implement it. Also going to move the effects into standalone modules the way Ferris has his stuff setup, or at least that's how I understood his explanation from the last seminar he did.

Gonna write some docs now and mail it to a few people for testing. Also fixed up the UI a bit more. Actually need to rethink the whole UI too.

BB Image
added on the 2016-12-04 18:05:05 by drift drift
Quote:
The other thing to note is that there isn't one reverb algorithm that sounds good on all types of material. What sounds good on tonal stuff such as vocals may not sound good on impulsive material like drums. Also, EQing can perfom miracles.

EQ pre-reverb can do wonders. Same goes for delay.

When I work on (regular non-64k) mixes I tend to use one main reverb and one main delay, but 3 buses with different eq-settings routed into the actual delay/reverb buses.

I got the idea from this article, and used the curves as starting points for my own template:
How To EQ Effects
added on the 2016-12-04 18:52:08 by lug00ber lug00ber
Wow, new trick, thanks. I've read many mixing related articles and some proper books, but the multiple-EQ-buses-in-front-of-single-reverb thing was new to me.
added on the 2016-12-04 20:37:32 by yzi yzi
Yeah makes a lot of sense and why splitting the effects into modules to allow flexible routing is the way to go. I can already feel the limitations of having a monolithic plugin with fixed routing.

Eh, I'll get there eventually.
added on the 2016-12-04 20:51:00 by drift drift
Oh My
I hope it wouldnt be too much of a stretch to ask for you to make a Linux build ? Id love to try this with Bitwig Studio or Renoise!
added on the 2016-12-05 09:39:12 by polyp2000 polyp2000
@lug00ber:
neat trick
added on the 2016-12-05 11:03:04 by 1in10 1in10
Yeah, cut off excess stuff from reverbs is a normal thing to do, also one can and sometimes must (especially in our SoftKnees tunes, drenched in massive reverb:D) sidechain reverb or use predelay to shift it in time
added on the 2016-12-05 11:24:35 by leGend leGend
Looks really good Drift, clean cut interface.
added on the 2016-12-05 11:39:01 by djh0ffman djh0ffman
Australia represent! Exquisite work and very keen to hear the synth. You should definitely add an FM modulation option, that'd be nice to have.
Yep I have the code done for FM and hard sync but still need to hook it up. I am going to redo the whole mod matrix anyway because the code is garbage and will have it so the oscillators can be modulation sources to allow for some cool effects.

Doing builds for other platforms is something I will look into much further down the track. Right now it barely works as it is and I don't even have a win 64bit build setup. Still in early stages where I am rewriting a lot of the code and changing functionality every day. Actually think I might redo it using the Juce api since I am using VSTGUI4 and I don't really like it.

Anyone else had experience with Juce care to comment on it? Is it easier/better/worse for setting up gui stuff?
added on the 2016-12-05 12:19:41 by drift drift
@drift:

mod matrix and other ideas(i know it's your baby but maybe there are some that you haven't thought of):
-modulate the reverb with lfo/chorus/flange/filter
-modulate the oscillator/filter with reverb
-glide rnd waveform for lfo (quite rare but very useful)
-at least 2 delays for better ambient sound
-pitched noise
-loopable envelopes (double as lfo's)
-envelope routable to delay/reverb attack
-sub osc shape
-panning for every osc separately
-feedback
-alternating the LFO waveform with zero (Interlace)
added on the 2016-12-05 13:01:04 by 1in10 1in10
I dislike JUCE just because I'm used to VSTGUI. Besides, JUCE is only free for open-source projects. You might not want to release the source.
added on the 2016-12-05 14:14:46 by trc_wm trc_wm
1in10: some good ideas. I will certainly implement some of them for sure. I really like the idea of looping envelopes and that is easy to do. Have to admit I don't know what pitched noise is. White noise with a variable frequency bandpass filter on it or perhaps you mean like a sample and hold that runs in the audible frequency range?

So today I learned some devices send note-on with zero velocity instead of a note-off. Trap for beginners.
added on the 2016-12-06 02:32:57 by drift drift
pitched noise is the c64 style noise.
i think its also called sampled noise.

its the fake noise..but useful noise for drums..
added on the 2016-12-06 10:08:56 by 1in10 1in10

login