Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I coded a modular software synthesizer as my final year project in high school, without any previous knowledge of digital signal processing. C++ with a simple GTK+ user interface, sound output via JACK, and MIDI input via ALSA.

The difficulty of just generating correct square waves really surprised me. I thought you would just flip between 1 and -1 at the desired frequency, but of course that sounds awful because of aliasing. So I followed the paper by Tim Stilson and Julius Smith, Alias-Free Digital Synthesis of Classic Analog Waveforms, which presents the "band-limited impulse train" method, and got it working nicely.

Then I added a simple delay line, a convolution reverb, a resonant low-pass filter, a flanger, a compressor, all pluggable through the UI. That project was one of the most educational and fun months I've spent in my whole life... Playing a synth that you understand from the waveform level is really cool!

Some other guys in my class built an electric guitar which is also cool... Maybe I'd be more interested in that kind of project now that coding is my day job...



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: