someguynamedjosh / audiobench

Open source modular synthesizer
https://someguynamedjosh.github.io/audiobench/
GNU General Public License v3.0
77 stars 2 forks source link

Writing custom modules #15

Closed suhr closed 3 years ago

suhr commented 4 years ago

Is there a guide for writing custom modules for audiobench? I would like to add some basic physical modeling stuff.

someguynamedjosh commented 4 years ago

There is currently no such guide. There are features in the code to allow for the creation of custom modules, but I wanted to add a few more features before I felt the system was ready for creating custom modules. I would create a guide at that time. Unfortunately, after releasing the initial version I have felt quite burnt out on the project. I don't know when I'll get around to adding those changes. If you want to start messing around with custom modules without a guide, you can copy the contents of components/factory_library into Documents/Audiobench/factory_library and you should have two copies of all the factory patches and modules. You can then try editing the code for the modules to see how it works. Unfortunately, there are a number of oddities and inconveniences with how these systems work, which is part of what I am hoping to fix in the future.

suhr commented 4 years ago

Interesting. So you have some kind of custom language and compile it with llvm?

someguynamedjosh commented 4 years ago

Yes. I wanted to make something that could be easily optimized based on the connections the user makes. Right now the language has a lot of weird corner cases where you can run into compiler errors and the real problem is on an entirely different line. That's part of what I wanted to fix. The language also just needs a guide in general because it does some odd things by itself, but on purpose.

someguynamedjosh commented 3 years ago

I've published a version to the gh-pages site that includes a manual on making new modules: https://joshua-maros.github.io/audiobench/book/making_libraries/start.html If you're still interested I would love to see what you make. One thing to note is that since last time, I've switched the modules over to use a language called Julia, which basically does everything I was trying to do with my custom language but better :P