Plugin Universe : a place to search for plugins

Plugin Universe : a place to search for plugins

https://plugin-universe.com/

Free ones were a priority. Linked open data.

There's at least one much bigger database, but I didn't want to scrape for non-free things.

u/danja — 4 days ago

Rodent issue

An unusual occurence, I have to tell someone. Maybe you will understand...

I found the top CRT at a secondhand shop a couple of years ago, was a TV like the bottom one. So I made it into an x-y scope for music. But it is a bit old, the brightness has gone (and I daren't poke too much near the HV). I rehoused it, but left it open at the back.

I just saw a rat going into it. They aren't uncommon here, rural Tuscany. But to move in there? Has nibbled through most of the wires so good job I didn't plug it in.

u/danja — 9 days ago

A beepy toy for mobile

https://strandz.it/jigdaw/simple.html

I've been working on a specification for web-native plugins. To kick the tyres, with considerable AI assistant help I'm building a browser-based DAW. But it's really early days, big job.

However, given that a small screen isn't much use for a full DAW, I've made a mini player. The first preset is chiptunes, based on a port of the 8astard chip emulator. After loading the preset you can scroll down to change the parameters. The beat & tune are generated algorithmically, there are a lot of knobs to play with.

It can be installed locally but will need network whenever a new plugin is to be loaded.

The Jig plugin spec is over here : https://danja.github.io/jigdaw/

reddit.com
u/danja — 12 days ago

A personal approach

Coincidence, this morning I made a humanizer, just now got recommended a post from this sub. So here goes :

For the latest version of my blog software I have the raw posts on a local computer as individual markdown files.

I gave Claude some general guidance on my preferred writing style and then pointed it at 262 blog posts. Asked for instructions to give to an AI to translate slop into my voice.

Result: https://github.com/danja/jigdaw/blob/main/docs/danify.md

It works pretty well.

Of course if you don't have your own blog posts available, you could always do the same with someone else's. Or a certain President's tweets or whatever...

u/danja — 15 days ago

Knobs, sliders or..?

I've been making VST plugins and find myself rather ambivalent over the UI component to use for analog controls. The skeuomorphic rotary knobs look good, but seem a bit unnatural in use. With sliders it's easier to see their current position, but mine at least all tend to look naff.

What are opinions here? Any tips on design?

What alternatives are there?

reddit.com
u/danja — 17 days ago
▲ 0 r/VSTi

Test case plugins?

I'm currently working on a specification for Web-native plugins "JigDAW" and to sanity check I want to create a variety of plugins that exercise different parts of the system. I've already got a handful that do the basic midi & audio operations but now need to try things that may be more demanding.

For testing I've got a simple browser-based DAW (the main target of this kind of plugin), a minimal native Linux DAW which I originally put together to make generative systems out of plugins, and a VST wrapper which allows the JigDAW plugins to be run in a regular DAW - I use Reaper.

To give an example of what I'm looking for, today I'm trying to get a NAM/IR processor working. It worked fine in the browser DAW but fell apart when it came to the native one (the WebAssembly runtime I was using wasn't up to it, I'm having to swap for another).

Any suggestions?

In case anyone's curious, the spec is at : https://danja.github.io/jigdaw/

reddit.com
u/danja — 21 days ago
▲ 7 r/semanticweb+1 crossposts

JigDAW: a web-native plugin specification

https://danja.github.io/jigdaw/

JigDAW is a specification for audio plugins that run natively in a browser but which is also designed to build on the substantial ecosystem of tools and code targeting native/desktop DAWs. A plugin is identified by a single dereferenceable IRI. Fetching it returns a description of what the plugin is, what it needs from a host, and where its code lives, each resource carrying an integrity digest a host verifies before running it. There is no separate installer and no registry; publishing a plugin is putting these files somewhere a browser can fetch them.

Why

Native plugin formats such as VST3 and LV2 separate identity, discovery and delivery into different mechanisms: a class ID, a catalogue entry, an installer. The web has not had an equivalent for a plugin whose processing is real code, distributed by URL and verified before it runs. Web Audio Modules cover part of this gap; JigDAW adds identity, verification, capability negotiation and an RDF description a catalogue can query, and interoperates with WAM rather than replacing it.

Security

A plugin is arbitrary code from an origin the host does not control. A host fetches, parses and validates the profile before fetching anything the profile names; verifies a SHA-384 digest on every resource before it is instantiated, with no continue-anyway path past a failed one; and, where a plugin carries its own user interface, loads it into a sandboxed cross-origin frame rather than the host's own document.

Linked Data

A profile is RDF. Its musical description (role, the signals it accepts and produces) is written in the trn: vocabulary already published by the plugin-universe catalogue, so a JigDAW plugin is a valid entry there without translation. Its parameters are plain LV2 (lv2:), so an existing LV2 plugin's port descriptions carry over unchanged. Only the terms specific to running a plugin in a browser, jig:, belong to JigDAW, published at http://purl.org/stuff/jigdaw/ and dereferenceable like everything else here.

Relation to other specifications

  • LV2: a plugin's parameters are LV2 ports, not a JigDAW-specific format.
  • plugin-universe / transmissions (trn:): the musical vocabulary, shared rather than forked. jig:WebPlugin is a subclass of trn:PluginProfile, so an existing catalogue entry becomes loadable by extension, not by being rewritten.
  • Web Audio Modules: a JigDAW plugin can be packaged as a WAM 2.0 module, and JigDAW can host a foreign WAM under stricter isolation and explicit user consent than the WAM API itself requires.
  • REAPER JSFX: an importer converts a JSFX effect's script to bytecode run by a shared WebAssembly interpreter, so an existing JSFX effect becomes a JigDAW plugin without being rewritten by hand.
  • VST3 / CLAP / LV2 (native): an optional portable module ABI lets a plugin with no JavaScript engine around it be loaded directly by a native host. A reference adapter built on it loads JigDAW plugins into a desktop DAW.

For DAW developers

Loading a plugin you did not write is an ordered sequence, documented in for-hosts.md: fetch the profile, parse it, validate it against the published SHACL shapes, check what the plugin requires against what the host offers, fetch and verify its resources, register and construct its AudioWorkletNode, then send init and wait for ready before connecting it into the graph. A minimal, standalone reference host renders real audio from a plugin's IRI to a WAV file with no browser at all.

For plugin developers

A plugin is a profile, a processor, and usually a WebAssembly module doing the signal processing; for-plugin-authors.md covers writing all three, the real-time rules a processor must follow, and generating integrity digests as part of a build rather than by hand. The module is optional: a plugin simple enough for plain JavaScript declares none. Two shortcuts exist for a plugin that already exists elsewhere: one importer converts a REAPER JSFX effect, another packages a JigDAW plugin for a WAM 2.0 host.

What is implemented

The specification is complete and normative. A browser host implements it and runs 9 worked plugins: a subtractive synthesiser, a reverb, a compressor/expander/limiter/clipper with a sidechain input, a transport-synced bass line generator, the firmware of a three-chip synthesiser compiled unmodified from C++, three REAPER JSFX effects, and a plugin whose entire signal path is JavaScript. A native VST3/CLAP/LV2 adapter fetches, verifies and sounds the plugins that declare a portable ABI. The session format saves and reopens carrying the IRIs that make it portable. Plugin user interfaces of their own, as opposed to a panel generated from declared parameters, are specified and not yet implemented.

Source and specification: github.com/danja/jigdaw. Apache 2.0.

reddit.com
u/danja — 24 days ago

Human-searchable, machine-readable DB example

I have just set up a site that is a database of Digital Audio Workstation plugins, https://plugin-universe.com

While the site itself is likely of little interest here, the way it's put together may be useful info.

It uses an RDF model with a backend store that is a SPARQL server (I used Fuseki). On top of that it has a human-oriented semantic search based on an LLM embedding model.

I'm running the whole thing in a Docker container on a low-spec Linux virtual server.

As a whole it's probably a bit too domain-specific to fork & repurpose directly, but is there as a deployed example.

I built it with significant assistance from Claude Code, based on a couple of previous projects. A key aspect was making it ontology-driven, ie. a lot of the core specification is contained in the RDF vocabs.

If you need something like this yourself then the key ref. is the README.md (and the CLAUDE.md might be useful too).

https://github.com/danja/plugin-universe

u/danja — 29 days ago

"Low level" hybrid workflow

I'm curious to hear other people's processes.

I use AI coding assistants to create DAW plugins, then use these plugins to create the music. This gives a slightly paradoxical outcome, that I can legitimately claim that the music wasn't produced by AI.

While I do use instruments from the DAW, where I get more interesting results is using generative plugins to sequence external instruments, including a modular rack.

Here is an example of an improvisation:

https://youtu.be/8hRpJxUgdZQ

Just out of frame is a Launchpad grid controller I've got set up to play arpeggios via a generative plugin.

I'd liken this to the formulaic parts of the process used by regular composers. Eg. an instrument in a given register is chosen, a key selected along with a scale (to set the mood - I'm currently a fan of Phrygian Dominant). Then a style or genre.

