Peppy player

Some questions:

1. What does the validation of the Internet connection (dns.ip) do?
Lets say its a portable player without Internet connection?

2. Podcast is greyed out (tested on RPi 3 with the Seurat headless image).
The Wiki says the playlist is in "/home/pi/Peppy/podcasts" but i see it in "/home/pi/Peppy/playlists"

3. I have Shairport Sync (AirPlay) working but i can't figure out where "shairport-sync.service" is started.
In "shairportdbus.py" i see SHAIRPORT_SYNC_PATH = "/org/gnome/ShairportSync" but where is that?
I can't find this path.

4. Are this two files in "/etc/sudoers.d/" needed: 010_at-expo and 010_proxyrt
They are empty.

5. A button for "mpc update" would be nice so that it is not needed to always go to the CLI after moving new files to Peppy :)

6. How about moving the config button from the bottom right corner into the player?

By the way. I'm installing Peppy on a Odroid C2.
Ubuntu Jammy with Linux 5.10.147-meson64 (Armbian 22.08.8).
 
Hi,

1. That’s to check either the player has the Internet connection or not. If not, the modes which depend on that connection will be disabled. For example such modes as WebRadio, Podcasts, Audio Books will be disabled if there is no connection to the Internet. The modes which don’t depend on that connection will be enabled. For example, Audio Files playback will be available.

2. I need to update the wiki. The location was recently changed to /home/pi/Peppy/playlists. Is it always disabled or sometimes? Do you have the Internet connection?

3. The command to start the Shairport service is here: https://github.com/project-owner/Peppy/blob/e224b7cd1291ca1f6ea31152ad773777a0f590c9/players.txt#L41 It’s used here:
https://github.com/project-owner/Peppy/blob/e224b7cd1291ca1f6ea31152ad773777a0f590c9/peppy.py#L360

4. I believe the player doesn’t need that.

5. I agree that’s annoying to update mpd manually. That was one of the reasons to use the VLC as a default player instead of MPD. I’ll add this request to the wish-list. Another way could be to set a music folder watcher which would notify the player whenever there is a folder update. All new features in the player are tested with the default VLC player. I rarely do that with MPD and MPV. I need to check if they still support all new features.

6. The configuration button is visible only in Web Browsers. The player UI is the same in Browser and Touchscreens. I don’t want to make different UIs for Browser and Touchscreen. That button in the Touchscreens would not make sense. I can make it more visible if that will help. Or you can create a bookmark if you often use it.

You can find more details (including sorting) about File Browser and File Menu on these wiki pages:
https://github.com/project-owner/Peppy.doc/wiki/File-Browser
https://github.com/project-owner/Peppy.doc/wiki/File-Menu

Best regards
 
Podcast (greyed out):
Sure i have internet connection. But its always greyed out.
Remember - this is not my own build Peppy. It's an RPI with an image from you.

MPD updating:
I believe MPD is the player with the biggest feature set. Is there something MPD can't to, can't play?
I'm not a fan of stuff like a "music folder watcher" automation. Something more that runs in the
background and you don't notice if something is going wrong or if it was already done when you need it.

MPD already has it build in
Code:
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
# auto_update "yes"

But it relies on the Linux kernel subsystem inotify and does not work with remote files.
If you mount for example a NAS.

File browser sort order:
Sorry i did overlook that in your Wiki. Normally its my first point of call.
I was confused that then the folders are also sorted alphabetically.
Is it possible to sort like Windows? Alphabetically but folders first.

Shairport Sync (AirPlay):
I still wonder about SHAIRPORT_SYNC_PATH = "/org/gnome/ShairportSync"
That path does not exist on the RPi.

I still don't see how it works in Peppy.
The error i get if i try to start AirPlay is:
Code:
[2022-11-05 13:36:55,820] {shairportdbus.py:80} DEBUG - org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.ShairportSync was not provided by any .service files
[2022-11-05 13:36:56,823] {shairportdbus.py:80} DEBUG - org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.ShairportSync was not provided by any .service files
[2022-11-05 13:36:57,829] {shairportdbus.py:80} DEBUG - org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.ShairportSync was not provided by any .service files
[2022-11-05 13:36:58,835] {shairportdbus.py:80} DEBUG - org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.ShairportSync was not provided by any .service files
[2022-11-05 13:36:59,841] {shairportdbus.py:80} DEBUG - org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.ShairportSync was not provided by any .service files
[2022-11-05 13:36:59,842] {shairportdbus.py:118} DEBUG - 'NoneType' object has no attribute 'Get'

If I start Shaireport Sync from CLI with shairport-sync -v everything works.
 
OK, I'm confused now. In one of your posts you mentioned that you use Ubuntu and now your are saying that you use the player image.
Do you use two systems?

The Podcasts mode is not supported for MPD player:
https://github.com/project-owner/Peppy.doc/wiki/mpd
https://github.com/project-owner/Pe...1f6ea31152ad773777a0f590c9/util/util.py#L1676
I didn't spend too mach time to investigate why it's not working with MPD.

I can ask the same question - is there anything VLC cannot play? I know that the most audio players (e.g. Volumio etc) use MPD behind the scenes. For a long time it was the default audio player in the Peppy player as well. Then I switched to VLC because I found it less restrictive and more convenient to handle from Python.

To see the folders first, you need to set sort.by.type = True as explained here:
https://github.com/project-owner/Peppy.doc/wiki/File-Menu#sorting
The only difference with Windows will be that images will come before folders. I should probably introduce new configuration properties which will control the order of different file types and ability to disable some file types (e.g. images).

I'm not sure why you need SHAIRPORT_SYNC_PATH. Everything works for me even without that variable. The error message looks like the one which I had a long time ago: https://github.com/mikebrady/shairport-sync/issues/915
But if you use disk image that should be fixed unless you use it on Ubuntu.

