Monday, 27 August 2012

Live demo of Phase Distortion

You lot should be happy that it was a grim, wet, windy Bank Holiday as I got to plug in my Pi and make a video. Sorry the frame rate of the second half is low, it's my Mac not being fast enough to capture everything.

So - here's an indication of quite how rich a single-oscillator synth can be (as in, I left OSC B cranked down to zero throughout). OSC A is set to a 'sin' wave (which does actually have a *little* bit of harmonic content as it's not really a sin, it's a short power series), but all the amazing richness comes from manipulating the phase of the oscillator during each cycle of the waveform. An EG is used to stretch and squash the phase over the lifetime of each note, then the LFO is pulled in to add a warbly, squishy immenseness.

And no explicit frequency manipulation - everything here is being induced by messing with the phase within each cycle of the waveform, the fundamental is not being manipulated, at all. Things get beyond awesome when you add in pitch modulation at the same time as Phase Distortion.

But messing about with frequency is for next time - for the time being, let's get PHASEY!!!! 

Don't hold your breath on any immediate release plans for this by the way, I need a couple of weeks at least to get feature complete. But I'll keep posting videos. 


  1. ahah I had the same project but received my pi just before going on vacation, now I'm back and found that you did it!
    As I'm relatively new to synth coding, I'm hoping to see some code sharing around here :)
    great demo!

  2. Hi Alois, thanks for popping by and commenting. Sorry to disappoint but you'll need to go elsewhere for code sharing, this is not an FOSS project.

    I'd recommend you do what I did - tons of research, particularly into the filtering side as that was always a mystery for me until I waded into this project, and I spent *tons* of effort trying to eliminate aliasing. In a digital synth, particularly one modulating like this (Phase, or Frequency or PD which is just PM in a more constrained manner) you will find that aliasing can crop up anywhere, and it does, and sounds awful. So be prepared for a lot of hard work, and also be prepared to invest a lot of time into performance tuning - the Pi is not very fast. But once you have it going fast it makes *great* noises!

    1. No problem, keep your secrets warm :p

      Yeah aliasing seems to be the main problem in softsynths, the awfull audio out of the pi doesn't help too. First thing I wanted to try out, was to hook up several dacs to my pi and try to build a 'better fi' (I don't think I have the skills for an 'hifi') audio out.

      Great job so far!

    2. Great Work! I just looks stunning! How many hours? You've ported something done earlier if I understand correctly. If needed beta-tester, just mail me! :-) But how does one connect MIDI? I have some alternatives but not sure if they work. Some Fostex external USB-MIDI device (122L), A Yamaha MOX8 that can work as a USB-soundcard/MIDI-card.. No USB-connected keyboard directly.. Maybe the MOX8 can show up as a USB-MIDI-keyboard..

  3. Hi Magnus

    How many of what, software development? Probably 500 or so. The code was started from scratch in the Summer, evenings and weekends, so probably 20 hours a week May June July August then I spent more daytime on it after mid-September. MIDI requires a soldering iron and some chips right now - optoisolator, diode and a few resistors hooked up to the Pi. Simple circuit but you can't just go out and buy it. Trying to use USB MIDI kills performance and I frankly cannot be bothered to try to work out why right now since I have a viable solution over serial MIDI.

  4. Excelent work. Is a open source project? Any beta release of this fantatic soft?.

  5. It's not open source, and it has not yet been released in any form - hoping to do a limited release within the month, but that depends how my interface boards work when they come back from Seeedstudios.