This commit is contained in:
2026-02-12 21:00:02 -08:00
parent 77f8236347
commit 8bdbf227ca
1141 changed files with 1010880 additions and 2 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
cmake_minimum_required(VERSION 3.20)
# set the project name
project(mp3_dt)
set (CMAKE_CXX_STANDARD 11)
set (DCMAKE_CXX_FLAGS "-Werror")
include(FetchContent)
option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
option(ADD_PORTAUDIO "Add Portaudio Library" ON)
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../.. ${CMAKE_CURRENT_BINARY_DIR}/arduino-audio-tools )
endif()
# Build with libhelix
FetchContent_Declare(arduino_helix GIT_REPOSITORY "https://github.com/pschatzmann/arduino-libhelix.git" GIT_TAG main )
FetchContent_GetProperties(arduino_helix)
if(NOT arduino_helix_POPULATED)
FetchContent_Populate(arduino_helix)
add_subdirectory(${arduino_helix_SOURCE_DIR})
endif()
# build sketch as executable
set_source_files_properties(mp3.ino PROPERTIES LANGUAGE CXX)
add_executable (mp3_dt mp3.ino)
# set preprocessor defines
target_compile_definitions(arduino_emulator PUBLIC -DDEFINE_MAIN)
target_compile_definitions(arduino_helix PUBLIC -DARDUINO -DHELIX_LOGGING_ACTIVE=0)
target_compile_definitions(mp3_dt PUBLIC -DIS_DESKTOP)
# OS/X might need this setting for core audio
target_compile_options(portaudio PRIVATE -Wno-deprecated)
# specify libraries
target_link_libraries(mp3_dt portaudio arduino_emulator arduino-audio-tools arduino_helix)

View File

@@ -0,0 +1,16 @@
# Playing Sound on your Desktop
We provide some generic output which will also work on Linux, Windows and OS/X
The cmake is downloading all dependencies and builds an executable from the sketch.
We use the more comprehensive new EncodedAudioStream class.
You just need to provide an Arduino Sketch as cpp file. To build the example execute:
```
mkdir build
cd build
cmake ..
make
```

View File

@@ -0,0 +1,32 @@
// Simple wrapper for Arduino sketch to compilable with cpp in cmake
#include "Arduino.h"
#include "AudioTools.h"
#include "BabyElephantWalk60_mp3.h"
#include "AudioTools/AudioLibs/PortAudioStream.h"
#include "AudioTools/AudioCodecs/CodecMP3Helix.h"
MemoryStream mp3(BabyElephantWalk60_mp3, BabyElephantWalk60_mp3_len);
PortAudioStream out; // Output of sound on desktop
EncodedAudioStream dec(&out, new MP3DecoderHelix()); // MP3 data source
StreamCopy copier(dec, mp3); // copy in to out
void setup(){
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
out.begin();
mp3.begin();
dec.begin();
}
void loop(){
if (mp3) {
copier.copy();
} else {
auto info = dec.decoder().audioInfo();
LOGI("The audio rate from the mp3 file is %d", info.sample_rate);
LOGI("The channels from the mp3 file is %d", info.channels);
exit(0);
}
}