[過去ログ] Pythonのお勉強 Part67 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
426: 408 (ワッチョイ 4590-4TU2) [] 2022/07/22(金) 10:03:16.79 ID:PdYjn4LX0(1/3) AAS
>>413413(3): デフォルトの名無しさん (ワッチョイ 9501-eadZ) [sage] 2022/07/21(木) 18:06:14.66 ID:+gLdidlo0(1/2) AAS
>>408
取り敢えず、音符が音になる、
というシンプルなのを書いてみました。音しか鳴りません。
これを広げるイメージで合ってますか?
#Beep音のライブラリをインポート
from winsound import Beep
#「Beep (Hz, 長さ)」を呼び出して、音が鳴るように
#ドレミファソラシの各音階を辞書に格納。ドは523Hz、など。
table = {'ド': 523, 'レ': 587, 'ミ': 659, 'フ': 698, 'ァ': 784, 'ソ': 880, 'ラ': 988}
#チャルメラの音符を格納
charamela = "ドレミレド" *2
#チャルメラを一文字づつ
for note in charamela:
#Beep演奏する
Beep (table[note], 400)
midiデータは(楽譜も)
縦の音階・横の時間軸の2種類の要素を格納したデータみたいなものですね
(本当はベロシティとか色々あるけど自分の用途の場合は省略)
ドレミに置き換えるというよりは88鍵のうちの何番目、という感じです
調号で場所がずれてくので、そこも考慮しないといけないですが
時間軸はデータ側で実際の秒数を決めるのではなく、いくつかの定数(音符の長さ、拍子)を設定して、BPMを掛け算する形なのかな
音符や休符の形を読み取ってなんの種類か(どれだけの拍子か)を探すわけですけど、音符の旗がくっついてるものがあるんですよね
あと音符に小さな点をがついてるものは1.5倍の長さになったり
ここらへんをうまく読み取れないといけないので難しそうです
一つでも間違えるとその後すべてがズレて酷いことになります
431: 408 (ワッチョイ 4590-fLWz) [sage] 2022/07/22(金) 11:29:22.66 ID:PdYjn4LX0(2/3) AAS
>>430これじゃないけど持ってますよ
タイやスラーの違いを画像で検出するのは面倒そうなので諦めてますね
タイの場合、結局読み取る音符の長さは同じなので後で修正できる範囲です
(音が鳴り続けているか、一瞬音が途切れるかの違いです)
反復記号も後でコピペなりすればいいので
midiツール上での編集はそこまで苦じゃないんですよ
435: 408 (ワッチョイ 4590-fLWz) [sage] 2022/07/22(金) 13:34:34.50 ID:PdYjn4LX0(3/3) AAS
>>434タイやスラーの違い、というよりは「タイやスラーそのものを検出するのが面倒そう」と言うほうが正確かもしれません
五線上に紛れてたりするので
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s