User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Sun Feb 18, 2018 11:24 pm

klaus.raspberry wrote:
Sun Feb 18, 2018 8:50 pm
Good evening Mike,

you wrote in an older post that run fruitbox on a Pi Zero. I bought a Pi Zero W and installed raspbian stretch lite and fruitbox 1.6. I adjusted the memory split (256) , updated the firmware and and upgrade the OS. Sadly it doesn't run stable.

After a few songs(sometimes one, sometimes 2 or more ) the system is freezing and I have to restart it. For testing I installed a mp3 player (mpg123). This could I run in a "loop" without problems. Have you made any further configuration steps to run it on your Pi?

@All,
has someone else run it successfully on a Pi Zero W?

Thanks in advance
Best Regards Bernd

P.s. @Mike Many thanks for your work and spending your time on this hugely useful piece of software.
Hi Bernd

Yes I run fruitbox on a Pi zero (not zero W)...actually it's my main Pi I use for development. I don't use any extra steps to those described in the readme file on GitHub so am not sure why you're setup isn't working. A few things to check are...

  • Is your power supply ok?
  • What skin are you using?
  • Are you getting any messages on the terminal output?
I may be able to borrow a Pi zero W ... if so I will try it out on that and see if I can reproduce your problems...

Mike

klaus.raspberry
Posts: 4
Joined: Sun Feb 18, 2018 7:49 pm

Re: fruitbox MP3 jukebox

Mon Feb 19, 2018 8:22 pm

fruitbox wrote:
Sun Feb 18, 2018 11:24 pm
klaus.raspberry wrote:
Sun Feb 18, 2018 8:50 pm
Good evening Mike,

you wrote in an older post that run fruitbox on a Pi Zero. I bought a Pi Zero W and installed raspbian stretch lite and fruitbox 1.6. I adjusted the memory split (256) , updated the firmware and and upgrade the OS. Sadly it doesn't run stable.

After a few songs(sometimes one, sometimes 2 or more ) the system is freezing and I have to restart it. For testing I installed a mp3 player (mpg123). This could I run in a "loop" without problems. Have you made any further configuration steps to run it on your Pi?

@All,
has someone else run it successfully on a Pi Zero W?

Thanks in advance
Best Regards Bernd

P.s. @Mike Many thanks for your work and spending your time on this hugely useful piece of software.
Hi Bernd

Yes I run fruitbox on a Pi zero (not zero W)...actually it's my main Pi I use for development. I don't use any extra steps to those described in the readme file on GitHub so am not sure why you're setup isn't working. A few things to check are...

  • Is your power supply ok?
  • What skin are you using?
  • Are you getting any messages on the terminal output?
I may be able to borrow a Pi zero W ... if so I will try it out on that and see if I can reproduce your problems...

