Veikko Sariola
5f4b85b0a4
Change the Go API to have two versions: Render(buffer []float32), which always fill the whole buffer, and RenderTime(buffer []float32,int maxtime), which ends either when the buffer is full, or modulated time is reached.
2020-10-27 17:26:08 +02:00
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
aa133b4606
Change bridge.go so that there is just SetPatch(...) function, instead of having to SetCommands, SetValues etc.
...
Now the patch definition in bridge_test.go and test_envelope.asm appear quite similar, so it's clear how they are related.
2020-10-24 16:15:15 +03:00
Veikko Sariola
1abc6f22d5
Change the Go bridge API to more idiomatic Go, offering a callback when the row advances.
2020-10-24 14:39:10 +03: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 Sariola
896e7e70b1
Add Opcode type to bridge, and pull the opcodes from the cgo side.
2020-10-22 23:29:37 +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