Giter Site home page Giter Site logo

mincequi / cornrow Goto Github PK

View Code? Open in Web Editor NEW
77.0 5.0 5.0 1.74 MB

Bluetooth and Airplay Audio Daemon for SBCs (Raspberry Pi, etc)

License: GNU General Public License v2.0

C++ 93.41% QMake 1.00% QML 4.67% CMake 0.91%
bluetooth audio-player signal-processing equalizer dsp bluetooth-audio-daemon raspberry-pi bluetooth-audio snapcast rpi

cornrow's People

Contributors

abelmatser avatar chris-y avatar mawebmw avatar mincequi avatar sphh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cornrow's Issues

Problems with sound

Hi, first of all thank you for cornrow!

A few things (let me know if i should open more than one issue)

  1. At least on my rpi 4 the install via apt is broken due to some dependencies (libavcodec58 i think), which are outdated.
  2. When connecting via cronrow to my rpi4 i get an output (via snapcast), but its pitched higher and stuttering. I tried disableing BluetoothLE, but the problem remains.
  3. I tried installing the EQ App to investigate if the EQ causes the problem with the higher pitch, but the app is not available for Android anymore. Is there a way to disable EQ completely in the conf?
  4. Are there other codecs implementet?

Thank you in advance.

Control via python script

Hi,

It's possible to control via a python script? This is, to start/stop, and to just be discoverable when I click a button? This is to avoid random users to connect to BT, they should have to press a button first to pair...

Thanks a lot

no sound when connected

Bluetooth doesent want to connect on android using the app . it says connecting to the raspberry pi but it fails

terminate called after throwing an instance of 'std::out_of_range'

Hello, and thank you for cornrow! When it works it's works so well...

I'm using this on a raspberry 4b with Raspbian GNU/Linux 11 (bullseye) and streamed as a snapcast source.

The following shows the status of the service after it has been aborted. If I restart the service it works well.

cornrowd.service - Cornrow daemon
     Loaded: loaded (/lib/systemd/system/cornrowd.service; enabled; vendor preset: enabled)
     Active: failed (Result: signal) since Sat 2023-10-28 10:57:37 EDT; 2 days ago
    Process: 14018 ExecStart=/usr/bin/cornrowd (code=killed, signal=ABRT)
   Main PID: 14018 (code=killed, signal=ABRT)
        CPU: 56min 58.912s

Oct 28 10:57:37 hifikitchen cornrowd[14018]: terminate called after throwing an instance of 'std::out_of_range'
Oct 28 10:57:37 hifikitchen cornrowd[14018]:   what():  map::at
Oct 28 10:57:37 hifikitchen cornrowd[14018]: Loguru caught a signal: SIGABRT
Oct 28 10:57:37 hifikitchen cornrowd[14018]: Stack trace:
Oct 28 10:57:37 hifikitchen cornrowd[14018]: 1   0xf53f1420 gsignal + 188
Oct 28 10:57:37 hifikitchen cornrowd[14018]: 0   0xf53f2910 __default_rt_sa_restorer + 0
Oct 28 10:57:37 hifikitchen cornrowd[14018]: 10:57:37.211 [main thread     ]                       :0     FATL| Signal: SIGABRT
Oct 28 10:57:37 hifikitchen systemd[1]: cornrowd.service: Main process exited, code=killed, status=6/ABRT
Oct 28 10:57:37 hifikitchen systemd[1]: cornrowd.service: Failed with result 'signal'.
Oct 28 10:57:37 hifikitchen systemd[1]: cornrowd.service: Consumed 56min 58.912s CPU time.

And here is the output after a system reboot:

