[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: audio input?
From: |
Mark Polesky |
Subject: |
Re: audio input? |
Date: |
Sat, 6 Dec 2008 20:27:04 -0800 (PST) |
Chip,
I totally forgot...
If you want to get from audio input to lilypond output,
you should talk to Jaime Oliver (not Jamie - the naked
chef - Jaime is pronounced as in Spanish). Anyway, last
I heard, Jaime was working on a MIDI to LilyPond
converter using Pd. Here's a relevant post from him:
http://lists.gnu.org/archive/html/lilypond-user/2008-04/msg00600.html
If you don't yet know about PureData (Pd for short),
you must look into it. It's a real-time audio-processing
environment AND a graphical programming language. It's
flexible and robust, it can analyze incoming audio (I've
seen it happen), and it's totally free. Learning how to
work the darn thing nearly gave me a brain aneurysm, but
it was worth it.
It's designed and maintained by Miller Puckette, the
genius who created Max/MSP and in so doing, probably
altered the course of music history.
It should be relatively straightforward to get Pd to
convert incoming audio into MIDI pitches (if the signal
is clean enough - and without too many overtones). The
difficulty would be analyzing durations -- Pd measures
in milliseconds (and microseconds, I believe), but
interpreting these into quarter-notes and eighth-notes
is a slippery slope.
But if Jaime creates a MIDI to Lily converter, you
could probably use Pd to get from audio input to MIDI,
and then piggy-back his project on to yours. Honestly,
I would be surprised if there isn't already an audio
to MIDI patch out there. But learning Pd is good for
you. Somehow.
Hope this helps.
- Mark
______________________________________________________
postscript:
I haven't worked with Pd for over a year, so I'm really
rusty. But if you can stomach it, check out the "fiddle"
object that comes with Pd. Here's the documentation that
comes with the installation...
The Fiddle object estimates the pitch and amplitude of
an incoming sound, both continuously and as a stream of
discrete "note" events. Fiddle optionally outputs a list
of detected sinusoidal peaks used to make the pitch
determination. Fiddle is described theoretically in the
1998 ICMC proceedings, available here:
http://www-crca.ucsd.edu/~tapel/icmc98.pdf.
Fiddle's creation arguments specify an analysis window
size, the maximum polyphony (i.e., the number of
simultaneous "pitches" to try to find), the number of
peaks in the spectrum to consider, and the number of
peaks, if any, to output "raw." The outlets give discrete
pitch (a number), detected attacks in the amplitude
envelope (a bang), one or more voices of continuous pitch
and amplitude, overall amplitude, and optionally a s
equence of messages with the peaks.
The analysis hop size is half the window size so in the
example shown here, one analysis is done every 512 samples
(11.6 msec at 44K1), and the analysis uses the most recent
1024 samples (23.2 msec at 44K1). The minimum frequency
that Fiddle will report is 2-1/2 cycles per analysis
windows, or about 108 Hz. (just below MIDI 45.)