Help us understand the problem. What is going on with this article?

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にさすだけ) 図2_仕様.png

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

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

https://makecode.microbit.org/
図3.png

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

図4.png
中身は、microPython

BBC micro:bit MicroPython ドキュメント

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

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

音符の記述方法

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

音程

ド: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譜で記述

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

図7.png

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

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です。

図10.png
図10-2.png

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

音楽をコンピューターで扱うためのデータフォーマット
紙や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) に取り込む用途で広く普及
Gyutan
材料評価の装置や解析手法の開発を行っています。数年前まではLabVIEWで計測装置のプログラムを書いていました。最近はPythonばかりです。Microbitは、地元の子供たちにプログラミングを教えるために、使う予定です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした