Plugin host in Teapodo is done in two main modules:
- The Teapodo audio engine provided "plugin slots" for the application to mount plugin instances to (in a thread safe way), which is written in Rust
- The plugin format parsers to understand each plugin formats (e.g. VST3, AU) and create plugin instances from, which is written in C++ and is just a thin wrapper around JUCE
We did think about building our own plugin format parsers from scratch, but since we are really small (only 2 devs) we ended up using an existing solution for now. Maybe we will come around and do it at some point (I certainly hope we could!).
As for releasing the source code, that's definitely a possible option. We've seen some interest in the implementation of the project, and we will start by writing about it soon, so stay tuned!
As for graphics performance, I think the heavy lifting is done by Qt6, as it took advantages of modern GPU rendering APIs on each platforms (e.g. Metal on macOS and DirectX 11 on Windows).
What we did to keep the UI responsive is more of following the best practices when possible, things like:
* Use QML binding when we can (e.g. serving data from C++/Rust via Qt View Models), this so that frequent data changes will be batched to UI redraws only when needed
* Use C++/Rust as much as possible for calculating data needed in the UI rendering (e.g. the waveform's data)
* Avoid fractional pixel position/sizes during animation (e.g. by rounding the values), so that UI redraws are quantized to changes on visible pixels
We decided to use Qt because we previously worked in a few successful commercial audio projects with it (for our previous employers), and felt quite positive with those - so mostly just to work with what we already know, as the audio side of the project also requires a fair amount of attention, and we are a very small team.
We have an upcoming article about the technical details of the project [1], perhaps that will be interesting to you, if so stay tuned :)
Yes, we will eventually try to make it a sustainable business.
We don't have a concrete licensing plan yet, but we are hoping to keep all released functionalities free to use so that existing users won't be interrupted.
It's not open source yet, but it's certainly a possible option.
Hi, Yan from Teapodo here. Thanks for the feedback!
- Glad it felt smooth and fast to you, that's exactly what we are striving for.
- For the plugin list issue, yes, we also noticed that before release, we are planning to add plugin search/filter in the next iteration.
- On wave editing (and potentially spectrum analysis), we had some ideas around this, but we aren't able to fully commit to these yet (we are a very small team). I see your point and I think we will think more carefully about how we present the main selling point of Teapodo in the future (same goes for the "lightweight" part).
- Vertical zoom and grouping clips: these also came up when using it internally, so we will also look into these soon.
This is indeed a very interesting idea - taking advantage of the existing ecosystem. Like what the Language Server Protocol has done to the text editing world.
Thanks for the suggestion and we will definitely consider it.
Tempo adjustments and beat analysis do sound like interesting ways to expand Teapodo's capabilities! We will certainly consider those. Cheers!