Most of my plugins are here: https://danja.github.io/downspout/

One I'm currently working on has LLM access built in, allowing the user to create a new instrument by describing it :

https://danja.github.io/valis/

I've also what I'm calling a Generative Audio Workstation. This allows wiring up the plugins through a graphical interface. However it allows supports MCP, so an external AI agent can do the wiring: https://danja.github.io/transmission/

u/danja — 1 month ago

Free AI coding assistant

Apologies if you were all over this already, but it's new to me.

I suspect like a lot of people here, I've been using Claude Code (or OpenAI Codex) on their $20/month plan. And rapidly using up the week's supply of tokens.

So I decided to look for alternatives while waiting for the reset.

I believe I've found a good one :

https://opencode.ai/

It offers a variety of LLM API endpoints, including free ones. I've been using Muse Spark 1.3 Free and (apart from occasional "overloaded system" kind of responses) it is definitely usable, comparable to Claude Sonnet etc.

While I'm here I'd also suggest taking a look at :

https://github.com/DeusData/codebase-memory-mcp

While I seriously doubt their claims on token saving (99%!?) it does appear to speed things along. What's rather nice is that its install puts the relevant mcp entries in config for the common assistants (including OpenCode).

u/danja — 1 month ago
▲ 0 r/AudioProgramming+1 crossposts

