Home of the Squeezebox™ & Transporter® network music players.
Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 27
  1. #11
    Junior Member
    Join Date
    Sep 2019
    Posts
    18
    Quote Originally Posted by mherger View Post
    >
    You mentioned IR. Which makes me wonder whether you implemented a UI,
    too? Or how else would you use the IR remote?

    Why don't you fire up one of your Pis with pCP and give it a try?
    My server generates bitmaps (quite small ones for a Classic) and sends them down as grfe commands. That gets used in all sorts of ways, everything from date/time/weather to, of course, navigating the song catalog. It's not my preferred way to pick songs - I have a separate GUI that runs on my laptop for that - but it's how my wife picks songs, adjusts volume, etc. So I will need to implement that. Since it doesn't look like squeezelite implements the grfe command, I'll just write something to run on the pi, send it those messages, and handle the display separately. Since any display I plug into the pi will have more available pixels than the classic did, it;'s a chance to display extra information anyway.

    I assume squeezelite can read signals from an attached IR device and ship them to the server in the same way the Classic did, in which case my server will see them and do what's needed.

    Yeah. This will become my next project. Kudos to whoever came up with squeezelite, as if this works it's going to save me hundreds of dollars and hours.

  2. #12
    Senior Member ralphy's Avatar
    Join Date
    Jan 2006
    Location
    Canada
    Posts
    2,223
    Quote Originally Posted by ScottAM View Post
    I assume squeezelite can read signals from an attached IR device and ship them to the server in the same way the Classic did, in which case my server will see them and do what's needed.

    Yeah. This will become my next project. Kudos to whoever came up with squeezelite, as if this works it's going to save me hundreds of dollars and hours.
    Squeezelite doesn't relay all buttons as the IR support was only intended for player transport control.

    You can see what commands are currently supported in ir.c.
    Ralphy

    1-Touch, 5-Classics, 3-Booms, 1-UE Radio
    Squeezebox client builds donations always appreciated.

  3. #13
    Junior Member
    Join Date
    Sep 2019
    Posts
    18

    Need more help...

    So I've set up a Raspberry pi with PiCore, and it boots fine and offers a web page, which I was able to use to configure SqueezeLite to talk to my custom squeeze server. Kudos, this seems like a well-thought-out web interface.

    I wasn't shocked to discover SqueezeLite and my server don't agree on the slim protocol - my server was written for version 81 of the squeezebox software, years ago, and of course things have changed.

    The first obstacle is that squeezelite expects to see a command sent to it from the server every ~30 seconds, or it disconnects. My server doesn't send anything periodically (and the original Classic was fine with that); and it's not obvious what I should send - I could do a hack like sending the volume over and over, but that can't be what's intended. The squeezelite code isn't heavily commented. I can slowly slog through the trial and error of "just keep trying stuff" but I'm hoping I can approach this more cleverly. What I probably need is the ability to contact the author and pester him with questions, but I don't know how. (Edit: or, I could hope that the Ralph I----- of Githib is "ralphy" here. Hi?)

    What's my best resource for figuring out what I need to change? My goal is to change only my server. I haven't found (helpful) documentation; does anyone have experience with the slim protocol? If I should be asking somewhere else, where? Any help welcome.
    Last edited by ScottAM; 2019-09-15 at 08:57.

  4. #14
    Senior Member paul-'s Avatar
    Join Date
    Jan 2013
    Posts
    2,331
    Other than reading source code, did you look at the wiki

    http://wiki.slimdevices.com/index.ph...DeveloperGuide
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://www.picoreplayer.org

    Please donate if you like the piCorePlayer

  5. #15
    Junior Member
    Join Date
    Sep 2019
    Posts
    18
    Quote Originally Posted by paul- View Post
    Other than reading source code, did you look at the wiki

    http://wiki.slimdevices.com/index.ph...DeveloperGuide
    I have; it doesn't all apply to squeezelite, which doesn't use several of those commands. It's an improvement on what was available back when I wrote my server, but it's nothing like enough. Where for example does it mention that as of version x, command z has to be sent every n seconds or there's an automatic disconnect?

  6. #16
    Senior Member
    Join Date
    Apr 2005
    Location
    UK/London
    Posts
    1,879
    Your best bet might be to install LMS somewhere in your network and then turn on slimproto debugging and hook up a Squeezelite to it to see what is going on - or run Squeezelite with debugging turned on since it does dump out quite a lot of slimproto info as it goes.


    LMS web UI/settings/advance/logging/(network.protocol.slimproto) - SlimProto (Squeezebox / Transporter) Protocol
    Paul Webster
    http://dabdig.blogspot.com
    Author Radio France (FIP etc) plugin

  7. #17
    Junior Member
    Join Date
    Sep 2019
    Posts
    18
    Quote Originally Posted by Paul Webster View Post
    Your best bet might be to install LMS somewhere in your network and then turn on slimproto debugging and hook up a Squeezelite to it to see what is going on - or run Squeezelite with debugging turned on since it does dump out quite a lot of slimproto info as it goes.


    LMS web UI/settings/advance/logging/(network.protocol.slimproto) - SlimProto (Squeezebox / Transporter) Protocol
    Actually, I'm happy to report that when I worked around two problems (the UDP discovery protocol changed so I just set squeezelite to look directly for the server's ip; and; squeezelite wants to see messages every few seconds, so I set the volume to what it already is at internals), the rest just worked. I have lots of testing to do but at least I have a solution. I will try putting up the standard LMS and seeing how it gets around the timeout (since I doubt it sends volume commands over and over), thanks.

    Next up is getting audio off the awful 3.5mm jack. For my main stereo I need optical (TOSlink) output. (Don't need a DAC, in other words). A cheap soundcard I have has an optical out but only has 16 bit depth, and it doesn't sound good. What's my best bet for getting TOSlink out from a pi at 24-bit depth? (Having the additional option of DAC and stareo analog outputs wouldn't be a bad thing.)

    The other systems do need a DAC and RCA outputs, but my need for high fidelity isn't quite as extreme. Have people been happy with HIFIBERRY DAC+ offering?

  8. #18
    Senior Member
    Join Date
    May 2008
    Location
    United States
    Posts
    11,519
    The hifiberry Digi+ has Toslink output. (also, I've been a happy user of the hifiberry Dac+)
    https://www.hifiberry.com/products/digiplus/
    Home: VBA 4TB (2.5)>LMS 7.9.2>Transporter, Touch, Boom, Radio (all ethernet)
    Cottage: VBA 3TB (2.4)>LMS 7.9.1>Touch>Benchmark DAC I, Boom, Radio w/Battery (ethernet, Radio WIFI)
    Office: Win10(64)>LMS 7.9.2>Squeezelite
    The Wild (no internet): PiCorePlayer 4.0 on rPi 3B+, hifiberry Dac+Pro, 4TB USB (LMS & Squeezelite)
    Controllers: iPhone6 & iPadAir2 (iPeng), CONTROLLER, or SqueezePlay 7.8 on Win10(64) laptop
    Files: ripping: dbpa > FLAC; post-rip: mp3tag, PerfectTunes; Streaming: Spotify

  9. #19
    Senior Member paul-'s Avatar
    Join Date
    Jan 2013
    Posts
    2,331
    Hifiberry and Allo have good products.

    The disconnect would be squeezelite's implementation, as it has the ability to go look for another server if the server quits communicating. Here is the squeezelite startup with logging set to slimproto=sdebug...... The player power is off, nothing is playing right now. So the stream command t is coming from the server every 4-5 second

    Code:
    usr/local/bin/squeezelite -n Pi4-4G-devel -a 80:4::1: -d slimproto=sdebug -f /var/log/pcp_squeezelite.log 
    [19:41:52.732933] discover_server:788 sending discovery
    [19:41:52.733570] discover_server:799 got response from: 192.168.0.141:3483
    [19:41:52.733781] slimproto:887 connecting to 192.168.0.141:3483
    [19:41:52.734076] slimproto:926 connected
    [19:41:52.734097] sendHELO:142 mac: xx:xx:xx:xx:xx
    [19:41:52.734109] sendHELO:144 cap: CanHTTPS=1,Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Firmware=v1.9.6-1194-pCP,ModelName=SqueezeLite,MaxSampleRate=768000,aac,ogg,ops,ogf,flc,aif,pcm,mp3
    [19:41:52.736288] process:521 strm
    [19:41:52.736302] process_strm:274 strm command q
    [19:41:52.736316] sendSTAT:165 ms_played: 0
    [19:41:52.736326] sendSTAT:189 STAT: STMf
    [19:41:52.736335] sendSTAT:194 received bytesL: 0 streambuf: 0 outputbuf: 0 calc elapsed: 0 real elapsed: 323536 (diff: -323536) device: 46 delay: 3
    [19:41:52.736594] process:521 setd
    [19:41:52.736607] sendSETDName:248 set playername: Pi4-4G-devel
    [19:41:52.736692] process:521 setd
    [19:41:52.737000] process:521 aude
    [19:41:52.737011] process_aude:415 enable spdif: 0 dac: 0
    [19:41:52.737307] process:521 audg
    [19:41:52.737318] process_audg:433 audg gainL: 14080 gainR: 14080 adjust: 1
    [19:41:54.134711] process:521 strm
    [19:41:54.134789] process_strm:274 strm command t
    [19:41:54.134821] sendSTAT:165 ms_played: 0
    [19:41:54.134849] sendSTAT:189 STAT: STMt
    [19:41:54.134873] sendSTAT:194 received bytesL: 0 streambuf: 0 outputbuf: 0 calc elapsed: 0 real elapsed: 324934 (diff: -324934) device: 46 delay: 1401
    [19:41:59.011873] process:521 strm
    [19:41:59.011951] process_strm:274 strm command t
    [19:41:59.011983] sendSTAT:165 ms_played: 0
    [19:41:59.012011] sendSTAT:189 STAT: STMt
    [19:41:59.012034] sendSTAT:194 received bytesL: 0 streambuf: 0 outputbuf: 0 calc elapsed: 0 real elapsed: 329811 (diff: -329811) device: 46 delay: 6278
    [19:42:03.011705] process:521 strm
    [19:42:03.011785] process_strm:274 strm command t
    [19:42:03.011818] sendSTAT:165 ms_played: 0
    [19:42:03.011846] sendSTAT:189 STAT: STMt
    [19:42:03.011870] sendSTAT:194 received bytesL: 0 streambuf: 0 outputbuf: 0 calc elapsed: 0 real elapsed: 333811 (diff: -333811) device: 46 delay: 10278
    [19:42:07.011804] process:521 strm
    [19:42:07.011846] process_strm:274 strm command t
    [19:42:07.011859] sendSTAT:165 ms_played: 0
    [19:42:07.011871] sendSTAT:189 STAT: STMt
    [19:42:07.011881] sendSTAT:194 received bytesL: 0 streambuf: 0 outputbuf: 0 calc elapsed: 0 real elapsed: 337811 (diff: -337811) device: 46 delay: 14278
    [19:42:11.011441] process:521 strm
    [19:42:11.011522] process_strm:274 strm command t
    [19:42:11.011554] sendSTAT:165 ms_played: 0
    [19:42:11.011583] sendSTAT:189 STAT: STMt
    [19:42:11.011608] sendSTAT:194 received bytesL: 0 streambuf: 0 outputbuf: 0 calc elapsed: 0 real elapsed: 341811 (diff: -341811) device: 46 delay: 18278
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://www.picoreplayer.org

    Please donate if you like the piCorePlayer

  10. #20
    Junior Member
    Join Date
    Sep 2019
    Posts
    18

    Ir?

    Quote Originally Posted by ralphy View Post
    Squeezelite doesn't relay all buttons as the IR support was only intended for player transport control.

    You can see what commands are currently supported in ir.c.
    Would it be difficult to add in all the buttons on the squeeze classic remote? My wife is very used to using the remote to get around.

    Also, what's the simplest way to hook up an IR receiver? I'm not seeing anything cheaper than USB Infrared Toy v2 (~20$). Are there better options?

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •