Drawing wavetables on touchscreen

A very cool feature of some iOS/Android apps like Caustic when using a wavetable osc is the capacity to just draw your own wavetable with the touchscreen (or edit a base sine, square etc).
Given the Zynthian has a touchscreen, I was wondering how hard it would be to implement this feature and use it to set on the fly the wavetable used by some LV2 plugin (supporting custom wavetable).
I don’t really know anything about LV2, so I don’t know if that’s about feasible.

1 Like

The big problem with wavetables is that they are hardly compatible with different machines… The (single) waves you @YPares mention on Caustic, there even is no “Save” option… So once you draw it on the Subsynth, you can’t use it on another machine…
The ones you create with your U-He Zebralette cannot nmbe exported in an universal format like wav or so…
Blofeld will only accept one kind of .wav format…
But yes, I agree with you @YPares, drawing a wave cycle on Caustic’s touch screen is a pleasant, easy and comfortable process… And shaping the harmonic spectrum on PADsynth, using the touchscreen, is also very userfriendly… (would be more tricky if it were more than 32 harmonics, I guess)…

If you want such a feature (and it sounds cool) then submit a feature request on GitHub. You will need to consider where such a feature might be used and give real-world examples, e.g. create and use wavetable in this synth engine and that synth engine.

So you mean the type of wav format is not standardized by LV2? Yeah, so I suspect some synths would expect headers vs. no headers or 48000Hz sample rate vs. 44100Hz, that sort of thing.
Although saving it as a wav/raw/pcm should not be too hard if we have a file describing which format is expected by which synth.

@riban Yep I’ll flesh that out as a proper feature request :slight_smile:

Side question: how does the OLED display derive the UI for a given synth? Does it just list all the params available in the LV2 description or do we have more control over that? (Like, could a specific synth have a custom display? I haven’t investigated MOD-UI)

hi there! somewhat of an extension to this question. can the Zynthian UI be extended with other elements? i like the look for the most part but i wonder if there’s an ability to customize the screen interaction so it’s not just four rotary knob values and a list of parameters in the center? so far i haven’t seen a lot of options except the X/Y controller and the step sequencer. i’m just trying myself to imagine how i get my somewhat complex PD patch to work using this fairly specific interface. i find myself attracted to the different UI layouts in Norns for example, and yes the ability to draw on screen would be great. but even things like dropdown menus or toggles or buttons on screen would be helpful.

it does look like there is a specific request on the github to allow custom plugins. mine would be more of a custom layer than a plugin, but either way if there was a provision for that available and it would be functionally equivalent allowing redesign of UI interaction it would be very nice.

scott

Zynthian screens can be totally customized , but we need a “UI extension format” for avoiding the need for merging on UI’s repo. We just started to think about it:

I would suggest to start by taking a currently existing “feature” that it’s not merged on master yet and try to develop such a “extension format”. The ZynMixer branch would be a good one, for instance.

Having such a “UI-ext” system would open a new world of extensibility for zynthian. We would have a set of official extensions, included by default on SD images, but we also would have a “community” repo, with a webconf’s tool for managing installed extensions and so on …

Regards,

thanks @jofemodo excellent, yes i did see this and it’s good seeing the interest for others. for sure it would be a huge improvement in flexibility - i am currently not sure if have the bandwidth or even skills to take this on, but can you let me know what SDK you’re using to create the UI? is it Tk under Python or what?