Sunday, 29 March 2015

Wavetable update ...

I may need to grab a bit more video. I just tweaked the MIP map generation step, which enters the frequency domain and for each octave table, strips the high frequencies approaching and beyond Nyquist for this octave, then goes back to the time domain - all the while doing some secret sauce to aid with de-clicking and de-artifacting. I thought it was doing a great job already. But it turns out there was a pretty sneaky trick I needed to do in the secret sauce bit, which I only worked out by watching my triangle wave on screen - one of those proper "Eureka!" moments. And suddenly, everything with interesting / out of phase harmonics - the triangle, the various Caitlin vowels - now sound massively sweeter. Which is interesting, because it implies that I CAN hear phase relationships, and people aren't supposed to be able to do that. Not just that I can hear phase relationships but that they really are key to shaping these sounds. But anyway, once I've prepped a handful of interesting presets I shall turn on the video kit again. I'm fascinated in particular by how, over a small handful of notes, the 'Caitlin vowels' really sound like somebody singing Oooh or Aaah. Or at least, really sound like a speech synthesizer Ooohing and Aaahing away.

UPDATE (i.e. the author may have been having a partial senior moment)

Of course there is another issue I should not discount here - out of phase harmonics, blended over a wavetable trajectory, will cancel completely ...


Here's a thought I had today that I want to make a note of before I forget - instead of auto-computing wavetable octaves, what if I let the user supply them? Yes, I'll still have to FFT / de-FFT to kill frequencies beyond Nyquist, but it would let you capture the tonality of an instrument up and down its range. And suddenly you have a 2D surface of tables, indexed in X by frequency, in Y by time. That's a thought to not let go of ...

Friday, 27 March 2015


Finally - sounds. 

Unfortunately there is something amiss with audio quality here - the original on my Mac sounds great, but YouTube has done something to it and the saw sounds ugly. I may repost it with the volume cranked down to see if that helps ... and done, the linked video is now the newer version, which still doesn't sound as good as it should (i.e. as good as it does on my desk before I upload it) but is at least better than it was before. 

But ignoring the slight fizzy oddness with the saw, those swept formants really sound vowely and voicey. And they look great.

Monday, 23 March 2015

PICYCLE is now playable ...

... and it sounds insane. INSANE. The parametric sonic space is enormous for this thing, it's just ridiculous.

Sunday, 15 March 2015

25% CPU free

Being Boiled :

Endless repeat of 'worst section', all synths including lots of handclap.

Pi Model B+ single-core ARM11 950MHz
6 synths active
4 delays active (of 8 total)
reverb active (post-delay wet signal also has 'reverb send' amount)
sequencer active (separate application)
wave information published to sequencer via shared memory
wave display by sequencer @720p

Free CPU : thrash1 + thrash2 = 25%

I love that the sequencer is 0.3% of the CPU - just running 'top -H' is taking 6x as much! Last thing, shake out PICYCLE. Hopefully will get sounds before tonight's Toad Patrol ...

op - 13:04:39 up  3:03,  2 users,  load average: 2.67, 1.48, 2.25
Threads:  90 total,   3 running,  87 sleeping,   0 stopped,   0 zombie
%Cpu(s): 64.9 us, 33.2 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  1.9 si,  0.0 st
KiB Mem:    445740 total,   289020 used,   156720 free,    16560 buffers
KiB Swap:   102396 total,        0 used,   102396 free,   152432 cached

 3848 root      -7   0  118m  88m 3828 S  55.5 20.3   0:39.26 synth servic
 3853 root      20   0  118m  88m 3828 R  12.4 20.3   0:09.31 thrash2
 3852 root      20   0  118m  88m 3828 R  12.1 20.3   0:09.31 thrash1
 3857 root      -2   0 41004 5860 3144 S   8.5  1.3   0:05.94 glRender
 3846 root      -9   0  118m  88m 3828 S   6.0 20.3   0:04.34 nativeAudio
 3707 pi        20   0  4708 2420 2016 R   1.9  0.5   0:19.17 top
 3847 root      -8   0  118m  88m 3828 S   1.9 20.3   0:01.25 mixer
   31 root       1 -19     0    0    0 S   0.5  0.0   0:48.32 VCHIQr-0
 3858 root      -2   0 41004 5860 3144 S   0.5  1.3   0:00.39 VCHIQ completio
   30 root       1 -19     0    0    0 S   0.3  0.0   0:21.86 VCHIQ-0
 1539 root      20   0  1756 1096 1004 S   0.3  0.2   0:09.67 ifplugd
 3692 pi        20   0  9268 3524 2936 S   0.3  0.8   0:01.86 sshd
 3844 root      20   0  118m  88m 3828 S   0.3 20.3   0:00.19 WiFiprintf
 3854 root      20   0  118m  88m 3828 S   0.3 20.3   0:00.13 rawkeys
 3856 root      -3   0 41004 5860 3144 S   0.3  1.3   0:00.31 sequencer

