Moode Audio Player - μια MPD based διανομή για Raspberry Pi

Υπάρχει αλλος που εχει παρατηρησει προβληματα του GUI σε firefox/safari?

Επισης μια απορια. Υπαρχει καποιος τροπος να κλειδωσει το ALSA volume σε μια τιμη και να μην αλλαζει με τιποτα; Πχ εχω παρατηρησει οτι καποιες φορες γυρναει μονο του σε 0 ή αν ενεργοποιησω το airplay, μεταβαλλεται αναλογως με το volume που θα εχω στο ipad.
 
Υπάρχει αλλος που εχει παρατηρησει προβληματα του GUI σε firefox/safari?

Επισης μια απορια. Υπαρχει καποιος τροπος να κλειδωσει το ALSA volume σε μια τιμη και να μην αλλαζει με τιποτα; Πχ εχω παρατηρησει οτι καποιες φορες γυρναει μονο του σε 0 ή αν ενεργοποιησω το airplay, μεταβαλλεται αναλογως με το volume που θα εχω στο ipad.

Κάπου πρέπει να έχει να κάνεις disable τον mixer. Λογικά αυτήτη στιγμή έχεις software ή hardware mixer. Πρέπει να προσέξεις όταν θα τον απενεργοποιήσεις να είναι στο max level όπου αντιστοιχεί σε 0db. Δυστυχώς δεν μπορώ να σε βοηθήσω σε αυτό για το πως γίνεται στο Moode γιατί δεν ξέρω πως έχει κάνει την υλοποίηση. Αν έχεις usb dac λογικά δε θα έχεις κανένα πρόβλημα.
 
Εδώ είναι και το changelog το οποίο κυρίως περιλαμβάνει bugfixes και βελτιώσεις στο UI:

Code:
======================
2.5 Release 2016-02-27
======================

New features

- NEW: Hotplug for USB audio and storage devices
- NEW: Caching Library loader with increased capacity for large collections
- NEW: Server generated enhanced metadata external applications
- NEW: LCD updater engine for running user defined Python script to update LCD
- NEW: Automatic volume configuration when hardware (ALSA) volume controller exists
- NEW: No reboot needed for Airplay, UPnP renderer and DLNA server on/off or name change
- NEW: Smart poweroff and reboot screens with reconnect btn and reboot-ready ticker
- NEW: Automatic reconnect after network interruption
- NEW: Library coverart click-menu for add/play Genre, Artist, Album or entire collection
- NEW: Song file "encoded at" bit depth, sample rate and channels displayed on Audio info
- NEW: Allow-hotplug eth0 interface for faster boot on Wifi
- NEW: Vol.sh command line interface (CLI) for volume knob and mute
- NEW: Web interface for volume and mute via [url]http://moode/command?cmd=vol.sh[/url] <arg>
- NEW: Customize setting to display extra metadata (Track x/y, Year, Composer)
- NEW: Customize setting to resume Moode playback after Airplay session ends
- NEW: Customize settings for PCM5122 on-chip DSP filter and analog volume options
- NEW: Automatic stream link updater for Soma FM radio stations

Media

- NEW: Eldoradio (Eldo.lu) 256K stream
- NEW: KCMP 89.3 FM - The Current
- NEW: MPR - Minnesota Public Radio
- NEW: SomaFM - Logo for DEF CON Radio
- NEW: SomaFM - Metal Detector - From black to doom, prog to sludge, thrash to post, stoner to crossover, punk to industrial.
- UPD: Zappa Stream Radio direct stream link updated

Audio devices

- I2S: Audiophonics PCM5102 DAC
- I2S: DIYINHK ES9023 DAC
- I2S: HIFI DAC+
- I2S: HIFI Digi+
- I2S: IanFIFO II
- I2S: IQaudIO Pi-DACZero
- I2S: Pimoroni pHAT DAC
- I2S: PlainAMP
- I2S: PlainDSP
- I2S: Soekris DAM1021
- I2S: Suptronics x400
- USB: Audiolab M-DAC
- USB: Cambridge Audio Azur 851D DAC
- USB: Cambrige DACMagic 100
- USB: Customworks DAC-1
- USB: CEntrance DACmini CX
- USB: DEQX XS-1 USB-Audio 24/192 v4
- USB: Gustard U12
- USB: Halide Design USB-S/PDIF Bridge
- USB: HRT Microstreamer
- USB: HRT Music Streamer II+
- USB: Lukit WaveIO USB-I2S/SPDIF Bridge
- USB: Meridian Director DAC
- USB: Meridian Explorer 2
- USB: Musical Fidelity V90-DAC
- USB: Nuforce DDA 100
- USB: Peachtree Nova 220se
- USB: Teac UD-H01
- USB: Topping D20 DAC
- USB: Trends UD-10

