Commit Graph

672 Commits

Author SHA1 Message Date
c9e8000c5f Remove the cmake magic to create bridge.go from bridge.go.in.
The bridge.go now just assumes that the library you want is built in the build/ directory. It's probably a lot better idea than using wherever the latest build was; this way the same build is always used for the library.
2020-10-23 00:04:54 +03:00
163af33c9b Add .cache/ to .gitignore. 2020-10-22 23:31:05 +03:00
896e7e70b1 Add Opcode type to bridge, and pull the opcodes from the cgo side. 2020-10-22 23:29:37 +03:00
af75dd38aa Add common build folder names to .gitignore. 2020-10-22 21:19:14 +03:00
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
b9ec015b4a Document MinGW build commands in README.md. 2020-10-22 21:19:14 +03:00
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
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
06e8365c06 Update README.md 2020-10-21 09:50:19 +03:00
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
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
200937aa50 Fix single shot samples: only first half of them was getting played. 2020-05-27 16:21:49 +03:00
8956f524c9 Only compile introspection.asm when SU_USE_INTROSPECTION is defined. 2020-05-27 16:04:52 +03:00
45e554a9f9 Fix yasm warnings about flags being ignored on section redeclaration. 2020-05-27 13:17:28 +03:00
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
b64723323f Move player.asm back to sointu.asm, as they were getting again pretty intertwined. 2020-05-26 21:36:06 +03:00
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
3cdada41e0 Rename labels in envelope into more sensible. 2020-05-26 18:34:47 +03:00
ceae6ffcba Clean up the op_advance code&comments and remove one unnecessary jump. 2020-05-26 18:13:16 +03:00
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
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
3b10476dc2 Remove unused strucs / struc members; in particular: .params /.ports. 2020-05-26 16:35:19 +03:00
cf86a951f5 Move all constants into the end of sointu.asm, littering them around started getting messy. 2020-05-26 16:30:57 +03:00
35b8253776 Delete CONCATENATE macro - it is not used anymore. 2020-05-26 14:25:15 +03:00
dac5afea60 Implement IN, OUTAUX and AUX opcodes, to conveniently input from or output to global ports. 2020-05-25 23:23:24 +03:00
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
1f92373a63 Limit compressor stack use. 2020-05-25 20:39:10 +03:00
1eb6974d5d Optimize compressor size. 2020-05-25 20:29:34 +03:00
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
a193b8b1ef Inline transform_values into the VM, leading to a slightly more efficient register use. 2020-05-25 16:59:15 +03:00
3198452b9c Add a change log. 2020-05-25 14:14:13 +03:00
33d83d29a5 Update project description & version. 2020-05-25 13:58:29 +03:00
8d0ae21fb6 Remove separate playerstack and clean up the code. 2020-05-25 13:44:30 +03:00
7de7b49e24 Change apply to "do" and add brackets. 2020-05-25 13:44:29 +03:00
2c6f4f44d5 Use some of the unused space of synth object for curvoices. 2020-05-25 13:44:28 +03:00
457c1fdc32 Move things to stack, anticipating support for multicore rendering. 2020-05-25 13:44:28 +03:00
5c25eacd08 Optimize delay for better register use. 2020-05-23 21:06:58 +03:00
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
79b384a0d6 Clean up comments and some defines. 2020-05-23 16:02:29 +03:00
bd005d52a7 Clean up whitespace. 2020-05-23 15:09:32 +03:00
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
afbff66e36 Use strucs for stack locations, instead of hard-coding them everywhere. 2020-05-23 14:56:06 +03:00
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
6f7fed4c6b Move jnc *_mono, ..., *_mono: code from function bodies to the stereofilter helper. 2020-05-20 08:49:23 +03:00
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
adc4a6e45f Implement sample-based oscillators, with sample import from gm.dls. 2020-05-19 18:29:47 +03:00
77b989d88d Optimize size. 2020-05-18 16:25:20 +03:00
666fd385d1 Fix bug in SEND STEREO. 2020-05-18 16:23:49 +03:00
5d1145be39 Improve README. 2020-05-17 16:48:28 +03:00
fc0ad4c011 Implement compressor. 2020-05-17 16:37:08 +03:00