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