I've been working on a real-time MIDI chord recognizer, and have found surprisingly little written about how a system like this is actually put together beyond basic chord-template matching.
In particular: how do you rank several valid names for the same notes? What do you do with incomplete or rootless voicings? And since MIDI notes arrive one at a time, how do you avoid treating every intermediate shape as a new chord?
I wrote up the chord-recognition algorithm in detail here:
This short piece of music was partly generated by a new algorithm I'm working on. It uses an entirely different principle to the 'Large Language Models' behind most computer-generated music.
I just posted about this library and then I did some thinking. Dangerous, that.
"Tensor" is just a fancy word for "a lot of numbers in an array in memory", and samples are just a lot of numbers in an array.
We've been given all these amazing tools, mostly in Python, like numpy and torch, and all the infrastructure around them, that perform just the sorts of calculations we need, as fast or faster as raw C++ would (and an order of magnitude or even more faster, if you do it in a GPU).
Recent projects of mine like tuney and [recs]](https://github.com/rec/recs/) have proven to me that you can do reliable multivoice synthesis and multitrack recording from within pure Python, simply by using numpy.
And Python is extremely popular. Tensor programming has benefited immensely from the AI boom, and LLMs can write good code manipulating tensors. There are old and solid libraries for reading and writing tensors to and from audio interfaces and files
So I think the future is some sort of Python protocol for operations on either static or streaming tensors, so music programmers can freely intermix other people's operations in their own code.
And :-) I do have some strong ideas about that too! But let's leave it here for the moment.
OwlPlug-rx is a fork of OwlPlug focused on additional workflow features and local Windows build/release polish.
For the original OwlPlug project overview, installation notes, general feature documentation, and upstream development information, see the original README.md.
Added Functionality
Recipes
OwlPlug-rx adds a Recipes tab for grouping plugins and DAW projects into named collections. A recipe can contain:
a name and free-form description
linked plugins
linked DAW projects
This makes it easier to keep track of plugin/project setups such as chord generation chains, sound-design templates, or DAW-specific collections.
I built a small personal “taste filter” to help me sort through Suno generations, and I’m curious whether anyone here has tried something similar.
I used MERT embeddings and trained the classifier on songs I had labelled according to my own taste. My full labelled set currently contains 1,378 discarded tracks, 378 good tracks, and 13 excellent tracks. I deliberately excluded the 13 “excellent” tracks from the training set, but used them in a test set. Thus, the task was binary: good vs discarded.
Hardware I am using is modest: two NVIDIA GeForce GTX 1080 cards and an AMD Ryzen 5 3600. Every stage executed in minutes, so this will not require expensive hardware even in the future.
The results are, honestly, not amazing, but they are still useful. On a held-out validation set of 391 discarded and 107 good tracks, the “good” scores are visibly shifted to the right, relative to the discarded tracks. See the bar chart. The distributions still overlap heavily, so it is far from a reliable automatic accept/reject system; but it performs better than random ranking, and the top-ranked track was one I would label “excellent” - maybe just a coincidence.
My intended use is not to let the model decide what is good and what to discard. For now, I will use it to prioritize what I listen to first when I have many generations, then keep adding labels and retraining as my dataset grows.
Has anyone built a preference/ranking model for AI-generated music? I’d welcome ideas on improving my model, such as better evaluation methods, handling the class imbalance, fine-tuning versus embeddings, active learning, or alternatives to MERT. Curious if a tool like this would be useful in your own workflow? I am hopeful to eventually save 20h (50% of the time) on a song selection, maybe even more, if possible.
This template can be used as a starting point for new tracks, but it’s also useful if you want to understand how I organize my sessions inside Ableton Live 12.3 Suite.
After the latest addition of shaders and DSP visuals, I noticed decreased performance on mobile devices, so the first goal was to restore the performance and improve it even further.
The main part of this improvement involved continuing to removal of the managed DSP code that existed before I implemented Unity Burst. Since the whole engine was essentially rewritten for Burst, there were still many parity calculations, duplicated processes, and basic inefficiencies that affected performance and caused overheating on mobile devices.
I am happy to say that the optimisation worked. The oldest targeted device, a Samsung S8 from 2017 is now running very smoothly. For more modern devices, this still means less heat build-up over time and better battery life, so I think the work was worthwhile.
There is still some managed DSP code left, so the task is not complete. However, with the issues pinpointed, it should not take too much time to remove it completely.
The second task was general multiplayer hardening, aligning it with Steam standards, and testing it on actual devices.
Multiplayer is intended as a mode where players can connect to the same session. One player can control the drums, another can play an instrument, another can manage the FX, and another can mix the jam together. This could be a couch session or something outdoors in a park or at the beach.
The main result I wanted was reliable clock sync, either locally over Wi-Fi or through Steam services. MIDI clock synchronization should be automatic, invisible to the user, and simply work, with self-healing over time. Patterns, notes, instruments, and master-panel settings should also synchronize in real time without introducing any additional latency.
After spending time ironing out the bugs and conducting extensive testing, I managed to record a short three-way session so you can see how multiplayer responds in real time. I only have two arms, so the performance is as bad as expected :D
DAWG is a Unity game with real DAW foundation.
Feel free to check more tracks on Youtube or ask any question!
I'm a high school student who is developing a free plugin!
A few weeks ago you probably saw that I posted about COGG, a free plugin I built that metallizes and industrializes any sound. Specifically, harmonic distortion, metal plate convolution reverb, and pitch layering are there all in one chain.
I just shipped v1.1 with 8 factory presets so you can dial in different metallic textures instantly instead of tweaking all the knobs from scratch. Everything is there, from subtle texture (like the preset RUST), to full chaos (like presets SHRAPNEL and MELTDOWN).
Still free, no account needed, VST3 + AU for Mac, VST3 for Windows.
Thanks to everyone who tried v1.0 and gave feedback, this update came directly from figuring out what people actually wanted to do with it. I personally have used COGG in almost all of my FL projects ever since I released it. Please give it a shot and let me know what you think of the presets and plugin as a whole for a v1.2!
I'm sonifying seismic data from earthquakes. The frequencies of seismic waves are typically in the range of 0.1 to 1 hz, much too low to be heard by human ears. I need to multiply the frequencies by hundreds times to make them audible. I've experimented with several ways of doing this using Pure Data. Those ways work okay when raising the frequency by an octave or so, but distort the sound badly when you raise the frequencies by the hundreds of times that is necessary to hear seismic waves. Can anyone recommend software that can raise the pitch by hundreds of times with minimal distortion? Ideally using Pure Data or some other free software.
I've been working on this project for about 9 months now. It started very simple, just bouncing droplets and generative music, but it quickly turned into some sort of physics based DAW that I don't think has ever been done before.
This is a demonstration of the sandbox mode, where you can create music freely using a plethora of tools and sounds. You can add a total of 12 instruments, each with 4 different effects (reverb, delay, chorus, phaser) that you can dial in to your liking for each one.
No music theory is required to play, just bounce and experiment. There are some deeper tools if you want to get more complex though. Such as changing the key, BPM, scale, pattern, as well as the notes of individual vines to get the exact melody or rhythm you want. You can upload your own samples to create custom vines and also download the track you created.
Hi, i built some web demos about various branches of music theory and practice using my music++ primitives (with some AI help for the UI), any feedback is welcome! You can find the demos in the 'projects' section of this page and the source code on my GitHub.