Tuesday, 31 December 2013

One the last day of 2013, a sound ...

This morning was spent eliminating a strange warble I discovered last night on very high notes when Phase Distortion was on, it was a nasty consequence of how the Phase Distortion was implemented, so I ripped it up and reimplemented it and it's a) easier to grok b) sounds nicer and I believe is c) better behaved from an aliasing perspective, but as soon as it gets thrashed bad stuff - sonic demons and the like - will break on through from the other side. The fix has broken subbass mode, need to work out how to reintroduce that,

But since it's generating sounds again and it's New Year's Eve, here's something I just grabbed to show status, and to get some synthesized sounds posted before the end of the year. Once again, this is grabbed off an iPad, but the codebase is 99% identical for the Pi.

This is a debug build (-O 0 - flabby compiler output a go-go!) so it can only manage monophonic playback, OSCB is a fifth above OSCA, both are saws, both are being Phase Distorted by the Amplitude EG, OSCB by 0.33 x EG, OSCA by 1.0x the EG, both are being pitch modulated by an LFO at 10Hz with modulation depth of 1/3 semitone, and OSCB is additionally detuned by 1/9 semitone. The filter is off (as in cutoff is at 0.5, resonance is 0.0), stereo delay is in place, reverb is off. Off as in, it's running with a send value of 0.0, so it's consuming cycles. And Fox on the Run - the right-hand part anyway - is definitely running. Don't get too excited, there are no pictures and the sound only lasts a few seconds, but it is running and it sounds nice. p.s. MUCH nicer in headphones.

That's it for 2013. More next year. 

1 comment:

  1. Some more performance details, after a rebuild and re-run in the fastest of all settings ('Fastest, Aggressive optimizations [-Ofast]'. With 10 note polyphony the synth consumes 38% of an an iPad 2. This may mean 76% of a single core, I need to dig into that!

    But just quoting verbatim from the reported numbers this breaks down as -
    'generate 32 samples' inner loop : 30.5%

    of which
    Moogy filter is 10.5%
    reverb : 1.5%
    delay : 2.2% (not clear why delay should hurt more than reverb - maybe the LPF?)
    modulation matrix : 1.4%
    EG updates : 0.5%
    Frequency fixup : 0.2%
    LFOs : 0.3%

    The total time spent inside the 'generate a sample' in the core oscillators is 0.7% of the reported 38% total.