Valis : Virtual Analog LLM Integrated System

Valis is a standalone app and a DAW plugin for building virtual analog circuits. Free, open source. Built on JUCE so should support a variety of systems, but currently only tested on Linux.

https://danja.github.io/valis/

It can be viewed as a factory for instruments and effects processors. Existing examples include :

  • SH-101 style monosynth
  • TR-909 drum voices
  • Klon Centaur guitar overdrive
  • Massive synth "scream" filter
  • Clarinet voice (digital waveguide model)

These are all simplified to some extent, but good enough to be fun, imho.

Valis is at an alpha stage of development, I'm still testing/working through bugs, builds are still rather hit & miss. But I wanted to post about it now to ask for suggestions for things to try, any other thoughts..?

The circuits are built from compiled elements, functional blocks at around the same level of abstraction as synth modules. Circuit topologies are defined in RDF/Turtle. The same circuit is presented through three views : a regular plugin view Controls with knobs etc, a node-and-arc network of components Circuit and a syntax-highlighted Turtle editor Code.

Functionality is also supported through MCP, so an LLM can drive every operation the UI can. You can ask AI to design and build circuits. The core of this system is the Valis ontology https://github.com/danja/valis/blob/main/vocabs/valis.ttl

A short demo video from a few days ago (much has changed): https://www.youtube.com/watch?v=iwrzSXKTRcY

reddit.com
u/danja — 1 month ago
▲ 2 r/experimentalmusic+1 crossposts

Raw material for you to be creative with

This afternoon I had a play in the music room. Got as far as something I quite liked, but wasn't sure what to do with it next.

So over to you...

https://github.com/danja/stems#stems

140 BPM electronic instrumental, quite melodic, fairly conventional instrument grouping.

I really like collaborations, but I live in a tiny village, my only opportunity in person here is with a guitarist friend.

But, damnit, there's the web!

This first thing is 8 tracks of stereo stems, about 3:30, as 16bit? .wav files. Git clone would be the easiest way to get them, but they can be downloaded one at a time.

Let me know if anything I can do to improve the collab potential. Also any suggestions for the kind of sounds you'd like me to deliver this way. And any other thoughts...

reddit.com
u/danja — 1 month ago

Junction : a solo jam

I do have some (ancient) history around noise/industrial music, but recently I've been playing with generative stuff on the computer which usually comes out more conventional.

Today however the computer was busy (working on https://danja.github.io/valis/ ) so I went DAWless, this was the result.

Good fun!

youtu.be
u/danja — 2 months ago

Old.

Three tunes taking turns in my head today. "White Room", Cream, is one, "Devil's Answer", Atomic Rooster another. "Knife Edge" by ELP.

Jeez, how old am I? Also basslines.

reddit.com
u/danja — 2 months ago
▲ 3 r/VSTi

VSTs on a Web DAW?

I've been making some VSTs recently. Chatting with a friend who's a Web Dev, asked if they could run with WebAudio.

That's almost certainly a big no as it stands.

But I wonder - what about a WASM-based VST host, that could reach to the native bits? Or a compile of the plugins that allowed JS and/or HTTP control?

The latter seems kinda viable - for a different reason (mcp) I have a web server embedded in this plugin: https://danja.github.io/downspout/plugins/campione/

Dunno, a Web-based DAW that can do VSTs? Thoughts?

reddit.com
u/danja — 2 months ago
▲ 7 r/DSP

Drum sample classifier?

I've recently been working on an audio sampler built as a VST plugin. I'm trying to automate some of the workflows that can be tedious to do by hand. There are a few that need knowledge of the kind of sound.

A good example, a common requirement is to take a selection of drum sounds and associate them with specific standard General MIDI notes, it's something like C2 kick, D2 snare...

I've had a look at some of the classifier algorithms available, there are several that use quite sophisticated machine learning. But these seem to be overkill for this role (and probably too demanding on compute).

I'm wondering if something like an FFT followed by a heuristics -based selector might be feasible, or failing that using a fairly shallow neural net.

Thoughts and/or pointers?

https://danja.github.io/downspout/plugins/campione/

reddit.com
u/danja — 2 months ago