fusion_hat.music Modul
Musik
Dieses Modul stellt eine Klasse zum Abspielen von Musik, Soundeffekten und zur Notensteuerung bereit.
Beispiel
Das Modul importieren und eine Instanz erstellen
>>> from fusion_hat.music import Music
>>> music = Music()
Eine Musikdatei abspielen
>>> music.music_play("music.wav")
Musik in einem Thread abspielen
>>> music_thread = threading.Thread(target=music.music_play, args=("music.wav",))
>>> music_thread.start()
Die Musik steuern
>>> music.music_pause()
>>> music.music_resume()
>>> music.music_stop()
Eine Sounddatei abspielen
>>> music.sound_play("sound.wav")
Eine Sounddatei in einem Thread abspielen
>>> music.sound_play_thread("sound.wav")
- class fusion_hat.music.Music[Quellcode]
Basisklassen:
objectMusik, Soundeffekte und Notensteuerung abspielen
- CHANNELS = 1
- RATE = 44100
- KEY_G_MAJOR = 1
- KEY_D_MAJOR = 2
- KEY_A_MAJOR = 3
- KEY_E_MAJOR = 4
- KEY_B_MAJOR = 5
- KEY_F_SHARP_MAJOR = 6
- KEY_C_SHARP_MAJOR = 7
- KEY_F_MAJOR = -1
- KEY_B_FLAT_MAJOR = -2
- KEY_E_FLAT_MAJOR = -3
- KEY_A_FLAT_MAJOR = -4
- KEY_D_FLAT_MAJOR = -5
- KEY_G_FLAT_MAJOR = -6
- KEY_C_FLAT_MAJOR = -7
- KEY_SIGNATURE_SHARP = 1
- KEY_SIGNATURE_FLAT = -1
- WHOLE_NOTE = 1
- HALF_NOTE = 0.5
- QUARTER_NOTE = 0.25
- EIGHTH_NOTE = 0.125
- SIXTEENTH_NOTE = 0.0625
- NOTE_BASE_FREQ = 440
Basis-Notenfrequenz für Berechnungen ( A4 )
- NOTE_BASE_INDEX = 69
Basis-Notenindex für Berechnungen ( 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
- time_signature(top: int = None, bottom: int = None) tuple[Quellcode]
Taktart setzen oder abrufen
- Parameter:
top (int, optional) – Obere Zahl der Taktart. Standard ist None.
bottom (int, optional) – Untere Zahl der Taktart. Standard ist None.
- Rückgabe:
Taktart
- Rückgabetyp:
tuple
- key_signature(key: int = None) int[Quellcode]
Tonart setzen oder abrufen
- Parameter:
key (int, optional) – Tonart verwendet KEY_XX_MAJOR oder die Zeichenkette „#“, „##“, oder „bbb“, „bbbb“. Standard ist None.
- Rückgabe:
Tonart
- Rückgabetyp:
int
- tempo(tempo: int = None, note_value: float = 0.25) tuple[Quellcode]
Tempo in Schlägen pro Minute ( bpm ) setzen oder abrufen
- Parameter:
tempo (int, optional) – Tempo. Standard ist None.
note_value (float, optional) – Notenwert ( 1, 1/2, Music.HALF_NOTE, usw. ). Standard ist QUARTER_NOTE.
- Rückgabe:
Tempo
- Rückgabetyp:
tuple
- beat(beat: float) float[Quellcode]
Schlagverzögerung in Sekunden aus dem Tempo berechnen
- Parameter:
beat (float) – Schlagindex
- Rückgabe:
Schlagverzögerung
- Rückgabetyp:
float
- note(note: str, natural: bool = False) float[Quellcode]
Die Frequenz einer Note abrufen
- Parameter:
note (str) – Notenname ( siehe NOTES )
natural (bool, optional) – Ob es eine natürliche Note ist. Standard ist False.
- Rückgabe:
Frequenz der Note
- Rückgabetyp:
float
- sound_play(filename: str, volume: int = None) None[Quellcode]
Soundeffektdatei abspielen
- Parameter:
filename (str) – Name der Soundeffektdatei
volume (int, optional) – Lautstärke 0–100, leer lassen ändert die Lautstärke nicht. Standard ist None.
- sound_play_threading(filename: str, volume: int = None) None[Quellcode]
Soundeffekt in einem Thread ( im Hintergrund ) abspielen
- Parameter:
filename (str) – Name der Soundeffektdatei
volume (int, optional) – Lautstärke 0–100, leer lassen ändert die Lautstärke nicht. Standard ist None.
- music_play(filename: str, loops: int = 1, start: float = 0.0, volume: int = None) None[Quellcode]
Musikdatei abspielen
- Parameter:
filename (str) – Name der Sounddatei
loops (int, optional) – Anzahl der Wiederholungen, 0: Endlosschleife, 1: einmal abspielen, 2: zweimal abspielen, … Standard ist 1.
start (float, optional) – Startzeit in Sekunden. Standard ist 0.0.
volume (int, optional) – Lautstärke 0–100, leer lassen ändert die Lautstärke nicht. Standard ist None.
- music_set_volume(value: int) None[Quellcode]
Musiklautstärke einstellen
- Parameter:
value (int) – Lautstärke 0–100
- music_stop() None[Quellcode]
Musik stoppen
- music_pause() None[Quellcode]
Musik pausieren
- music_resume() None[Quellcode]
Musik fortsetzen
- music_unpause() None[Quellcode]
Musik fortsetzen ( Resume )
- sound_length(filename: str) float[Quellcode]
Die Länge des Soundeffekts in Sekunden abrufen
- Parameter:
filename (str) – Name der Soundeffektdatei
- Rückgabe:
Länge in Sekunden
- Rückgabetyp:
float
- get_tone_data(freq: float, duration: float) list[Quellcode]
Tondaten zum Abspielen abrufen
Dank an: Aditya Shankar & Gringo Suave https://stackoverflow.com/a/53231212/14827323
- Parameter:
freq (float) – Frequenz
duration (float) – Dauer in Sekunden
- Rückgabe:
Tondaten
- Rückgabetyp:
list
- play_tone_for(freq: float, duration: float) None[Quellcode]
Einen Ton für die angegebene Dauer abspielen. Dank an: Aditya Shankar & Gringo Suave https://stackoverflow.com/a/53231212/14827323
- Parameter:
freq (float) – Frequenz, Sie können NOTES verwenden, um die Frequenz zu erhalten
duration (float) – Dauer in Sekunden