Veikko Sariola
95b70018cc
Fix all CMake tests passing on MinGW: consider minor (< 1e-6) errors in waveform shape successes.
...
Such errors are due to floating point rounding errors.
2020-10-22 21:19:14 +03:00
Veikko Sariola
b9ec015b4a
Document MinGW build commands in README.md.
2020-10-22 21:19:14 +03:00
Veikko Sariola
7aac3917b7
Implement a bridge to call Sointu from Go language.
...
The main interface is render_samples function, which renders several samples in one call,
to limit the number of calls from Go to C. This is compiled into a library, which is then
linked and called from bridge.go.
2020-10-22 21:19:13 +03:00
Veikko Sariola
af14cd310b
Change .asm files that are actually only ever included into .inc-files, and rename all files as _header.inc & _footer.inc, depending where they are included.
2020-10-21 11:01:09 +03:00
Veikko Sariola
06e8365c06
Update README.md
2020-10-21 09:50:19 +03:00
Veikko Sariola
7e3dc19c83
Add inverse gain to compressor. The inverse gain is applied to the signal before any compressor calculations.
2020-05-27 18:54:37 +03:00
Veikko Sariola
c5b6e6e28c
Move su_load_gmdls into the responsibility of the intro to call, anticipating multicore rendering so it is called once before all the cores are spun up.
2020-05-27 18:54:34 +03:00
Veikko Sariola
200937aa50
Fix single shot samples: only first half of them was getting played.
2020-05-27 16:21:49 +03:00
Veikko Sariola
8956f524c9
Only compile introspection.asm when SU_USE_INTROSPECTION is defined.
2020-05-27 16:04:52 +03:00
Veikko Sariola
45e554a9f9
Fix yasm warnings about flags being ignored on section redeclaration.
2020-05-27 13:17:28 +03:00
Veikko
5e05057240
Fix builds and tests to pass on Linux.
...
Builds on both 32-bit and 64-bit executables and all tests (except gm.dls stuff obviously, which was excluded) pass on 64-bit Linux. Cannot test the 32-bit executables, as WSL does not support running 32-bit.
2020-05-27 10:54:37 +03:00
Veikko Sariola
b64723323f
Move player.asm back to sointu.asm, as they were getting again pretty intertwined.
2020-05-26 21:36:06 +03:00
Veikko Sariola
e049bf2dce
Change loadnote to load values from [-1,1], to allow using notes for both positive and negative modulations.
...
Also change SPEED to take this change into account.
2020-05-26 19:21:35 +03:00
Veikko Sariola
3cdada41e0
Rename labels in envelope into more sensible.
2020-05-26 18:34:47 +03:00
Veikko Sariola
ceae6ffcba
Clean up the op_advance code&comments and remove one unnecessary jump.
2020-05-26 18:13:16 +03:00
Veikko Sariola
91b8912015
Rename all SU_BEGIN_* macros into BEGIN_*; there's no real risk of nameclash and makes the code more readable.
2020-05-26 17:45:37 +03:00
Veikko Sariola
efc6db71ab
Reverse the logic of USE_SECTIONS (it's now DISABLE_SECTIONS) and then remove unnecessary defines.
2020-05-26 17:30:50 +03:00
Veikko Sariola
3b10476dc2
Remove unused strucs / struc members; in particular: .params /.ports.
2020-05-26 16:35:19 +03:00
Veikko Sariola
cf86a951f5
Move all constants into the end of sointu.asm, littering them around started getting messy.
2020-05-26 16:30:57 +03:00
Veikko Sariola
35b8253776
Delete CONCATENATE macro - it is not used anymore.
2020-05-26 14:25:15 +03:00
Veikko Sariola
dac5afea60
Implement IN, OUTAUX and AUX opcodes, to conveniently input from or output to global ports.
2020-05-25 23:23:24 +03:00
Veikko Sariola
17c6afceb4
Fix bug that su_env_map was not compiled when using only compressor, and rename it to su_nonlinear_map.
2020-05-25 20:45:36 +03:00
Veikko Sariola
1f92373a63
Limit compressor stack use.
2020-05-25 20:39:10 +03:00
Veikko Sariola
1eb6974d5d
Optimize compressor size.
2020-05-25 20:29:34 +03:00
Veikko Sariola
55d9ca0ffc
Reverse the voiceno counter: now it starts from MAX_VOICES and decrements until 0. This way, the VM needs not know anything about MAX_VOICES.
2020-05-25 17:23:54 +03:00
Veikko Sariola
a193b8b1ef
Inline transform_values into the VM, leading to a slightly more efficient register use.
2020-05-25 16:59:15 +03:00
Veikko Sariola
3198452b9c
Add a change log.
2020-05-25 14:14:13 +03:00
Veikko Sariola
33d83d29a5
Update project description & version.
2020-05-25 13:58:29 +03:00
Veikko Sariola
8d0ae21fb6
Remove separate playerstack and clean up the code.
2020-05-25 13:44:30 +03:00
Veikko Sariola
7de7b49e24
Change apply to "do" and add brackets.
2020-05-25 13:44:29 +03:00
Veikko Sariola
2c6f4f44d5
Use some of the unused space of synth object for curvoices.
2020-05-25 13:44:28 +03:00
Veikko Sariola
457c1fdc32
Move things to stack, anticipating support for multicore rendering.
2020-05-25 13:44:28 +03:00
Veikko Sariola
5c25eacd08
Optimize delay for better register use.
2020-05-23 21:06:58 +03:00
Veikko Sariola
da52c10f7f
Get rid of transformed values and use the header of the voice for that; saves _CX completely for the opcode.
2020-05-23 21:06:57 +03:00
Veikko Sariola
79b384a0d6
Clean up comments and some defines.
2020-05-23 16:02:29 +03:00
Veikko Sariola
bd005d52a7
Clean up whitespace.
2020-05-23 15:09:32 +03:00
Veikko Sariola
6f06306f0c
Re-engineer delay, to use stack for the delay WRK pointer and to support note-syncing transpose.
2020-05-23 15:05:38 +03:00
Veikko Sariola
afbff66e36
Use strucs for stack locations, instead of hard-coding them everywhere.
2020-05-23 14:56:06 +03:00
Veikko Sariola
654e5868bc
Implement support for 64-bit builds.
...
The implentation is through a few macros to handle the fact in 64-bit, all addresses have to be loaded first to register and only offsets are ok. Also, push only supports 64-bit registers in 64-bit, so we have _AX, _BX, _CX etc. defines, which are eax, ebx and ecx on 32bit and rax, rbx and rcx on 64bit.
2020-05-21 17:18:18 +03:00
Veikko Sariola
6f7fed4c6b
Move jnc *_mono, ..., *_mono: code from function bodies to the stereofilter helper.
2020-05-20 08:49:23 +03:00
Veikko Sariola
dc99157fbb
Implement unison oscillators: multiple versions of slightly detuned oscillators that are added up to make a signal.
2020-05-19 22:52:21 +03:00
Veikko Sariola
adc4a6e45f
Implement sample-based oscillators, with sample import from gm.dls.
2020-05-19 18:29:47 +03:00
Veikko Sariola
77b989d88d
Optimize size.
2020-05-18 16:25:20 +03:00
Veikko Sariola
666fd385d1
Fix bug in SEND STEREO.
2020-05-18 16:23:49 +03:00
Veikko Sariola
5d1145be39
Improve README.
2020-05-17 16:48:28 +03:00
Veikko Sariola
fc0ad4c011
Implement compressor.
2020-05-17 16:37:08 +03:00
Veikko Sariola
71a5a18257
Implement player speed modulation opcode for triplets and such.
2020-05-17 09:51:20 +03:00
Veikko Sariola
15717557f1
Split polyphony test into two tests.
2020-05-17 08:32:35 +03:00
Veikko Sariola
f06810d956
Optimize size.
2020-05-17 01:24:38 +03:00
Veikko Sariola
3b33b4e4d2
Improve README.
2020-05-16 23:27:30 +03:00