Google Colabで楽譜に階名(ドレミ)を追加する方法<初心者が作ってみたシリーズ 第1弾>
はじめに
はじめまして、ChatGPT部の原田です!
プログラミング経験は浅く、わからないことのほうが多いのですが、ChatGPTを使って色々面白いことをやっていこうと思います!
instagram : https://www.instagram.com/fit_shuttle_hh/
1. 作ってみた!の概要
第一弾はGoogle Colabとmusic21ライブラリを使用して、楽譜にドレミを追加する方法を紹介します。
2. 手順
条件としてエラー含むコーディングは、すべてChatGPTにお願いします!
読み込むファイルは、musicxml形式(アウトプットも同様)、MuseScoreも必要ですので、ご準備ください。
2.1 Google Colabを開く
Googleアカウントにログイン後、GoogleColabratoryを開き、新しいノートブックを作成します。
2.2 必要なライブラリのインストール
以下のコードをノートブックのセルに貼り付けて実行します。これにより、music21ライブラリがインストールされます。
!pip install music21 PyPDF2 pdf2image reportlab
2.3 ライブラリのインポートと必要な関数の定義
次のコードをセルに貼り付けて実行します。これにより、楽譜のファイル(MusicXML形式)をアップロードし、ドレミを追加して新しいMusicXMLファイルにエクスポートする関数が定義されます。
from google.colab import files
from music21 import *
def pitch_to_doremi(pitch):
pitch_class = pitch.pitchClass
if pitch.accidental:
if pitch.accidental.name == "sharp":
accidental = "♯"
elif pitch.accidental.name == "flat":
accidental = "♭"
else:
accidental = ""
else:
accidental = ""
doremi_map = ["ド", "レ♭", "レ", "ミ♭", "ミ", "ファ", "ソ♭", "ソ", "ラ♭", "ラ", "シ♭", "シ"]
return doremi_map[pitch_class] + accidental
def add_doremi_to_score(input_musicxml):
# MusicXMLファイルを解析
score = converter.parse(input_musicxml)
# ストリーム内の音符にドレミを追加
for note_obj in score.recurse().notes:
if isinstance(note_obj, note.Note):
note_obj.addLyric(pitch_to_doremi(note_obj.pitch) + " ")
elif isinstance(note_obj, chord.Chord):
for pitch in note_obj.pitches:
note_obj.addLyric(pitch_to_doremi(pitch) + " ")
# ストリームを新しい.musicxmlファイルにエクスポート
output_musicxml = "output_doremi.musicxml"
score.write("musicxml", output_musicxml)
return output_musicxml
2.4 アップロードのためのプロンプトの作成
次に、以下のコードをに貼り付けて実行します。これにより、MusicXMLファイルをアップロードするプロンプトが表示されます。
uploaded = files.upload()
input_musicxml = list(uploaded.keys())[0]
2.5 アウトプットファイルの出力
アップロードが完了したら、以下のコードを新しいセルに貼り付けて実行します。これにより、楽譜にドレミが追加された新しいMusicXMLファイルが作成され、ダウンロードされます。
output_musicxml = add_doremi_to_score(input_musicxml)
files.download(output_musicxml)
これで、楽譜にドレミが追加されたMusicXMLファイルがダウンロードされます。このファイルを適切な楽譜編集ソフトウェア(MuseScoreなど)で開くことができます。
3. 実行結果
作業前後の比較を行っていきます!
3.1 作業前
3.2 作業後
見やすさはともかく…ちゃんとできてますね!Bravo!
まとめ
今回は、Google Colabとmusic21ライブラリを使用して、楽譜にドレミを追加する方法を紹介しました。この方法を使えば、簡単に楽譜を見ながら楽器を演奏する際に、音名を確認することができます。music21は非常に柔軟で強力なライブラリであり、さまざまな音楽的なタスクに応用することができます。ぜひ、試してみてください。以上です!
この記事が気に入ったらサポートをしてみませんか?