Best regards
 
I have two systems running a RPi 3 with your image and a Odroid C2 with Ubuntu.
So i can compare or look what I'm missing on the Odroid.

1. Ah, Podcasts mode is not supported for MPD. Again something I overlooked.
The main reason for MPD is dsf, dff.
And on Windows i never liked VLC so maybe i have a VLC trauma :)

2. There are no images in the folders. And if i want the folders first (Sort by Type), why are the files not alphabetically?
Left side is without "Sort by Type":
sort.jpg

3. The Shaireport Sync error was really that "--with-dbus-interface" was missing.
It works now but i still get:
Code:
[2022-11-07 23:08:10,575] {peppy.py:389} DEBUG - Audio Server Started
[2022-11-07 23:08:10,818] {shairportdbus.py:80} DEBUG - org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.ShairportSync was not provided by any .service files
I will ask about that at GitHub.

And I don't need SHAIRPORT_SYNC_PATH. I was just wondering why its in your code.

4. Here i see that a keyboard should work: https://github.com/project-owner/Peppy.doc/wiki/Other-Control-Devices#keyboard
But if i connect one all that happens is that i write into the CLI?
 
You are right, DSD support is not in the VLC yet (I checked that about 1 year ago).

That's how sorting works right now- it sorts either by file type or alphabetically: https://github.com/project-owner/Pe...ea31152ad773777a0f590c9/util/fileutil.py#L211
I'll try to improve it in the next release (tentative date - end of December).

If Airplay works, I think you can ignore that message.

A keyboard doesn't work in a Headless mode. It should work if you have touchscreen and keyboard connected to Pi.

Best regards
 
The player needs to use the 'dummy' video driver for the Headless mode:
https://github.com/project-owner/Pe...6ea31152ad773777a0f590c9/util/config.py#L1575
that doesn't work with keyboard:
https://forums.raspberrypi.com/viewtopic.php?p=699366&hilit=pygame+dummy#p699366

So, the player running in a Headless mode can be controlled either using a Web Browser running on any device in the same network or IR Remote Control.

Could you explain how that can be done using Bluetooth? Probably that could be implemented.

Best regards
 
To simplify handling of IR Remote Controls the player maps all IR commands to the keyboard events:
https://github.com/project-owner/Pe...65806ac18c89faafdbd52/event/dispatcher.py#L35

According to this page the pairing of the Bluetooth keyboard looks the same as pairing of any other Bluetooth device:
https://www.radishlogic.com/raspberry-pi/how-to-connect-raspberry-pi-to-bluetooth-keyboard/
And that's implemented already in the player for example for external Bluetooth speakers.
I'm not sure how player will distinguish keyboard from speakers in this case?
Also 'dummy' driver doesn't handle keyboard events. So it should be implemented in some other way for example writing separate code which would do that.

Best regards
 
Is my understanding correct?
Hardware:
Bluetooth keyboard or remote control
Some USB Bluetooth dongle inserted into Pi which will receive commands from a keyboard or remote control. Is it really required? Pi can handle Bluetooth signal itself.
Software:
some software which will convert commands received by USB Bluetooth dongle to LIRC commands.
 
Some USB Bluetooth dongle inserted into Pi which will receive commands from a keyboard or remote control. Is it really required?
The end product will be the Odroid C2. The C2 does not have Bluetooth.
Yes I did test a BT keyboard on the RPi with a touchscreen connected and it works.
But i had to use the CLI (bluetoothctl) for pairing because you need to type characters on the keyboard for pairing
and you don't see the characters in Peppy.

Since you said "dummy driver doesn't handle keyboard events" i was thinking about using a HDMI Dummy.
But i also want on/off via the remote and that will not work over BT because if off BT does not work.

So now I will use RF and ordered some Adafruit Feather with RFM69:
https://www.adafruit.com/product/3077

They have lipoly charger onboard so i don't need to think about how power is handled.
I also did thinks in the past with RFM69 so I have experience with it.

I can use I2C or serial to communicate with the Odroid (Peppy).

Here is a quick sketch of the remote/transmitter:
L.I.S.A - RM-X4S.gif
 
I've never used Odroid C2 and didn't know that it doesn't have on-board Bluetooth.

You still need to integrate that Adafruit Feather to the Peppy player.

I'm not sure how you are going to connect that Sony remote to the Odroid. As far as I understand this is a wired remote which connects through the cable. Can you connect it to Odroid using the audio jack? If this is the case why do you need anything else? Do you want to control the player from that wired remote and from wireless remote?
 
New version (Signac Edition) of the Peppy Player was released today.

The disk images with the new release are available here:
https://github.com/project-owner/PeppyPlayers.doc/wiki/Disk-Images

Here are the main features of the new release:

- Added File Browser Quick Configuration popup menu:
https://github.com/project-owner/Peppy.doc/wiki/File-Browser-Quick-Configuration-Menu
It allows quickly change different File Browser parameters.
Here is the example of switching from the List view to the Icon View, enabling/disabling folder images and changing the number of rows and columns (resolution 1280x400):

file-browser.jpg


- Refactored the VU Meter screensaver. Added new default meters.

meters-5.jpg


- Improved Clock screensaver:
https://github.com/project-owner/Peppy.doc/wiki/Clock

It's possible now to enable seconds, change font and use images for the Clock screensaver.
Here is the example of using different screensaver parameters (resolution 480x320 and 1280x400):

clock-1.jpg


  • Implemented Font upload functionality.
  • Volume and equalizer values are visible now during update.
  • Improved File Browser REST API.
  • Fixed Timer wake-up function and language disabling issue.
 
  • Like
Reactions: 3 users