説明
音声分析ソフトの Praat では、簡単な音を合成する機能が付いている。また、簡単なスクリプト機能もあるので、これらの機能を組み合わせて簡単な音楽を流すことができる。
後述のスクリプトの1行目においては、文字で音譜を示してある。ここを変えれば別の音楽にすることも可能だ。
スクリプト
以下のスクリプトを実行すると「きらきら星」の音楽が流れる(実際に流れる音声は以下を参照)。
なお、このスクリプトの仕様上、実行し終わったときに、合成された音楽以外の Praat Object はすべて消えるので注意されたい。
musicNotes$ = "ccggaagxffeeddcxggffeedxggffeedxccggaagxffeeddcx" # Create a mute sound do("Create Sound from formula...", "x", 1, 0.0, 0.5, 44100, "0") # Create sounds (c-b) @makeSound: 262, "c" @makeSound: 290, "d" @makeSound: 330, "e" @makeSound: 349, "f" @makeSound: 392, "g" @makeSound: 440, "a" @makeSound: 494, "b" musicLength = length(musicNotes$) # Copy sounds to create the music for i from 1 to musicLength note$ = mid$(musicNotes$, i, 1) selectObject: "Sound " + note$ do("Copy...", "note" + string$(i)) endfor # Concatenate sounds for i from 1 to musicLength if i== 1 selectObject: "Sound note" + string$(i) else plusObject: "Sound note" + string$(i) endif endfor do("Concatenate") do("Rename...", "result") # Play the music do("Play") # Remove work files select all minusObject: "Sound result" do("Remove") # Subroutine procedure makeSound: frequency, soundName$ do("Create Sound as pure tone...", soundName$, 1, 0.0, 0.5, 44100, frequency, 0.2, 0.01, 0.01) endproc