Commit Graph
45 Commits
Author SHA1 Message Date
Veikko Sariola 470ba28592 Change the Render function in bridge.go to return a tuple of: number of samples rendered; bool indicating if rowend was reached; and a possible error.
The callbacks are gone; the row looping is the job of the user which is probably better for everyone.
2020-10-26 08:30:43 +02:00
Veikko Sariola 6e85ff674a Change the sointu.h api to return -1, 0 or n>0 depending if buffer is full and/or row ended.
test_render_samples_api.c was added to test the api. bridge.go was modified to reflect that there is no need to check for row manually; su_render_samples already returns the information if a row has ended.
2020-10-24 13:00:08 +03:00
Veikko SariolaandVeikko 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 45e554a9f9 Fix yasm warnings about flags being ignored on section redeclaration. 2020-05-27 13:17:28 +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 SariolaandVeikko 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 f06810d956 Optimize size. 2020-05-17 01:24:38 +03:00
Veikko Sariola 3b33b4e4d2 Improve README. 2020-05-16 23:27:30 +03:00
Veikko Sariola d87d2e22cf Implement new effect: bit-crusher.
Maybe a combined hold/bit-crusher effect is needed someday.
2020-05-16 23:27:29 +03:00
Veikko Sariola 6a0a2fc36c Optimize the implementations of gain and invgain. 2020-05-16 23:23:05 +03:00
Veikko Sariola ac5b4dd496 Make clip opcode working and add regression tests to it. 2020-05-16 22:49:59 +03:00
Veikko Sariola 5760f78201 Implement gain and inverse gain effects, for the moments when you just need them. 2020-05-16 22:29:08 +03:00
Veikko Sariola e966bc0084 Improve README. 2020-05-16 21:57:32 +03:00
Veikko Sariola 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
Veikko Sariola f9388b028a Rename test files to represent better the new opcodes they correspond to. 2020-05-16 18:32:56 +03:00
Veikko Sariola 5c1b87f254 Improve comments for UpdateInstrument 2020-05-04 20:19:58 +03:00
Veikko SariolaandVeikko Sariola 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
Veikko Sariola 09c497fef6 Add regression tests for delay modulations. 2020-04-25 11:29:14 +03:00
Veikko Sariola 7170b049d3 Add regression tests for VCF opcode and its modulations. 2020-04-24 22:51:42 +03:00
Veikko Sariola 4b9b1710eb Add regression tests for delay (DLL) opcode. 2020-04-23 20:06:41 +03:00
Veikko Sariola a49fba060c Add regression tests for distortion, including sample-and-hold and modulations. 2020-04-18 21:21:21 +03:00
Veikko Sariola 41222b09a7 Move all raw audio files related to tests into subfolders, to have slightly more clean folder structure and to avoid mixing source files and data files. 2020-04-18 19:47:16 +03:00
Veikko Sariola 886ee85a09 Improve CMakeLists.txt for tests, so it is easier to define test prerequirements.
Also added a few missing prerequirements.
2020-04-18 13:16:33 +03:00
Veikko Sariola d9f4def1d4 Add regression tests for vco modulations (cm, dm, fm, gm, pm, sm and tm) 2020-04-17 19:36:09 +03:00
Veikko Sariola cc2babde9c Add regression test for envelope modulation. 2020-04-17 18:21:37 +03:00
Veikko Sariola 462521518f Add regression tests for FST and FSTG opcodes. 2020-04-16 22:05:50 +03:00
Veikko Sariola 9c7db45a46 Rewrote parts of the test renderer to read the whole data from disk in one fread. 2020-04-16 14:05:17 +03:00
Veikko Sariola 374be5256e Add regression test for VCO opcode, lfo variant. 2020-04-16 13:37:30 +03:00
Veikko Sariola 83e3ab165e Add test for 16-bit output, also moving the testname for test_renderer into compiler definition to avoid rewriting it everytime. 2020-04-15 23:17:03 +03:00
Veikko Sariola cff4538b8c Make the CMakeLists.txt for the tests a slightly more sensible; the data files are copied after every build if they are newer. 2020-04-15 21:43:22 +03:00
Veikko Sariola d6798bdae3 Add regression test for VCO opcode (oscillator) for testing stereo sound creation. 2020-04-14 23:37:15 +03:00
Veikko Sariola 34a98ebc4a Add regression test for VCO opcode (oscillator): gate, noise, pulse and trisaw variants. 2020-04-14 23:11:10 +03:00
Veikko Sariola 38499e01bb Add regression test for VCO opcode (oscillator), sine wave variant. 2020-04-14 22:23:09 +03:00
Veikko Sariola 35b2df2a2f Require CMake version 3.15, as the Visual Studio statically linking runtime policy was introduced in it. 2020-04-14 21:44:45 +03:00
Veikko Sariola ce81ef5ef9 Add regression test for FOP opcode, loadnote variant. 2020-04-14 21:44:05 +03:00
Veikko Sariola 398543d67c Add regression tests for FOP opcode: add, addp2, mul, mulp2, push and xchg variants. 2020-04-14 18:08:57 +03:00
Veikko Sariola e790549d27 Add regression test to test fop opcode / addp, mulp and pop variants. 2020-04-13 19:10:46 +03:00
Veikko Sariola 08518a9527 Add regression test to test multiple instruments. 2020-04-13 17:50:09 +03:00
Veikko Sariola b1ba5e9e6b Add regression test to test panning opcode. 2020-04-13 17:34:46 +03:00
Veikko Sariola f33da76d1e Add regression test to test load opcode. 2020-04-13 17:18:26 +03:00
Veikko Sariola 1f0fdfc30e Improve and rename envelope test. The test focuses on GO4k_ENV opcode only and does not use panning. 2020-04-13 16:53:11 +03:00