A set of classes to read and play 16-bit raw mono audio from micro sd-card at variable forward and backward playback rates on teensy
- for best performance, use SDXC UHS 30MB/sec Application Performance Class 2 (A2) class micro sd-card.
- improve looping controls, allow xm-tracker like sample looping,
- loop start and finish markers, ping ponging, repeating, etc.
- stereo
-
x86 / x64 linux unit tests
- cmake
- gcc or llvm: c++ standard library (using std::vector, std::function)
- boost unit-test library:
sudo apt-get install -yq libboost-test-dev
-
teensy variable playback library
- cmake
- gcc-arm-none-eabi: for cross-compiling to arm cortex m7 architecture (for teensy 4.0)
- github
- newdigate
> git clone https://github.com/newdigate/teensy-cmake-macros.git > cd teensy-cmake-macros > mkdir cmake-build-debug > cd cmake-build-debug > cmake .. > sudo make install
- PaulStoffregen
- greiman
- newdigate
graph G {
graph[rankdir="LR"]
"teensy variable playback" -- "teensy-cmake-macros" -- "cmake" [label="dev"]
"teensy-cmake-macros" -- "arm-none-eabi-gcc" [label="dev"]
"PaulStoffregen/Audio.git" -- "PaulStoffregen/cores.git"
"teensy variable playback" -- "PaulStoffregen/Audio.git"
"PaulStoffregen/Audio.git" -- "PaulStoffregen/SD.git@Juse_Use_SdFat"
"PaulStoffregen/SD.git@Juse_Use_SdFat" -- "PaulStoffregen/SPI.git"
"PaulStoffregen/SD.git@Juse_Use_SdFat" -- "greiman/SdFat.git"
"PaulStoffregen/Audio.git" -- "PaulStoffregen/Wire.git"
"PaulStoffregen/Audio.git" -- "PaulStoffregen/SerialFlash.git"
"PaulStoffregen/Audio.git" -- "PaulStoffregen/arm_math.git"
}
folder | target | description |
---|---|---|
examples |
teensy |
basic example how to use |
src |
teensy / test |
extends teensy audio library * adds AudioPlaySdRawResmp * play raw audio at variable forward and backward playback rates |
test |
test |
unit tests that run on linux x64 or x86 architecture, tests certain non-audio code in src folder |
> git clone https://github.com/newdigate/teensy-variable-playback.git
> cd teensy-variable-playback
- manual configuration steps required:
- if you just want to compile, and run/debug the tests, you can comment out the
audio
subdirectory in the rootCMakeLists.txt
add_subdirectory(audio)
->#add_subdirectory(audio)
- update
examples/CMakeLists.cmake.in
:- set cmake path variables to point to your arm gcc toolchain, teensy cores, and library dependencies
- if you just want to compile, and run/debug the tests, you can comment out the
set(COMPILERPATH "/Users/xxx/gcc-arm-none-eabi-7-2017-q4-major/bin/")
set(DEPSPATH "/Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries")
set(COREPATH "/Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/cores/teensy4/")
> ./build
> mkdir cmake-build-debug
> cd cmake-build-debug
> cmake -DCMAKE_BUILD_TYPE=Debug
> make
> cmake-build-debug/test/test_suite1
- download vs code
- install plug-in ms-vscode.cpptools
- open root folder of repository in visual studio code
- open terminal in visual studio code build, build as above
- (add breakpoint)
- launch