Skip to content

Commit a87e424

Browse files
committed
MiniAudioStream
1 parent 7eab5c3 commit a87e424

File tree

13 files changed

+335
-189
lines changed

13 files changed

+335
-189
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ include(FetchContent)
1212
add_library(arduino-audio-tools INTERFACE)
1313

1414
option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
15-
option(ADD_MINIAUDIO "Add Miniaudio Library" OFF)
16-
option(ADD_PORTAUDIO "Add Portaudio Library" ON)
15+
option(ADD_PORTAUDIO "Add Portaudio Library" OFF)
1716
option(ADD_ARDUINO_EMULATOR "Add Arduino Emulator Library" ON)
1817

1918

@@ -38,6 +37,7 @@ if (ADD_PORTAUDIO)
3837
endif()
3938
endif()
4039

40+
4141
if (ADD_ARDUINO_EMULATOR)
4242
# Build with Linux Arduino Emulator
4343
FetchContent_Declare(arduino_emulator GIT_REPOSITORY "https://github.com/pschatzmann/Arduino-Emulator.git" GIT_TAG main )

cmake-tests/miniaudio/CMakeLists.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
cmake_minimum_required(VERSION 3.20)
2+
3+
4+
# set the project name
5+
project(generator)
6+
set (CMAKE_CXX_STANDARD 11)
7+
set (DCMAKE_CXX_FLAGS "-Werror")
8+
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ldl -lpthread -lm")
9+
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ldl -lpthread -lm")
10+
11+
# Build with arduino-audio-tools
12+
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
13+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/arduino-audio-tools )
14+
endif()
15+
16+
17+
# build sketch as executable
18+
add_executable (generator generator.cpp)
19+
20+
# set preprocessor defines
21+
target_compile_definitions(generator PUBLIC DEXIT_ON_STOP -DIS_MIN_DESKTOP)
22+
23+
# specify libraries
24+
target_link_libraries(generator arduino-audio-tools)
25+
26+
# access to miniaudio in sketch directory
27+
target_include_directories(generator PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
28+

cmake-tests/miniaudio/generator.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Simple wrapper for Arduino sketch to compilable with cpp in cmake
2+
#include "AudioTools.h"
3+
#include "AudioLibs/MiniAudioStream.h"
4+
#include "AudioLibs/StdioStream.h"
5+
6+
//LinuxStdio out; // Output to stdio on Desktop
7+
MiniAudioStream out; // Output to MiniAudioStream
8+
SineWaveGenerator<int16_t> sine_wave; // subclass of SoundGenerator with max amplitude
9+
GeneratedSoundStream<int16_t> in_stream(sine_wave); // Stream generated from sine wave
10+
StreamCopy copier(out, in_stream); // copies sound to out
11+
12+
void setup(){
13+
AudioLogger::instance().begin(Serial, AudioLogger::Warning);
14+
15+
auto cfg = out.defaultConfig(TX_MODE);
16+
//cfg.sample_rate = 22000;
17+
if (!out.begin(cfg)){
18+
stop();
19+
}
20+
21+
sine_wave.begin(cfg, N_B4);
22+
in_stream.begin();
23+
}
24+
25+
void loop(){
26+
copier.copy();
27+
}
28+

src/AudioConfig.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
# include "Arduino.h"
1212
#elif defined(IS_DESKTOP_WITH_TIME_ONLY)
1313
# include "AudioLibs/MillisDesktop.h"
14-
# include "AudioLibs/NoArduino.h"
14+
# include "AudioLibs/Desktop/NoArduino.h"
1515
#else
16-
# include "AudioLibs/NoArduino.h"
16+
# include "AudioLibs/Desktop/NoArduino.h"
1717
# define IS_JUPYTER
1818
#endif
1919
#include <string.h>
@@ -554,6 +554,13 @@ using WiFiServerSecure = BearSSL::WiFiServerSecure;
554554
typedef WiFiClient WiFiClientSecure;
555555
#endif
556556

557+
#ifdef IS_MIN_DESKTOP
558+
# include "AudioLibs/Desktop/NoArduino.h"
559+
# include "AudioLibs/Desktop/Millis.h"
560+
# include "AudioLibs/Desktop/Main.h"
561+
# include "AudioLibs/Desktop/File.h"
562+
#endif
563+
557564
#ifndef ARDUINO
558565
# define USE_STREAM_WRITE_OVERRIDE
559566
#endif

src/AudioLibs/Jupyter/File.h renamed to src/AudioLibs/Desktop/File.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#pragma once
2-
#include "AudioLibs/NoArduino.h"
2+
#include "AudioLibs/Desktop/NoArduino.h"
33
#include <iostream>
44
#include <fstream>
55
#include <sys/stat.h>
@@ -18,6 +18,9 @@ enum SeekMode { SeekSet = 0, SeekCur = 1, SeekEnd = 2 };
1818
class File : public Stream {
1919
public:
2020
File() = default;
21+
File(const char* fn) {
22+
open(fn, FILE_READ);
23+
}
2124

2225
void open(const char* name, FileMode mode){
2326
file_path = name;

src/AudioLibs/Jupyter/JupyterAudio.h renamed to src/AudioLibs/Desktop/JupyterAudio.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#pragma once
2-
#include "AudioLibs/NoArduino.h"
2+
#include "AudioLibs/Desktop/NoArduino.h"
33
#include "AudioTools/AudioStreams.h"
44
#include "AudioTools/AudioPrint.h"
55
#include "AudioCodecs/CodecWAV.h"

src/AudioLibs/Desktop/Main.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* Generic main for desktop arduino emulation
3+
*/
4+
#pragma once
5+
6+
void loop();
7+
void setup();
8+
9+
int main (void) {
10+
setup();
11+
while(true){
12+
loop();
13+
}
14+
}

src/AudioLibs/MillisDesktop.h renamed to src/AudioLibs/Desktop/Millis.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#pragma once
2-
#include "AudioLibs/NoArduino.h"
2+
#include "AudioLibs/Desktop/NoArduino.h"
33
#include <iostream>
44

55
#define DESKTOP_MILLIS_DEFINED
File renamed without changes.

src/AudioLibs/Jupyter.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#pragma once
2-
#include "MillisDesktop.h"
3-
#include "Jupyter/JupyterAudio.h"
4-
#include "Jupyter/File.h"
2+
#include "Desktop/Millis.h"
3+
#include "Desktop/JupyterAudio.h"
4+
#include "Desktop/File.h"

0 commit comments

Comments
 (0)