[ANN] Audio Waveform display

Mark Smith mark at maseurope.net
Sun Jan 15 08:56:13 EST 2006


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
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list