Mike
Hi Mike,
i tryed it with version 1.3. The same problem:
  • I use the official power supply with 2.5 A
  • WallJuke or Modern
  • Output from dmesg with Modern after freezing :

    Code: Select all

    [ 4309.978965] Unable to handle kernel NULL pointer dereference at virtual address 000007b0
    [ 4309.992967] pgd = cc5e0000
    [ 4310.000700] [000007b0] *pgd=0c423831, *pte=00000000, *ppte=00000000
    [ 4310.008195] Internal error: Oops: 17 [#2] ARM
    [ 4310.015732] Modules linked in: cmac bnep hci_uart bluetooth ecdh_generic evdev brcmfmac brcmutil snd_bcm2835(C) snd_pcm snd_timer snd cfg80211 rfkill fixed uio_pdrv_genirq uio ip_tables x_tables ipv6
    [ 4310.030941] CPU: 0 PID: 1073 Comm: fruitbox Tainted: G      D  C      4.14.18+ #1093
    [ 4310.038851] Hardware name: BCM2835
    [ 4310.046329] task: cc40c560 task.stack: cc68e000
    [ 4310.054157] PC is at do_futex+0x110/0xa38
    [ 4310.061550] LR is at futex_wait+0x1e8/0x230
    [ 4310.069299] pc : [<c0081368>]    lr : [<c007fb70>]    psr: 60000013
    [ 4310.076614] sp : cc68fec0  ip : cc68fe08  fp : cc68ff5c
    [ 4310.084148] r10: b6a1fa58  r9 : cc68e000  r8 : 00000001
    [ 4310.091350] r7 : b6a1fa58  r6 : 00000002  r5 : 00000001  r4 : 00000000
    [ 4310.098643] r3 : 00000000  r2 : ce8b6820  r1 : 00000002  r0 : 00000000
    [ 4310.106024] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    [ 4310.113038] Control: 00c5387d  Table: 0c5e0008  DAC: 00000055
    [ 4310.120129] Process fruitbox (pid: 1073, stack limit = 0xcc68e188)
    [ 4310.127168] Stack: (0xcc68fec0 to 0xcc690000)
    [ 4310.134230] fec0: ffffffff c03dca80 c092b9a0 00000001 cc68ff0c cc68fee0 c03dca80 c0062004
    [ 4310.141101] fee0: 00000000 0001a00b cf2edd88 cc5c7f00 00000003 00000003 cc68e000 00000000
    [ 4310.148318] ff00: cc68ff7c cc68ff10 c016c4a8 c0501a48 c006f8e4 c04d8b5c 85927c03 00072b1e
    [ 4310.155433] ff20: cc68ff44 c01770c4 cc4cd180 00004000 0001a00b 00000000 00000009 00000189
    [ 4310.162271] ff40: b6a1fa58 00000001 cc68e000 00000000 cc68ffa4 cc68ff60 c0081db4 c0081264
    [ 4310.169261] ff60: 00000000 00000000 ffffffff cc5c7f01 cc68ffa4 cc68ff80 c016cbbc c015b42c
    [ 4310.176008] ff80: 00000000 ffffffff 00000000 000000f0 c000ffa4 cc68e000 00000000 cc68ffa8
    [ 4310.182897] ffa0: c000fe00 c0081c9c 00000000 ffffffff b6a1fa58 00000189 00000001 00000000
    [ 4310.189794] ffc0: 00000000 ffffffff 00000000 000000f0 bed7929c b6a1f880 005cc970 bed792d4
    [ 4310.196369] ffe0: 00000000 bed79220 00000000 b6c36018 80000010 b6a1fa58 00000000 00000000
    [ 4310.203107] [<c0081368>] (do_futex) from [<c0081db4>] (SyS_futex+0x124/0x1a4)
    [ 4310.209661] [<c0081db4>] (SyS_futex) from [<c000fe00>] (ret_fast_syscall+0x0/0x28)
    [ 4310.216335] Code: e1a0000a e1a01006 e1a02005 ebfff987 (e24bd028)
    [ 4310.223136] ---[ end trace f2e6ff78e0ff38cd ]---
    
  • Output from fruitbox

    Code: Select all

    login as: pi
    [email protected]'s password:
    Linux raspberrypi 4.14.18+ #1093 Fri Feb 9 15:07:36 GMT 2018 armv6l
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    Last login: Mon Feb 19 19:29:37 2018 from 192.168.0.123
    [email protected]:~ $ cd rpi-fruitbox-master
    [email protected]:~/rpi-fruitbox-master $ ./fruitbox --cfg skins/Modern/fruitbox.cfg
    
    fruitbox v1.3 (Dec 24 2017, 10:52:06) by Mike Kingsley
    A customisable MP3 Retro Jukebox for the Raspberry Pi
      SkinSize = 1920 1080
    Detecting display...1024 x 768 (60Hz)
    NOTE: Skin size will be scaled to fit display
    Reading configuration 'skins/Modern/fruitbox.cfg'...
    
      [general]
      Database = ../fruitbox.db
      MusicPath = ../Music/
      SortSongsBy = Artist
      SelectKeys = AD09
      AutoSelect = true
      SelectTimeout = 150
      SelectHoldTimeout = 150
      AutoPageTurnTime = 3000
      MaxPlaylistLength = 20
      LoopPlaylist = false
      AutoPlay = true
      AutoPlayGap = 3000
      PlaysPerCoin = 0
      SongsPerPage = 2
      PageSize = 400 100
      PairSongs = true
      PageMoveStyle = 20 5 true
      SongLoadTime = 10
      SongUnloadTime = 0
      ArtistText = 0 0 0 0 255 centre true true false 0 0
      AlbumText = 0 0 0 0 255 centre false false false 0 0
      SongText = 1 200 0 0 255 centre true true false 0 0
    
      [font]
      File = skins/Modern/atwriter.ttf
      Height = 25
    
      [font]
      File = skins/Modern/Travelling.ttf
      Height = 30
    
      [font]
      File = skins/Modern/arcade-n.ttf
      Height = 45
    
      [font]
      File = skins/Modern/dotmatrx.ttf
      Height = 20
    
      [font]
      File = skins/Modern/dotmatrx.ttf
      Height = 15
    
      [page]
      Position = 5 50
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 0
    
      [page]
      Position = 5 160
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 5
    
      [page]
      Position = 5 270
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 10
    
      [page]
      Position = 5 385
      Angle = 1
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 15
    
      [page]
      Position = 5 500
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 20
    
      [page]
      Position = 550 50
      Angle = 359
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 2
    
      [page]
      Position = 550 160
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 7
    
      [page]
      Position = 550 270
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 12
    
      [page]
      Position = 550 385
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 17
    
      [page]
      Position = 550 500
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 22
    
      [page]
      Position = 980 50
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 3
    
      [page]
      Position = 980 160
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 8
    
      [page]
      Position = 980 270
      Angle = 1
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 13
    
      [page]
      Position = 980 385
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 18
    
      [page]
      Position = 980 500
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 23
    
      [page]
      Position = 1500 50
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 4
    
      [page]
      Position = 1500 160
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 9
    
      [page]
      Position = 1500 270
      Angle = 359
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 14
    
      [page]
      Position = 1500 385
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 19
    
      [page]
      Position = 1500 500
      Angle = 0
      Background = skins/Modern/page_bkgnd.png
      MoveDelay = 24
    
      [status]
      Contents = skins/Modern/record_spin.txt
      Bitmap = skins/Modern/record_spin01.png
      Bitmap = skins/Modern/record_spin02.png
      Bitmap = skins/Modern/record_spin03.png
      Bitmap = skins/Modern/record_spin04.png
      Bitmap = skins/Modern/record_spin05.png
      Bitmap = skins/Modern/record_spin06.png
      Bitmap = skins/Modern/record_spin07.png
      Bitmap = skins/Modern/record_spin08.png
      Bitmap = skins/Modern/record_spin09.png
      Bitmap = skins/Modern/record_spin10.png
      Bitmap = skins/Modern/record_spin11.png
      Bitmap = skins/Modern/record_spin12.png
      Bitmap = skins/Modern/record_spin13.png
      Bitmap = skins/Modern/record_spin14.png
      Bitmap = skins/Modern/record_spin15.png
      Bitmap = skins/Modern/record_spin16.png
      Size = 750 200
      Position = 580 800
      TimerTickPeriod = 4
    
      [status]
      Position = 700 750
      Size = 525 100
      Text = 3 182 255 182 255 centre false false false 0 0
      Contents = skins/Modern/status0.txt
      TimerTickPeriod = 50
      LineSpacing = 1
    
      [status]
      Position = 700 780
      Size = 525 100
      Text = 4 182 255 182 255 centre false false false 0 0
      Contents = skins/Modern/status1.txt
      LineSpacing = 1
    
      [status]
      Position = 360 850
      Size = 190 260
      Text = 2 0 163 35 255 centre false false false 0 0
      Contents = skins/Modern/status2.txt
    
      [status]
      Position = 1365 850
      Size = 190 260
      Text = 2 0 163 25 255 centre false false false 0 0
      Contents = skins/Modern/status3.txt
      TimerTickPeriod = 150
    
      [status]
      Contents = skins/Modern/lights_off.txt
      Bitmap = skins/Modern/instructions-left-off.png
      Size = 318 380
      Position = 0 640
    
      [status]
      Contents = skins/Modern/lights_on.txt
      Bitmap = skins/Modern/instructions-left-01.png
      Bitmap = skins/Modern/instructions-left-02.png
      Bitmap = skins/Modern/instructions-left-03.png
      Bitmap = skins/Modern/instructions-left-04.png
      Bitmap = skins/Modern/instructions-left-05.png
      Bitmap = skins/Modern/instructions-left-06.png
      Bitmap = skins/Modern/instructions-left-07.png
      Bitmap = skins/Modern/instructions-left-08.png
      Bitmap = skins/Modern/instructions-left-09.png
      Size = 318 380
      Position = 0 640
      TimerTickPeriod = 1
    
      [status]
      Contents = skins/Modern/lights_off.txt
      Bitmap = skins/Modern/instructions-right-off.png
      Size = 318 380
      Position = 1615 640
    
      [status]
      Contents = skins/Modern/lights_on.txt
      Bitmap = skins/Modern/instructions-right-01.png
      Bitmap = skins/Modern/instructions-right-02.png
      Bitmap = skins/Modern/instructions-right-03.png
      Bitmap = skins/Modern/instructions-right-04.png
      Bitmap = skins/Modern/instructions-right-05.png
      Bitmap = skins/Modern/instructions-right-06.png
      Bitmap = skins/Modern/instructions-right-07.png
      Bitmap = skins/Modern/instructions-right-08.png
      Size = 318 380
      Position = 1615 640
      TimerTickPeriod = 1
    
      [bitmap]
      File = skins/Modern/foreground.png
      Position = 0 0
      Size = 1920 1080
    
    Initialising audio ...
    Loading database '../fruitbox.db'...27 songs found
    Sorting songs by Artist...
    Building song pages...
    Let's Rock!
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.008195] Internal error: Oops: 17 [#2] ARM
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.120129] Process fruitbox (pid: 1073, stack limit = 0xcc68e188)
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.127168] Stack: (0xcc68fec0 to 0xcc690000)
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.134230] fec0: ffffffff c03dca80 c092b9a0 00000001 cc68ff0c cc68fee0 c03dca80 c0062004
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.141101] fee0: 00000000 0001a00b cf2edd88 cc5c7f00 00000003 00000003 cc68e000 00000000
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.148318] ff00: cc68ff7c cc68ff10 c016c4a8 c0501a48 c006f8e4 c04d8b5c 85927c03 00072b1e
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.155433] ff20: cc68ff44 c01770c4 cc4cd180 00004000 0001a00b 00000000 00000009 00000189
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.162271] ff40: b6a1fa58 00000001 cc68e000 00000000 cc68ffa4 cc68ff60 c0081db4 c0081264
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.169261] ff60: 00000000 00000000 ffffffff cc5c7f01 cc68ffa4 cc68ff80 c016cbbc c015b42c
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.176008] ff80: 00000000 ffffffff 00000000 000000f0 c000ffa4 cc68e000 00000000 cc68ffa8
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.182897] ffa0: c000fe00 c0081c9c 00000000 ffffffff b6a1fa58 00000189 00000001 00000000
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.189794] ffc0: 00000000 ffffffff 00000000 000000f0 bed7929c b6a1f880 005cc970 bed792d4
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.196369] ffe0: 00000000 bed79220 00000000 b6c36018 80000010 b6a1fa58 00000000 00000000
    
    Message from [email protected] at Feb 19 20:13:52 ...
     kernel:[ 4310.216335] Code: e1a0000a e1a01006 e1a02005 ebfff987 (e24bd028)
    
