HackerHotel2019Badge/audio

From Badge team
Jump to navigation Jump to search

HackerHotel2019 Badge Audio API

Back to HackerHotel2019Badge/MicroPython

Audio API

Enjoying audio is easy.

import audio
audio.volume(11)
audio.play_mp3_stream('https://badge.team/RoccoW_-_06_-_Pumped.mp3')

For streaming audio, a wifi connection is of-course needed.

Backward compatibility

Since not all badges have audio, it's advisable to test for audio library availability, this can be done pretty easily . .

try:
    import audio, wifi
    wifi.connect()
    if wifi.wait(10, True):
    	audio.play_mp3_stream('https://annejan.com/media/badger.mp3')
except ImportError as err:
    print(err)
    pass

Mixer ctl

Since the audio jack is reversed on the badges, and we don't want to force you to do a hardware modification, in software we "invert" channel 0 and add left and right to channel 1, this fixes the audio issue for passive headphones.

NB: This is automatically done by the firmware after the day 0 OTA. You can chose to disable this mod or use the mixer_ctl api for other effects like balance between left and right, or swapping channels.

audio.mixer_ctl_0(-128, 0)
audio.mixer_ctl_1(128, 128)

Full audio API

audio.play_mp3_file('/media/icq.mp3')                                         play a local mp3 file.
audio.play_mp3_stream('http://streams.pinguinradio.com/PinguinRadio320.mp3')  play a remote mp3 file or stream. 
audio.is_playing()                                                            returns True when audio is playing.
audio.stop()                                                                  stops audio from playing.
audio.volume()                                                                returns current volume level (0-128).
audio.volume(n)                                                               sets the current volume level.
audio.mixer_ctl_0(n, m)                                                       configures the right audio signal.
audio.mixer_ctl_1(n, m)                                                       configures the left audio signal.