democloid / picoTracker

BSD 3-Clause "New" or "Revised" License
187 stars 17 forks source link

add support for unevenly divided wavetable wav files with markers #212

Open maks opened 3 weeks ago

maks commented 3 weeks ago

Wav files can be made up of stacks of essentially single cycle waveforms, but joined in a "smooth" way vs stepped transitions called "wavetables". picoTracker could support these more nicely if it had a new loop mode, say "wavetable" that allowed setting the size in samples of each frame in the wav file as a field instead of loop start/end fields in the sample instument UI.

According to the PE Tracker manual:

The most common standard is 2048 Samples /Frame (256 Frames).

Combined with appropriate new FX cmds, this could also lead to basic granular support.

By allowing for much larger frame sizes as well, this could also be used for "drumkit" support, ie for wav files with X number of evenly sized sound percussion samples within a single wav file or even "multisample" instruments within a single wav file.

Benefits of doing this with a single wav file is that you can have the single mixing settings and treat it like a submix.

  • @peterswimm

[EDIT]

Turns out evenly divided samples with 256 frames are already catered for in pT with the POF fx cmd, so this is just to add support for wav file metadata markers to more nicely handle unevenly divided wavetables.

refs

online wavetable editor

peterswimm commented 3 weeks ago

Note this is possible today with https://github.com/democloid/picoTracker/blob/master/docs/MANUAL.md#lof-aaaa-lpof-in-lgpt

What I'm looking for is an easier way to setup nonmonowave type wavetables, or use wav markers or something to define waveform length in samples - ie like emu transwaves are full of content that is all over the place: https://hexawe.net/mess/profdump/ensoniq_waveforms.zip

maks commented 3 weeks ago

awesome, thanks for the extra info @peterswimm 👍🏻 can I check, do you have in mind also some sort of new FX cmd that would then let you jump between each non uniform length "slice" inside a sample? So say you have a sample with these set of slices in it (say defined via wav metadata markers):

|----|--|--------|---|-----|
0    1  2        3   4

you'd have a cmd like that would let you say play diff slices like, say you wanted to play 3,1,1,0

SLC 03 SLC 01 SLC 01 SLC 00

that sort of thing?

peterswimm commented 3 weeks ago

Well that is kind of what plof is for, I think "wavetable mode" will be able to say that saying if I wanted to jump to "section" plof0003, would be waveform 3

peterswimm commented 3 weeks ago

and if its only 3 waveforms, plof004+ doesn't do anything

maks commented 3 weeks ago

Ah thanks! I had forgotten that there was already POF (I'll stick to picoTracker namings to not confuse myself).

Cool, I think this is then just a matter of implementing a nice way of handling unevenly divided wavetables, likely with markers, I'll change the name of this issue to reflect that.