Sunday, January 25, 2009

StringPort And Synthesis

Greetings,

I became fascinated with synthesis at an early age and followed every advancement from the large Moog and Buchla modulars up to the present. I have been fortunate that I get to work around and uptake caffeine with most of my mentors and heroes - check out:

http://www.rogerlinndesign.com/dps/

Here is a short synth history with comments as it pertains to string players:

1. Subtractive - awesome paradigm we still love to this day. The first synths I drove were subtractive. Separate gate, trigger, pitch, amplitude and filter control inputs. Just like a string, you could change them each individually at any time.

2. FM - marvelous new shiny sounds few people could program but many could appreciate. Unfortunately it was married to MIDI 1.0 (insert usual rants, whines, etc). Some of the later TX series gave you 6 outs so you could post process the audio by controlling amplitude with 6 envelope followers and VCAs (Zeta Mirror 6 AmpTrak).

3. Sampling - Sort of everyone's dream come true. It was realistic, but inflexible. Very twitchy and hard to make subtle changes without audio glitches (try a 12 semitone gliss or a realistic slur).

4. Re-Synthesis - also called additive. My dream come true. All the reality of a Baltimore crime series along with the friendly control of subtractive. (more reasons for the love in next installment)

My goal with the StringPort software is to extract the ever evolving timbral changes of a string, summarize the spectrum with some powerful control parameters and impress this on a willing form of synthesis.

The Analysis software that comes with StringPort constantly runs multiple FFTs over each each string's audio signal. We get very rapid period analysis by applying a sieve transform to the higher harmonics that emerge early from one of the FFTs. (ie: If you see peaks at 900Hz, 800Hz, 700Hz, you can be pretty sure the fundamental is 100Hz).

Shorter window size FFTs handle triggering and event analysis. We can detect if the trigger came from the left neck hand or the right pluck hand. Handy.

I assemble all this into a descriptor frame I have named AIM (for Acoustic Instrument Message). AIM contains continuous pitch, loudness, brightness (as centroid), even/odd harmonic ratio, noise amount, and inharmonicity. Taken as a group and applied to a synthesizer, the resulting sound feels very much under your control. We had our violinist play a synthetic violin sound at NAMM and most violinists could not tell that is was a synthesizer. (my version of the Turing test)

AIM can be transmitted to certain software synths over sysex or CC commands, over OSC or pretty much any transport including ethernet/UDP. It has to be fast, though, as we generate 1000's of AIM messages every second.

Yes it all seems pretty demanding and difficult. However, there is great work going on at secret MIDI gatherings, and support for these types of messages are being included in plans for future standards.

Of course, subsets of the AIM packet can be used with other forms of synthesis. We maintain a two channel control paradigm for each string - one the continuous harmonic sound, the other for noise, pluck or non-harmonic results. These are suggested implementations and other interpretations of the data are certainly allowed.

I chose a spectral descriptor scheme over physical controls like pick distance, velocity, displacement, etc. Physical descriptors are just not adequate nor universally understood. We rely on the physics of how we perceive sounds to control synthesis.

Details of frame rates, latency, interpolation, etc will be handled in later installments.

Thanks,

Keith

Keith McMillen
www.keithmcmillen.com
www.beamfoundation.org
"Music For A New Reason"

Saturday, January 24, 2009

Everything you wanted to know about StringPort...

... and weren't afraid to ask.

Hi,

Thanks for the interest and discussion about the StringPort. If you don't mind, I'd like to start a series of short discussions that explore its design and functionality.

I started building guitar synths in 1979 (just one year after Roland did - GR500) and have been at it ever since. I studied electronic music (and classical guitar) in school, and took it as a personal slight that, as a string player, I would be continuously marginalized from all the flexibility and potential of electronics and computers. A little righteous anger goes a long way.

The topics, in rough order, will be:

True synthesis control and acoustic representation
Synful
Direct string driven synthesis
Polyphonic signal processing
Notation
Modeling
Phase Vocoders
Open Software model
Hardware details
Future plans
oh yeah - midi.

This is going out to midiguitar@yahoogroups.com & vg-8@yahoogroups.com. If you want to re-post anywhere, go for it.

Thanks,

Keith

Keith McMillen
www.keithmcmillen.com
www.beamfoundation.org
Music For A New Reason