I hope you could interprate the outputs.

Many Thanks
Best Regards
Bernd

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Mon Feb 19, 2018 9:50 pm

Hi Bernd

I managed to borrow a Pi zero W and have run up fruitbox v1.6 on it, with no problems. The only obvious difference now is the song database, so could you send me your database file perhaps? (Either here or PM it to me...)

Does it freeze when a particular song is playing?

Thanks,
Mike

mlill
Posts: 16
Joined: Sat Sep 12, 2015 1:58 am

Re: fruitbox MP3 jukebox

Mon Feb 19, 2018 10:48 pm

Hi Mike
Just want to take a moment and thank you for sharing the FruitBox with the world, it is really an awesome program. Having dropped many quarters into the real counter top units, this brings back good (old) memories. :)

I have been running the V1.6 on PiZ-W since shortly after you made it available and it has been rock solid. The only problem that occurs is the wifi seems to go to sleep which has nothing to do with the FruitBox. To avoid having to be rude and pull the power, I use a tool from Adafruit that has a graceful shutdown, Adafruit-GPIO-Halt

Also because of the startup of FruitBox being in the .bashrc when one does ssh into the system it will cause a second copy to run and things get messy. A simple script to check for the pid of fruitbox and skip the startup command works for me.

The one feature item that you recently mentioned and I am looking forward to use is have a text file generated on the song being played. One place that I would like to use this data is in the HomeAssistant display.

