vsariola / sointu

Fork of 4klang that can target 386, amd64 and WebAssembly. Tools run on Windows, Mac & Linux
MIT License
239 stars 15 forks source link

A preset library for instruments #91

Closed 0b5vr closed 9 months ago

0b5vr commented 1 year ago

It's probably related to #88 but that is about having 4klang compatibility so let me open a separated issue.

Motivation

The main motivation is to make people create music on sointu without knowing how to design instruments.

Because making an instrument requires knowledge of both basic synth and stack data structure! That's pretty hard for beginners.

Possible solutions

Having a preset library or a feature to load such libraries might be very cool to have.

It's a famous episode that Yamaha DX7 used to be popular thanks to its expressive presets and ability to load expansion cartridges.

Like, imagine having a "Virgill preset library". That would motivate people to make 4k music.

Current workaround

Copy and paste feature exists; it requires interacting with yaml file though, which is a bit spicy for non-coders.

vsariola commented 1 year ago

Hi,

Thank you for bringing this up! There has always been the goal of doing such an example instrument (and song) library, but I never got around finishing it (the examples/instruments folder). However, in addition to trying to add instruments there, there's a few developments that should remedy the problem a bit:

  1. LeStahL is working on importing 4klang instruments directly to sointu, in #89. This should allow us to import all the examples from 4klang and save them to the repo. But the PR is not ready to be merged yet.

  2. I am working on running sointu in a vsti, in the vsti branch. It's a mess still, because I'm still mostly drafting phase, but I'll squeeze and clean it soon & merge it to main branch. All the hard stuff is figured out e.g. receiving MIDI and recording songs, but the GUI is not really adapted to be a vsti instrument. Also, it crashes when you close the window etc. etc. so such things need to be ironed out. But the vsti should bring more user base to sointu, from which we could request contributions in form of example instruments.

  3. Finally, you might be interested to hear that petersalomonsen is working on the webasssembly side of things, and some bug fixed and improvements are coming to that side soon, when #90 is merged. One thing he has done is running the webassembly synth in browser in livemode e.g. using MIDI (or similar) to trigger and release notes. He's reporting latencies as low as 2 ms on an Apple M1, so if you don't want to compose music in vsti or in the command line tracker, but like to make your own sequencing in browser, that should be possible in future too.

But none of these are merged yet :) Sorry to keep you waiting.

vsariola commented 1 year ago

Update: vsti is merged to master branch, I'll spend now some time to squash some bugs

vsariola commented 1 year ago

Update: rudimentary version of loading 4klang patches & 4klang instruments is now merged to master branch. I also dropped the 4klang patches & instruments from the 4klang repo to this repo here, so now there is at least the 4klang preset library to work with.

vsariola commented 9 months ago

There's now a menu containing several preset instruments and these presets are embedded in the executable, so they will be always there. I closed this as complete for now, even if the preset menu is a bit crude way to present the list.