Can you help me find a preset?

Hi Zynthianers!

I’ve been working on something that might be useful for others (I think is “good enough to share”). It’s like a sound library that has recordings of the presets, with some basic tags. The “thing” is composed of three components:

  1. A sound scrapper, which is a script that runs inside Zynthian and automates the recording of clips of the audio that each engine/preset (or engine/preset/note in the case of percussion engines) produces, and stores them (cropped, normalized, and in OGG/Opus format) along with their meta information (in JSON: engine, bank, preset and a very basic set of tags extracted from the name).

  2. A second script that uses AI to retrieve more tags from the audio data. It uses a very old model (Yamnet), removing the non-musical labels, and some other minor adjustments.

  3. A static web app, that reads the JSON file, and presents a very basic interface to search for presets, and listen the clips, with support for browser stored favorites. This part has more room for improvement, in case of other needs. For example, I would like to add support for user tags. Here is an example screenshot:

I’m still in the phase of recording clips (Zynthian has a huge collection of engines/presets!), and my plan is to upload the app to Github pages, so anyone interested can browse it.

Nevertheless, I think that we can get more of its potential if it “runs” inside Zynthian (of course, enabling it only if needed). It would not incur in any overhead (its an static app, only the disk space), and could be easily updated with local presets, filtering disabled engines, etc. Moreover, once the user finds a suitable sound, there could be a button that communicates with Zynthian and automatically adds a new chain with the engine/preset, or updates an existing one, etc.

Well, this is what I have until now. If there is some interest, we can move on. Otherwise, it has been a very fun project! :smiley:

11 Likes

There is some interest. I think this would be great!

2 Likes

I find it awesome as it might help to solve another problem: looking for presets using the tags and classifications.

It looks very promising :slight_smile:

4 Likes

Well, I see that there is interest! :grin: So, I’ve added some more features to the app, and I’ve published it to GitHub Pages. It can be accessed here:

Note: currently, it’s not very mobile friendly, sorry!

It has already some presets (around 2000), but there are many more pending! I’ll update the app as more clips are recorded.

I’ve also added support to create new tags (stored in the browser) and to export/import the user modifications, so we can have backups, share between devices and/or between us :wink:. The idea behind this is, also, to have user defined tags that can be merged with the global DB.

As a disclaimer, I must say that these clips has been recorded and re-tagged automatically, so there may be bad/missing clips or incorrect tags. If you find something like that, you can copy the “clip path” clicking on its name, and send it to me, so I can fix the problem.

Happy Zynthing!

10 Likes

:heart_on_fire:

Wow, that is cool! The potential for a crowd sourced tagging database is very promising.

2 Likes

Yes! And the ability to search for a sound, and even play it on the screen keyboard without concern for which ‘engine’ it is part of, is kind of mind boggling. Thanks @oscaracena !

1 Like

Wow, good work! I’ve been searching for presets and certainly this is a leap forward.

IIRC some engines and presets have stars. They could be added as well as it they are enabled by default.

Thank you for this big contribution Oscar :clap:

1 Like

Thank you all for your good feedback! I’m glad this could be useful! :smiling_face:

@pau Yes, the engines have stars and also more meta information, like a description and a complexity rating. I want to show that info somehow, I think it provides useful context.

1 Like

further idea is to have a Midi file for each sound category to test the preset

1 Like

Interesting idea! Currently, if the engine/preset is melodic, you have three audio clips: a C4 note, a Cmaj chord (arp + simultaneous) and a chord progression I-V-vi-IV. I’ll add the MIDI player to the TODO ideas, to explore it further.

Thanks!

3 Likes

Hi everyone!

I’m still recording clips, but I’ve added some more presets to the database (now it has around 5,700). And I’ve redesigned the “auto-tagger” system :smiley: Now, it is run in two stages: 1) to get the tags that Yamnet can retrieve from the audio, and 2) using those tags, and the name of the engine, bank and preset, to query an LLM about which tags should we use. After that, I filter the results, using black and white-lists, and an aliases dict. I think this version is a bit better, but it is still an automatic tagging, so expect errors.

I hope this new update makes the DB more usable.
Cheers!

4 Likes

Hi @oscaracena !

I’m loving it, mate! Very good work!
I’m thinking about how to profit this from Zynthian UI…

Regards,

2 Likes

Thank you very much! :blush: I’m open to any of your ideas! :upside_down_face:

This screams for crowd sourced tagging, isn’t it? If the engine selection would be integrated in the preset browser as the top level entry, it could end up being a system wide tagged preset database (I’m thinking a bit towards Arturia Analog Lab)

1 Like