#!/usr/bin/env bash set -x sudo apt-get install \ dh-autoreconf \ dh-make \ check \ bluez \ bluetooth \ bluez-tools \ libbluetooth-dev \ libbsd-dev \ libusb-dev \ libglib2.0-dev \ libudev-dev \ libical-dev \ libmp3lame-dev \ libmpg123-dev \ libncurses-dev \ libfdk-aac-dev \ libreadline-dev libsbc1 \ libsbc-dev \ libfdk-aac-dev \ libasound2-dev \ libortp-dev USER=Arkq PROJECT=bluez-alsa LICENSE=mit BUILD_HOME=/var/tmp/bluez-alsa-git_build VERSION=2.1.0 #VERSION=$(curl "https://api.github.com/repos/${PROJECT}/tags?per_page=5" | jq -r '.[0] | .name') DEBEMAIL="person@company.tld" DEBFULLNAME="Testy McTester" # Disable discoverable timeout sed -i 's,^\(DiscoverableTimeout =\).*,\1'\"0"',' /etc/default/bluetooth/main.conf mkdir -p ${BUILD_HOME} cd ${BUILD_HOME} git clone https://github.com/${USER}/${PROJECT}.git mv bluez-alsa bluez-alsa-git-${VERSION} cd bluez-alsa-git-${VERSION} pwd ls -lh cat < .git/gbp.conf [DEFAULT] # this is the upstream-branch: upstream-branch=master EOF dh_make \ --createorig \ --single \ --native \ --copyright ${LICENSE} \ --packagename ${PROJECT}-git \ --yes BUILD_OPTIONS="--enable-aac --enable-ofono --enable-debug" cat < debian/rules %: dh \$@ override_dh_auto_configure: dh_auto_configure -- ${BUILD_OPTIONS} EOF cat < debian/watch version=4 opts=filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/${PROJECT}-$1\.tar\.gz/ \ https://github.com/${USER}/${PROJECT}/tags .*/v?(\d\S+)\.tar\.gz EOF pwd dpkg-buildpackage -us -uc -b sudo dpkg -i ../bluez-alsa-git_2.1.0_amd64.deb ## When BlueALSA has been created, then you can start BlueALSA as background task: #bluealsa --disable-hfp & # Now - for using your bluetooth-speaker/headset - with BlueALSA you have to intoduce the device to the bluetooth-stack using bluetoothctl: # bluetoothctl > # scan on # [NEW] Device 30:23:23:F4:48:2C TH-S10U # scan off # pair 30:23:23:F4:48:2C # trust 30:23:23:F4:48:2C # exit # After that power off&on the bt-speaker device and the device will connect automatically as a trusted device. # Before we try our first audio-command we had to export one thing to make BlueALSA mor system-friendly: export LIBASOUND_THREAD_SAFE=0 # autostart bluealsa #cat < /etc/rc.local ## Start bluealsa as root #export LIBASOUND_THREAD_SAFE=0 #/usr/bin/bluealsa -S & #EOF # Text to speech: # espeak "Hello, how are you?" -w /home/guido/espeak.wav -s145 # aplay -D bluealsa:HCI=hci0,DEV=30:23:23:F4:48:2C,PROFILE=a2dp /home/guido/espeak.wav # arecord -D bluealsa capture.wav # bluealsa-aplay XX:XX:XX:XX:XX:XX # $ aplay -D bluealsa:SRV=org.bluealsa,DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav # amixer -D bluealsa sset '' 70% # amixer -D bluealsa sset 'Jabra MOVE v2.3.0 - A2DP' 50% # Internetradio: # mpg123 -a bluealsa:HCI=hci0,DEV=30:23:23:F4:48:2C,PROFILE=a2dp -@ /home/guido/ffh80s.pls # For shorting the command you could create a ~/.asoundrc with the following content: # defaults.bluealsa.interface "hci0" # defaults.bluealsa.device "30:23:23:F4:48:2C" # defaults.bluealsa.profile "a2dp" # defaults.bluealsa.delay 10000 # Now you can the shorter version of the command: # mpg123 -a bluealsa -@ /home/guido/ffh80s.pls # For set the volume of such a device you have to know the "real" name of the device out of the bluetoothctl and the name of the used protocol: # Device: 30:23:23:F4:48:2C TH-S10U # Protocol: A2DP # amixer -D bluealsa sset 'TH-S10U - A2DP ' 70% #------------------------------------------------------------------------ ## ldacBT ## ## AOSP libldac dispatcher ## https://android.googlesource.com/platform/external/libldac ## https://github.com/EHfive/ldacBT #git clone https://github.com/EHfive/ldacBT.git #cd ldacBT #git submodule update --init # #mkdir build && cd build #cmake \ # -DCMAKE_INSTALL_PREFIX=/usr \ # -DINSTALL_LIBDIR=/usr/lib \ # -DLDAC_SOFT_FLOAT=OFF \ # ../ #make DESTDIR=$DEST_DIR install #------------------------------------------------------------------------ ## [open]aptx - reverse-engineered apt-X ## https://github.com/Arkq/openaptx #------------------------------------------------------------------------