Micro:bit(micropython)で埼玉県久喜市民歌を演奏


micro:bit(マイクロビット)とは

  • 2016年に非営利団体として、ザック・シェルビーによりMicro:bit財団を設立
  • イギリスでは2016年に100万人の児童に対し、Micro:bitを無償配布

micro:bit(マイクロビット)仕様

  • イギリスの公共放送局であるBBCが中心となって開発
  • プログラミング教育を目的とした小型のコンピューター
  • 25個の赤色LED
  • 2個のボタン
  • 三軸加速度センサー
  • 地磁気センサー(コンパス)
  • BLE(BluetoothLow Energy)などを搭載
  • プログラムで容易に制御できる
  • 価格は2000円程度
  • Mac、Windows両方に対応
  • 環境構築不要(USBにさすだけ)

Micro:bitプログラミング(JavaScripやグラフィカル言語)

Web上でプログラミングできます。(環境構築不要)

https://makecode.microbit.org/

プログラミング(Pythonでも動きます)


中身は、microPython

BBC micro:bit MicroPython ドキュメント

Micro:bitで簡単音楽(MicroPythonを利用)

目的:Micro:bitのmusic機能を用いて、自分で打ち込んだ曲を演奏させます。
(今回は、久喜市の市民歌)
JavaScriptブロックエディタではなく、Pythonエディタでプログラミングします。

音符の記述方法

ミュージック表記
コンピューターに譜面を読み込ませることはできないので、コンピューターが読める形式で記述する必要があります。
譜面の記述方法はいくつかありますが、Pythonでは、ABC譜で記述します。
MicroPython Document Music

音程

ド:C レ:D ミ:E ファ:F ソ:G ラ:A シ:B 
フラット:b シャープ:# 休符(無音):R
Ab:フラット C#:Cシャープ
音名:大・小文字を区別なし

音の長さ

4ティックが4分音符の場合
2分音符:8, 4分音符:4, 8分音符:2

例えば:A4:4

音名(NOTE)"A“
オクターブ(octave)4(中間の音域)
長さ(duration)が4 ティック(4分音符)
音の名前にR が指定されている場合は、休符(無音)
4分音符ド、8分音符レの場合:
C4:4、d4:2

 市民歌をABC譜で記述

久喜市の歌「笑顔のまち永遠なれ」

ちなみに、久喜市民歌をアレンジしてダンスにした動画「クッキーダンス」というものがあります。

3058人がダンス!平成28年度久喜市PRビデオ「1000人クッキーダンス」

Pythonプログラミング

Python editor

譜面から打ち込むと実際にはこんな感じになります。

from microbit import *
import music

#笑顔のまち永遠なれ
#作詞・作曲タケカワユキヒデ
#4分音符=120

kukishi=['d4:2','eb4:2','f4:2','f4:2','f4:2','f4:2','f4:2','f4:2','g4:4','a4:4','bb4:8',
        'g4:2','a4:2','bb4:2','bb4:2','a4:2','a4:2','g4:2','f4:10','r:4',
        'r:2','g4:2','g4:2','g4:2','g4:2','g4:2','a4:4','bb4:2','c5:2','a4:2','g4:2','f4:2','g4:6','r:4',
        'g4:2','g4:2','g4:2','g4:2','a4:4','bb4:4','a4:8','r:8',
        'd4:2','eb4:2','f4:2','f4:2','f4:2','f4:2','f4:2','f4:2','g4:4','a4:4','bb4:4',
        'r:2','a4:2','a4:2','bb4:2','c5:2','bb4:2','a4:2','g4:2','f4:2','g4:10','r8',
        'bb4:2','bb4:2','bb4:2','bb4:2','a4:4','bb4:4','c5:4','bb4:4','bb4:4','r:4',
        'g4:2','g4:2','g4:2','bb4:2','a4:2','a4:2','a4:2','bb4:10','r:8',
        'r:4','c5:2','c5:6','c5:2','c5:6','bb4:4','a4:4','bb4:4','a4:4','d4:4','d5:2','c5:2','c5:2','bb4:10','r:8',
        'r:4','g4:4','a4:4','bb4:4','g4:4','a4:4','bb:4','bb:4','bb4:4','a4:4','bb4:4','c5:2','c5:10',
        'r:2','bb4:2','a4:2','bb4:10','r:2','bb4:2','a4:2','bb4:10',
        'r:4','bb4:2','a4:6','bb4:4','c5:4','d5:2','c5:4','bb4:2','bb4:4','r:8',
        'g4:2','a4:2','a4:2','a4:2','bb4:4','c5:4','eb5:4','d5:4','c5:4','d5:4','c5:4','bb4:2','bb4:10',
        'r:4','bb4:4','bb4:2','a4:2','a4:2','bb4:10','r:8','r:16']

