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
71a5a18257
Implement player speed modulation opcode for triplets and such.
2020-05-17 09:51:20 +03:00
15717557f1
Split polyphony test into two tests.
2020-05-17 08:32:35 +03:00
f06810d956
Optimize size.
2020-05-17 01:24:38 +03:00
3b33b4e4d2
Improve README.
2020-05-16 23:27:30 +03:00
d87d2e22cf
Implement new effect: bit-crusher.
...
Maybe a combined hold/bit-crusher effect is needed someday.
2020-05-16 23:27:29 +03:00
6a0a2fc36c
Optimize the implementations of gain and invgain.
2020-05-16 23:23:05 +03:00
ac5b4dd496
Make clip opcode working and add regression tests to it.
2020-05-16 22:49:59 +03:00
5760f78201
Implement gain and inverse gain effects, for the moments when you just need them.
2020-05-16 22:29:08 +03:00
e966bc0084
Improve README.
2020-05-16 21:57:32 +03:00
87264c443c
Add tests for opcode stereo variants, squashing several bugs in the process. Implement receive opcode to test stereo sending.
2020-05-16 21:23:41 +03:00
f9388b028a
Rename test files to represent better the new opcodes they correspond to.
2020-05-16 18:32:56 +03:00
42ebc52c96
Remove trailing spaces and convert tabs to spaces.
2020-05-16 09:16:23 +03:00
d328431413
Improve README.
2020-05-16 08:54:55 +03:00
78d4cd50e8
Rewrote most of the synth to better support stereo signals and polyphony. VSTi removed as there is no plan to update the VSTi to support the new features.
...
The stereo opcode variants have bit 1 of the command stream set. The polyphony is split into two parts: 1) polyphony, meaning that voices reuse the same opcodes; 2) multitrack voices, meaning that a track triggers more than voice. They both can be flexible defined in any combinations: for example voice 1 and 2 can be triggered by track 1 and use instrument 1, and voice 3 by track 2/instrument 2 and voice 4 by track 3/instrument 2. This is achieved through the use of bitmasks: in the aforementioned example, bit 1 of su_voicetrack_bitmask would be set, meaning "the voice after voice #1 will be triggered by the same track". On the other hand, bits 1 and 3 of su_polyphony_bitmask would be set to indicate that "the voices after #1 and #3 will reuse the same instruments".
2020-05-16 08:25:52 +03:00
5c1b87f254
Improve comments for UpdateInstrument
2020-05-04 20:19:58 +03:00
6be7959cd1
Refactor the waveshaper function to save some bytes.
2020-05-03 17:02:08 +03:00
3c3fe6caf8
Improve comments and formatting.
2020-05-03 16:34:39 +03:00
212951c75d
Make tests rebuild when 4klang.asm and 4klang.inc are changed.
2020-05-03 12:50:42 +03:00
9546574f13
Add regression test for AUX output.
2020-05-03 11:21:09 +03:00
c63dfd74f9
Make transform macro definition slightly more readable.
2020-05-03 11:12:53 +03:00
53a1be9b61
Refactor all values to have a universal support for modulations.
...
The modulation is now always added during value transformation.
With this, a lot of *_MOD defines could be removed.
The waveform for some tests changed slightly, because when the
value is saved to memory after modulating it, there is some
rounding errors.
2020-05-03 10:41:24 +03:00
0c08f3d41c
Remove unnecessary short jump.
2020-05-01 09:34:17 +03:00
8dc7a9b5a0
Fix some name manglings.
2020-05-01 09:31:36 +03:00
405ef66b31
Remove unnecessary code from Power-function.
...
Also, improve comments.
2020-05-01 09:18:10 +03:00
660da68a48
Add regression test for polyphony (MAX_VOICES = 2).
2020-05-01 08:51:43 +03:00
f97cea2a17
Refactor 4klang to use cross-platform defines and 4klang.asm & .inc to work more like .c and .h.
2020-04-30 13:36:22 +03:00
771c0b96e3
Put back 8klang builds.
2020-04-30 13:08:37 +03:00
09c497fef6
Add regression tests for delay modulations.
2020-04-25 11:29:14 +03:00
7170b049d3
Add regression tests for VCF opcode and its modulations.
2020-04-24 22:51:42 +03:00
4b9b1710eb
Add regression tests for delay (DLL) opcode.
2020-04-23 20:06:41 +03:00