From Newsgroup: rec.music.experimental
Hi all,
I've been interested for a while now in Just Intonation tunings and the resultant harmonies, such as the pure fifth frequency ratio of 3:2.
The main problem this has always presented (from what I understand)
is that a series of 12 pure fifths doesn't bring you back to an octave,
leaving a wolf interval somewhere to close the circle.
With most acoustic instruments (certainly pianos and organs) we are
restricted to 12 fixed pitches per octave. I thought, what if we
could adjust those pitches in real-time, relative to what notes were
already played? Difficult to impossible in the acoustic world, but
wouldn't be too hard with a computer synth.
So I've created a (fairly simple) Linux synthesizer program to allow me to
play with such adaptive tuning. This synth translates each MIDI note to
a frequency based on the interval between it and a reference note (either
the last, lowest, or loudest note played/playing). So any time you play
a fifth above the last note (or bass note) it plays a frequency of the
3:2 ratio. (There are a few more details, but that's the basic idea)
If anyone is interested in playing with it, I put it up for
download on my website:
https://www.turnquist.name/software/synth/
The current version is 1.2.0 (MIT license). It's still a bit crufty, as
there is no autoconf or similar, but it should work on most Linux systems.
There's a sample of it's output (a rather imperfect performance of mine)
there as well. It's perhaps anachronistic in that I use the vintage
X Toolkit/Athena Widgets for the interface. Other than that, the only dependency is JACK for MIDI/audio I/O.
I'd be interested in feedback on both the program and the general
idea of adaptive retuning.
Followup to either rec.music.experimental or rec.music.makers.synth,
whichever is more appropriate.
--Andrew
--
Andrew Turnquist, Short Tract, New York, USA
... wandering the streets of Usenet ...
(Remove numbers and .invalid for email address)
"Do what you can with what you have where you are." -T Roosevelt
--- Synchronet 3.21a-Linux NewsLink 1.2