Updates

- UPD: Pre-3.0 rewrite and restructure of entire 2.x code base
- UPD: Linux kernel updated to 4.1.15+
- UPD: MPD updated to 0.19.12
- UPD: Shairport-sync updated to 2.9.1 development version
- UPD: Changed CIFS mount rsize/wsize to defaults rsize=61440 and wsize=65536 for improved throughput
- UPD: Changed to async in usbmount.conf for improved throughput when copying files to the mount
- UPD: Add help text for MPD audio buffer fields
- UPD: Validate MPD volume control field (don't present "Hardware" if hdwr vol controller does not exist)
- UPD: Validate Hardware volume control section on Customize popup (same as above)
- UPD: Add 8192cu.conf to etc/modprobe.d for improved disable of power saving
- UPD: Improve ellipsis truncation for file path on Audio info to prevent wrapping
- UPD: Increase brightness of artist name in Library for improved visability
- UPD: Only display Artist on 2nd line of Library tracks
- UPD: Differentiate between CIFS lazy umount and NFS force umount
- UPD: Turn off NGINX access logging
- UPD: Config NGINX for improved performance
- UPD: Increase PHP pm.max_children to support higher number of concurrent clients
- UPD: Reactivate PHP watchdog for more graceful handling of resource limits
- UPD: DLNA server database moved to root partition for increased capacity
- UPD: Library albums sort ignores articles "a, and, the" at beginning of album name
- UPD: Calculate decode bitrate for WAV and AIFF formats on Audio Info popup
- UPD: Deprecate Kernel Select, Kernel Profiles, CMedia Fix, SRC resampler, Automatic MPD DB update
- UPD: Additions and changes to player setup instructions

Bug fixes

- FIX: WiFi configuration fails when SSID or password contain spaces or special characters
- FIX: Time knob not cleared after last item in playlist finishes
- FIX: Vertical page position (at top of knobs or coverart) on small screens moves when song changes
- FIX: Samba invalid security option causing warning when MPD starts
- FIX: MPD init.d start removed since its already started by Moode worker daemon
- FIX: MPD config missing restore_paused "yes"
- FIX: Volume up/dn buttons not being disabled when knob disabled
- FIX: Logic causing unnecessary UI updates even though song does not change
- FIX: Warnings from legacy CSS "*element" statements in certain CSS files
- FIX: Incomplete Google search string for Radio stations that provide song title
- FIX: Bad var name in getMixerName function for Hifiberry AMP(AMP+)
- FIX: System config SET not performing both ON/OFF and name change as group
- FIX: Library total track time blank when individual track has bad or missing song time
- FIX: Bad char in Roots Legacy Radio url
- FIX: Playback panel not updating after Library playAll
- FIX: Inertia scrolling not working on IOS
- FIX: Last few items in Browse, Library and Playlist being obscured by footer
- FIX: Audiophonics PCM5122 DAC using wrong i2s driver
- FIX: Duplicate entries in playback history log for titles having embedded single quote
- FIX: Library panel track list sort order for compilation albums
 
Επιτέλους! Φαίνεται ότι βλέπει μεγάλες βιβλιοθήκες...

--- Αυτόματη συγχώνευση μηνύματος ---

Άντε τώρα και με tidal plugin (δεν προβλέπεται όμως)...
 
Ο Tim απ´ ότι έχω καταλάβει δίνει μεγάλη έμφαση στο Airplay (το οποίο υποστηρίζει με το shairport-sync). Τον έχω δει να προτείνει απλά να ανοίξεις airplay και να στριμάρεις ότι θες.

Κάτι ανάλογο που έχω κατά καιρούς προτείνει και εγώ αλλά με χρήση upnp/dlna.

Σαφώς και θα ήταν προτιμότερο να υπάρχει απευθείας υποστήριξη αλλά αυτό δεν είναι εύκολο αν δεν ασχοληθεί η κοινότητα (ή ακόμα καλύτερα η ίδια η εταιρία) να δώσει κώδικα για client.

Ο τρόπος πχ που τα Runeaudio και Volumio υλοποιούν Spotify Premium είναι ακριβώς αυτός. Υπάρχει ήδη έτοιμη λύση γι' αυτό και απλά την ενσωματώνουν στο web inteface τους.
 
Απάντηση: Re: Moode Audio Player - μια MPD based διανομή για Raspberry Pi

Ο Tim απ´ ότι έχω καταλάβει δίνει μεγάλη έμφαση στο Airplay (το οποίο υποστηρίζει με το shairport-sync). Τον έχω δει να προτείνει απλά να ανοίξεις airplay και να στριμάρεις ότι θες.

Κάτι ανάλογο που έχω κατά καιρούς προτείνει και εγώ αλλά με χρήση upnp/dlna.

Σαφώς και θα ήταν προτιμότερο να υπάρχει απευθείας υποστήριξη αλλά αυτό δεν είναι εύκολο αν δεν ασχοληθεί η κοινότητα (ή ακόμα καλύτερα η ίδια η εταιρία) να δώσει κώδικα για client.

Ο τρόπος πχ που τα Runeaudio και Volumio υλοποιούν Spotify Premium είναι ακριβώς αυτός. Υπάρχει ήδη έτοιμη λύση γι' αυτό και απλά την ενσωματώνουν στο web inteface τους.

Μιχάλη τί να στριμάρεις ότι θες; Εμένα μέσω usb dac δε μου έχει δουλέψει ποτέ το airplay από macmini με el capitan. Ποτέ όταν λέμε, ποτέ. Μόνο από τη minijack έξοδο του rpi2 δουλεύει απροβλημάτιστα. (Παρεμπιπτόντως ανακοινώσανε το rpi3 σήμερα).

Ούτε με volumio έχει δουλέψει ούτε με rune φυσικά ούτε με moode (σε καμία έκδοση). Με το Arcphile μόνο δεν έχω δοκιμάσει.

To spotify είναι πολύ βασική παροχή για μένα. Και με το airplay θα ήταν ανεκτό. Αλλά ούτε έτσι δε δουλεύει.

Τώρα ο τρόπος που έχει υλοποιηθεί το spotify σε volumio και rune είναι άσε καλύτερα. Αν στο spotify δεν μπορείς να χρησιμοποιήσεις το radio που είναι μια από τις πολύ σημαντικές λειτουργίες του, τότε άσε μην το συζητάμε.

Συγνώμη για την κριτική, ελπίζω να μην έθιξα κανέναν, αλλά οι διανομές αυτές έχουν προβλήματα ευχρηστίας και όχι ηχητικής απόδοσης. Έλα όμως που και η λεπτομέρεια κάνει τη διαφορά. Τους ευχαριστούμε όλους βέβαια τους developers, δε μας χρωστάγανε και τίποτα. Απ' εναντίας.
 
την οθονη εχει δοκιμασει κανεις να συνδεσει?
λεω να ασχοληθω λγιο με αυτο, υπαρχει μηπως κανα script ετοιμο στο νετ?
 
εχω ενα σκριπτ που βγαζει το τραγουδι και δουλευουν και κουμπια μπρος πισω θα ασχοληθω λιγο ακομα να το φτιαξω να ειναι πιο κυριλε......αν το θελει κανεις το στελνω....
τωρα βγαζει μονο αυτο....

12771536_10153294612272511_6893284577451321191_o.jpg


ειναι παραλαγη απο αυτον εδω...

https://www.youtube.com/watch?v=KM4n2OtwGl0

--- Αυτόματη συγχώνευση μηνύματος ---

#!/usr/bin/python
#
# Script for Raspberry Pi Internet Radio
#
# Author: Kyle Prier
# Site: http://wwww.youtube.com/meistervision
#
# LCD author : Matt Hawkins
# Site : http://www.raspberrypi-spy.co.uk/
#
# Date : 10/01/2012
#

# The wiring for the LCD is as follows:
# 1 : GND
# 2 : 5V
# 3 : Contrast (0-5V)*
# 4 : RS (Register Select)
# 5 : R/W (Read Write) - GROUND THIS PIN! We do not want the LCD to send anything to the Pi @ 5v
# 6 : Enable or Strobe
# 7 : Data Bit 0 - NOT USED
# 8 : Data Bit 1 - NOT USED
# 9 : Data Bit 2 - NOT USED
# 10: Data Bit 3 - NOT USED
# 11: Data Bit 4
# 12: Data Bit 5
# 13: Data Bit 6
# 14: Data Bit 7
# 15: LCD Backlight +5V
# 16: LCD Backlight GND (Red)
# 17: LCD Backlight GND (Green)
# 18: LCD Backlight GND (Blue)

#import
import RPi.GPIO as GPIO
import time
import os

# Define GPIO to LCD mapping
LCD_RS = 7
LCD_E = 8
LCD_D4 = 25
LCD_D5 = 24
LCD_D6 = 23
LCD_D7 = 18
LED_ON = 15

# Defomte GPIO for Radio Controls
NEXT = 17
PREV = 4

# Define some device constants
LCD_WIDTH = 20 # Maximum characters per line
LCD_CHR = True
LCD_CMD = False

LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
LCD_LINE_3 = 0x94 # LCD RAM address for the 3rd line
LCD_LINE_4 = 0xD4 # LCD RAM address for the 4th line

# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005

def main():
# Main program block

GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbers
GPIO.setup(LCD_E, GPIO.OUT) # E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7

GPIO.setup(NEXT, GPIO.IN) # Next Channel button
GPIO.setup(PREV, GPIO.IN) # Previous Channel button

# Initialise display
lcd_init()
# Send some test

lcd_byte(LCD_LINE_1, LCD_CMD)
lcd_string("Raspberry Pi",2)
lcd_byte(LCD_LINE_2, LCD_CMD)
lcd_string("Internet Radio",2)
lcd_byte(LCD_LINE_3, LCD_CMD)
lcd_string("by",2)
lcd_byte(LCD_LINE_4, LCD_CMD)
lcd_string("Meister Vision", 2)
time.sleep(4)
os.system("mpc play")
while 1:
if ( GPIO.input(NEXT) == False):
os.system("mpc next")
time.sleep(1)
os.system("mpc play")

if ( GPIO.input(PREV) == False):
os.system("mpc prev")
time.sleep(1)
os.system("mpc play")


f=os.popen("mpc current")
station = ""
for i in f.readlines():
station += i
# Send some text
lcd_byte(LCD_LINE_1, LCD_CMD)
lcd_string(station,1)
lcd_byte(LCD_LINE_2, LCD_CMD)
lcd_string("",1)
lcd_byte(LCD_LINE_3, LCD_CMD)
lcd_string("",1)
lcd_byte(LCD_LINE_4, LCD_CMD)
lcd_string("",1)



time.sleep(20)

def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD)
lcd_byte(0x32,LCD_CMD)
lcd_byte(0x06,LCD_CMD)
lcd_byte(0x0C,LCD_CMD)
lcd_byte(0x28,LCD_CMD)
lcd_byte(0x01,LCD_CMD)

def lcd_string(message,style):
# Send string to display
# style=1 Left justified
# style=2 Centred
# style=3 Right justified

if style==1:
message = message.ljust(LCD_WIDTH," ")
elif style==2:
message = message.center(LCD_WIDTH," ")
elif style==3:
message = message.rjust(LCD_WIDTH," ")

for i in range(LCD_WIDTH):
lcd_byte(ord(message),LCD_CHR)

def lcd_byte(bits, mode):
# Send byte to data pins
# bits = data
# mode = True for character
# False for command

GPIO.output(LCD_RS, mode) # RS

# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x10==0x10:
GPIO.output(LCD_D4, True)
if bits&0x20==0x20:
GPIO.output(LCD_D5, True)
if bits&0x40==0x40:
GPIO.output(LCD_D6, True)
if bits&0x80==0x80:
GPIO.output(LCD_D7, True)

# Toggle 'Enable' pin
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)

# Low bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x01==0x01:
GPIO.output(LCD_D4, True)
if bits&0x02==0x02:
GPIO.output(LCD_D5, True)
if bits&0x04==0x04:
GPIO.output(LCD_D6, True)
if bits&0x08==0x08:
GPIO.output(LCD_D7, True)

# Toggle 'Enable' pin
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)

if __name__ == '__main__':
#main()