Thank you :)
Mike (another one)

Frontenac
Posts: 2
Joined: Sun Nov 12, 2017 6:00 pm

Re: fruitbox MP3 jukebox

Wed Feb 21, 2018 5:14 pm

Hi! Do you think it can run on a armbian (runming stretch) ? (than i can use m'y useless orangepipcplus)
Thank you for your excellent work

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Wed Feb 21, 2018 10:25 pm

Frontenac wrote:
Wed Feb 21, 2018 5:14 pm
Hi! Do you think it can run on a armbian (runming stretch) ? (than i can use m'y useless orangepipcplus)
Thank you for your excellent work
Hi,

Not without some work. fruitbox accesses the Broadcom chip peripheral registers directly for GPIO, so (I'm assuming) won't work with the Orange Pi SoC (AllWinner H3). I may be wrong; if the AllWinner H3 designers have made their Silicon memory map compatible with the Raspberry Pi Broadcom devices, then it may be worth giving it a try, as long as you are running Raspbian on your Orange Pi...

Cheers,
Mike

joggyBnoob
Posts: 6
Joined: Sun Feb 11, 2018 10:30 am

Re: fruitbox MP3 jukebox

Thu Feb 22, 2018 5:09 pm

fruitbox wrote:
Sun Feb 11, 2018 3:51 pm
joggyBnoob wrote:
Sun Feb 11, 2018 1:19 pm
Hi Mike and all,

Thank you for your work.

I have a problem with JoyButton 0.
In the 'fruitbox.btn' file, joyButton 0 is associated with 'ButtonSkip'.
When I run fruitbox.cfg, only the ButtonSkip = JoyButton 0 is not loaded.

Another thing:
I'm building a panel with arcade buttons that use 2 usb encoder.
With 'test-buttons', the buttons on both joysticks have the same configuration number. 2 times Joybutton 0, JoyButton 1 ...

Is it possible to differentiate the 2 joysticks in the configuration?

Cheers.

JBn.
Hi

I'm not sure why you are seeing a problem with that button, but I'll try and recreate the issue and fix it.

For multiple joysticks, fruitbox doesn't support that but it should be easy for me to put that in the next release.

Cheers
Mike

Hi Mike,

JoyButton 0 is ok with other command.

ButtonSkip never is loaded, even i configure another JoyButton or KeyBoard xx.
ButtonSkip work with keyboard by default.

Cheers.

JoggyBnoob.

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Thu Feb 22, 2018 5:42 pm

joggyBnoob wrote:
Thu Feb 22, 2018 5:09 pm
fruitbox wrote:
Sun Feb 11, 2018 3:51 pm
joggyBnoob wrote:
Sun Feb 11, 2018 1:19 pm
Hi Mike and all,

Thank you for your work.

I have a problem with JoyButton 0.
In the 'fruitbox.btn' file, joyButton 0 is associated with 'ButtonSkip'.
When I run fruitbox.cfg, only the ButtonSkip = JoyButton 0 is not loaded.

Another thing:
I'm building a panel with arcade buttons that use 2 usb encoder.
With 'test-buttons', the buttons on both joysticks have the same configuration number. 2 times Joybutton 0, JoyButton 1 ...

Is it possible to differentiate the 2 joysticks in the configuration?

Cheers.

JBn.
Hi

I'm not sure why you are seeing a problem with that button, but I'll try and recreate the issue and fix it.

For multiple joysticks, fruitbox doesn't support that but it should be easy for me to put that in the next release.

Cheers
Mike

Hi Mike,

JoyButton 0 is ok with other command.

ButtonSkip never is loaded, even i configure another JoyButton or KeyBoard xx.
ButtonSkip work with keyboard by default.

Cheers.

JoggyBnoob.
Hi,

Sounds strange. I'm about to release version 1.7, so shall we see if it works ok on that release?

Thanks,
Mike

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Thu Feb 22, 2018 7:45 pm

Hi

fruitbox v1.7 is now released!

This version adds several new features:

-> *new* Optional Skin Chooser start-up menu
-> *new* Status output to external file(s)
-> *new* Support for multiple joysticks
-> *new* Support for user-specified (key/button based) input devices

...and provides the following enhancements:

-> Improved user interface for button mapping and database creation
-> Database file search is now case-insensitive for mp3 file extensions
-> Volume control is now logarithmic to give better response over 0-100% range
-> Ability to override config file database and music-path settings from command line
-> Added Power-Off button

Also, some minor skin tweaks have been done.


Skin Chooser

To use the skin chooser menu, run fruitbox as follows...

Code: Select all

sudo ./fruitbox --choose-cfg skins.txt
...then you can browse skins using the left and right buttons. Any other button will activate the selected skin. (For touch input, press the left and right arrows, and the chooser box to select).

To add more skins to the menu, you need to edit skins.txt (or any file you have specified). The skin chooser looks for screenshot.jpg files in each skin directory to show you a preview. If you have made your own skin then you can generate the screenshot file using the command...

Code: Select all

sudo ./fruitbox --cfg <your skin file> --screenshot
...and don't forget you can have different cfg files in the same skin directory (for example to load different databases into the same skin style if you want different music sets).


Status Output

A useful new feature is the ability for fruitbox to output status information to other applications, for example the name of the currently playing song. The [status] objects in the skin config files have been enhanced by adding an 'Output' parameter, which specifies a file name to which the (text only) status is written.

The contents of the file is dependent upon the contents of the [status] 'Contents' file, and so therefore you can add any status you like (either fixed text or any of the $variables). The status objects can direct the status information to the display (as before) and/or the Output file(s).


User-Specified Input Devices

Input devices which provide key or button press codes, which are not classified as keyboard or joysticks can now be supported by fruitbox. You can specify the name (or part of the name) of the device(s) using the '--input-device' command line argument(s) when configuring or testing the buttons using the '--configure-buttons' or '--test-buttons' options. (You can find out the name of your device(s) by running 'evtest' or 'cat /proc/bus/input/devices').


As usual, you can download fruitbox from GitHub here...

https://github.com/chundermike/rpi-fruitbox

(see README.md for installation instructions)


Cheers,
Mike
Attachments
choose_cfg.jpg
choose_cfg.jpg (247.12 KiB) Viewed 1613 times

CaptainsWordIsLaw
Posts: 1
Joined: Thu Feb 22, 2018 9:29 pm

Re: fruitbox MP3 jukebox

Thu Feb 22, 2018 9:37 pm

Hello there my english is very bad I use the Google translator.

When I start Fruitbox the program finds my music. After that, the background of the Fruitbox logo becomes very slow from white to black and the logo disappears and nothing happens. Now I press ESC and the shell shows me

Loading Databse '../Fruitbox.db' ... 33 songs found
Sorting Songs by Title ...
Sorting Songs by Artist ...
Building song pages ...
glGetError 0x505

He repeats the error several times and then nothing more.

What am I doing wrong? :(

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Fri Feb 23, 2018 6:27 am

CaptainsWordIsLaw wrote:
Thu Feb 22, 2018 9:37 pm
Hello there my english is very bad I use the Google translator.

When I start Fruitbox the program finds my music. After that, the background of the Fruitbox logo becomes very slow from white to black and the logo disappears and nothing happens. Now I press ESC and the shell shows me

Loading Databse '../Fruitbox.db' ... 33 songs found
Sorting Songs by Title ...
Sorting Songs by Artist ...
Building song pages ...
glGetError 0x505

He repeats the error several times and then nothing more.

What am I doing wrong? :(
Hi

You have run out of GPU memory. Make sure you have assigned at least 256 to the GPU by running

Code: Select all

sudo raspi-config
...the memory split option is in the Advanced menu.

Cheers,
Mike

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Fri Feb 23, 2018 10:17 am

Hi Mike, do you see a chance to get fruitbox running under "Raspberry Pi Desktop" (without GPIO support) :?:

Greetings from Germany and a nice weekend!

Jürgen

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Fri Feb 23, 2018 7:16 pm

mamer999 wrote:
Fri Feb 23, 2018 10:17 am
Hi Mike, do you see a chance to get fruitbox running under "Raspberry Pi Desktop" (without GPIO support) :?:

Greetings from Germany and a nice weekend!

Jürgen
Hi Jürgen,

Several users have been running fruitbox under the desktop, but to varying degrees of success...mainly to do with the input buttons / keyboard, so it may work for you.

If you don't want fruitbox to touch the GPIO registers, make sure no buttons are mapped to the GPIO inputs and none of the status objects in the skin you are using are driving GPIO outputs (none of the ones on GitHub are). Also make sure you don't run fruitbox with the '--config-buttons' or '--test-buttons' options as these will temporarily configure all GPIO as inputs...

Cheers,
Mike

sasquatch001
Posts: 20
Joined: Thu Dec 14, 2017 11:08 pm

Re: fruitbox MP3 jukebox

Fri Feb 23, 2018 8:28 pm

Top work Mike.

Volume control has a much better range and my pause issue has gone.

Thanks for all your hard work.

David

klaus.raspberry
Posts: 4
Joined: Sun Feb 18, 2018 7:49 pm

Re: fruitbox MP3 jukebox

Fri Feb 23, 2018 10:59 pm

fruitbox wrote:
Mon Feb 19, 2018 9:50 pm
Hi Bernd

I managed to borrow a Pi zero W and have run up fruitbox v1.6 on it, with no problems. The only obvious difference now is the song database, so could you send me your database file perhaps? (Either here or PM it to me...)

Does it freeze when a particular song is playing?

Thanks,
Mike
Hi Mike,
it doesn't depends on which song i play. I have delete database and try it with only 2 different songs. The pi always freeze. I try it with another pi and this works,

I think it is an hardware issue.

Thank you for your support.

Regards Bernd

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Sat Feb 24, 2018 7:41 am

fruitbox wrote:
Fri Feb 23, 2018 7:16 pm
mamer999 wrote:
Fri Feb 23, 2018 10:17 am
Hi Mike, do you see a chance to get fruitbox running under "Raspberry Pi Desktop" (without GPIO support) :?:

Greetings from Germany and a nice weekend!

Jürgen
Hi Jürgen,

Several users have been running fruitbox under the desktop, but to varying degrees of success...mainly to do with the input buttons / keyboard, so it may work for you.

If you don't want fruitbox to touch the GPIO registers, make sure no buttons are mapped to the GPIO inputs and none of the status objects in the skin you are using are driving GPIO outputs (none of the ones on GitHub are). Also make sure you don't run fruitbox with the '--config-buttons' or '--test-buttons' options as these will temporarily configure all GPIO as inputs...

Cheers,
Mike
Hi Mike,
I'm afraid that's a misunderstanding. I mean "Raspberry Pi Desktop (for PC and Mac)" that i have installed on an x86 PC.

Cheers,
Jürgen

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Sat Feb 24, 2018 9:12 am

Hi Mike,
I'm afraid that's a misunderstanding. I mean "Raspberry Pi Desktop (for PC and Mac)" that i have installed on an x86 PC.

Cheers,
Jürgen
Hi Jürgen,

fruitbox won't work as is because the binary is for the ARM architecture not x86. It is possible for me to rebuild for x86 (in actual fact I do already as I develop the code on a Windows PC running a Ubuntu virtual box, so most of the debugging is done on that...the fruitbox executable runs on x86 Ubuntu, then when I'm happy with that I build on the Pi itself to get the ARM binary and do the Raspberry Pi specific debugging (such as GPIO and touch screen).

To make a version for the PC Rasperry Pi desktop I will need to install that OS on a desktop and rebuild. Probably time-consuming rather than challenging (and on a PC there will be no GPIO support). Another option is to build fruitbox for Windows PC directly which is also possible. :If the demand is there I will of course give it some consideration (however a PC is rather more expensive than a Pi!)

Cheers,
Mike

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Sat Feb 24, 2018 4:03 pm

fruitbox wrote:
Sat Feb 24, 2018 9:12 am
Hi Mike,
I'm afraid that's a misunderstanding. I mean "Raspberry Pi Desktop (for PC and Mac)" that i have installed on an x86 PC.

Cheers,
Jürgen
Hi Jürgen,

fruitbox won't work as is because the binary is for the ARM architecture not x86. It is possible for me to rebuild for x86 (in actual fact I do already as I develop the code on a Windows PC running a Ubuntu virtual box, so most of the debugging is done on that...the fruitbox executable runs on x86 Ubuntu, then when I'm happy with that I build on the Pi itself to get the ARM binary and do the Raspberry Pi specific debugging (such as GPIO and touch screen).

To make a version for the PC Rasperry Pi desktop I will need to install that OS on a desktop and rebuild. Probably time-consuming rather than challenging (and on a PC there will be no GPIO support). Another option is to build fruitbox for Windows PC directly which is also possible. :If the demand is there I will of course give it some consideration (however a PC is rather more expensive than a Pi!)

Cheers,
Mike
Hi Mike,

Thank you for your answer. Since I had an old x86 PC running "Raspberry Pi Desktop", I had thought about it. Maybe in the future.

But I just have fruitbox V1.7 installed on the Pi, now ButtonSkip via GPIO (24) does not work anymore, even if I reconfigure! In V1.6 it works!

Greetings

Jürgen

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Sun Feb 25, 2018 10:02 am

Hi Jürgen

I'll take a look at that ButtonSkip issue asap...

EDIT: Just found the problem so will release v1.8 with a fix soon :)

Cheers,
Mike

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Sun Feb 25, 2018 12:59 pm

Hi

fruitbox v1.8 is now released!

-> *bugfix* for ButtonSkip re-mapping issue

-> Added 'Screenshot' skin configuration parameter
... this allows the screenshot file to be specified in the skin file, which is useful if you have multiple cfg files in the same directory, as it allows each cfg file to have its own screenshot for the skin chooser.


As usual, you can download fruitbox from GitHub here...

https://github.com/chundermike/rpi-fruitbox

(see README.md for installation instructions)


Cheers,
Mike

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Sun Feb 25, 2018 2:24 pm

fruitbox wrote:
Sun Feb 25, 2018 12:59 pm
Hi

fruitbox v1.8 is now released!

-> *bugfix* for ButtonSkip re-mapping issue

-> Added 'Screenshot' skin configuration parameter
... this allows the screenshot file to be specified in the skin file, which is useful if you have multiple cfg files in the same directory, as it allows each cfg file to have its own screenshot for the skin chooser.


As usual, you can download fruitbox from GitHub here...

https://github.com/chundermike/rpi-fruitbox

(see README.md for installation instructions)


Cheers,
Mike
Hi Mike,
super fast response, thanks :!:

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Tue Feb 27, 2018 10:47 am

Hi Mike,

Now I've got 3 projects running on the Raspberry Pi with fruitbox (1.8):

- fruitbox with arcade buttons via GPIO
- fruitbox with Elgato Stream Deck via uinput
- fruitbox with original Raspberry 7 "touch screen

Everything is going great!

Now I'm trying my fourth project: Fruitbox with a 22-inch touch screen (HDMI / USB), but there's a problem.
When I pass the --input_device to --test-buttons and --config-buttons, everything is ok. But if i start fruitbox
with the resulting fruitbox.btn and TouchOne-Skin, the program does not respond to touch input? :shock:

Cheers,
Jürgen

User avatar
fruitbox
Posts: 231
Joined: Mon Feb 22, 2016 7:35 pm
Location: UK

Re: fruitbox MP3 jukebox

Tue Feb 27, 2018 10:55 am

mamer999 wrote:
Tue Feb 27, 2018 10:47 am
Hi Mike,

Now I've got 3 projects running on the Raspberry Pi with fruitbox (1.8):

- fruitbox with arcade buttons via GPIO
- fruitbox with Elgato Stream Deck via uinput
- fruitbox with original Raspberry 7 "touch screen

Everything is going great!

Now I'm trying my fourth project: Fruitbox with a 22-inch touch screen (HDMI / USB), but there's a problem.
When I pass the --input_device to --test-buttons and --config-buttons, everything is ok. But if i start fruitbox
with the resulting fruitbox.btn and TouchOne-Skin, the program does not respond to touch input? :shock:

Cheers,
Jürgen
Hi Jürgen,

you can't use --input-device for touch screens as they return Touch events not button/key events. One solution is to change the default touch device, so edit the fruitbox.btn file and add the line

Code: Select all

TouchDevice = <name of device>
where <name of device> is the name (or part of the name) of your touch device. Use 'evtest' to find the name (for the Raspberry Pi official touch screen it is FT5406).

Then make sure your buttons in the fruitbox.btn file are set to 'Touch'

Let me know if this works...

Cheers,
Mike

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Tue Feb 27, 2018 11:05 am

fruitbox wrote:
Tue Feb 27, 2018 10:55 am
mamer999 wrote:
Tue Feb 27, 2018 10:47 am
Hi Mike,

Now I've got 3 projects running on the Raspberry Pi with fruitbox (1.8):

- fruitbox with arcade buttons via GPIO
- fruitbox with Elgato Stream Deck via uinput
- fruitbox with original Raspberry 7 "touch screen

Everything is going great!

Now I'm trying my fourth project: Fruitbox with a 22-inch touch screen (HDMI / USB), but there's a problem.
When I pass the --input_device to --test-buttons and --config-buttons, everything is ok. But if i start fruitbox
with the resulting fruitbox.btn and TouchOne-Skin, the program does not respond to touch input? :shock:

Cheers,
Jürgen
Hi Jürgen,

you can't use --input-device for touch screens as they return Touch events not button/key events. One solution is to change the default touch device, so edit the fruitbox.btn file and add the line

Code: Select all

TouchDevice = <name of device>
where <name of device> is the name (or part of the name) of your touch device. Use 'evtest' to find the name (for the Raspberry Pi official touch screen it is FT5406).

Then make sure your buttons in the fruitbox.btn file are set to 'Touch'

Let me know if this works...

Cheers,
Mike
Hi Mike,

in fruitbox.btn after ./fruitbox --config-buttons --device_name "Quanta Computer Inc. Optical Touch Screen" i have:

InputDevice = Quanta Computer Inc. Optical Touch Screen (thats the given name for my monitor via evtest)
ButtonLeft = Device 330 0
ButtonRight = Device 330 0
Button0 = Device 330 0
Button1 = Device 330 0
Button2 = Device 330 0
Button3 = Device 330 0
Button4 = Device 330 0
Button5 = Device 330 0
Button6 = Device 330 0
Button7 = Device 330 0
Button8 = Device 330 0
Button9 = Device 330 0
ButtonA = Device 330 0
ButtonB = Device 330 0
ButtonC = Device 330 0
ButtonD = Device 330 0
ButtonE = Device 330 0
ButtonF = Device 330 0
ButtonG = Device 330 0
ButtonH = Device 330 0
ButtonI = Device 330 0
ButtonJ = Device 330 0
ButtonK = Device 330 0

Jürgen

mamer999
Posts: 50
Joined: Fri Jan 26, 2018 7:56 am
Location: Germany

Re: fruitbox MP3 jukebox

Tue Feb 27, 2018 11:16 am

fruitbox wrote:
Tue Feb 27, 2018 10:55 am
mamer999 wrote:
Tue Feb 27, 2018 10:47 am
Hi Mike,

Now I've got 3 projects running on the Raspberry Pi with fruitbox (1.8):

- fruitbox with arcade buttons via GPIO
- fruitbox with Elgato Stream Deck via uinput
- fruitbox with original Raspberry 7 "touch screen

Everything is going great!

Now I'm trying my fourth project: Fruitbox with a 22-inch touch screen (HDMI / USB), but there's a problem.
When I pass the --input_device to --test-buttons and --config-buttons, everything is ok. But if i start fruitbox
with the resulting fruitbox.btn and TouchOne-Skin, the program does not respond to touch input? :shock:

Cheers,
Jürgen
Hi Jürgen,

you can't use --input-device for touch screens as they return Touch events not button/key events. One solution is to change the default touch device, so edit the fruitbox.btn file and add the line

Code: Select all

TouchDevice = <name of device>
where <name of device> is the name (or part of the name) of your touch device. Use 'evtest' to find the name (for the Raspberry Pi official touch screen it is FT5406).

Then make sure your buttons in the fruitbox.btn file are set to 'Touch'

Let me know if this works...

Cheers,
Mike
Hi Mike,

sorry, my mistake. I have to set the buttons in fruitbox.btn manually to 'Touch', correct?

Cheers
Jürgen

Return to “Graphics, sound and multimedia”

Who is online

Users browsing this forum: No registered users and 11 guests