pouët.net

How to get into synth / executable music?

category: music [glöplog]
i implemented "alias free" waveforms in an older synth of mine a few years back by creating wavetables for each waveform and each midi note by adding all valid harmonics and applying gibbs correction (so essentially 128 tables per waveform)

for each tick in the oscillator the appropriate table was selected by a frequency lookup table. so if FM was applied it would just use the corresponding table as it would without FM.
sounded ok to me, or am i just thinking too simple here?
added on the 2010-11-07 21:04:53 by gopher gopher
After Smash said his synth wasn't bandlimited, I thought I'd have a go at not bandlimiting it and generating 4 triangle waves simultaneously with SIMD.

It sounded bloody awful :-) It's ok with just one oscillator, but when you add 4 together it sounds like there's an aircraft taking off in the background.
added on the 2010-11-07 21:11:44 by MeteoriK MeteoriK
gopher: What do you do about detune? Pitch bend? :-) But yes, it's a valid way, except it's probably slightly more flexible to make the tables a function of frequency and not note number.

For FM, it should be fine(-ish) for small frequency changes; not so fine for large frequency changes.
added on the 2010-11-07 21:19:27 by Sesse Sesse
To test my oscillators I do a slow frequency sweep. Half of the aliasing products will move in the opposite direction (frequency) with respect to the sweep direction. You'll immediately hear the aliasing; it's very unforgiving :)

added on the 2010-11-07 21:21:49 by trc_wm trc_wm
sesse: uhm ... detune and the like are all added up to give a frequency value. something like:

wrkfreq = note_freq * pow(2.0, transpose + detune + glide)

then do the phase integration:

wrkphase += wrkfreq + freq_mod

then doing the table lookup based on (wrkfreq + freq_mod) and use that table for reading the wave at wrkphase

so essentially everything changing the frequency of the sound is considered when doing the wavetable lookup to get the table with the correct amount of harmonics.
added on the 2010-11-07 23:03:04 by gopher gopher
OK, sure, you just sounded like you never considered anything but the table equivalent to the base note number.
added on the 2010-11-07 23:38:21 by Sesse Sesse
First post!
added on the 2010-11-09 13:17:59 by sagacity sagacity
I wonder if it is possible to optimize a synth for output directed at 30 year olds? I mean, there is bound to be some hearing loss from age and techno music listening history. The human hearing range is from 20Hz to 20KHz for a human super ear man, but maybe you don't really need to have a sample rate of double that frequency to please. Anyone know what is the correct sample rate for drunk 30 year olds?
added on the 2010-11-11 11:50:22 by loaderror loaderror
I think it depends on which drunk 30 year old you sample ;)
added on the 2010-11-11 12:04:44 by datsua datsua
Loaderror, that's a pretty good insight, thanks! You just halved the precalc time of our future intros ;)
added on the 2010-11-11 12:17:34 by revival revival
loud blast of noise at start, then basically play whatever you want between 200 and 2000hz, given that's the remaining hearing range for the people present :D
added on the 2010-11-11 12:27:38 by Gargaj Gargaj
Gargaj: Or just make sure it's lug00ber at the mixer, in which case you don't need the loud blast.
added on the 2010-11-11 12:37:17 by Sesse Sesse
gopher:

n = note + slide_offset + portamento_offset + detune + tuning + arp_offset;
freq = powf(2.0f, n + Constants::NoteOffset / 12);

:P

Keeping track of frequencies in this thing is a nightmare.
added on the 2010-11-11 21:17:37 by MeteoriK MeteoriK
I usually do:

[code]
n = note + analog_drift + domination_offset + secret_parameter;
freq = powf(2.0f, n + Constants::NoteOffset / 12);
[\code]
added on the 2010-11-11 21:22:37 by trc_wm trc_wm
I usually do:

Code: if (!(rand() & 10)

added on the 2010-11-11 21:44:48 by revival revival
Doh, I spoiled my joke by accidently hitting submit before I got to the punchline :(

Knock knock!
added on the 2010-11-11 21:47:58 by revival revival
Who's there?
added on the 2010-11-11 22:40:59 by Sesse Sesse
Wave
added on the 2010-11-11 22:50:50 by MeteoriK MeteoriK
Wave who?
added on the 2010-11-11 22:51:03 by Sesse Sesse
WAVE GOODBYE TO YOUR SYNTH!!!!!!!!!!!!!
added on the 2010-11-11 23:01:02 by MeteoriK MeteoriK
Its ok, I have my samples.
"it was better with module files" etc.
added on the 2010-11-11 23:04:54 by 4mat 4mat
Dude, it all went down... :(
Bidule: http://www.youtube.com/watch?v=uH3pF3esMj0
added on the 2010-11-13 02:15:36 by bdk bdk
added on the 2010-11-13 02:16:00 by bdk bdk

login