Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pschatzmann/arduino-vs1053
An Arduino library for VS1053, VS1003 Codec Breakout Boards
https://github.com/pschatzmann/arduino-vs1053
aac arduino cmake flac midi mp3 vs1003 vs1053 wav
Last synced: about 2 months ago
JSON representation
An Arduino library for VS1053, VS1003 Codec Breakout Boards
- Host: GitHub
- URL: https://github.com/pschatzmann/arduino-vs1053
- Owner: pschatzmann
- License: gpl-3.0
- Created: 2022-08-08T15:35:31.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T09:22:47.000Z (8 months ago)
- Last Synced: 2024-10-11T13:36:34.161Z (3 months ago)
- Topics: aac, arduino, cmake, flac, midi, mp3, vs1003, vs1053, wav
- Language: C++
- Homepage:
- Size: 32.5 MB
- Stars: 22
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# VS1053 library
This is a Arduino library for breakout boards using the **[VS1053 and VS1003 Chip](https://www.vlsi.fi/en/products/vs1053.html)** by VLSI Solution:
A powerful Ogg Vorbis / MP3 / AAC / WMA / FLAC / MIDI Audio Codec chip.![vs1053](https://pschatzmann.github.io/arduino-vs1053/doc/vs1053.jpg)
The library enables the possibility to play audio files. Eg. it may be a base to build your own webradio player or different audio device. I recommend to use this library together with my [arduino-audio-tools](https://github.com/pschatzmann/arduino-audio-tools) with the related [examples](https://github.com/pschatzmann/arduino-audio-tools/tree/main/examples/examples-vs1053).
This is an interesting way to output audio information for all __microcontrollers that do not support I2S__ or do not have the power or resources to decode audio files.
Functional highlights:
- __Output__ of decoded audio
- Reading of pcm data from __microphone__ / aux input
- Methods to manage __volume, treble, bass, earphones__
- Support for __real time MIDI__
- Flexible __SPI__ Design
- Functioinality implemented in arduino_vs1053 __namespace__
- Supports __Arduino__
- Supports __PlatformIO__
- Supports __cmake__## Logger
The application has a built in logger that uses Serial as output. The default log level is Warning. You can initialize the Logger with
```
VS1053Logger.begin(Serial, VS1053Info); // use VS1053Debug, VS1053Info, VS1053Warning, VS1053Error
```## Documentation
Here is the [relevant class documentation](https://pschatzmann.github.io/arduino-vs1053/doc/html/annotated.html).
You can find further information in the [Wiki](https://github.com/pschatzmann/arduino-vs1053/wiki) and in [my blogs](https://www.pschatzmann.ch/home/tag/vs1053/)...
## Pinout
The major disadvantage of the VS1053 based modules is the number of pins that need to be connected and the fact that they might be named differently. The module is using __SPI__ to communicate, therefore consult the SPI documentation of your microcontroller to find the correct SPI pins.
| VS1053 | Comment |
|----------|---------------------------------------------|
| SCK | SPI Serial Clock |
| MISO | SPI Master Input ← Slave Output |
| MOSI | SPI Master Output → Slave Input |
| (X)CS | SPI Chip Select/ Configured in Sketch |
| (X)DCS | Data Chip Select: Configured in Sketch |
| DREQ | Data Request: Configured in Sketch |
| XRST | Hardware Reset Pin: low=reset |
| 5V | Power Supply |
| GND | Ground |- The XRST pin can be configured in the sketch or you can connect it to RST of your microcontroller: XRST must be high for the module to work.
- Some boards provide a SD card and therefore have an aditional CS pin.## Credits
Based on library/applications:
* [baldram/ESP_VS1053_Library](https://github.com/baldram/ESP_VS1053_Library) by [Marcin Szałomski](https://github.com/baldram)
* [maniacbug/VS1053](https://github.com/maniacbug/VS1053) by [J. Coliz](https://github.com/maniacbug)
* [Esp-radio](https://github.com/Edzelf/Esp-radio) by [Ed Smallenburg](https://github.com/Edzelf)
* [smart-pod](https://github.com/MagicCube/smart-pod) by [Henry Li](https://github.com/MagicCube)## License
Copyright (C) 2017
Licensed under GNU GPLv3