while True:
    #Aボタンを押すと始まります。
    if button_a.is_pressed():
        #テンポはbpmの値で変えられます。
        music.set_tempo(ticks=4, bpm=150)
        music.play(kukishi)
    #Bボタンを押すとプログラム終了です。(演奏途中で停止はできません)
    elif button_b.is_pressed():
        break

    else:
        pass

ソースコードは、
https://github.com/SGyutan/microbti_shiminka
に上げています。

 実行方法

実行ファイルの作成

Downloadボタンを押して、hexファイルを作成します。それをUSB接続されたMicrobitのホルダーに入れます。

接続方法

Micro:bitの端子をスピーカーかイヤホンに接続します。

イヤホンの場合:決して耳にイヤホンを着けないでください。危険です。

かなり音が大きいです。

イヤホンのジャック端子では、端子の外側がGND、中心の端子が0です。


(参考)音楽をコンピューターで扱うためのデータフォーマット

音楽をコンピューターで扱うためのデータフォーマット
紙やPDFで人間が可読できるものからコンピューターが可読できるものへの変換

MusicXML

  • XML形式の楽譜表記のためのオープンなファイルフォーマット
  • Recordare(現MakeMusic)によって開発
  • FinaleやSibelius、Rosegarden、Notionなどの楽譜作成ソフトウェアによって作成することが可能

ABC記譜法

  • パソコン等で使われる音楽記述言語の一つ
  • イギリスのChrisWalshawによって考案
  • 単に「ABC」とも、また小文字で「abc」とも言う。
  • 音高を表すアルファベットと、音長を表す数字、その他の若干の記号を組み合わせて表記

MIDI(Musical Instrument Digital Interface の略称)

  • シンセサイザーを搭載する電子楽器の演奏情報のデータ形式、プロトコル、物理的インターフェイスの規格。
  • MIDIデータは小節・拍といった時間概念を持っており、そのスケール上のどのタイミングでどのキーをどの位の強さ、長さで押したかというノート(音符)情報を記録.(MIDIデータとは電子楽器にとっての楽譜)
  • この他、各パートの音色選択やボリュームやパン(左右の定位)の情報、リバーヴやコーラスといったエフェクトの度合いなど、楽器のコントロールに関する様々な情報を取り扱う。(これにより、ひとつの鍵盤で複数の電子楽器(以下MIDI音源と呼ぶ)を同時に演奏したり、パソコンなどからMIDIデータを再生することによって、MIDI音源を演奏することができる。)
  • MIDIデータとは演奏情報であり、音そのものではない。つまり、MIDIデータだけでは音は鳴らず、それを受けて演奏するシンセサイザーがあって初めて音楽として再生できる。

WAV

  • WAVまたはWAVE(ウェーブ、ウェブ)(RIFF waveform Audio Format) は、マイクロソフトとIBMにより開発された音声データ記述のためのフォーマット
  • 主としてWindowsで使われるファイル形式
  • ファイルに格納した場合の拡張子は.wav

MP3

  • MP3(エムピースリー、英:MPEG-1 Audio Layer-3)は、音響データを圧縮する技術の1つ
  • それから作られる音声ファイルフォーマット
  • ファイルの拡張子は.mp3
  • MP3は、音声の周波数帯域では極端な声質の劣化を伴わずに圧縮
  • 音声をデジタル化するために用いられる
  • 後に音楽をCDなどの音源媒体からパーソナルコンピュータ(PC) のハードディスクドライブ(HDD) に取り込む用途で広く普及