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

View File

@@ -0,0 +1,35 @@
cmake_minimum_required(VERSION 3.20)
# set the project name
project(generator)
set (CMAKE_CXX_STANDARD 11)
set (DCMAKE_CXX_FLAGS "-Werror")
include(FetchContent)
# Build with arduino-audio-tools
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../.. ${CMAKE_CURRENT_BINARY_DIR}/arduino-audio-tools )
endif()
# Add Portaduio for desktop build
add_compile_options(-DIS_DESKTOP)
FetchContent_Declare(portaudio GIT_REPOSITORY "https://github.com/PortAudio/portaudio.git" GIT_TAG v19.7.0 )
FetchContent_GetProperties(portaudio)
if(NOT portaudio_POPULATED)
FetchContent_Populate(portaudio)
add_subdirectory(${portaudio_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/portaudio)
endif()
# build sketch as executable
set_source_files_properties(generator.ino PROPERTIES LANGUAGE CXX)
add_executable (generator generator.ino)
# set preprocessor defines
target_compile_definitions(arduino_emulator PUBLIC -DDEFINE_MAIN)
target_compile_definitions(generator PUBLIC -DARDUINO -DIS_DESKTOP)
# specify libraries
target_link_libraries(generator portaudio arduino_emulator arduino-audio-tools)

View File

@@ -0,0 +1,19 @@
# 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.
You just need to provide an Arduino Sketch as cpp file. In our example we use an example setup that can be compiled both in Arduin and with cmake:
- the sketch is provided as ino file
- the cpp file is including the Arduino.h and the ino file
To build the example execute
```
mkdir build
cd build
cmake ..
make
```

View File

@@ -0,0 +1,28 @@
#include "AudioTools.h"
#include "AudioTools/AudioLibs/PortAudioStream.h"
AudioInfo info(44100, 1, 16);
SineWaveGenerator<int16_t> sineWave(32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> in(sineWave); // Stream generated from sine wave
PortAudioStream out; // On desktop we use
StreamCopy copier(out, in); // copy in to out
// Arduino Setup
void setup(void) {
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Warning);
// open output
auto config = out.defaultConfig();
config.copyFrom(info);
out.begin(config);
// Setup sine wave
sineWave.begin(info, N_B4);
}
// Arduino loop
void loop() {
if (out) copier.copy();
}