-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Successful install, but no audio playing on Homepod #17
Comments
I’ve been having this issue for months, and I eventually ended up giving in. I limited it down to a problem with AirTunes, and specifically where it calls a method “teardown.” It can’t complete the call completely due to an error, so it aborts. From my understanding, “teardown” deals with making sure proper ports are closed when disconnecting from an AirPlay device. I figured that shouldn’t affect AirTunes’ ability to connect and stream to a device - it should only affect when it attempts to close the connection. So I edited the “tcp” file within AirTunes to not call the “teardown” method, and whaddya know, no errors anymore! The program looks like it operates... but it still won’t connect to an Airplay device, even though it says it does. That’s as far as I was able to make it. I’m not sure why Babelpod/AirTunes doesn’t work anymore, since no edits have been made to the code in years that could cause issues. I even used the same Raspberian stretch version the dev probably would’ve been using with all the same versions of nodejs, etc but still no avail. I think if we want this issue solved, either the dev of Babelpod or AirTunes will have to step in to assist. Hope this helps - cheers. |
Hey, im having the same issue. Also I'm using the raspberry for the first time and was able to set up everything. I'm able to see me input and output but can not hear anything ;( |
same issue here unfortunately |
Took me a night but I finally figured it out and got it up and running with a Homepod on 13.4 (current version in April 2020). I replaced the node_airtunes package with https://github.com/mcfisto/node_airtunes2. There are a couple of minor things you have to change. I'll fork the project to provide commits as soon as I find the time, but here's what I did, so you can fix it manually:
@GrandMaster0 @johntuesday @larxene066 @sebasjunca |
@maexdaemaege Thanks for the pointers! Updating to airtunes2 got this working briefly (a few seconds) but now I get this message and BabelPod dies with a segfault: Any suggestions for where to look? |
Just did a few minutes of research and it looks like an error from the alac encoder. This might be a related (unfortunately unsolved) issue: openairplay/node_airtunes#22. It's a bit weird since I can't find the alac implementation in node_airtunes2, even though there's an implementation in openairplay/node_airtunes. Might have been dropped in node_airtunes2. Having that said: I don't have the time to take a deeper look at the moment, so I might miss something here. (Edit: yep, there's a directory called 'alac', I missed it) Could you provide some information about what you're trying to play? A usb device? Bluetooth? I usually would suggest, that you try and debug with the examples provided in node_airtunes2, but unfortunately all of them are broken. I'll provide fixes as soon as possible. Edit: I just saw, that you forked node_airtunes2. If you want to try to fix the examples by yourself: use the lame example to begin with. |
Thanks for looking into this!
I'm trying to play through this USB capture card: https://www.amazon.com/gp/product/B079CBGDST I did see that the error comes from the ALAC Encoder, it seems that it happens when the encoded frame size is larger than expected. I was wondering if this might mean my capture card is sampling at the wrong rate?
I'm just trying to jump through the hoops to get node_airtunes2 building on my development machine now... |
@maexdaemaege – I'm just getting around to looking into this some more. I've fixed the lame example on my fork. Edit: Actually the ffmpeg example is working too. |
@magictaco Sweet! Have you had any chance to debug your initial problem with the compressed frames? I also did some commits. Basically just the fixes to get it up and running. I want to work on endpoints for a Shortcut next week, so you don't have to use the browser to change inputs/outputs. That could also enable Siri support, I guess :) For everyone who's interested in the future: I'm using a Behringer U-Control UCA202. Works like a charm. |
@magictaco I did some further improvements. Removed the volume heartbeat, which allows Siri and the HomePod buttons to control the volume again without having it reset by the heartbeat every 30s. Also fixed that Airplay devices showed up multiple times. And some other minor things. https://github.com/maexdaemaege/babelpod @afaden Are you interested in PRs or is this repo abandoned? Love the project and would like to contribute to it, so that other folks can enjoy BabelPod in the future. |
@maexdaemaege I was finally able to get playback to work consistently by using I'd also be happy to be involved with contributing to the BabelPod project if this repo moves in that direction. Edit: maybe I was a little quick to declare success... it seems that BabelPod is only streaming to one of my pair of AirPods, so I still have some tinkering to do. |
@magictaco @maexdaemaege I'm still a noob in this, but really want to get that working. I gave up when I got the connection errors (see my Issue #15 )... |
@traktuner are you trying to use line in or bluetooth as input? I am trying to get the bluetooth part working, it seems that the bluetootctl node.js wrapper is deprecated, so it wont work properly with bluealsa/bluetoothctl anymore. See also my Issue #19 . If the answer is the first, the following steps should work for you:
After that, switching between Airplay devices does not cause any crashes for me anymore. It does connect properly to the Homepod, but will immediately stop when trying to choose the Apple TV:
|
@pillar-man Thank you!! |
For anyone having trouble with the install (since it requires a few extra steps now, and may not work with the latest kernel), I've made a pre-configured Raspbian image with Babelpod already set up. It also comes with a project called HKCam installed and pre-configured - here's more info on it: https://github.com/brutella/hkcam Anyway, you can download the Raspbian image on my website: https://snyderrepairs.com/2020/08/09/babelpod-hkcam-raspbian-image/ Have fun streaming to your Homepods! |
@maexdaemaege thanks for your improvements and for keeping this project alive! I have the same exact issue that is experiencing @magictaco (some I've tried to lower the volume with alsamixer as suggested but I get similar results (it actually depends on the song played by my CD Player but sooner or later it always crashes). Any idea on how to fix this? I understand it's linked to airtunes2 but I can't figure it out. If you can share how you configured the Behringer audio card it may be helpful. Thanks in advance! EDIT: if anyone is still interested, the error "compressed frame too big" is definitely related to the volume of the input. I have realized that U-Control UCA202 doesn't have any line-in volume/gain control, so I've added a small volume knob before the USB card and the audio isn't interrupted anymore. |
@larxene066 I have some issue with your image. ( A huge thank you for the wok though )
Thanks for your help |
Thank you @maexdaemaege . Confirmed works like magic on Ubuntu20.04 laptop. |
@pillar-man |
@maexdaemaege : Thanks very much |
@TheMoD22 You're totally right. I'm going to update the readme asap. I might find some time next week. I've set up a new installation this week myself and with @afaden's latest commit it's so much easier than ever before. It worked out of the box for me. Good timing to update the readme and write a post on reddit. Setup: RaspberryPi 4b, Behringer U-Control UCA202, HomePod OG (16.6) |
@maexdaemaege Thanks very much This saves me and others a lot of time and endless troubleshooting, which beginners can't get a grip on. Maybe then I'll understand the respective error messages and the actual interaction. The Behringer U-Control UCA202 has already been ordered, but it should all run under the 3B+ |
moin moin, since the vacation time is slowly coming to an end, I wanted to ask if you had the time to write the "small" instructions in an updated form. I would like to get this project up and running. There are others waiting for the go so they can start. Best regards |
Hi all! I'm kind of noob here, but I'll try my best.
I have a raspberrypi. 3b+ with homebridge installed. I've followed afaden guide and successfully installed, but when I select the output device, nothing happens, there's no sound.
In terminal (via ssh on a mac), I've found that when running the node index.js the following thing happen:
$ node index.js
listening on *:3000
bluetooth controller exists
a user connected
switch_output: airplay_192.168.0.25_7000
inputStream FromVoid {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: null,
pipesCount: 0,
flowing: null,
ended: false,
endEmitted: false,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
destroyed: false,
defaultEncoding: 'utf8',
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
_events: {},
_eventsCount: 0,
_maxListeners: undefined }
outputStream ToVoid {
_writableState:
WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
bufferedRequestCount: 0,
corkedRequestsFree:
{ next: null,
entry: null,
finish: [Function: bound onCorkedFinish] } },
writable: true,
_events: {},
_eventsCount: 0,
_maxListeners: undefined }
adding device: 192.168.0.25:7000
switch_output: airplay_192.168.0.25_7000
inputStream FromVoid {
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: null,
pipesCount: 0,
flowing: null,
ended: false,
endEmitted: false,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
destroyed: false,
defaultEncoding: 'utf8',
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
_events: {},
_eventsCount: 0,
_maxListeners: undefined }
outputStream ToVoid {
_writableState:
WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
bufferedRequestCount: 0,
corkedRequestsFree:
{ next: null,
entry: null,
finish: [Function: bound onCorkedFinish] } },
writable: true,
_events: {},
_eventsCount: 0,
_maxListeners: undefined }
/home/pi/node_airtunes/lib/rtsp.js:385
this.socket.end(this.makeHead('TEARDOWN', '', di) + '\r\n');
^
TypeError: Cannot read property 'end' of null
at Client.sendNextRequest (/home/pi/node_airtunes/lib/rtsp.js:385:17)
at Client.teardown (/home/pi/node_airtunes/lib/rtsp.js:124:8)
at AirTunesDevice.stop (/home/pi/node_airtunes/lib/device_airtunes.js:121:13)
at cleanupCurrentOutput (/home/pi/babelpod/index.js:151:19)
at Socket. (/home/pi/babelpod/index.js:202:5)
at Socket.emit (events.js:180:13)
at /home/pi/babelpod/node_modules/socket.io/lib/socket.js:528:12
at process._tickCallback (internal/process/next_tick.js:112:11)
This happens everytime I select an Airplay device, I've rebooted, made a clean install, and nothing seems to work.
I know on the guide it Says node version 9.8, and the updated installed on the RPI is the 10.x, which in order to install babelpod I had to downgrade to the 9.8.
Does anyone know what might be wrong?
Thanks in advance,
The text was updated successfully, but these errors were encountered: