Commit Graph

20 Commits

Author SHA1 Message Date
5684185+vsariola@users.noreply.github.com
248ba483c6 feat: add ability to import 4klang patches and instruments 2023-07-06 23:47:55 +03:00
5684185+vsariola@users.noreply.github.com
cd700ed954 feat!: implement vsti, along with various refactorings and api changes for it
The RPC and sync library mechanisms were removed for now; they never really worked and contained several obvious bugs. Need to consider if syncs are useful at all during the compose time, or just used during intro.
2023-05-13 17:56:13 +03:00
vsariola
a8f8911f03 refactor(sointu): Change the signature of Play to accept SynthService instead of Synth
This is more logical as every single use of Play started with compiling the patch of a song with a SynthService.
2021-08-30 22:24:42 +03:00
vsariola
203e8a3ccc refactor(vm): simplify flattenSequence code 2021-05-12 22:44:03 +03:00
vsariola
a2723829da refactor: implement Order and Pattern types: slices returning default values for out of bound indices 2021-05-12 12:08:55 +03:00
vsariola
e9834110ec fix(bridge): respect the hard limit of 64 delay lines to avoid crashes. 2021-05-08 16:51:45 +03:00
vsariola
f3cf4a52ce feat(compiler, wasm): do not hard code memory addresses to uninitialized sections
Rather, allocate unitialized segments as needed.
2021-04-15 23:24:58 +03:00
vsariola
9b4608e31e feat(vm): construct minimal delaytime table using greedy matching
The idea is to find a minimal array that contains all the delay times and then point all delay times into this array.
2021-03-26 23:07:20 +02:00
vsariola
c5972bc023 fix(vm): skip empty units when detecting what units are used 2021-03-24 00:17:10 +02:00
vsariola
cce99e6508 feat(vm): make the all empty pattern the zero pattern
Perhaps helps compression
2021-03-21 13:30:16 +02:00
vsariola
452a2f6f04 feat(vm): reuse delaytimes if one has already been used before 2021-03-21 10:22:47 +02:00
vsariola
eb61fcb130 fix(vm): parameters with default values (no key in the unit parameter map) were not considered to be used in featureset 2021-03-20 18:46:10 +02:00
vsariola
42c9e045b7 feat: change the compressor unit to apply post-gain instead of pregain.
Pregaining ran into trouble: could not bring the signal level back to near 0dB. For example, with infinite ratio in the pre-gain system, the signal level was capped at threshold, which in turn ran into trouble with stereo signals.
2021-03-20 17:01:04 +02:00
vsariola
f9225d70a9 refactor(vm): extract polyphony bitmask calculation to its own function & document better 2021-03-10 09:34:23 +02:00
vsariola
43ef6fa72c fix(sointu): fix sync data getting output from play & test it 2021-03-10 09:06:42 +02:00
vsariola
99dbdfe223 feat: add the ability to use Sointu as a sync-tracker
There is a new "sync" opcode that saves the top-most signal every 256 samples to the new "syncBuffer" output. Additionally, you can enable saving the current fractional row as sync[0], avoiding calculating the beat in the shader, but also calculating the beat correctly when the beat is modulated.
2021-03-09 23:52:33 +02:00
vsariola
185173c821 fix(vm): the tests were broken, but not code 2021-03-04 14:37:57 +02:00
vsariola
cc80fe7317 fix(vm): patterns encoding was broken by the non-standard pattern lengths 2021-03-04 14:33:09 +02:00
vsariola
6d2b63a5e9 feat(sointu, vm): implement pure-Go interpreter for bytecode
The old "native" compiler bridged version is now started with cmd/sointu-nativetrack,
while the new pure-Go bytecode implemented bytecode interpreter is started with
cmd/sointu-track

Thus, you do not need any of the CMake / cgo stuff to run cmd/sointu-track
2021-03-03 23:55:58 +02:00
vsariola
a035845b81 reorganize things into different packages 2021-03-02 17:19:45 +02:00