Python で、ドレミファソラシドを鳴らすスクリプトをまとめました。pygame を使っています。
環境: Windows 10、Anaconda + Python 3、pygame をインストール済み。
(pygame をインストールしていなければ、設定してください。手順を末尾の関連リンクにまとめています。)
サンプルスクリプト
import time
import pygame.midi
def tone1( n1, vol1 ):
out.note_on( n1[0]+oct1*12, vol1 )
time.sleep( n1[1] )
out.note_off( n1[0], vol1 )
a1 = [[60, 0.5], [62, 0.5], [64, 0.5], [65, 0.5], [67, 0.5], [69, 0.5], [71, 0.5], [72, 1.5]] # C, D, E, F, G, A, B, C
vol1 = 127
oct1 = 0
chn1 = 0
ins1 = 0
pygame.midi.init()
out = pygame.midi.Output(0)
out.set_instrument(ins1, chn1)
for n1 in a1:
tone1( n1, vol1 )
out.close()
pygame.midi.quit()
使い方
① デスクトップなどにフォルダを作り、midi1.py 等のテキストファイルを作成してください。
② midi1.py に上記のスクリプトをコピー&ペーストして保存してください。つぎに、大きな音が出るといけないので、PC のスピーカーの音量を小さめに調整しておいてください。
③ コマンドプロンプト、又は、Anaconda Prompt を起動し、①のフォルダに移動してください。
④ ”python midi1.py” [enter] 等と入力して、②のスクリプトを実行してください。
説明
・ リスト a1 で、各音階とその長さ(sec)を決めています。
具体的には、音階を C, D, E, F, G, A, B, C としています。また、それぞれの音を鳴らす時間を sec の単位で決めています。再生が正常にできたら、音階や長さを変えてみてください。
・ 値 60 が C に対応しています。値が1つ増減すると、半音、増減する動きとなります。
・ 加えて、オクターブは oct1 で設定しています。実際は、oct1 の値により、12 ずつ増減させています。うまく動いたら、oct1 = 1, -1 等としてみてください。1オクターブ、上下できると思います。
・ 楽器の種類は ins1 で決めています。ins1 = 0 でピアノです。数値を変えてみてください。
まとめ
PC 内部の midi 音源を使って、ドレミファソラシドを鳴らすスクリプトをまとめました。非常にベーシックな内容なのですが、ネット検索をしても見つからなかったので作成して公開しておきます。
これで、PC 内部の音源関連も自由に扱えると思います。なお、この内容を発展させてピアノのアプリケーションにしたものを下記のリンクにまとめています。もしも関心があるようでしたら、参考にしてみてください。
関連リンク
・ キーボードピアノ 【本格49鍵!】
・ Pygame をインストールする手順 【Windows 10 &最短】
・ Anaconda 環境で Pygame をインストールする手順【Python】