オーディオ・ファイルを、midi に変換する?
たまたま、そんな記事を見かけたので
読んでみました。

リンク stackoverflow.com - Software to convert audio to MID

というのは、オーディオ・データ(mp3, flac, wav・・・)と、
midi データは、本来、その存在自体が異なるものなんです。

MIDIとオーディオの違いは何でしょうか。 
MIDIとは「演奏の情報」「DTM音源のための楽譜」です。
誰かが演奏した音そのものを録音したものがオーディオファイルです。 
CDに収録されているのもオーディオですし、
MP3は圧縮された「オーディオファイル」の一種です。

要約すれば、
オーディオ・データと、midi データ の違いは
レコードと楽譜の違いということです。

先ほどのリンク「stackoverflow.com - Software to convert audio to MIDI」を
読んでみると、質問に対して、このような意見が寄せられています。

This is going to be a terrible process at best and utterly impossible most of the time. The 
problem is that such software has to identify individual musical notes from the audio stream to 
convert them into MIDI information. This is complicated by the fact that it also has to identify the 
the different types of sounds to assign them to different tracks. It is even more complicated by 
the possibilities of sounds that are not "on-note", leaving it several ways of conveying that in the 
MIDI stream. And then you have the problem of non-musical audio, such as singing, which is 
conventionally not even put into MIDI.

You're best bet is to spend time either making your own MIDI tracks, or finding or buying some 
off the 'net. FWIW, before the popularity of MP3 ringtones, a lot of "polyphonic" ringtones for 
mobile phones were actually MIDI files.

これはせいぜいひどいプロセスであり、ほとんどの場合完全に不可能です。問題は、そのよう
なソフトウェアがオーディオストリームから個々の音符を識別してMIDI情報に変換する必要が
あることです。これは、さまざまな種類のサウンドを識別して、それらをさまざまなトラック
に割り当てる必要があるという事実によって複雑になっています。 「オンノート」ではないサ
ウンドの可能性によってさらに複雑になり、MIDIストリームでそれを伝えるいくつかの方法が
残ります。そして、歌うなどの非音楽的なオーディオの問題があります。これは、従来はMIDI
にさえ入れられていませんでした。

最善の策は、独自のMIDIトラックを作成するか、ネットからいくつかを見つけたり購入したり
することに時間を費やすことです。FWIW、MP3着メロが普及する前は、携帯電話用の「ポリ
フォニック」着メロの多くは実際にはMIDIファイルでした。

その反面、このような意見も寄せられています。

WaoN does conversion of WAV to MIDI: http://waon.sourceforge.net/
At least it is quite fun :-)

WaoNはWAVからMIDIへの変換を行います:http://waon.sourceforge.net/
少なくともそれはとても楽しいです:-)

他の体験者の経験では、

I couldn't get it compiled. Lots of missing libraries 
コンパイルできませんでした。不足しているライブラリがたくさん

これらの意見を見ていると、なんだか気が滅入りそうでしたが、
興味を引いた理由が、ありました。

WaoN の開発者が、日本人ということなんです。
「市來 健吾」さんという方です。

 

リンク WaoN is a Wave-to-Notes transcriber

私は、Linux Distribution
Debain 10 Buster ベースの、軽量版。
Q4OS 3.14 Centaurus でトライしました。

Q4OS は、軽量なデスクトップで動作する
Debain 10 Buster そのものの O/S です。
私は、かなり気に入っています。

依存関係のあるライブラリの準備
それの係わる、C言語 開発用 ヘッダー・ファイル
構築時に使う、メイク・ファイルの、Makefile.gwaon の
gdk_pixbuf と書かれている2か所を、
gdk-pixbuf-2.0 と書き換えることで、
すんなりと、構築できました。

そして、実験を試みました。

 

実験結果は、静止画像を使って動画化し、

Youtube にアップしました。

 

Youtube 動画タイトルは、次の3つです。

 

WaoN Demo 1

WaoN Demo 2

WaoN Demo 3

 

では、その実験の様子をご覧ください。

 



実験のために使用した曲

 

Erik Satie - Petite Overture A Danser



実行例1
ピアノ独奏 wav 形式から、midi に変換

adminq@q4os-desktop:~/src$ waon -i demo1.wav -o demo1.mid
Format: Microsoft WAV format (little endian default).
Subtype: Signed 16 bit data
Endian type: Default file endian-ness.
frames     : 6922274
samplerate : 48000
channels   : 2
sections   : 1
seekable   : 1
WaoN : end of file.
division = 46
WaoN : # of events = 2558
WAON_notes : n = 2558
filename : demo1.mid
adminq@q4os-desktop:~/src$

変換後の midi データに、音色をつけて再生した例

WaoN Demo 1




実行例2
ピアノ独奏 mp3 形式から、midi に変換

adminq@q4os-desktop:~/src$ sox demo2.mp3 -t wav - | waon -i - -n 4096 -s 1024
Format: Microsoft WAV format (little endian default).
Subtype: Signed 16 bit data
Endian type: Default file endian-ness.
frames     : 6923520
samplerate : 48000
channels   : 2
sections   : 1
seekable   : 0
WaoN : end of file.
division = 23
WaoN : # of events = 1416
WAON_notes : n = 1416
filename : output.mid
adminq@q4os-desktop:~/src$

変換後の midi データに、音色をつけて再生した例

WaoN Demo 2




実験例3
アンサンブルの演奏を、midi に変換

変換後の midi データに、音色をつけて再生した例

実験のために使用した曲

Hiroshima - Ren



変換後の midi データに、音色をつけて再生した例

 

WaoN Demo 3

 

 

さて、如何でしょうか?

私は、WaoN は、素晴らしいプログラム ではないかと感じています。

 

P/S この試みに関する私の記録は、ドキュメントとしてまとめるつもりです。

   その時には、ダウンロードできるようにします。

   そして、お知らせします。