mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-08 20:47:08 +03:00
92 lines
4.2 KiB
Markdown
92 lines
4.2 KiB
Markdown
# Getting pre-compiled binaries
|
|
An automated build was configured to produce binaries on a regular basis, from common templates that are the most typical. They can be downloaded from :
|
|
|
|
https://github.com/sle118/squeezelite-esp32/releases
|
|
|
|
|
|
|
|
|
|
# Configuration
|
|
1/ setup WiFi
|
|
- Boot the esp, look for a new wifi access point showing up and connect to it. Default build ssid and passwords are "squeezelite"/"squeezelite".
|
|
- Once connected, navigate to 192.168.4.1
|
|
- Wait for the list of access points visible from the device to populate in the web page.
|
|
- Choose an access point and enter any credential as needed
|
|
- Once connection is established, note down the address the device received; this is the address you will use to configure it going forward
|
|
|
|
2/ setup squeezelite command line (optional)
|
|
|
|
At this point, the device should have disabled its built-in access point and should be connected to a known WiFi network.
|
|
- navigate to the address that was noted in step #1
|
|
- Using the list of predefined options, hoose the mode in which you want squeezelite to start
|
|
- Generate the command
|
|
- Add or change any additional command line option (for example player name, etc)
|
|
- Activate squeezelite execution: this tells the device to automatiaclly run the command at start
|
|
- Update the configuration
|
|
- Reboot
|
|
|
|
3/ set bluetooth & airplaysink name (if you want something other than default)
|
|
|
|
*this will eventually be moved to the web configuration*
|
|
|
|
you need to be connected to the device using a usb to serial adapter, with a terminal program (for example putty) opened on that serial port.
|
|
- To setup the bluetooth sink name, enter the following command
|
|
|
|
nvs_set bt_sink_name str -v "your_bt_name_here"
|
|
|
|
- To setup the airplay sink name, enter the following command
|
|
|
|
nvs_set airplay_sink_name str -v "your_airplay_name_here"
|
|
|
|
# Additional command line notes
|
|
The squeezelite options are very similar to the regular Linux ones. Differences are :
|
|
|
|
- the output is -o [\"BT -n <sinkname>\"] | [I2S]
|
|
|
|
- if you've compiled with RESAMPLE option, normal soxr options are available using -R [-u <options>]. Note that anything above LQ or MQ will overload the CPU
|
|
|
|
- if you've used RESAMPLE16, <options> are (b|l|m)[:i], with b = basic linear interpolation, l = 13 taps, m = 21 taps, i = interpolate filter coefficients
|
|
|
|
To add options that require quotes ("), escape them with \". For example, so use a BT speaker named MySpeaker and resample everything to 44100 (which is needed with Bluetooth) and use 16 bits resample with medium quality, the command line is:
|
|
|
|
nvs_set autoexec1 str -v "squeezelite -o \"BT -n 'MySpeaker'\" -b 500:2000 -R -u m -Z 192000 -r \"44100-44100\""
|
|
|
|
# Additional misc notes to do your owm build
|
|
MOST IMPORTANT: create the right default config file
|
|
- make defconfig
|
|
Then adapt the config file to your wifi/BT/I2C device (can alos be done on the command line)
|
|
- make menuconfig
|
|
Then
|
|
- make -j4
|
|
- make flash monitor
|
|
|
|
Once the application is running, under monitor, you can monitor the system activity.
|
|
|
|
- for all libraries, add -mlongcalls.
|
|
- audio libraries are complicated to rebuild, open an issue if you really want to
|
|
- libmad, libflac (no esp's version), libvorbis (tremor - not esp's version), alac work
|
|
- libfaad does not really support real time, but if you want to try
|
|
- -O3 -DFIXED_POINT -DSMALL_STACK
|
|
- change ac_link in configure and case ac_files, remove ''
|
|
- compiler but in cfft.c and cffti1, must disable optimization using
|
|
#pragma GCC push_options
|
|
#pragma GCC optimize ("O0")
|
|
#pragma GCC pop_options
|
|
- opus & opusfile
|
|
- for opus, the ESP-provided library seems to work, but opusfile is still needed
|
|
- per mad & few others, edit configure and change $ac_link to add -c (faking link)
|
|
- change ac_files to remove ''
|
|
- add DEPS_CFLAGS and DEPS_LIBS to avoid pkg-config to be required
|
|
- better use helixaac
|
|
- set IDF_PATH=/home/esp-idf
|
|
- set ESPPORT=COM9
|
|
- update flash partition size
|
|
- other compiler #define
|
|
- use no resampling or set RESAMPLE (soxr) or set RESAMPLE16 for fast fixed 16 bits resampling
|
|
- use LOOPBACK (mandatory)
|
|
- use BYTES_PER_FRAME=4 (8 is not fully functionnal)
|
|
- LINKALL (mandatory)
|
|
- NO_FAAD unless you want to us faad, which currently overloads the CPU
|
|
- TREMOR_ONLY (mandatory)
|
|
|