cornrowd.service - Cornrow daemon
     Loaded: loaded (/lib/systemd/system/cornrowd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-10-30 12:26:46 EDT; 3min 43s ago
   Main PID: 462 (cornrowd)
      Tasks: 3 (limit: 2137)
        CPU: 15.791s
     CGroup: /system.slice/cornrowd.service
             └─462 /usr/bin/cornrowd

Oct 30 12:26:55 hifikitchen cornrowd[462]: *** WARNING *** For more information see <http://0pointer.de/blog/projects/avahi-compat.html>
Oct 30 12:26:55 hifikitchen cornrowd[462]: *** WARNING *** Please fix your application to use the native API of Avahi!
Oct 30 12:26:55 hifikitchen cornrowd[462]: *** WARNING *** For more information see <http://0pointer.de/blog/projects/avahi-compat.html>
Oct 30 12:26:55 hifikitchen cornrowd[462]: 12:26:55.871 [main thread     ]AirplaySourcePrivate.cp:66    INFO| reception started. name: KitchenAirplay, rt>
Oct 30 12:26:55 hifikitchen cornrowd[462]: 12:26:55.871 [main thread     ]      TcpClientSink.cpp:206   INFO| TcpClientSink stopped
Oct 30 12:26:55 hifikitchen cornrowd[462]: Send property: QVariant(QUuid, QUuid("{ad10e100-d901-11e8-9f8b-f2801f1b9fd1}")) , value size: 0
Oct 30 12:26:55 hifikitchen cornrowd[462]: Socket not connected
Oct 30 12:26:55 hifikitchen cornrowd[462]: Send property: QVariant(QUuid, QUuid("{ad10a100-d901-11e8-9f8b-f2801f1b9fd1}")) , value size: 0
Oct 30 12:26:55 hifikitchen cornrowd[462]: Socket not connected
Oct 30 12:26:56 hifikitchen cornrowd[462]: TCP server published at port: 36539

I have 3 sources in my snapcast config: cornrow, mopidy, and pianobar (pandora). I can easily switch sources using home assistant and nodered and everything works as expected until the abort service error. I've tried connecting both airplay and BT at the same time, and while AP took precedence, the BT connection took over once AP was disconnected.

I am not currently able to define when the problem happens. If I can provide further detail please advise.

Cheers

Install on raspberry pi

hi,

I would like to install this bluetooth audio, but I can't.
I would like to install it on raspberry pi 3, with the latest install version of raspbianOS

Snapcast integration - output to ALSA loopback, FIFO, or STDOUT?

I'd love to be able to integrate this with Snapcast as it's the only Bluetooth audio daemon I've found that works reliably on a Raspberry Pi. Snapcast can read from multiple source types but I'm unclear how to redirect cornrow's output to any of them. Any pointers would be appreciated!

Unable to reconnect after client "forgets" the server device

I'm experiencing an edge case problem in reconnecting a client to the cornrow server.

Steps to reproduce:

  1. connect client to cornrow bluetooth server. Observe that music playback works fine.
  2. In the client, click "Forget This Device" in the bluetooth settings for the cornrow bluetooth server
  3. In the client, attempt to connect to the cornrow bluetooth server again. Observe error message: "Pairing Unsuccessful. iPhone can no longer connect to <server name>. Forget this device and pair it again."
  4. Even after telling the client to "Forget Device" again, we are still unable to connect to the server.

There is a workaround for this error:

  1. On the server, run bluetoothctl remove XX:XX:XX:XX:XX:XX, specifying the client's address
  2. The client should now be able to connect to the cornrow server again

Client details: iPhone 13 mini, iOS version 16.1.1
Server details: Raspberry Pi 3 Model A Plus Rev 1.0, Raspbian GNU/Linux 11 (bullseye)

Thanks for any insight you can provide!

unable to start cornrowd.service

Hi mincequi,

I have built and installed cornrow package, but it's not possible for me to start cornrowd.service. Please help.

My device:
Linux armbian 6.1.55-ophub #1 SMP Sat Sep 23 07:37:26 EDT 2023 aarch64 aarch64 aarch64 GNU/Linux

~#systemctl start cornrowd.service
Failed to start cornrowd.service: Unit avahi-daemon.service not found.
~#cornrowd
time         [ thread name/id ]                   file:line     v|
cornrowd: entrygroup.c:108: avahi_entry_group_new: Assertion "client" failed.

Loguru caught a signal: SIGABRT
Stack trace:
11        0x558e75abb0 cornrowd(+0x2abb0) [0x558e75abb0]
10        0x7f925474cc __libc_start_main + 152
9         0x7f925473fc /lib/aarch64-linux-gnu/libc.so.6(+0x273fc) [0x7f925473fc]
8         0x558e757768 cornrowd(+0x27768) [0x558e757768]
7         0x558e781d4c cornrowd(+0x51d4c) [0x558e781d4c]
6         0x7f93095e40 avahi_entry_group_commit + 0
5         0x7f92554040 __assert_perror_fail + 0
4         0x7f92553fd0 /lib/aarch64-linux-gnu/libc.so.6(+0x33fd0) [0x7f92553fd0]
3         0x7f92547130 abort + 228
2         0x7f9255a67c raise + 28
1         0x7f9259f200 /lib/aarch64-linux-gnu/libc.so.6(+0x7f200) [0x7f9259f200]
0         0x7f94d2e7ac __kernel_rt_sigreturn + 0
17:44:50.666 [main thread     ]                       :0     FATL| Signal: SIGABRT
Aborted
~#journalctl -b | grep cornrowd
Oct 27 16:55:44 armbian groupadd[261390]: group added to /etc/group: name=cornrowd, GID=121
Oct 27 16:55:44 armbian groupadd[261390]: group added to /etc/gshadow: name=cornrowd
Oct 27 16:55:44 armbian groupadd[261390]: new group: name=cornrowd, GID=121
Oct 27 16:55:44 armbian useradd[261399]: new user: name=cornrowd, UID=115, GID=121, home=/var/lib/cornrowd, shell=/usr/sbin/nologin, from=/dev/pts/2
Oct 27 16:55:45 armbian usermod[261407]: change user 'cornrowd' password
Oct 27 16:55:45 armbian chage[261417]: changed password expiry for cornrowd
Oct 27 16:55:45 armbian gpasswd[261430]: user cornrowd added by root to group audio
Oct 27 16:55:45 armbian gpasswd[261445]: user cornrowd added by root to group bluetooth
Oct 27 16:55:45 armbian gpasswd[261460]: user cornrowd added by root to group video

crashing with "Assertion `error == OMX_ErrorNone' failed."

May 03 18:08:07 xxx cornrowd[17384]: 18:08:07.134 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:07 xxx cornrowd[17384]: 18:08:07.146 [main thread ] SbcDecoder.cpp:42 WARN| RTP header invalid May 03 18:08:08 xxx cornrowd[17384]: 18:08:08.231 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:08 xxx cornrowd[17384]: 18:08:08.234 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:09 xxx cornrowd[17384]: 18:08:09.165 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:09 xxx cornrowd[17384]: 18:08:09.165 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:09 xxx cornrowd[17384]: 18:08:09.187 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:09 xxx cornrowd[17384]: 18:08:09.187 [main thread ] SbcDecoder.cpp:42 WARN| RTP header invalid May 03 18:08:10 xxx cornrowd[17384]: 18:08:10.113 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:10 xxx cornrowd[17384]: 18:08:10.114 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:10 xxx cornrowd[17384]: 18:08:10.125 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:10 xxx cornrowd[17384]: 18:08:10.125 [main thread ] SbcDecoder.cpp:42 WARN| RTP header invalid May 03 18:08:11 xxx cornrowd[17384]: 18:08:11.846 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:11 xxx cornrowd[17384]: 18:08:11.847 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:11 xxx cornrowd[17384]: 18:08:11.867 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:11 xxx cornrowd[17384]: 18:08:11.867 [main thread ] SbcDecoder.cpp:42 WARN| RTP header invalid May 03 18:08:12 xxx cornrowd[17384]: 18:08:12.476 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:12 xxx cornrowd[17384]: 18:08:12.477 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:18 xxx cornrowd[17384]: 18:08:18.195 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:18 xxx cornrowd[17384]: 18:08:18.196 [main thread ] SbcDecoder.cpp:73 WARN| Sync byte incorrect May 03 18:08:18 xxx cornrowd[17384]: 18:08:18.227 [main thread ]FileDescriptorSource.cp:54 WARN| cannot estimate number of slices May 03 18:08:18 xxx cornrowd[17384]: 18:08:18.227 [main thread ] SbcDecoder.cpp:56 WARN| Fragmented packet(s) not supported May 03 18:08:19 xxx cornrowd[17384]: cornrowd: /home/pi/cornrow/thirdparty/libcornrow/src/pi/audio.c:298: audioplay_play_buffer: Assertion 'error == OMX_ErrorNone' failed. May 03 18:08:19 xxx cornrowd[17384]: Loguru caught a signal: SIGABRT May 03 18:08:19 xxx cornrowd[17384]: Stack trace: May 03 18:08:19 xxx cornrowd[17384]: 0 0x74e96130 __default_rt_sa_restorer + 0 May 03 18:08:19 xxx cornrowd[17384]: 18:08:19.282 [main thread ] :0 FATL| Signal: SIGABRT

missing dev dependecies

Hi..
I am installing the sw into my raspi.

In the installation guide some dependecies are missing and the dpkg-buildpackage noticed that.
The dependencies are: libboost-dev extra-cmake-modules qtconnectivity5-dev

Thank you for sharing the project!

Roberto

Debian bookworm support?

hey hey
great project, thanks for sharing it.
it worked as bluetooth to snapcast solution like a charm, but after upgrading to debian 12 based raspbian it no longer does :/

/usr/bin/cornrowd: error while loading shared libraries: libmmal_core.so.0: cannot open shared object file: No such file or directory

i'm currently searching around but can only find some dropped mmal support e.g. here
raspberrypi/userland#688

also the paths in /opt/vc/ where it lied up until bullseye is gone.

currently trying to recompile it and see if it works, but also fighting, so i though maybe already somebody has hit this problem?
thanks!

No audio in snapcast

Hello. i was able to get bluetooth working. Laptop or cellphone connects but there is no audio going into snapcast

cornrow config:
[tcp_sink]
host = 127.0.0.1
port = 4954

snapcast config:
source = tcp://127.0.0.1:4954?name=Bluetooth&mode=server&sampleformat=44100:16:2

root@snapcast:/home/snapcast# journalctl -b | grep bluetooth
Jul 22 19:54:32 snapcast bluetoothd[802]: Bluetooth daemon 5.64
Jul 22 19:54:32 snapcast bluetoothd[802]: Starting SDP server
Jul 22 19:54:32 snapcast bluetoothd[802]: Bluetooth management interface 1.21 initialized
Jul 22 19:54:33 snapcast bluetoothd[802]: Endpoint registered: sender=:1.16 path=/MediaEndpoint/Sink/Sbc
Jul 22 19:54:33 snapcast cornrowd[913]: Waiting for bluetooth audio source to connect. Ctrl + C to cancel...
Jul 22 19:55:12 snapcast bluetoothd[802]: /org/bluez/hci0/dev_(REDACTED)/fd0: fd(29) ready

root@snapcast:/home/snapcast# journalctl -b | grep cornrowd
Jul 22 19:54:33 snapcast cornrowd[913]: Waiting for bluetooth audio source to connect. Ctrl + C to cancel...
Jul 22 19:55:10 snapcast cornrowd[913]: Accepted service: "(REDACTED)" from "(REDACTED)"
Jul 22 19:55:11 snapcast cornrowd[913]: Accepted service: "(REDACTED)" from "(REDACTED)"
Jul 22 19:55:11 snapcast cornrowd[913]: sampleRate: 44100
Jul 22 19:55:12 snapcast cornrowd[913]: Transport state: BluezQt::MediaTransport::State::Pending
Jul 22 19:55:12 snapcast cornrowd[913]: operator() fd: 8 mtu read: 672 mtu write: 672
Jul 22 19:55:12 snapcast cornrowd[913]: 19:55:12.051 FileDescriptorSource.cp:25 INFO| opening file descriptor: 9
Jul 22 19:55:12 snapcast cornrowd[913]: Transport state: BluezQt::MediaTransport::State::Active
Jul 22 19:55:12 snapcast cornrowd[913]: 19:55:12.350 FileDescriptorSource.cp:54 WARN| cannot estimate number of slices
Jul 22 19:55:12 snapcast cornrowd[913]: 19:55:12.351 SbcDecoder.cpp:73 WARN| Sync byte incorrect
Jul 22 19:55:12 snapcast cornrowd[913]: 19:55:12.351 FileDescriptorSource.cp:54 WARN| cannot estimate number of slices
Jul 22 19:55:12 snapcast cornrowd[913]: 19:55:12.351 SbcDecoder.cpp:42 WARN| RTP header invalid

What could tbe the issue?

Unmet dependency: libboost-system1.67 on bullseye

Thanks for this project, it seems nice!

I'm trying to install it from deb, on an Rpi 3B+, Raspbian 11 Bullseye, 5.10.63-v7+ kernel.

$ sudo apt install ./cornrowd_0.8.0_armhf.deb
[...]
The following packages have unmet dependencies:
 cornrowd : Depends: libboost-system1.67.0 but it is not installable

If I try to install manually libboost-system or libboost-system-dev it installs 1.74.

1.67 is not available in the bullseye repo, only 1.74: https://packages.debian.org/bullseye/libboost-system-dev

Should I build it manually, or can you update the build for bullseye? Thanks!

Building of Pipeline.cpp fails

I get an error, when trying to build the project. This what I have cloned git clone --branch v0.1.0 --recursive https://github.com/mincequi/cornrow

[ 22%] Building CXX object cornrowd/src/audio/CMakeFiles/audio.dir/Pipeline.cpp.o
/home/niki/Repos/cornrow/cornrowd/src/audio/Pipeline.cpp: In member function ‘void audio::Pipeline::setCrossover(const common::Filter&)’:
/home/niki/Repos/cornrow/cornrowd/src/audio/Pipeline.cpp:114:18: error: ‘class GstDsp::Crossover’ has no member named ‘setFrequency’; did you mean ‘frequency’?
     m_crossover->setFrequency(crossover.f);
                  ^~~~~~~~~~~~
cornrowd/src/audio/CMakeFiles/audio.dir/build.make:110: recipe for target 'cornrowd/src/audio/CMakeFiles/audio.dir/Pipeline.cpp.o' failed
make[2]: *** [cornrowd/src/audio/CMakeFiles/audio.dir/Pipeline.cpp.o] Error 1
CMakeFiles/Makefile2:537: recipe for target 'cornrowd/src/audio/CMakeFiles/audio.dir/all' failed
make[1]: *** [cornrowd/src/audio/CMakeFiles/audio.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Unable to Connect Bluetooth Device On Raspbian Buster and Bullseye

I recently installed cornrow in order to set up a bluetooth integration for my snapserver instance. Snapserver runs on a Ubuntu 22 server and I have a raspberry which runs snapclient. I tried to install cornrow on this raspberry in order to enable bluetooth connectivity and send everything back to the snapserver via tcp. Installation was straightforward and Corocomo connects without issue.
However, when I try to actually connect a bluetooth device (e. g. Android phone) the connection is terminated after roughly 1 second. Journalctl registers the following error:

bluetoothd[473]: Endpoint replied with an error: org.freedesktop.DBus.Error.NoReply
cornrowd[2567]: 20:16:54.698 [main thread ] Persistence.cpp:63 INFO| filter count: 0
cornrowd[2567]: 20:16:54.700 [main thread ] AudioManager.cpp:172 INFO| set transport> fd: -1, blocksize: 0, rate: 0
cornrowd[2567]: 20:16:54.700 [main thread ] TcpClientSink.cpp:206 INFO| TcpClientSink stopped
cornrowd[2567]: 20:16:54.700 [main thread ] SourceSelector.cpp:38 INFO| FdSource stopped

This is on raspbian buster (cornrow 0.8.0). I tried on raspbian bullseye (using cornrow 0.8.1) as well. The error was similar:

bluetoothd[580]: profiles/audio/media.c:endpoint_reply() Endpoint replied with an error: org.freedesktop.DBus.Error.NoReply
bluetoothd[580]: profiles/audio/a2dp.c:select_cb() Unable to select a valid configuration
cornrowd[448]: 20:18:33.596 [main thread ] Persistence.cpp:63 INFO| filter count: 0
cornrowd[448]: 20:18:33.598 [main thread ] AudioManager.cpp:172 INFO| set transport> fd: -1, blocksize: 0, rate: 0
cornrowd[448]: 20:18:33.598 [main thread ] TcpClientSink.cpp:206 INFO| TcpClientSink stopped
cornrowd[448]: 20:18:33.598 [main thread ] SourceSelector.cpp:38 INFO| FdSource stopped

Bluetooth is configured correctly as far as I can tell since playback using pulseaudio (which I installed for a test) worked without altering bluetooth settings.

Thanks in advance and regards

iPhone unable to control volume

Hi,

Successfully installed on RaspberryPi B3+. When my macbook is connected, I can change the volume with my macbook. However with my iPhone connected, changing the volume on the iPhone doesn't change the volume on the speaker.

Edit: same problem when i boot Windows on my macbook, volume doesn't change when it's changed in Windows.

Another thing, the speaker isn't discoverable automatically. Would it be possible to make it discoverable automatically when no device is connected?

Thanks in advance & best regards,
Jesper

Usage of non-SBC codecs

Is it possible to use another Codec than SBC, e.g. aptx?

There is a codecs option in cornrowd.conf. But I found no information on other supported codecs and no other codec IDs in the A2DB specification.

Thanks for the time you have invested in cornrowd. It works already great with SBC.

Build problem

Can you help me.
after 82% dpkg-buildpackage returns error
the last of make:

[ 82%] Built target KF5BluezQt
make[3]: Leaving directory '/home/pi/cornrow/obj-arm-linux-gnueabihf'
make[2]: *** [Makefile:133: all] Error 2
make[2]: Leaving directory '/home/pi/cornrow/obj-arm-linux-gnueabihf'
dh_auto_build: cd obj-arm-linux-gnueabihf && make -j4 returned exit code 2
make[1]: *** [debian/rules:9: override_dh_auto_build] Error 2
make[1]: Leaving directory '/home/pi/cornrow'
make: *** [debian/rules:5: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

signal=SEGV

I just installed cornrowd_0.7.0_armhf.deb (BTW there is an easier way to install the deb file with all dependencies: sudo apt install ./cornrowd_0.7.0_armhf.deb) on my Raspberry Pi 1B. I did not unmask the cornrowd.service, but just started it with

$ sudo systemctl start cornrowd.service

to test it. Unfortunately I get the following error:

$ systemctl status cornrowd.service
● cornrowd.service - Cornrow daemon
   Loaded: loaded (/lib/systemd/system/cornrowd.service; disabled; vendor preset: enabled)
   Active: failed (Result: signal) since Sat 2020-09-19 20:47:05 CEST; 18s ago
  Process: 721 ExecStart=/usr/bin/cornrowd (code=killed, signal=SEGV)
 Main PID: 721 (code=killed, signal=SEGV)

Sep 19 20:47:02 mopidy systemd[1]: Started Cornrow daemon.
Sep 19 20:47:05 mopidy cornrowd[721]: time         [ thread name/id ]                   file:line     v|
Sep 19 20:47:05 mopidy cornrowd[721]: Loguru caught a signal: SIGSEGV
Sep 19 20:47:05 mopidy cornrowd[721]: Stack trace:
Sep 19 20:47:05 mopidy cornrowd[721]: 0   0xb4e83130 __default_rt_sa_restorer + 0
Sep 19 20:47:05 mopidy cornrowd[721]: 20:47:05.719 [main thread     ]                       :0     FATL| Signal: SIGSEGV
Sep 19 20:47:05 mopidy systemd[1]: cornrowd.service: Main process exited, code=killed, status=11/SEGV
Sep 19 20:47:05 mopidy systemd[1]: cornrowd.service: Failed with result 'signal'.

Is this, because I use a Raspberry Pi 1 and the .deb file was compiled for Raspberry Pi 2+?

rpi zero conection issues

I installed the newest version of cornrow on my Raspberry PI Zero running DietPI.
Everything works smoothly and I can see the Pi as bluetooth device. When I want to connect to
the raspi, the connection suddenly drops.

root@DietPi:~# bluetoothctl
Agent registered
[CHG] Device B4:9D:0B:95:89:E3 Connected: yes
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 SupportedInstances: 0x05
[CHG] Controller B8:27:EB:80:70:84 ActiveInstances: 0x00
[CHG] Controller B8:27:EB:80:70:84 Class: 0x00000000
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Controller B8:27:EB:80:70:84 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device B4:9D:0B:95:89:E3 Connected: no
[CHG] Device B4:9D:0B:95:89:E3 Connected: yes
[CHG] Device B4:9D:0B:95:89:E3 Connected: no
[CHG] Device B4:9D:0B:95:89:E3 Connected: yes
[CHG] Device B4:9D:0B:95:89:E3 Connected: no

When monitoring on the pi with bluetoothctl I can see the device which wants to connect, but two second later the connection breaks down and bluetoothctl reports it.

Any hints how to resolve this?

Compiling on Alpine

I've compiled cornrow on Docker with an Alpine image, during this I found some issues addressed in the attached patch, also included the dockerfile builder. All tests have been on 0.8.1.

It basically boils down to a few issues

  1. Use of "uint" in thirdparty/libcornrow/src/audio/Peq.cpp, assume size_t should be appropriate
  2. Use of "uint" throughout cornrowd/src/config/Persistence.cpp, i typedef'ed it to "unsigned int"
  3. Alpine uses an external lib for execinfo (not maintained and in disorder)
  4. Use of __bswap_16 vs __bswap16 in thirdparty/libcornrow/src/audio/AlsaSink.cpp
  5. Unused variable in thirdparty/libcornrow/src/loguru/loguru.cpp(530)
char buff[256] __attribute__((unused));
  1. Missing library in thirdparty/qtzeroprops/thirdparty/QtZeroConf/CMakeLists.txt, need avahi-common. This hit me in building (Docker) for debian bullseye as well.
   target_link_libraries(QtZeroConf PRIVATE avahi-client)
+  target_link_libraries(QtZeroConf PRIVATE avahi-common)

And that's about it, very nice and clean code :)

Now, the Alpine execinfo is in disorder and does core dump on calling backtrace.

-Morten

alpine.zip

pairing procedure

Hi again!
I am having issues pairing my Android phone. The app can control the gstreamer EQ but I cannot connect to the bluetooth in order to stream audio.

Is there any procedure or sequence to follow in order to have everything working (audio stream and EQ)?

Thank you again,
Roberto

Cannot connect with MacBook Pro

Hello, when I try to connect from my MacBook Pro the daemon crashes with following message:

IMG_20191201_001028__01

Apologies for the crappy photo, the Pi was connected to my TV.

Good work by the way, it pretty well worked right after I installed the dependencies and the .deb package.

tested on Pi 4

Hi,

I setup cornrow on a Pi4 from the deb file.

  • The I stream 48KHz audio to It with a scream service on a windows machine and it works. YESS.

But:

  • I tried the android corocomo, but it do not detect anything (using Bluetooth I think)
  • The Android application do not allow me to give the IP of my cornrowd server.
  • The listen port can not be change (UDP 4010) and for me had been find using a netstat.
  • I would like stream some linux sound to It, but I do not know what protocols is supported, what king of UDP data I should send.

Please add some doc / link to compatible software.
What is this software should be able of.
I do not have any STD error about Bluetooth at startup.

I started to looks for answer In sources, and I build time it's looks like libqt5websockets5-dev should in install on debian base OS

sudo apt-get install libqt5websockets5-dev

Can you add a not like 'do not forget to pull the git submodule' ?

Question: can I use it on OrangePi?

Hi! Thanks for this project!
I'm trying to figure out a cheap device as a scream output, it seams Orange Pi has all I need, an enteher port, a 16bit stereo ouput jack (with a cheap specific shield), a ready plastic box to contain it.. so that can be a good choice, does it work there? Thank you!

Configure Airplay or Bluetooth enabled

In my Snapcast server I've already configured an Airplay server, thus I would not need cornrow to create a new Airplay instance. Can it be possible to build without Airplay packages and disable it in the config file?

Issues building from source

Hi

I'm trying to build the latest version from source on Debian (bullseye) ,on an amd64 processor which is fully updated.
All the listed dependencies have been installed, and I've got the latest source (git clone --recursive https://github.com/mincequi/cornrow).

The build process fails with this error...

Scanning dependencies of target cornrowd
[ 91%] Building CXX object cornrowd/CMakeFiles/cornrowd.dir/cornrowd_autogen/mocs_compilation.cpp.o
[ 91%] Building CXX object cornrowd/CMakeFiles/cornrowd.dir/src/Config.cpp.o
[ 92%] Building CXX object cornrowd/CMakeFiles/cornrowd.dir/src/Controller.cpp.o
[ 92%] Building CXX object cornrowd/CMakeFiles/cornrowd.dir/src/main.cpp.o
[ 92%] Linking CXX executable cornrowd
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/libdns_sd.so: undefined reference to symbol 'avahi_string_list_free'
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/libavahi-common.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [cornrowd/CMakeFiles/cornrowd.dir/build.make:182: cornrowd/cornrowd] Error 1
make[1]: *** [CMakeFiles/Makefile2:1117: cornrowd/CMakeFiles/cornrowd.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

Any advice would be appreciated :)

Connection problems with smartphone

I've installed cornrow v0.9.0 with the deb file on my raspberry 4, but when I try connecting to it with bluetooth on my android smartphone I get constant audio stuttering or can't connect at all.

When the connection fails cornrow doesn't give me any logs. When it connects it shows something about a "broken pipe" the whole time, I would send the specific log message but I currently can't get my smartphone to connect.

Is there anything I can do to fix this, I never had problems with bluetooth headphones or similar.

I also tried connecting with my PC, that works without problems.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.