try:
main()
except KeyboardInterrupt:
pass
finally:
lcd_byte(0x01, LCD_CMD)
lcd_string(" Goodbye!",LCD_LINE_1)
GPIO.cleanup()

--- Αυτόματη συγχώνευση μηνύματος ---

επειδη στο python εχουν σημασια τα spaces και τα tubs οπιος θελει του στελνω το αρχειο, δεν μαφηνει το φορουμ να το κανω attach
 
Εύγε!

Στο επόμενο διάστημα θα ασχοληθώ και γω εκτενώς με το θέμα και στη δική μου διανομή. Ελπίζω να γίνει σύντομα.
 
ε τωρα που δειχνει , θα το φτασω σε πιο ανθρωπινη μορφη συντομα, με το python ειμαι ασχετος ομως....
 
εχω προσθεσει και play και pause και το LCD βγαζει αυτο τωρα....

12719576_10153314599837511_7839331778124547408_o.jpg


τελικα διαβαζω απο το lcd.txt του Μοοδε , και δεν ξερω τι ειναι αυτες οι 3 γραμμες στο τελος:)
επισης δεν κανει σκρολ οταν ειναι κατι πανω απο 20 γραματα, πρεπει να ειναι λιγο δυσκολο να το κανεις:)

και ο κωδικας, που θελει καπια μαζεματακια ακομα μαλλον


#!/usr/bin/python
#
# Script for Raspberry Pi Internet Radio
#
# Author: Kyle Prier
# Site: http://wwww.youtube.com/meistervision
#
# LCD author : Matt Hawkins
# Site : http://www.raspberrypi-spy.co.uk/
#
# Date : 10/01/2012
#

# The wiring for the LCD is as follows:
# 1 : GND
# 2 : 5V
# 3 : Contrast (0-5V)*
# 4 : RS (Register Select)
# 5 : R/W (Read Write) - GROUND THIS PIN! We do not want the LCD to send anything to the Pi @ 5v
# 6 : Enable or Strobe
# 7 : Data Bit 0 - NOT USED
# 8 : Data Bit 1 - NOT USED
# 9 : Data Bit 2 - NOT USED
# 10: Data Bit 3 - NOT USED
# 11: Data Bit 4
# 12: Data Bit 5
# 13: Data Bit 6
# 14: Data Bit 7
# 15: LCD Backlight +5V
# 16: LCD Backlight GND (Red)
# 17: LCD Backlight GND (Green)
# 18: LCD Backlight GND (Blue)

#import
import RPi.GPIO as GPIO
import time
import os

# Define GPIO to LCD mapping
LCD_RS = 7
LCD_E = 8
LCD_D4 = 25
LCD_D5 = 24
LCD_D6 = 23
LCD_D7 = 18
LED_ON = 15

# Defomte GPIO for Radio Controls
NEXT = 17
PREV = 4
PAUSE = 27
PLAY = 22

# Define some device constants
LCD_WIDTH = 20 # Maximum characters per line
LCD_CHR = True
LCD_CMD = False

LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
LCD_LINE_3 = 0x94 # LCD RAM address for the 3rd line
LCD_LINE_4 = 0xD4 # LCD RAM address for the 4th line

# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005

def main():
# Main program block

GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbers
GPIO.setup(LCD_E, GPIO.OUT) # E
GPIO.setup(LCD_RS, GPIO.OUT) # RS
GPIO.setup(LCD_D4, GPIO.OUT) # DB4
GPIO.setup(LCD_D5, GPIO.OUT) # DB5
GPIO.setup(LCD_D6, GPIO.OUT) # DB6
GPIO.setup(LCD_D7, GPIO.OUT) # DB7

GPIO.setup(NEXT, GPIO.IN) # Next Channel button
GPIO.setup(PREV, GPIO.IN) # Previous Channel button
GPIO.setup(PAUSE, GPIO.IN) # Previous Channel button
GPIO.setup(PLAY, GPIO.IN) # Previous Channel button

# Initialise display
lcd_init()
# Send some test

lcd_byte(LCD_LINE_1, LCD_CMD)
lcd_string("KOROVIEV.COM",2)
lcd_byte(LCD_LINE_2, LCD_CMD)
lcd_string("AUDIO",2)
lcd_byte(LCD_LINE_3, LCD_CMD)
lcd_string("ENTERPRISES",2)
lcd_byte(LCD_LINE_4, LCD_CMD)
lcd_string("------------", 2)
time.sleep(8)
os.system("mpc play")
while 1:
if ( GPIO.input(NEXT) == False):
os.system("mpc next")
time.sleep(1)
os.system("mpc play")

if ( GPIO.input(PREV) == False):
os.system("mpc prev")
time.sleep(1)
os.system("mpc play")

if ( GPIO.input(PAUSE) == 0):
if (GPIO.input(PAUSE) == 1):
os.system("mpc play")
#time.sleep(0.05)
else:
os.system("mpc pause")


if ( GPIO.input(PLAY) == 0):
if (GPIO.input(PLAY) == 1):
os.system("mpc pause")
#time.sleep(0.05)
else:
os.system("mpc play")



# reading the MPD info
f=os.popen("mpc current")
station = ""
for i in f.readlines():
station += i


