feat(vm/compiler): increase native synth delaylines to 128

Closes #155
This commit is contained in:
5684185+vsariola@users.noreply.github.com
2025-04-27 21:47:27 +03:00
parent 5fd78d8362
commit f72f29188b
4 changed files with 9 additions and 6 deletions

View File

@ -25,8 +25,8 @@ func (s NativeSynther) Synth(patch sointu.Patch, bpm int) (sointu.Synth, error)
func Synth(patch sointu.Patch, bpm int) (*NativeSynth, error) {
s := new(C.Synth)
if n := patch.NumDelayLines(); n > 64 {
return nil, fmt.Errorf("native bridge has currently a hard limit of 64 delaylines; patch uses %v", n)
if n := patch.NumDelayLines(); n > 128 {
return nil, fmt.Errorf("native bridge has currently a hard limit of 128 delaylines; patch uses %v", n)
}
comPatch, err := vm.NewBytecode(patch, vm.AllFeatures{}, bpm)
if err != nil {
@ -124,8 +124,8 @@ func (bridgesynth *NativeSynth) Release(voice int) {
// Update
func (bridgesynth *NativeSynth) Update(patch sointu.Patch, bpm int) error {
s := (*C.Synth)(bridgesynth)
if n := patch.NumDelayLines(); n > 64 {
return fmt.Errorf("native bridge has currently a hard limit of 64 delaylines; patch uses %v", n)
if n := patch.NumDelayLines(); n > 128 {
return fmt.Errorf("native bridge has currently a hard limit of 128 delaylines; patch uses %v", n)
}
comPatch, err := vm.NewBytecode(patch, vm.AllFeatures{}, bpm)
if err != nil {

View File

@ -2,7 +2,7 @@
struc su_synth
.synth_wrk resb su_synthworkspace.size
.delay_wrks resb su_delayline_wrk.size * 64
.delay_wrks resb su_delayline_wrk.size * 128
.delaytimes resw 768
.sampleoffs resb su_sample_offset.size * 256
.randseed resd 1

View File

@ -38,7 +38,7 @@ typedef struct SampleOffset {
typedef struct Synth {
struct SynthWorkspace SynthWrk;
struct DelayWorkspace DelayWrks[64]; // let's keep this as 64 for now, so the delays take 16 meg. If that's too little or too much, we can change this in future.
struct DelayWorkspace DelayWrks[128]; // let's keep this as 64 for now, so the delays take 16 meg. If that's too little or too much, we can change this in future.
unsigned short DelayTimes[768];
struct SampleOffset SampleOffsets[256];
unsigned int RandSeed;