Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


Retrieve bitrate info from MPD
#1
Hi
I successfully built my own network streamer, using an OLED 16x2 display to show info about artist, title track, elapsed time, etc. I show also the "audio" info, getting those info using the statements:

                audio = m_status['audio'].split(':')
                if len(audio) == 3:
                    sample = round(float(audio[0])/1000,1)
                    bits = audio[1]
                    if audio[2] == '1':
                        channels = 'Mono'
                    elif audio[2] == '2':
                        channels = 'Stereo'
                    elif int(audio[2]) > 2:
                        channels = 'Multi'
                    else:
                        channels = u""

                    if channels == u"":
                        tracktype = "{0} bit, {1} kHz".format(bits, sample)
                    else:
                        tracktype = "{0}, {1} bit, {2} kHz".format(channels, bits, sample)
                else:
                    # If audio information not available just send that MPD is the source
                    tracktype = u"MPD"

The result on the display can be, for example,  "24bits, Stereo, 192/96 kHz".

 I'd like to show also the bitrate (e.g. 320 kbs), but this value is never filled up in the m_status structure (it's always = 0). I saw instead that from Moode web UI, clicking on the "Audio Info", it shows me , for example,  24 bit, 44.1 kHz, Stereo, 320 kbps. That means that in some way this info can be retrieved from MPD. 
Anybody can help me how to?

thanks 
Andrea
Reply
#2
its a field named bitrate returned by the MPD status command.

pi@rp3:~ $ telnet localhost 6600
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
OK MPD 0.20.0
status
volume: 18
repeat: 0
random: 0
single: 0
consume: 0
playlist: 86
playlistlength: 87
mixrampdb: 0.000000
state: play
song: 47
songid: 48
time: 125:272
elapsed: 125.039
bitrate: 482
duration: 272.066
audio: 44100:16:2
nextsong: 48
nextsongid: 49
OK
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#3
yes, I saw that field 'bitrate' is part of the structure returned by the statement m_status = client.status(). The problem is that its value is always 0 !
I don't understand why (the other ones like elapsed, audio, duration,...etc are correctly filled...). I also try to insert in the code some print (bitrate) statement to see its values on the console, but it sadly always = 0...
Reply
#4
You will probably need to examine the source code for the client.status() function to see what its doing
Enjoy the Music!
moodeaudio.org | Mastodon Feed | GitHub
Reply
#5
At the end I was able to show it on the display. There was an erroneus indentation in a line of code, that skips the capture of kbps from MPD....
Reply


Forum Jump: