Wavetable multi-table loading and playback #8
Replies: 0 comments 5 replies
-
@alcomposer maybe move this to the other issue tracker? |
Beta Was this translation helpful? Give feedback.
-
I've been thinking and playing with wavetables. I definitely see the point in multiple wavetables and morphing. That said, couldn't we achieve already a lot by having e.g. 64 wavetables loaded in 64 regions with a CC crossfade or something? You would inherit all the crossfade maths, plus the possibility to tweak each waveform in whatever way you choose through all the other sfz modifiers. A bit tedious to setup as an SFZ file, I agree, but as far as SFZ or sfizz goes, the engine does its job, and whoever uses it can "tweak" the controls for its intended goal. |
Beta Was this translation helpful? Give feedback.
-
The only thing "needed" then would be to have
|
Beta Was this translation helpful? Give feedback.
-
While it is a good workaround @paulfd it does feel a bit like a hack. There would be no way to interact with the wavetable oscillator inside the SFZ file itself. We would have to use a meta-language to plumb it all up. I do think a meta-language long term is a good idea, but I'm not sure if exploiting it for this use case is a good idea. Personally I would rather wait for a proper solution, inkeeping with the style of current Opcodes. |
Beta Was this translation helpful? Give feedback.
-
What do you mean by meta-language? How do you want to interact? Sorry I have to admit that while I understand the idea of wavetables and multiple said wavetables, I don't really know how far people use it or push them and I never touched e.g. Serum in my life :D |
Beta Was this translation helpful? Give feedback.
-
In
oscillator=on
mode, Sfizz is able to use a sample as a wavetable.To enable much more advanced wavetable techniques, there needs to be a way to load multiple wavetables, and to be able to morph between tables dynamically, via: FlexEG, LFO & CC.
Both ability to load a pre-configured multi-wavetable sample (which could contain up to 256 wavetable cycles) would be needed.
Software like: https://github.com/AndrewBelt/WaveEdit is able to generate wavetables with 64 sub-tables. However Serum is able to export 256 sub-tables: https://s3.amazonaws.com/decembercymatics/Serum_Manual.pdf
Suggested Opcodes:
oscillator_wavetable_subtables=
allows a user to define how many sub-tables are present in sample (only active inoscillator=on
mode)oscillator_wavetable_morph_type=
allows a user to change the morphing mathsAlso allowing a user to define multiple
samples=
in the same<region>
could allow a multi-wavetable to be loaded.Examples:
This would load both sine & square into slot 1 and 2 of the wavetable and allow morphing between them via modulation, each additional loaded
sample
would load into additional slots (max defined byoscillator_wavetable_subtables
:Load a multi-wavetable made with WaveEdit:
(
oscillator_pos_ccN
may need some more thought, as typically it would be good to allow start-end pos of the sub-wavetables)Beta Was this translation helpful? Give feedback.
All reactions