Saturday, 14 March 2015

Pi day?

Nope. Totally, utterly not.

Pi day would be the 3rd of Quatorzember (or whatever the name of 14th month would be), not the 14th of March. Seriously, I'm British and proud of it, and today is 14.3 not 3.14

So expect an announcement here on the 22nd July. You know - 22/7

Of course it may only be an approximate announcement, or an approximate date, but watch this space. Things are happening.

p.s. this is cool - and demonstrates that an announcement on the 22nd of July is INHERENTLY A GREATER THING than one on the 14th March. Take that, you date-format-challenged, day-month inverted freaks!!

Friday, 13 March 2015

And while I'm waiting for a compile to finish on the Pi ...

... what is all this BBC Micro Bits about? I so don't get it. It's designed to teach programming - but requires a computer to program it. Huh?? Why not learn programming, you know - using the computer. They are quite good at that, everybody I know learned programming on a computer.

And if you don't have a full, proper, expensive(ish) computer at home, just buy something based on a Raspberry Pi. A Kano is only £100, and they are really nice little machines.

Really, it makes no sense to me on the basis of the small amount of information that's been released, I hope it all gets more meaningful when they do a full disclosure.

Still compiling ... will try to think of something else upon which I can off on one. Ideas on a postcard please.


There goes my hopes for a power of 2 line count.

Wednesday, 11 March 2015

64796 total

The result of typing

wc -l *.cpp *.h 

in my Pi build directory for PIANA / PIANATRON / PICYCLE

What if, at the moment I'm 'finished', this is exactly 65536? Wouldn't that be weird?

I'm hoping to get a video of my Raspberry Pi birthday bash presentation done before the end of Friday. Better make the next 256 lines of code work before then, otherwise the last slide but one will be telling a porkie.

Monday, 9 March 2015

A trivial Raspberry Pi Chamber Orchestra

This is as simple as it gets, from an audio signal perspective. 2 Pis, both Model B+ (although the second could be a Model B or even a Model A as I'm only using one USB port). Node 1 on the right has an IQaudIO Pi-DAC+ as audio output. Node 2 is using USB audio, a Behringer UCA202, which has the lovely property that it's both an audio DAC and a summing mixer.
I have simply connected the audio output of Pi 1 to the audio input of Pi 2, flick the UCA202 'monitoring' switch on, connect the output of the Behringer to the speakers, and I have just built a system capable of running 16 virtual analog monosynths using scrap. Because in March 2015, Raspberry Pi Model B+ is scrap - everybody is upgrading to Pi 2. In essence, the hardware is free.

Of course it doesn't work as proposed yet. The proposed connection is over GPIO UART, to both transfer sequence files between the two, and to provide sync nudge - because relying on timers alone would probably result in unacceptable clock drift (this hypothesis needs testing). So for two wires and some handshaking software, you get a heck of a system - sequences running on both, tight sync via UART, 3 keyboards plugged into Node 1 for performance, and tons and tons and TONS of synthesis.

All running on scrap metal. Brilliant.

Sunday, 8 March 2015

The IQaudIO Pi-DAC+ is remarkably nice

But sadly, it's so nice it's sold out, apparently. I'm sure there will be more available very soon, they made such a splash at the Raspberry Pi weekend I think demand temporarily outstripped supply.

For me, the great thing about this is that suddenly I can plug in a USB keyboard / mouse and still have 3 USB MIDI keys plugged in - truly, insanely great from a '£25 synth band' perspective, plus the audio quality is dazzling.

And for some reason - more research required - I seem to get about 10% more usable CPU with this as the audio device. And that equates to an entire virtual analog synth. This may be lingering Pi USB issues, but something is making this thing sing, and sing beautifully.