diff --git a/README.md b/README.md index 2c5de26..1450a11 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,12 @@ ## BALibrary -This library is under active development as of 2022. +This library is under active development as of 2023. Last tested with: -Arduino IDE: v1.8.10 -Teensyduino: v1.48* +Arduino IDE: v2.0.4 +Teensyduino: v1.57 -![](TGA_PRO_revb.jpg) +![](TGA_PRO_MKII_rev1.jpg) -*The Arduino MIDI library has recently undergone changes to it's interface. You must have Teensyduino v1.48 or higher for the library and it's examples to work correctly. **INTRODUCTION** This open-source library is designed to extend the capabilities of Teensyduino, a collection of Arudino libraries ported to the Teensy microcontroller platform by Paul at PJRC.com. @@ -19,20 +18,26 @@ BALibrary adds to this by providing features and building blocks that are of par **INSTALLATION** In order to use BALibrary, you should: - 1. Install the Arduino IDE. This is where you write and compile your software, called 'sketches'. See [here](https://www.arduino.cc/en/Main/Software). + 1. Install the Arduino IDE. This is where you write and compile your software, called 'sketches'. See [here](https://www.arduino.cc/en/software). 2. Install the Teensyduino plugin for the Arduino IDE. This provides support for programming Teensy boards over USB, as well as access to the plethora of helpful libraries and examples it provides. See [here](https://www.pjrc.com/teensy/td_download.html). 3. Download the BALibrary library, and use the Library Manager in the Arduino IDE to install it. See [here](https://www.arduino.cc/en/Guide/Libraries) for details.. - 4. Include "BALibrary.h" for access to general purpose classes. - 5. Include "BAEffects.h" for access to Blackaddr Audio custom audio effect classes. + 4. In your .ino sketch, include "BALibrary.h" for access to general purpose classes. + 5. In your .ino sketch, include "BAEffects.h" for access to Blackaddr Audio custom audio effect classes. + 6. In your the begining of your setup() functions, call the macro set your hardware model. E.g. TGA_PRO_MKII_REV1(), MULTIVERSE_REV1(), etc. **HARDWARE** -The audio primitives and effects provided in the BALibrary library require no special hardware other than a Teensy 3.x and Teensy 4.0 series board. However, in order to use the external RAM features provided in some effects, the SPI pins used must be the same as those used on the Blackaddr [TGA-Pro audio shield](http://blackaddr.com/products/). +The audio primitives and effects provided in the BALibrary library require no special hardware other than a Teensy 3.x or Teensy 4.x series board. However, in order to use the external RAM features provided in some effects, the SPI pins used must be the same as those used on the Blackaddr [TGA-Pro audio shield](http://blackaddr.com/products/). + +*** TGA PRO *** +This library was originally designed as a companion to the TGA Pro series of hardware boards. These boards expand Teensy by adding the necessary analog audio, preamp and MIDI circuitry needed to make guitar effects, MIDI synths, etc. + +*** Aviate Audio Multiverse *** +This library also supports the Aviate Audio Multiverse (based upon the Teensy MicroMod) which means in addition to the amazing guitar effects ecosystem it provides, you can also program it yourself just like any other Teensy! So, this library also includes pinout support this device. A simple demo is provided that exercises all the hardware features of this platform. See examples/Tests/Multiverse_BasicDemo. **BALibrary CONTENTS** - WM871 advanced codec control - - analog delay modelling effect - - digital delay effect - - Sound-on-Sound effect - - external SRAM manager + - external SPI SRAM manager with DMA support + - pinout support for all TGA Pro models, plus Aviate Audio Multiverse + - some example effects using the library - more on the way! diff --git a/TGA_PRO_revb.jpg b/TGA_PRO_revb.jpg deleted file mode 100644 index bc69d4d..0000000 Binary files a/TGA_PRO_revb.jpg and /dev/null differ diff --git a/TGA_Pro_MKII_rev1.jpg b/TGA_Pro_MKII_rev1.jpg new file mode 100644 index 0000000..e0ce48e Binary files /dev/null and b/TGA_Pro_MKII_rev1.jpg differ diff --git a/examples/Tests/Multiverse_BasicDemo/Multiverse_BasicDemo.ino b/examples/Tests/Multiverse_BasicDemo/Multiverse_BasicDemo.ino index a57e523..d400d7f 100644 --- a/examples/Tests/Multiverse_BasicDemo/Multiverse_BasicDemo.ino +++ b/examples/Tests/Multiverse_BasicDemo/Multiverse_BasicDemo.ino @@ -5,7 +5,7 @@ * features of the Aviate Audio Multiverse effects processor. * * The following are demonstrated in this programming using BALibrary: - * - WM8731 stereo audio codec in master mode (NOTE: not slave mode like TGA Pro + * - WM8731 stereo audio codec in master mode (NOTE: not slave mode like TGA Pro) * - Interact with all physical controls * - Control the 128x64 pixel OLED display (connected to SPI0) * - Use the 8MB external SRAM (simple memory test) @@ -13,11 +13,11 @@ * REQUIREMENTS: * This demo for Multiverse uses its OLED display which requires several Arduino * libraries be downloaded first. The SH1106 library is modifed to work with Teensy - * and must be downloaded from the AlgorhythmTechnologies github. + * and must be downloaded from the AviateAudio github. * * Adafruit_BusIO : https://github.com/adafruit/Adafruit_BusIO * Adafruit_GFX_Library : https://github.com/adafruit/Adafruit-GFX-Library - * Adafruit_SH1106 : https://github.com/AlgorhythmTechnologies/Adafruit_SH1106 + * Adafruit_SH1106 : https://github.com/AviateAudio/Adafruit_SH1106 * * * USAGE INSTRUCTIONS @@ -86,7 +86,7 @@ void setup() { codec.disable(); // this will reset the codec - // wait up for the serial to appear for up to 1 second + // wait up for the serial to appear for up to 1 second, then continue Serial.begin(57600); unsigned serialLoopCount = 10; while (!Serial && (serialLoopCount > 0)) { @@ -94,7 +94,7 @@ void setup() { serialLoopCount--; } - MULTIVERSE(); // constants defined in BALibrary become valid only after this call + MULTIVERSE_REV1(); // constants defined in BALibrary become valid only after this call SPI_MEM1_64M(); // Declare the correct memory size // Init the display diff --git a/src/BAHardware.h b/src/BAHardware.h index 89b74b7..6fb2156 100644 --- a/src/BAHardware.h +++ b/src/BAHardware.h @@ -40,7 +40,7 @@ enum class TgaBoard : unsigned { REV_A = 0, ///< indicates using REV A of the TGA Pro REV_B, ///< indicates using REV B of the TGA Pro MKII_REV1, ///< indicates using MKII, Rev 1 of the TGA Pro - MULTIVERSE ///< indicates using the Aviate Audio Multiverse + MULTIVERSE_REV1 ///< indicates using the Aviate Audio MULTIVERSE_REV1 }; /// enum to specify the TGA Board revision @@ -55,7 +55,7 @@ enum class ExpansionBoard : unsigned { REV_1, ///< indicates using REV 1 of the Expansion Board REV_2, ///< indicates using REV 2 of the Expansion Board REV_3, ///< indicates using REV 3 of the Expansion Board (MKII Series) - MULTIVERSE ///< indicates using the Aviate Audio Multiverse for controls + MULTIVERSE_REV1 ///< indicates using the Aviate Audio Multiverse for controls }; /// enum to specify SPI memory dize @@ -205,11 +205,11 @@ extern BAHardware BAHardwareConfig; ///< external definition of global configura #define TGA_PRO_REVA(x) BALibrary::BAHardwareConfig.set(TgaBoard::REV_A) ///< Macro for specifying REV A of the TGA Pro #define TGA_PRO_REVB(x) BALibrary::BAHardwareConfig.set(TgaBoard::REV_B) ///< Macro for specifying REV B of the TGA Pro #define TGA_PRO_MKII_REV1(x) BALibrary::BAHardwareConfig.set(TgaBoard::MKII_REV1) ///< Macro for specifying REV B of the TGA Pro -#define MULTIVERSE(x) BALibrary::BAHardwareConfig.set(TgaBoard::MULTIVERSE) ///< Macro for specifying REV B of the TGA Pro +#define MULTIVERSE_REV1(x) BALibrary::BAHardwareConfig.set(TgaBoard::MULTIVERSE_REV1) ///< Macro for specifying REV B of the TGA Pro #define TGA_PRO_EXPAND_REV2(x) BALibrary::BAHardwareConfig.setExpansionBoard(ExpansionBoard::REV_2) ///< Macro for specifying REV 2 of the Expansion Board #define TGA_PRO_EXPAND_REV3(x) BALibrary::BAHardwareConfig.setExpansionBoard(ExpansionBoard::REV_3) ///< Macro for specifying REV 2 of the Expansion Board -#define MULTIVERSE_EXPAND(x) BALibrary::BAHardwareConfig.setExpansionBoard(ExpansionBoard::MULTIVERSE) ///< Macro for specifying Multiverse +#define MULTIVERSE_REV1_EXPAND(x) BALibrary::BAHardwareConfig.setExpansionBoard(ExpansionBoard::MULTIVERSE_REV1) ///< Macro for specifying Multiverse #define SPI_MEM0_1M(x) BALibrary::BAHardwareConfig.set(MEM0, SPI_MEMORY_1M) ///< Macro for specifying MEM0 is 1Mbit diff --git a/src/common/BAHardware.cpp b/src/common/BAHardware.cpp index 3675048..1096367 100644 --- a/src/common/BAHardware.cpp +++ b/src/common/BAHardware.cpp @@ -282,14 +282,14 @@ void BAHardware::set(TgaBoard tgaBoard) SPI1_MISO_PIN = 5; SPI1_MOSI_PIN = 21; return; - } + } #endif //////////////////////////////////////////////////////////////////////////// - // MULTIVERSE // + // MULTIVERSE_REV1 // //////////////////////////////////////////////////////////////////////////// #if defined(ARDUINO_TEENSY_MICROMOD) - if (tgaBoard == TgaBoard::MULTIVERSE) { + if (tgaBoard == TgaBoard::MULTIVERSE_REV1) { BA_EXPAND_NUM_POT = 4; BA_EXPAND_NUM_SW = 6; BA_EXPAND_NUM_LED = 2; @@ -332,7 +332,7 @@ void BAHardware::set(TgaBoard tgaBoard) SPI1_MISO_PIN = 1; SPI1_MOSI_PIN = 26; return; - } + } #endif }