1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows Terminal 1.15から、ピアノ音(MIDI)をANSIエスケープシーケンスで出せのでPowerShellで試す。

Last updated at Posted at 2024-08-15

はじめに

 WindowsTerminal 1.15から、エスケープシーケンスの電子音を鳴らせる「DECPS」が使える様になった。鳴らせる音数は2オクターブ(ドレミ✕2倍)の25音となる。
 DECPSはエスケープシーケンス上で『Esc [ 音量 ; 長さ ; 音程 , ~』を並べる事で、MIDIベースのドレミ音階の電子音を再生できるテクニックとなる。

サンプル:ドレミ

以下をWindows TerminalのPowershellで入力すると、電子音が鳴る。うれしい。なんかすごかった

ド(C5の523.25Hz) → ド(C6の1046.5Hz)

 ピアノ🎹で言うと白鍵盤のみ8音「ド・レ・ミ・ファ・ソ・ラ・シ・ド」

echo  "① `e[3;8;1,~③ `e[3;8;3,~⑤ `e[3;8;5,~⑥ `e[3;8;6,~⑧ `e[3;8;8,~⑩ `e[3;8;10,~⑫ `e[3;8;12,~⑬ `e[3;8;13,~"

ピアノ🎹で言うと白鍵盤+黒鍵盤の13音

echo  "① `e[3;8;1,~② `e[3;8;2,~③ `e[3;8;3,~④ `e[3;8;4,~⑤ `e[3;8;5,~⑥ `e[3;8;6,~⑦ `e[3;8;7,~⑧ `e[3;8;8,~⑨ `e[3;8;9,~⑩ `e[3;8;10,~⑪ `e[3;8;11,~⑫ `e[3;8;12,~⑬ `e[3;8;13,~"

ド(C6の1046.5Hz) → ド(C7の2093Hz)

ピアノ🎹で言うと白鍵盤+黒鍵盤の13音

echo  "⑬ `e[3;8;13,~⑭ `e[3;8;14,~⑮ `e[3;8;15,~⑯ `e[3;8;16,~⑰ `e[3;8;17,~⑱ `e[3;8;18,~⑲ `e[3;8;19,~⑳ `e[3;8;20,~㉑`e[3;8;21,~㉒`e[3;8;22,~㉓`e[3;8;23,~㉔`e[3;8;24,~㉕`e[3;8;25,~"

サンプル:曲

Jingle Bells(ジングル ベル)

echo  "`e[3;8;12;12,~`e[3;16;12,~`e[3;8;12;12,~`e[3;16;12,~`e[3;8;12;15,~`e[3;12;8,~`e[3;4;10,~`e[3;24;12,~`e[3;8;0;13;13,~`e[3;12;13,~`e[3;4;13,~`e[3;8;13;12;12,~`e[3;4;12;12,~`e[3;8;15;15;13;10,~`e[3;24;8,~`e[3;8;0,~"

Happy Birthday(ハッピー バースデー)

echo "`e[3;10;8,~`e[3;5;8,~`e[3;15;10;8;13,~`e[3;30;12,~`e[3;10;8,~`e[3;5;8,~`e[3;15;10;8;15,~`e[3;30;13,~`e[3;10;8,~`e[3;5;8,~`e[3;15;20;17;13;12,~`e[3;30;10,~`e[3;10;18,~`e[3;5;18,~`e[3;15;17;13;15,~`e[3;30;13,~"

DAYBREAK FRONTLINE / Orangestar feat.IA (Aメロのみ)

echo "ね `e[3;8;1,~む `e[3;8;1,~れ `e[3;4;3,~ないん `e[3;8;3,~だ `e[3;8;1,~か `e[3;4;1,~ぜ `e[3;8;1,~も `e[3;8;3,~もなく `e[3;16;5,~ゆ `e[3;8;3,~だ `e[3;4;3,~り `e[3;8;3,~そう `e[3;12;1,~な `e[3;4;3,~よ `e[3;4;1,~るに `e[3;8;1,~`e[0;2;1,~`e[0;2;1,~き `e[3;8;1,~み `e[3;8;1,~の `e[3;4;8,~こえ `e[3;8;8,~が `e[3;8;1,~み `e[3;4;1,~み `e[3;8;1,~も `e[3;8;10,~と `e[3;16;8,~で `e[3;8;5,~ゆ `e[3;4;6,~ら `e[3;8;5,~だ `e[3;12;3,~かん `e[3;8;1,~しょう `e[3;8;3,~`e[0;2;1,~`e[0;2;1,~にひ `e[3;8;1,~たっ `e[3;8;1,~て `e[3;4;3,~ばっ `e[3;8;3,~か `e[3;8;1,~な `e[3;4;1,~に `e[3;8;1,~もか `e[3;8;3,~わら `e[3;16;5,~ない `e[3;8;3,~わ `e[3;4;1,~らえ `e[3;8;3,~ない `e[3;8;5,~ `e[3;4;5,~ひ `e[3;4;3,~び `e[3;4;1,~を `e[3;8;1,~`e[0;2;1,~`e[0;2;1,~ぬ `e[3;8;1,~け `e[3;8;1,~だ `e[3;4;8,~そう `e[3;8;8,~ぜ `e[3;8;1,~き `e[3;4;1,~み `e[3;8;1,~をつ `e[3;8;10,~れ `e[3;16;8,~と `e[3;8;5,~び `e[3;4;6,~だし `e[3;8;5,~た `e[3;12;3,~か `e[3;8;1,~ぜ `e[3;8;3,~が `e[3;16;8,~と `e[3;8;5,~お `e[3;4;5,~り `e[3;4;5,~す `e[3;4;3,~ぎ `e[3;4;1,~た `e[3;12;1,~や `e[3;8;1,~み `e[3;8;10,~と `e[3;12;8,~ま `e[3;4;5,~ざ `e[3;8;5,~り `e[3;4;6,~あっ `e[3;8;5,~た `e[3;12;3,~き `e[3;8;1,~み `e[3;8;3,~の `e[3;12;8,~わ `e[3;4;5,~ら `e[3;8;5,~い `e[3;4;5,~ご `e[3;4;5,~ `e[3;4;3,~えが `e[3;12;1,~★️ち`e[0;2;1,~`e[0;2;1,~★️音程外い `e[3;8;1,~さく `e[3;12;1,~あ★️`e[0;2;1,~★️音程外い `e[3;8;1,~の `e[3;4;3,~そ `e[3;8;5,~ら `e[3;4;3,~に `e[3;4;3,~ひ `e[3;4;3,~び `e[3;4;3,~い `e[3;8;1,~て `e[3;8;1,~`e[0;2;1,~`e[0;2;1,~そん `e[3;8;3,~な `e[3;8;3,~んで `e[3;4;1,~いき `e[3;8;3,~てい `e[3;8;1,~け `e[3;8;3,~ん `e[3;4;1,~のか `e[3;8;1,~もう `e[3;12;8,~も `e[3;4;5,~ど `e[3;8;8,~れ `e[3;4;10,~ない `e[3;8;8,~ぜ `e[3;8;3,~な `e[3;4;3,~ん `e[3;4;3,~てゆ `e[3;4;1,~らぎ `e[3;8;1,~そう `e[3;8;10,~なお `e[3;4;8,~もい `e[3;8;8,~は `e[3;4;5,~あく `e[3;8;3,~せ `e[3;4;1,~る `e[3;4;1,~へ `e[3;8;1,~こ `e[3;4;8,~の `e[3;4;8,~ま `e[3;4;8,~ま `e[3;4;10,~ち `e[3;8;10,~へい `e[3;8;13,~せんを `e[3;8;13,~おい `e[3;4;15,~こ `e[3;8;17,~してや `e[3;8;15,~るん `e[3;8;15,~だ `e[3;4;13,~さ `e[3;4;13,~い `e[3;4;13,~ぜん `e[3;8;22,~せん `e[3;8;20,~とば `e[3;8;20,~せ `e[3;4;22,~ぼく `e[3;8;17,~たち `e[3;8;15,~わ `e[3;8;13,~ほ `e[3;4;10,~し `e[3;4;10,~も `e[3;4;10,~ない `e[3;4;13,~よる `e[3;8;10,~ただ `e[3;8;13,~ひ `e[3;4;15,~がし `e[3;8;17,~をめ `e[3;8;15,~ざし `e[3;8;15,~て `e[3;4;13,~い `e[3;4;13,~く `e[3;4;15,~う `e[3;16;13,~う `e[3;8;20,~う `e[3;8;17,~う `e[3;8;15,~う `e[3;16;13,~じゅう `e[3;8;10,~さん `e[3;8;13,~びょう `e[3;8;10,~さき `e[3;8;13,~も `e[3;4;15,~わ `e[3;8;17,~かん `e[3;8;15,~なってっ `e[3;8;15,~て `e[3;4;13,~せ `e[3;4;13,~い `e[3;4;13,~いっ `e[3;8;22,~ぱい `e[3;8;20,~ぼく `e[3;8;20,~を `e[3;4;22,~いき `e[3;8;17,~てい `e[3;4;15,~く `e[3;4;13,~う `e[3;8;13,~な `e[3;4;10,~に `e[3;4;10,~も `e[3;4;10,~こう `e[3;8;13,~かい `e[3;8;10,~なん `e[3;8;13,~て `e[3;4;15,~ない `e[3;8;17,~さ `e[3;8;15,~まえ `e[3;8;15,~を `e[3;4;13,~む `e[3;4;13,~け `e[3;4;15,~え `e[3;16;13,~え `e[3;8;20,~え `e[3;8;17,~え `e[3;8;15,~え `e[3;8;13,~ `e[3;4;13,~と `e[3;4;10,~ま `e[3;4;10,~ら `e[3;4;10,~ない `e[3;8;13,~さ `e[3;4;10,~きっ `e[3;8;13,~とひ `e[3;8;15,~かり `e[3;8;17,~の `e[3;8;15,~まつ `e[3;8;15,~ほ `e[3;4;13,~う `e[3;4;13,~え `e[3;4;15,~え `e[3;20;13,~"

↓データはこちらを参考にして作成。

スマップのオレンジ

echo "`e[0;2;1,~`e[0;2;1,~⑧️`e[3;8;8,~⑧️`e[3;4;8,~⑧️`e[3;12;8,~⑥️`e[3;8;6,~⑤️`e[3;8;5,~⑧️`e[3;8;8,~⑨️`e[3;8;9,~⑤️`e[3;16;5,~③️`e[3;16;3,~③️`e[3;8;3,~⑤️`e[3;8;5,~①️`e[3;32;1,~①️`e[3;8;1,~③️`e[3;4;3,~③️`e[3;4;3,~⑤️`e[3;8;5,~③️`e[3;8;3,~①️`e[3;8;1,~⑧️`e[3;8;8,~③️`e[3;8;3,~⑤️`e[3;32;5,~`e[0;2;1,~`e[0;2;1,~⑤️`e[3;8;5,~⑧️`e[3;16;8,~⑩️`e[3;8;10,~⑩️`e[3;8;10,~⑬️️`e[3;16;13,~⑫️`e[3;8;12,~⑧️`e[3;8;8,~③️`e[3;8;3,~⑤️`e[3;16;5,~③️`e[3;8;3,~⑤️`e[3;8;5,~①️`e[3;16;1,~③️`e[3;8;3,~⑤️`e[3;8;5,~⑥️`e[3;16;6,~`e[0;2;1,~`e[0;2;1,~①️`e[3;8;1,~①️`e[3;8;1,~⑤️`e[3;16;5,~⑤️`e[3;8;5,~③️`e[3;32;3,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~二十秒`e[0;2;1,~`e[0;2;1,~⑧️`e[3;8;8,~⑧️`e[3;4;8,~⑧️`e[3;12;8,~⑥️`e[3;8;6,~⑤️`e[3;8;5,~⑧️`e[3;8;8,~⑨️`e[3;8;9,~⑤️`e[3;16;5,~③️`e[3;16;3,~③️`e[3;8;3,~⑤️`e[3;8;5,~①️`e[3;32;1,~①️`e[3;8;1,~③️`e[3;4;3,~③️`e[3;4;3,~⑤️`e[3;8;5,~③️`e[3;8;3,~①️`e[3;8;1,~⑧️`e[3;8;8,~③️`e[3;8;3,~⑤️`e[3;32;5,~`e[0;2;1,~`e[0;2;1,~⑤️`e[3;8;5,~⑧️`e[3;16;8,~⑩️`e[3;8;10,~⑩️`e[3;8;10,~⑬️️`e[3;16;13,~⑫️`e[3;8;12,~⑧️`e[3;8;8,~③️`e[3;8;3,~⑤️`e[3;16;5,~③️`e[3;8;3,~⑤️`e[3;8;5,~①️`e[3;16;1,~`e[0;2;1,~`e[0;2;1,~三十三秒③️`e[3;8;3,~⑤️`e[3;8;5,~⑧️`e[3;24;8,~①️`e[3;8;1,~①️`e[3;12;1,~★️①️`e[3;12;1,~①️`e[3;8;1,~★️音程外①️`e[3;32;1,~`e[0;2;1,~`e[0;2;1,~三十八秒⑧️`e[3;16;8,~⑫️`e[3;8;12,~⑫️`e[3;8;12,~⑫️`e[3;8;12,~⑬️️`e[3;8;13,~⑧️`e[3;16;8,~⑥️`e[3;8;6,~⑤️`e[3;8;5,~⑧️`e[3;24;8,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~四十二秒⑧️`e[3;8;8,~⑧️`e[3;8;8,~⑫️`e[3;8;12,~⑫️`e[3;8;12,~⑬️️`e[3;16;13,~⑧️`e[3;16;8,~⑥️`e[3;8;6,~⑤️`e[3;8;5,~③️`e[3;16;3,~①️`e[3;8;1,~⑤️`e[3;24;5,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~四十八秒⑤️`e[3;8;5,~⑧️`e[3;16;8,~⑩️`e[3;8;10,~⑩️`e[3;8;10,~`e[0;2;1,~`e[0;2;1,~⑤️`e[3;8;5,~⑤️`e[3;8;5,~⑧️`e[3;16;8,~⑩️`e[3;8;10,~⑧️`e[3;8;8,~⑬️️`e[3;16;13,~⑬️️`e[3;8;13,~⑮️`e[3;8;15,~⑮️`e[3;8;15,~⑬️️`e[3;20;13,~⑬️️`e[3;8;13,~⑬️️`e[3;4;13,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~五十五秒⑧️`e[3;8;8,~⑩️`e[3;8;10,~⑧️`e[3;24;8,~⑨️`e[3;16;9,~⑫️`e[3;8;12,~⑫️`e[3;8;12,~⑬️️`e[3;20;13,~⑬️️`e[3;4;13,~⑳️`e[3;4;20,~⑳️`e[3;12;20,~⑬️️`e[3;4;13,~⑬️️`e[3;8;13,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑮️`e[3;8;15,~⑰️`e[3;4;17,~⑮️`e[3;8;15,~⑮️`e[3;4;15,~⑬️️`e[3;4;13,~⑰️`e[3;24;17,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~一分二秒⑬️️`e[3;20;13,~⑬️️`e[3;4;13,~⑳️`e[3;4;20,~⑳️`e[3;12;20,~⑬️️`e[3;4;13,~⑬️️`e[3;8;13,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑮️`e[3;8;15,~⑰️`e[3;4;17,~⑮️`e[3;8;15,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑫️`e[3;4;12,~⑬️️`e[3;8;13,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~一分六秒⑩️`e[3;8;10,~⑬️️`e[3;20;13,~⑬️️`e[3;4;13,~⑳️`e[3;8;20,~⑳️`e[3;8;20,~⑬️️`e[3;4;13,~⑬️️`e[3;8;13,~⑬️️`e[3;4;13,~⑬️️`e[3;8;13,~⑮️`e[3;8;15,~⑰️`e[3;4;17,~⑮️`e[3;8;15,~⑮️`e[3;4;15,~⑬️️`e[3;4;13,~⑰️`e[3;24;17,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~`e[0;2;1,~一分十一秒⑬️️`e[3;20;13,~⑬️️`e[3;4;13,~⑳️`e[3;4;20,~⑳️`e[3;12;20,~⑬️️`e[3;4;13,~⑬️️`e[3;8;13,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑮️`e[3;8;15,~⑰️`e[3;4;17,~⑮️`e[3;8;15,~⑬️️`e[3;4;13,~⑬️️`e[3;4;13,~⑫️`e[3;4;12,~⑬️️`e[3;16;13,~一分十六秒"

データは以下を参考にして作成

補足説明

その1「エスケープシーケンス」

 Powershellに於けるのエスケープシーケンス『=Esc』の入力方法は以下となる。

"`e"

エスケープシーケンス後ろに『[』『音量の数値』『;』『音の長さの数値』『;』『音程の数値』『,~』と続く。

 echo  "ド `e[3;8;1,~"

『,~』の後ろには、新しい文字を入れても良いし、新たな音を追加しても良い。

echo  "ド`e[3;8;1,~レ`e[3;8;3,~ミ`e[3;8;5,~"

『,~』を最後につけるが、『,~』の前に続けて『;音程の数値』という感じで音を追加できる。

echo  "ドレミファソラシド `e[3;8;1;3;5;6;8;10;12;13,~"

その2「音程の数値とMIDIの関係」

 「音程」はMIDIベースとなる。MIDIは「Musical Instruments Digital Interface」の略となる。MIDIの音程は128音(=No.0~No.127)ある。なぜ「128」の数かというと、2の7乗(=2⁷)であり、デジタル縛りの為になる。
 デジタルならば、なぜ2の8乗(=2⁸)=256音じゃないのか?という疑問が出てくるが、制定当時の1981年のデジタル技術の制約もあっただろうが、そもそも音程に256音は不要な為だろう。一般的なピアノの鍵盤数は88鍵であり、27.5Hz(A0のラ→MIDI番号21)から4186Hz(C8のド→MIDI番号108)を範囲としているが、MIDIの128音の範囲内である。
 ちなみに、小学校で使う鍵盤ハーモニカ※は一般的に32鍵。保育園や幼稚園の鍵盤ハーモニカは25鍵が多めとなる。

 ※"ピアニカ"はヤマハの鍵盤ハーモニカの商標。
 
 個人的見解だが、2の8乗(=2⁸)=256まで使えるならば、左側128音、右側128音のステレオでも良いと思うが、左右同時に音を扱うことが出来なったのだろうか。
 尚、WindowsTerminalで鳴らせる範囲は25音であり、ちょっと少ない。

 ↓MIDIの詳細は以下ご参照。

その3「音階とMIDIと周波数」

 WindowsTerminalでならせるMIDI範囲は、MIDI番号72~MIDI番号96までとなる。

  • MIDI番号72=エスケープシーケンスの音階番号1
  • MIDI番号96=エスケープシーケンスの音階番号25
ABC
音階
周波数
(Hz)
ドレミ
音階
MIDI
番号
Ansi
エスケープ
音階番号
C0 16.35 12
C#0/Db0 17.32 13
D0 18.35 14
D#0/Eb0 19.45 15
E0 20.6 16
F0 21.83 ファ 17
F#0/Gb0 23.12 18
G0 24.5 19
G#0/Ab0 25.96 20
A0 27.5 21
A#0/Bb0 29.14 22
B0 30.87 23
C1 32.7 24
C#1/Db1 34.65 25
D1 36.71 26
D#1/Eb1 38.89 27
E1 41.2 28
F1 43.65 ファ 29
F#1/Gb1 46.25 30
G1 49 31
G#1/Ab1 51.91 32
A1 55 33
A#1/Bb1 58.27 34
B1 61.74 35
C2 65.41 36
C#2/Db2 69.3 37
D2 73.42 38
D#2/Eb2 77.78 39
E2 82.41 40
F2 87.31 ファ 41
F#2/Gb2 92.5 42
G2 98 43
G#2/Ab2 103.83 44
A2 110 45
A#2/Bb2 116.54 46
B2 123.47 47
C3 130.81 48
C#3/Db3 138.59 49
D3 146.83 50
D#3/Eb3 155.56 51
E3 164.81 52
F3 174.61 ファ 53
F#3/Gb3 185 54
G3 196 55
G#3/Ab3 207.65 56
A3 220 57
A#3/Bb3 233.08 58
B3 246.94 59
C4 261.63 60
C#4/Db4 277.18 61
D4 293.66 62
D#4/Eb4 311.13 63
E4 329.63 64
F4 349.23 ファ 65
F#4/Gb4 369.99 66
G4 392 67
G#4/Ab4 415.3 68
A4 440 69
A#4/Bb4 466.16 70
B4 493.88 71
C5 523.25 72 1
C#5/Db5 554.37 73 2
D5 587.33 74 3
D#5/Eb5 622.25 75 4
E5 659.25 76 5
F5 698.46 ファ 77 6
F#5/Gb5 739.99 78 7
G5 783.99 79 8
G#5/Ab5 830.61 80 9
A5 880 81 10
A#5/Bb5 932.33 82 11
B5 987.77 83 12
C6 1046.5 84 13
C#6/Db6 1108.73 85 14
D6 1174.66 86 15
D#6/Eb6 1244.51 87 16
E6 1318.51 88 17
F6 1396.91 ファ 89 18
F#6/Gb6 1479.98 90 19
G6 1567.98 91 20
G#6/Ab6 1661.22 92 21
A6 1760 93 22
A#6/Bb6 1864.66 94 23
B6 1975.53 95 24
C7 2093 96 25
C#7/Db7 2217.46 97
D7 2349.32 98
D#7/Eb7 2489.02 99
E7 2637.02 100
F7 2793.83 ファ 101
F#7/Gb7 2959.96 102
G7 3135.96 103
G#7/Ab7 3322.44 104
A7 3520 105
A#7/Bb7 3729.31 106
B7 3951.07 107
C8 4186.01 108
C#8/Db8 4434.9 109
D8 4698.6 110
D#8/Eb8 4978.0 111
E8 5274.0 112
F8 5587.7 ファ 113
F#8/Gb8 5919.9 114
G8 6271.9 115
G#8/Ab8 6644.9 116
A8 7040.0 117
A#8/Bb8 7458.6 118
B8 7902.1 119
C9 8372.0 120
C#9/Db9 8869.8 121
D9 9397.3 122
D#9/Eb9 9956.1 123
E9 10548.1 124
F9 11175.3 ファ 125
F#9/Gb9 11839.8 126
G9 12543.9 127

DECPSの詳細リンク

↓こちらのDECPSシーケンスの表がわかり易いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?