# reading the moode TXT file once for each line
with open('lcd.txt') as f:
for i, line2 in enumerate(f, 1):
if i == 2:
break

with open('lcd.txt') as f:
for i, line4 in enumerate(f, 1):
if i == 4:
break

with open('lcd.txt') as f:
for i, line9 in enumerate(f, 1):
if i == 9:
break






# Send lines to lcd
lcd_byte(LCD_LINE_1, LCD_CMD)
lcd_string(line2[7:27],1) # telling the program from which characters to read
lcd_byte(LCD_LINE_2, LCD_CMD)
lcd_string(line4[6:26],1)
lcd_byte(LCD_LINE_3, LCD_CMD)
lcd_string(" ",1)
lcd_byte(LCD_LINE_4, LCD_CMD)
lcd_string(line9[8:28],3)



time.sleep(20)

def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD)
lcd_byte(0x32,LCD_CMD)
lcd_byte(0x06,LCD_CMD)
lcd_byte(0x0C,LCD_CMD)
lcd_byte(0x28,LCD_CMD)
lcd_byte(0x01,LCD_CMD)

def lcd_string(message,style):
# Send string to display
# style=1 Left justified
# style=2 Centred
# style=3 Right justified

if style==1:
message = message.ljust(LCD_WIDTH," ")
elif style==2:
message = message.center(LCD_WIDTH," ")
elif style==3:
message = message.rjust(LCD_WIDTH," ")

for i in range(LCD_WIDTH):
lcd_byte(ord(message),LCD_CHR)

def lcd_byte(bits, mode):
# Send byte to data pins
# bits = data
# mode = True for character
# False for command

GPIO.output(LCD_RS, mode) # RS

# High bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x10==0x10:
GPIO.output(LCD_D4, True)
if bits&0x20==0x20:
GPIO.output(LCD_D5, True)
if bits&0x40==0x40:
GPIO.output(LCD_D6, True)
if bits&0x80==0x80:
GPIO.output(LCD_D7, True)

# Toggle 'Enable' pin
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)

# Low bits
GPIO.output(LCD_D4, False)
GPIO.output(LCD_D5, False)
GPIO.output(LCD_D6, False)
GPIO.output(LCD_D7, False)
if bits&0x01==0x01:
GPIO.output(LCD_D4, True)
if bits&0x02==0x02:
GPIO.output(LCD_D5, True)
if bits&0x04==0x04:
GPIO.output(LCD_D6, True)
if bits&0x08==0x08:
GPIO.output(LCD_D7, True)

# Toggle 'Enable' pin
time.sleep(E_DELAY)
GPIO.output(LCD_E, True)
time.sleep(E_PULSE)
GPIO.output(LCD_E, False)
time.sleep(E_DELAY)

if __name__ == '__main__':
main()

# try:
# main()
# except KeyboardInterrupt:
# pass
# finally:
# lcd_byte(0x01, LCD_CMD)
# lcd_string(" Goodbye!",LCD_LINE_1)
# GPIO.cleanup()
 
καλημερίζω τους mooders.

Χρησιμοποιώ εδώ και καιρό το moode για αναπαραγωγή μουσικής από pi 1. Όλα οκ με τη μουσική βιβλιοθήκη από ένα δικτυακό δίσκο (shared από win 7). To πρόβλημα υπάρχει με κάποια αρχεία wav που βρίσκονται σε ένα φάκελλο με χύμα tracks.

ενώ όταν κάνει updating το mpd database τα βλέπω, μόλις τελειώσει δεν υπάρχουν. Τα υπόλοιπα flac στο dir είναι εκεί.

έκανα unmount και mount το share τίποτα, χθές έκανα αναβάθμιση στην έκδοση 2.5, πήγαν όλα καλά αλλά τα 3 αρχεία wav δεν τα βλέπω. Μέσω foobar σε υπολογιστή (από δίκτυο πάλι). παίζουν κανονικά.

Κάπου πήρε το μάτι μου ότι δεν υποστηρίζονται αρχεία wav από το mpd. ισχύει κάτι τέτοιο και πρέπει να γίνουν flac?
 
Κάπου πήρε το μάτι μου ότι δεν υποστηρίζονται αρχεία wav από το mpd. ισχύει κάτι τέτοιο και πρέπει να γίνουν flac?

Η υποστήριξη wav, flac, mp3 κλπ, μπορεί να είναι ενεργή/ανενεργή, ανάλογα με το τι θέλει αυτός που κάνει compile τον MPD. Στα συνήθη configurations ο MPD υποστηρίζει wav κανονικότατα.