Klasse Music
¶
Warnung
Sie müssen
sudo
beim Ausführen dieses Skripts hinzufügen, falls der Lautsprecher nicht funktioniert.
Beispiel
Initialisieren
# Import Music class
from robot_hat import Music
# Create a new Music object
music = Music()
Töne abspielen
# 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))
Ton abspielen
# 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")
Musik abspielen
# 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¶
Basisklasse:
_Basic_class
Musik, Soundeffekte und Notenkontrolle abspielen
- NOTE_BASE_FREQ = 440¶
Basisnotenfrequenz für die Berechnung (A4)
- NOTE_BASE_INDEX = 69¶
Basisnotenindex für die Berechnung (A4), MIDI-kompatibel
- 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']¶
Notennamen, MIDI-kompatibel
- __init__()¶
Die Basisklasse initialisieren
- Parameter
debug_level (str/int) – Debug-Level, 0(kritisch), 1(Fehler), 2(Warnung), 3(Info) oder 4(Debug)
- time_signature(top: int = None, bottom: int = None)¶
Taktart einstellen/abrufen
- Parameter
top (int) – Oberzahl der Taktart
bottom (int) – Unterzahl der Taktart
- Rückgabe
Taktart
- Rückgabetyp
tuple
- key_signature(key: int = None)¶
Tonart einstellen/abrufen
- Parameter
key (int/str) – Tonart verwenden KEY_XX_MAJOR oder String „#“, „##“, „bbb“, „bbbb“
- Rückgabe
Tonart
- Rückgabetyp
int
- tempo(tempo=None, note_value=0.25)¶
Tempo einstellen/abrufen (Schläge pro Minute, bpm)
- Parameter
tempo (float) – Tempo
note_value – Notenwert (1, 1/2, Music.HALF_NOTE usw.)
- Rückgabe
Tempo
- Rückgabetyp
int
- beat(beat)¶
Berechnen der Schlagverzögerung in Sekunden aus dem Tempo
- Parameter
beat (float) – Schlagindex
- Rückgabe
Schlagverzögerung
- Rückgabetyp
float
- note(note, natural=False)¶
Frequenz einer Note abrufen
- Parameter
note_name (string) – Notenname (siehe NOTES)
natural (bool) – ob natürliche Note
- Rückgabe
Frequenz der Note
- Rückgabetyp
float
- sound_play(filename, volume=None)¶
Soundeffekt-Datei abspielen
- Parameter
filename (str) – Name der Soundeffekt-Datei
- sound_play_threading(filename, volume=None)¶
Soundeffekt im Hintergrund abspielen
- Parameter
filename (str) – Name der Soundeffekt-Datei
volume (int) – Lautstärke 0-100, leer lassen, um die Lautstärke nicht zu ändern
- music_play(filename, loops=1, start=0.0, volume=None)¶
Musikdatei abspielen
- Parameter
filename (str) – Name der Sounddatei
loops (int) – Anzahl der Wiederholungen, 0: endlos wiederholen, 1: einmal abspielen, 2: zweimal abspielen, …
start (float) – Startzeit in Sekunden
volume (int) – Lautstärke 0-100, leer lassen, um die Lautstärke nicht zu ändern
- music_set_volume(value)¶
Musiklautstärke einstellen
- Parameter
value (int) – Lautstärke 0-100
- music_stop()¶
Musik stoppen
- music_pause()¶
Musik pausieren
- music_resume()¶
Musik fortsetzen
- music_unpause()¶
Musikwiedergabe fortsetzen
- sound_length(filename)¶
Länge des Soundeffekts in Sekunden abrufen
- Parameter
filename (str) – Name der Soundeffekt-Datei
- Rückgabe
Länge in Sekunden
- Rückgabetyp
float
- get_tone_data(freq: float, duration: float)¶
Ton-Daten zum Abspielen abrufen
- Parameter
freq (float) – Frequenz
duration (float) – Dauer in Sekunden
- Rückgabe
Ton-Daten
- Rückgabetyp
list
- play_tone_for(freq, duration)¶
Ton für angegebene Dauer abspielen
- Parameter
freq (float) – Frequenz, Sie können NOTES verwenden, um die Frequenz zu erhalten
duration (float) – Dauer in Sekunden