openAV-Ctlra
tinyusb
openAV-Ctlra | tinyusb | |
---|---|---|
1 | 48 | |
78 | 4,532 | |
- | - | |
0.0 | 9.8 | |
about 1 year ago | 5 days ago | |
C | C | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
openAV-Ctlra
-
starting to get Kontrol S4 Mk3 motorized wheel working in Mixxx
I have been talking to the author of Ctlra who has reverse engineered the screens. The screens work by sending a bunch of pixels to a vendor defined class USB bulk endpoint. Unlike some other controllers with screens which just take some metadata from the software and do their own rendering, Native Instruments controllers with screen rely on the software to do the rendering. Traktor does this by rendering QML to an offscreen buffer. However, according to the author of Ctlra it is more complicated than that to get 60 FPS framerate to the screens because simply sending all the pixels continuously saturates the USB bus. Fortunately that doesn't interfere with any other features of the controller because the other USB signals have higher priority (isochronous for the audio, interrupt for the HID). So to get a good framerate, which would matter for sending scrolling waveforms to the screens, my understanding is that Mixxx would have to compare every rendered frame to identify which rectangles of the screen to update in each USB packet.
tinyusb
- An open source cross-platform USB stack for embedded system
-
Bluetooth to USB Audio bridge
Implementing the required USB host interface is another hurdle, but tinyusb seems to have sorted most of that out, except that UAC2 is implemented as a device while you need a host.
- So I started porting braids to the PI PICO and ended with a generative drum machine
-
USB CDC: Multiple Virtual COM Ports
Have a look at TinyUSB. It supports the STM32WB and demo programs for the Nucleo-WB55RG. It even offers an example for dual CDC ports, so very close to what you're looking for.
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
Second: Distrust, misunderstanding, and out of date opinions of C++ in embedded spaces. I often see "compatibilty" thrown around as a goal for using C and not C++, but for most modern embedded systems, C++ compilers exist and are (usually) well tuned. Arm is a shining example here*. C++ is more optimizable than C as the intent can be clearer to the compiler. C++ constexpr and templates are a godsend for embedded systems, and I used both heavily in my recent arduino and pico testing. I combined both of them for a really cool experimental USB interface descriptor builder that runs at compile time and avoids the need to count byte sizes, but I gave up on it when the maintainer said C only, despite the fact that C can't do that. I was similarly disappointed when the pico "C++" was C only, as there was no backwards compatibility necessary.
-
Pico + CH559 = USB Midi host?
I looked at this but the fork seems to have had a lot of problems from looking at the PR: https://github.com/hathach/tinyusb/pull/1219
-
Badger 2040: tiny kit ereader
I think a better solution might be to use a USB flash drive in the usbc port. Unfortunately micropython and circuitpython don't support this (yet), so you'd have to use c++ https://github.com/hathach/tinyusb
-
ESP32-S3 Update via USB?
It's possible to make the s3 be a mass storage device via TinyUSB. https://github.com/hathach/tinyusb/tree/master/examples/device/cdc_msc_freertos
- Microcontroller that can read voltage?
- how do emulate a keyboard over usb? wherever I look I only see libraries and tutorials on how to use the eps32 as a Bluetooth keyboard not a wired one
What are some alternatives?
midimonster - Multi-protocol control & translation software (ArtNet, MIDI, OSC, sACN, ...)
esp32-s2-usb-host-cdc
zrythm - a highly automated and intuitive digital audio workstation - official mirror
libusb - A cross-platform library to access USB devices
cane - A small MIDI sequencer DSL designed around vectors and euclidean rhythms
lufa - LUFA - the Lightweight USB Framework for AVRs.
mixxx - Mixxx is Free DJ software that gives you everything you need to perform live mixes.
hid-remapper - USB input remapping dongle
mdxtools - A bunch of tools for handling the MDX music format (music for the Sharp x68000)
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
Adafruit_TinyUSB_Arduino - Arduino library for TinyUSB
arduino-esp32 - Arduino core for the ESP32