arduino-audio-tools/README.md

67 lines
2.7 KiB
Markdown
Raw Normal View History

2021-04-28 06:06:15 +00:00
# Arduino Audio Tools
2021-04-28 09:45:38 +00:00
Some basic C++ classes that can be used for Audio Processing privided as Arduino Library
2021-04-28 06:06:15 +00:00
2021-05-01 07:25:55 +00:00
- Additional Stream implementations: MemoryStream - ESP32 only: UrlStream, I2SStream
2021-04-28 06:40:17 +00:00
- a simple I2S class (to read and write to the internal I2S) [ESP32 only]
- a simple ADC class (to read analog data with the help of I2S) [ESP32 only]
2021-04-28 06:06:15 +00:00
- Converters
2021-04-29 09:52:46 +00:00
- Musical Notes (with Frequencies of notes)
2021-04-28 06:06:15 +00:00
- SineWaveGenerator (to generate some sine tone)
2021-04-29 20:50:28 +00:00
- NBuffer (Multi buffer for writing and reading of (audio) data)
- TimerAlarmRepeating (e.g. for sampling audio data using exact times) [ESP32 only]
2021-04-29 09:52:46 +00:00
- A Wav Encoder and Decoder
2021-04-28 06:06:15 +00:00
2021-04-29 20:50:28 +00:00
This functionality provides the glue which makes different audio processing components and libraries work together.
2021-04-28 09:01:34 +00:00
We also provide plenty of examples that demonstrate how to implement the different scenarios.
2021-04-28 06:06:15 +00:00
## Optional Libraries
2021-04-30 02:48:08 +00:00
Dependent on the example you might need to install some of the following libraries:
2021-04-29 19:18:30 +00:00
- [ESP32-A2DP Library](https://github.com/pschatzmann/ESP32-A2DP)
- [ESP8266Audio](https://github.com/earlephilhower/ESP8266Audio)
- [SD Library](https://www.arduino.cc/en/reference/SD)
2021-04-30 02:51:18 +00:00
- [arduino-fdk-aac](https://github.com/pschatzmann/arduino-fdk-aac)
2021-04-28 06:06:15 +00:00
2021-04-28 09:01:34 +00:00
2021-04-30 02:48:08 +00:00
# Examples
- [adc-a2dp](examples/adc-a2dp) - Stream Analog input to A2DP Bluetooth
- [adc-serial](examples/adc-serial) - Stream Analog input to Serial
- [file_raw-a2dp](examples/file_raw-a2dp) - Stream Row File from SD card to A2DP Bluetooth
- [file_raw-serial](examples/file_raw-serial) - Stream Raw File from SD card to Serial
- [file_mp3-a2dp](examples/file_mp3-a2dp) - Stream MP3 File from SD card to A2DP Bluetooth using the ESP8266Audio library
- [i2s-a2dp](examples/i2s-a2dp) - Stream I2S Input to A2DP Bluetooth
- [i2s-serial](examples/i2s-serial) - Stream I2S Input to Serial
2021-04-28 09:01:34 +00:00
2021-04-28 16:15:42 +00:00
## Installation
You can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with
```
cd ~/Documents/Arduino/libraries
2021-04-29 20:50:28 +00:00
git clone pschatzmann/arduino-audio-tools.git
2021-04-28 16:15:42 +00:00
```
2021-04-28 09:01:34 +00:00
## Documentation
2021-04-28 06:11:01 +00:00
2021-04-29 20:50:28 +00:00
Here is the generated [Class documentation](https://pschatzmann.github.io/arduino-audio-tools/html/annotated.html). You might find further information in [one of my blogs](https://www.pschatzmann.ch/home/category/machine-sound/)
2021-04-28 06:11:01 +00:00
2021-04-28 06:06:15 +00:00
## Project Status
2021-04-28 06:11:01 +00:00
2021-04-29 09:52:46 +00:00
This is currently work in progress:
2021-04-29 09:55:35 +00:00
| Functionality | Status |
|------------------------|---------|
| Analog input - ADC | tested |
| I2S | tested |
2021-04-29 19:18:30 +00:00
| Files (RAW, MP3...) | tested |
2021-04-29 09:55:35 +00:00
| Streams | open |
| WAV encoding/deconding | open |
| AAC encoding/deconding | open |
| int24_t | open |
2021-04-28 06:06:15 +00:00