クラス Music

警告

初期化

# Import Music class
from robot_hat import Music

# Create a new Music object
music = Music()

トーンを演奏する

# You can directly play a frequency for specific duration in seconds
music.play_tone_for(400, 1)

# Or use note to get the frequency
music.play_tone_for(music.note("Middle C"), 0.5)
# and set tempo and use beat to get the duration in seconds
# Which make's it easy to code a song according to a sheet!
music.tempo(120)
music.play_tone_for(music.note("Middle C"), music.beat(1))

# Here's an example playing Greensleeves
set_volume(80)
music.tempo(60, 1/4)

print("Measure 1")
music.play_tone_for(music.note("G4"), music.beat(1/8))
print("Measure 2")
music.play_tone_for(music.note("A#4"), music.beat(1/4))
music.play_tone_for(music.note("C5"), music.beat(1/8))
music.play_tone_for(music.note("D5"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("D#5"), music.beat(1/16))
music.play_tone_for(music.note("D5"), music.beat(1/8))
print("Measure 3")
music.play_tone_for(music.note("C5"), music.beat(1/4))
music.play_tone_for(music.note("A4"), music.beat(1/8))
music.play_tone_for(music.note("F4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("G4"), music.beat(1/16))
music.play_tone_for(music.note("A4"), music.beat(1/8))
print("Measure 4")
music.play_tone_for(music.note("A#4"), music.beat(1/4))
music.play_tone_for(music.note("G4"), music.beat(1/8))
music.play_tone_for(music.note("G4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("F#4"), music.beat(1/16))
music.play_tone_for(music.note("G4"), music.beat(1/8))
print("Measure 5")
music.play_tone_for(music.note("A4"), music.beat(1/4))
music.play_tone_for(music.note("F#4"), music.beat(1/8))
music.play_tone_for(music.note("D4"), music.beat(1/4))
music.play_tone_for(music.note("G4"), music.beat(1/8))
print("Measure 6")
music.play_tone_for(music.note("A#4"), music.beat(1/4))
music.play_tone_for(music.note("C5"), music.beat(1/8))
music.play_tone_for(music.note("D5"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("D#5"), music.beat(1/16))
music.play_tone_for(music.note("D5"), music.beat(1/8))
print("Measure 7")
music.play_tone_for(music.note("C5"), music.beat(1/4))
music.play_tone_for(music.note("A4"), music.beat(1/8))
music.play_tone_for(music.note("F4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("G4"), music.beat(1/16))
music.play_tone_for(music.note("A4"), music.beat(1/8))
print("Measure 8")
music.play_tone_for(music.note("A#4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("A4"), music.beat(1/16))
music.play_tone_for(music.note("G4"), music.beat(1/8))
music.play_tone_for(music.note("F#4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("E4"), music.beat(1/16))
music.play_tone_for(music.note("F#4"), music.beat(1/8))
print("Measure 9")
music.play_tone_for(music.note("G4"), music.beat(1/4 + 1/8))
music.play_tone_for(music.note("G4"), music.beat(1/4 + 1/8))
print("Measure 10")
music.play_tone_for(music.note("F5"), music.beat(1/4 + 1/8))
music.play_tone_for(music.note("F5"), music.beat(1/8))
music.play_tone_for(music.note("E5"), music.beat(1/16))
music.play_tone_for(music.note("D5"), music.beat(1/8))
print("Measure 11")
music.play_tone_for(music.note("C5"), music.beat(1/4))
music.play_tone_for(music.note("A4"), music.beat(1/8))
music.play_tone_for(music.note("F4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("G4"), music.beat(1/16))
music.play_tone_for(music.note("A4"), music.beat(1/8))
print("Measure 12")
music.play_tone_for(music.note("A#4"), music.beat(1/4))
music.play_tone_for(music.note("G4"), music.beat(1/8))
music.play_tone_for(music.note("G4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("F#4"), music.beat(1/16))
music.play_tone_for(music.note("G4"), music.beat(1/8))
print("Measure 13")
music.play_tone_for(music.note("A4"), music.beat(1/4))
music.play_tone_for(music.note("F#4"), music.beat(1/8))
music.play_tone_for(music.note("D4"), music.beat(1/4 + 1/8))
print("Measure 14")
music.play_tone_for(music.note("F5"), music.beat(1/4 + 1/8))
music.play_tone_for(music.note("F5"), music.beat(1/8))
music.play_tone_for(music.note("E5"), music.beat(1/16))
music.play_tone_for(music.note("D5"), music.beat(1/8))
print("Measure 15")
music.play_tone_for(music.note("C5"), music.beat(1/4))
music.play_tone_for(music.note("A4"), music.beat(1/8))
music.play_tone_for(music.note("F4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("G4"), music.beat(1/16))
music.play_tone_for(music.note("A4"), music.beat(1/8))
print("Measure 16")
music.play_tone_for(music.note("A#4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("A4"), music.beat(1/16))
music.play_tone_for(music.note("G4"), music.beat(1/8))
music.play_tone_for(music.note("F#4"), music.beat(1/8 + 1/16))
music.play_tone_for(music.note("E4"), music.beat(1/16))
music.play_tone_for(music.note("F#4"), music.beat(1/8))
print("Measure 17")
music.play_tone_for(music.note("G4"), music.beat(1/4 + 1/8))
music.play_tone_for(music.note("G4"), music.beat(1/4 + 1/8))

サウンドを演奏する

# Play a sound
music.sound_play("file.wav", volume=50)
# Play a sound in the background
music.sound_play_threading("file.wav", volume=80)
# Get sound length
music.sound_length("file.wav")

音楽を演奏する

# Play music
music.music_play("file.mp3")
# Play music in loop
music.music_play("file.mp3", loop=0)
# Play music in 3 times
music.music_play("file.mp3", loop=3)
# Play music in starts from 2 second
music.music_play("file.mp3", start=2)
# Set music volume
music.music_set_volume(50)
# Stop music
music.music_stop()
# Pause music
music.music_pause()
# Resume music
music.music_resume()

API

class robot_hat.Music

ベースクラス: _Basic_class

音楽、サウンドエフェクト、音符の制御を演奏する

NOTE_BASE_FREQ = 440

計算用の基準音の周波数(A4)

NOTE_BASE_INDEX = 69

計算用の基準音のインデックス(A4)MIDI互換

NOTES = [None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, 'A0', 'A#0', 'B0', 'C1', 'C#1', 'D1', 'D#1', 'E1', 'F1', 'F#1', 'G1', 'G#1', 'A1', 'A#1', 'B1', 'C2', 'C#2', 'D2', 'D#2', 'E2', 'F2', 'F#2', 'G2', 'G#2', 'A2', 'A#2', 'B2', 'C3', 'C#3', 'D3', 'D#3', 'E3', 'F3', 'F#3', 'G3', 'G#3', 'A3', 'A#3', 'B3', 'C4', 'C#4', 'D4', 'D#4', 'E4', 'F4', 'F#4', 'G4', 'G#4', 'A4', 'A#4', 'B4', 'C5', 'C#5', 'D5', 'D#5', 'E5', 'F5', 'F#5', 'G5', 'G#5', 'A5', 'A#5', 'B5', 'C6', 'C#6', 'D6', 'D#6', 'E6', 'F6', 'F#6', 'G6', 'G#6', 'A6', 'A#6', 'B6', 'C7', 'C#7', 'D7', 'D#7', 'E7', 'F7', 'F#7', 'G7', 'G#7', 'A7', 'A#7', 'B7', 'C8']

音符の名前、MIDI互換

__init__()

基本クラスを初期化する

パラメータ

debug_level (str/int) -- デバッグレベル、0(クリティカル)、1(エラー)、2(警告)、3(情報)または4(デバッグ)

time_signature(top: int = None, bottom: int = None)

拍子記号の設定/取得

パラメータ
  • top (int) -- 拍子記号の上部の数字

  • bottom (int) -- 拍子記号の下部の数字

戻り値

拍子記号

戻り値の型

tuple

key_signature(key: int = None)

キー記号の設定/取得

パラメータ

key (int/str) -- キー記号はKEY_XX_MAJORまたは「#」、「##」、「bbb」、「bbbb」の文字列を使用

戻り値

キー記号

戻り値の型

int

tempo(tempo=None, note_value=0.25)

テンポ(分あたりの拍数)の設定/取得

パラメータ
  • tempo (float) -- テンポ

  • note_value -- 音価(1、1/2、Music.HALF_NOTEなど)

戻り値

テンポ

戻り値の型

int

beat(beat)

テンポから拍子の遅延を秒単位で計算する

パラメータ

beat (float) -- 拍子インデックス

戻り値

拍子の遅延

戻り値の型

float

note(note, natural=False)

音符の周波数を取得する

パラメータ
  • note_name (string) -- 音符の名前(NOTES参照)

  • natural (bool) -- ナチュラルノートの場合

戻り値

音符の周波数

戻り値の型

float

sound_play(filename, volume=None)

サウンドエフェクトファイルを再生する

パラメータ

filename (str) -- サウンドエフェクトファイル名

sound_play_threading(filename, volume=None)

サウンドエフェクトをスレッドで再生する(バックグラウンドで)

パラメータ
  • filename (str) -- サウンドエフェクトファイル名

  • volume (int) -- 音量0-100、空欄にすると音量は変わらない

music_play(filename, loops=1, start=0.0, volume=None)

音楽ファイルを再生する

パラメータ
  • filename (str) -- サウンドファイル名

  • loops (int) -- ループ回数、0:無限ループ、1:1回再生、2:2回再生、...

  • start (float) -- 開始時間(秒)

  • volume (int) -- 音量0-100、空欄にすると音量は変わらない

music_set_volume(value)

音楽の音量を設定する

パラメータ

value (int) -- 音量 0-100

music_stop()

音楽を停止する

music_pause()

音楽を一時停止する

music_resume()

音楽を再開する

music_unpause()

音楽の一時停止を解除する(音楽を再開する)

sound_length(filename)

サウンドエフェクトの長さを秒で取得する

パラメータ

filename (str) -- サウンドエフェクトファイル名

戻り値

長さ(秒)

戻り値の型

float

get_tone_data(freq: float, duration: float)

演奏用のトーンデータを取得する

パラメータ
  • freq (float) -- 周波数

  • duration (float) -- 持続時間(秒)

戻り値

トーンデータ

戻り値の型

list

play_tone_for(freq, duration)

指定された持続時間のトーンを演奏する

パラメータ
  • freq (float) -- 周波数、NOTESを使用して周波数を取得できる

  • duration (float) -- 持続時間(秒)