Thursday, 1 March 2018

Organ revoiced

So, during making of this pipe organ engine - actually way before that, when I was developing the Pi wavetable synth - I realized that pretty much anything that was a single, static wavetable sounded like a pipe organ. It’s just the way of things - not much else has an unchanging tone made up of a harmonic series. Your brain just goes ‘Yeah - that’s a pipe organ’.



So I have decided to take advantage of that, and turn real instruments into pipe organ stops via wavetables, and that the first released implementation of the organ engine will be a completely fabricated set of stops, based on wavetables populated via harmonic analysis of the real instrument sounds that pipe organs strive to emulate. Or at least approximate, if not emulate. So I sat for 3 hours today, doing harmonic analysis of violas, trumpets, clarinets, oboes, sopranos, and came up with this - a completely synthetic organ, completely imitative (apart from the two pedal stops and the Great Diapason Chorus, which are computed harmonic series - the only instrument that sounds like an Open Diapason is an Open Diapason!), and it really sounds very organy. So, onward - UI and port to iOS / AU. And also, see if it will run on a Pi Zero - it should, it only has 13 stops.



Actually, sod the UI, at least for the time being - first things first, get it running on iOS with no UI at all, just to see how well it runs on a variety of hardware. It looks like iPhone 6 is the currently oldest device you can buy new, so if it works on my old 5C I’ll be delighted. So, no more updates until I can post a video of it running on iPhone 5C!

Sunday, 18 February 2018

Wednesday, 7 February 2018

New reverb

I just built a much nicer-sounding reverb than the one in my M3000 mellotron to try to eliminate the nasty metallic resonances and make the pipe organ sound more ‘churchy’, and in turns out to not only sound lovely but is also computationally only about 1/2 as costly as my old one.

Sweet.

Demo to follow at some point ...

UPDATE - demo here, of the organ integrated into the synths bundle, with the new reverb integrated as well. Yay!


Monday, 5 February 2018

Organ latest - all stops test

The underlying model is approaching complete. I revoiced all 12 of these stops today and they now sound very authentic indeed.

Still to do - transients. Then the engine will be deemed complete, and I can lash up a UI, get it onto iOS, turn it into an AUV3, get it on sale, then start on the St Just in Roseland model.

If you want to see this version - Bath Preservation Trust / Bath Museum of Architecture - on the Pi, I can arrange that, but to make it happen you will have to buy it on iOS in enough numbers. Once enough money is raised for the Bath Preservation Trust, I will make it available on the Pi. I haven’t yet decided what ‘enough money’ is, but it will be a sensible amount.


Saturday, 3 February 2018

Missing fundamental!

The pipe organ uses a version of ‘Trendline synthesis’, in this case more accurate would be ‘trendline voicing’ as the actual synthesis is wavetable trajectory. I have slightly extended the 4-parameter trendline method described by Pykett to add one extra feature - an individual harmonic that can be boosted or cut. And I found a great use for this feature - implementing ‘missing fundamental’ in the pedals. The lowest C on the pedals at 16’ is about 32.7Hz, very much below what my little studio monitors can reproduce with their 5” ‘woofers’. So I can’t hear it. Worse, it is there, and is using up the dynamic range of the playback system. But by totally eliminating the fundamental - harmonic 1, cut down to zero - the pedal tones come through much clearer, with an implied but absent fundamental, and the whole system has more headroom as the sub-50 Hz stuff isn’t swinging the instantaneous DC value around. Nice to know the extended feature has a use. The intended use is for boosting outliers that would otherwise have been pulled down by the trendlines, but this is a great way to repurpose it. And cheaper than buying a subwoofer.

Wednesday, 24 January 2018

Pipe organ update

The pipe organ code was modified the last two days to use a ‘trendline’ method for voicing. This reduces the amount of data required to define a pipe to a handful of numbers, and will allow the entire parametric model of the St Just in Roseland church - some 32 stops, 35 ranks - to be encoded in a couple of kilobytes. Here is an early rendering - things will improve a LOT from here, this is using a small subset of the capabilities of this technique.



Not bad, eh? Watch this space.

Sunday, 21 January 2018

Pipe organ - finally, a tune!

So, this virtual pipe organ I've been 'working on' for over a year - I actually did enough work on it recently that it plays tunes. Check this out.


There are two projects here. One to recreate the little chapel organ in the Bath Preservation Trust's museum, and this rendition of Toccata and Fugue in Dm is based on that organ. Still needs work, but all the stops are there, it does everything it needs to do. The other project is much bigger, the organ in St Just in Roseland church, which has 32 stops, some of them celestes and mixtures, so lots more ranks to simulate than the Bath organ. Work hasn't started on that, except to make sure the app will scale well to that number of stops. 

These will both be released as AUV3 / app for iPhone / iPad and maybe even Mac, in order to try to raise as much money as possible for both the Bath Preservation Trust and the St Just in Roseland church. 

And the Bath organ model is DEFINITELY simple enough to run on a Raspberry Pi Zero - it currently runs in the Pi Synth codebase on my Mac at -O0 and barely dents the CPU. So we shall see where that goes. 

Currently the workflow for capturing sounds is wretched. It goes - 

Sit in church, making field recording of entire organ, at octave intervals, for all stops. 

Go home.

Per stop 
  1) sit in Logic identifying 4 'characteristic waves' per stop
    => early attack, mid attack, early sustain, late sustain
  2) run a tool to turn these wave cycles into 4x 1024 location wavetables
  3) synthesize samples from the wavetables
  4) import samples into sample replay engine
  5) audition - if it sucks, goto 1)

1) takes hours, particularly if the branch in 5) is taken. So I'm aiming to replace this with an enhanced version of a 'trendline' system, and do a by-ear match of field recording notes to a trendline fit of harmonics. This should lead to a much faster set of 32 stops for the St. Just organ. An advantage of this is that the memory footprint of the app on disk is approaching zero - the trendlines require just 25 or so 7-bit 'MIDI bytes' to fully describe a note within a stop. So boot time will be insanely quick.

I'll keep this place updated with audio examples as they emerge. Thanks for your patience out there, I haven't exactly been a faithful correspondent.