meta data for this page
How to discover new JUCE-based applications and plugins
JUCE is a popular framework for developing audio programs and plugins. Since it is dual-licensed under either a proprietary license or the GPLv3, all authors who don't want to pay licensing fees to the owners of JUCE must comply with the copyleft requirements of the GPLv3. For this reasons, there are a lot of FLOSS JUCE-based plugins around, even ones that are sold commercially (it's always best to buy a copy or donate, if possible, even if they can be found in GeekosDAW!).
Github is a very popular hosting platform for FLOSS projects. It surely does not contain 100% of FLOSS programs but it does contain a high percentage of them, including mirrors from other platforms. It also has an API, which allows easy querying. For this reason, we can use it to discover new JUCE-based applications and plugins.
To do it, you need 2 things:
- A Github account
- The
ripgrep
package
For plugins
Here is how:
- Generate a one-time token from Github
- Create an empty directory and open a terminal inside of it
- Run
curl -i -u 'USERNAME:TOKEN' -H 'Accept: application/vnd.github.v3.text-match+json' 'https://api.github.com/search/code?q=juce_add_plugin&per_page=100&page=1&sort=indexed' > 1.json
Replace USERNAME with your Github username and TOKEN with your one-time token generated earlier.
1.json
will also contain the number of items in the total_count
field. Divide this number by 100 and you will find how many times you will need to run the curl
command, each time incrementing the number at the end to N (so page=N > N.json
). You can automate this via a script but remember to make the script sleep
for some minutes between requests, as Github tends to rate-limit API requests.
- Run
rg full_name | awk '{print $3}' | tr -d '“,' | sort -u | ruby -ne 'puts “https://github.com/#{$_}”' > juce.txt
- You will find the list in ``juce.txt``.
For standalone programs
Simply replace juce_add_plugin
with juce_add_gui_app
.
Tips
You only need to download the full list once. Since the curl
command automatically downloads the latest indexed files, if you download just the first result (1.json
) regularly you will probably find the latest programs without having to download the other pages.
This process actually has nothing to do with JUCE itself except for the two search keywords. It can be adapted to any kind of application.