Sivakatirswami, I think the audio to midi functionality exists in a
few of the pro sequencing packages, but you might take a look at
Melodyne : http://www.celemony.com/
I don't know of anything that can extract a single voice from a
recording of a full band/orchestra/choir. Perhaps it can be done for
a clarinet or oboe (I haven't seen this, myself) since those
instruments produce a relatively simple sound (not so many complex
harmonics) unless blown very hard. A human voice is a very much more
complex sound, and obviously much more variable, which might explain
the difficulty.
Getting the pitches of a solo voice recording can certainly be done,
and googling 'audio to midi' produces a lot of results. I suspect
this is one of those areas like photoshop-type image transformations,
where it could probably be done in transcript, but would likely be so
slow as to be not worth the effort in practice. For a start, you'd
need to read every sample point of the binary audio file, rather than
take every n samples as my waveform display does, and so just reading
the data would take a long time. I suppose you could do it in chunks,
which would probaly be more effeicient, but then you've still got to
analyse the frequency of the peaks and troughs (I imagine this is how
it would be done), and I just can't see this being done in transcript
speedily enough for the amounts of data involved. Maybe someone will
prove me wrong though, as I proved myself wrong about displying the
waveform!
For Indian music, you'd have to be more fine-grained than the western
diatonic scale (semi-tones), as Indian music has it's own system that
uses quarter tones (at least - I'm not very knowledgable about this),
but you could just maintain a small database of different scales -
Indian, Western, Malaysian etc.
Anyway, if you decide to try it, feel free to use any code from my
display control (the file reading part might be a useful starting
point), and let me know if you think I can help.
Best,
Mark
On 15 Jan 2006, at 04:40, Sivakatirswami wrote:
Fascinating... I wonder how far we can take this: "analyze sound"
--> analyze song --> output notes. Here's is a specific application
I would be very interested in:
Take a vocal song and analyze the pitch-melody and output some
musical notation. The idea is to "capture the tune." In this case
we need to display shifts in hertz over time, and not just amplitude.
Of course this may be inventing the wheel, but a search on the web
doesn't turn up much other than MIDI to notation and some very
obscure cmd line tools from the world of European polyphonic music.
Maybe some of our other music wizard will chime in here. I had a
tool for this years ago but they went out of business. I thought
Finale had a plug in for it, but I don't see it and this is the
premier notation program...
Even if thereis something out there... a rev app would be nice:
One would have to set up a range-distance in hertz for pitch
changes that would be equivalent to a half step on the 12 note
octave. 73.333 hertz per step, I think... The pitch wave form
would set a marker every time the pitch changes by that much....
Now you could use known values (440 = A with a toleance of 2 ,
438-442 = the note A).
I always thought the "pollution" of a sound track (singer had
instruments playing behind him or her) would make it nigh well
impossible for artificial intelligence to pull out the voice only
and export to notes. They have stuff for this that you can attach
to a clarinet or an oboe, but thats a single sound, not a music
recording... But if we had a GUI that showed pitches and the user
could chose points through time as "the ones to use" then the
program would use those points (which would have hertz values) and
export to notation.
For the kind of Indian musical vocal I'm talking about, there will
be a very strong melodic line, akin to recording a clarinet sans
much else behind it. Outputting to western standard time values
(quarter notes, half notes, whole notes) could be dispensed with
initially (too big a mountain to climb) I would get the melodic
line output and send it to one on our team in Indian Svaram
notation and let them enter them into the tala. The indian system
is very simple since it makes no attempt to offer an entire musical
staff (chords), but you would just get, ala the old hypercard music
notation (where minus equals flat and plus = sharp): output like
this:
Mohana raga: c d f g a c c a g f d c or Mayamalavagaula; c c+ e f
g g+ b c
(I wrote some stuff in HC for this years ago, brought it into
Supercard and then lost it...but I'm sure there is lots of stuff
around still playing in this pond.)
Point: the output is a simple linear export of hertz values
represented as chars that = musical notes, separated by a space.
I believe there is a convention for this linear form, already well
established, (what you put for next octave or lower octave...
etc.) that can even be read and played back as MIDI by
Hypercard .... but it's been so long...
Sivakatirswami
On Jan 14, 2006, at 4:49 PM, Mark Smith wrote:
Alejandro, there shouldn't be any problem using it in Windows, or
'Nix for that matter, I just don't have anything but OS X
machines to test it on. It's all pure transcript.
I still have a way to go until it's really finished, but hopefully
I'll get it done over the next few days.
Mark
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your
subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution