TinyUSB with a thin layer of Arduino library. Other implementations are subsets of TinyUSB. This library includes host and device, all classes including USB audio. This supersedes my host only library for Giga. The TinyUSB examples have been converted to sketches. Other boards can be used but the emphasis has been on Giga because it has two USB controllers. No soldering needed to use Giga USB host.
OpenCode coding agent and a variety of coding LLMs used to develop this library.
This project is not part of the TinyUSB project so DO NOT report problems with this project to the TinyUSB project.
This is an experimental/proof of concept project made public. There is no commitment to keep this up to date, sync with upstream, regression test, accept PRs, etc. For amusement purposes only.
Here is an example of what can be done using this library on Giga.
The Mozzi synth project has been ported to Giga so start with this. Add USB device audio output on the Giga's Type C USB device port. The Giga appears to be a USB microphone to the PC. Audacity can record Mozzi output. Digital all the way through.
Add USB host MIDI on the Giga's Type A USB host port. Connect a nanoKONTROL2 or any USB MIDI control surface. Map knobs, faders, and buttons to Mozzi inputs.
SAM3X/Due is not supported by TinyUSB but this project includes a port developed by AI coding. Due is not recommended because arduino-sam depends on a old version of gcc. But if you have a Due board gathering dust, this project might make it useful. DO NOT report SAM3X/Due problems to the TinyUSB project because this feature is exclusive to this project.