I'd like to make a request based on a modification of the GEN16 routine.
GEN33 & 34 can easily allow creation of algorithmically based wavetables of any size with any number of tables, each containing any number of (in)harm partials, using a source table to hold the necessary parameters.
For example, to create a wavetable of 32 individual tables, each having a different number/amount of partials (inharmonic partials can be non-integer values), strengths &/or phases one can do something like:
iNumberOfTables init 32
iSrc = ftgentmp(0, 0, 1024, -2, 0)
while iNumberOfTables > 0 do
iNumberOfPartials = random:i(2, 30)
while iNumberOfPartials > 0 do
; bunch of stuff to create random values &
; write them to the iSrc table
iNumberOfPartials -=1
od
iNumberOfTables -= 1
od
iWave = ftgen(0, 0, 1024, 34, "iSrc" ...)
If there was a routine based on GEN16 that could use a source table in a similar way it would allow for algorithmic creation of a "wavetable" containing complex individual tables for waveforms, (looping) envelopes, LFOs etc., similar to the concept of transeg but not limited to a set number of segments (number and values of points, durations and exp/log/linear slopes).
I hope I was able to describe this reasonably well. If not I could post more illustrative code to demonstrate.
Best,
Scott
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
Issues · csound/csound · GitHub
Discussions of bugs and features can be posted here