Commit Graph

26 Commits

Author SHA1 Message Date
5684185+vsariola@users.noreply.github.com
1ac2ad3c75 fix(vm/compiler): invert the logic of the release flag in the voices (closes #102)
This makes all envelopes released by default, instead of attacking. Add also test to demonstrate the buggy behaviour.
2023-09-23 15:56:46 +03:00
Alexander Kraus
607e5b5da0 Added x86 asm and C wav writer and player examples.
Specifically:
* Added win32, elf32 and elf64 asm player and wav writers using winmm.
* Added dsound player in C.
* Separated the ALL target and the examples; introduced a new examples target.
2023-08-31 14:15:52 +03:00
Alexander Kraus
d0efcc3001 Added usage examples in C; Added asm include file with track info to sointu-compile. 2023-08-29 09:09:02 +03:00
5684185+vsariola@users.noreply.github.com
7dd2c246a0 feat(vm): add support for gm.dls samples in the go virtual machine (closes #75) 2023-08-28 22:44:37 +03:00
5684185+vsariola@users.noreply.github.com
d82d151f49 fix: native synth building on go 1.21
go v1.21 is more strict about giving methods to C.structs and was complaining about "cannot define new methods on non-local type *C.Synth". The solution was a local type alias: type BridgeSynth C.Synth
2023-08-27 12:24:06 +03:00
5684185+vsariola@users.noreply.github.com
8ffe4a70dd feat(vm/compiler): embed templates to executable 2023-07-08 16:39:41 +03:00
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