Open BaxterOttoman opened 2 months ago
What is your intended use case for this request, @BaxterOttoman? You mentioned resolution- are you intending to scroll / present the waveform in real-time?
You can currently trip audio clips in Resonite- so if you just needed a static representation of a portion of the audio clip, you can clip / trim out the rest of the audio you don't need- and use the trimmed clip in the existing component as-is.
As far as I'm aware- this component is primarily intended just to give a preview of the waveform- hence why it uses a fixed resolution. If you needed to display the full / true resolution of the audio waveform- it would require a massive resolution as you had noted- so if you're just needing to display the waveform live there are better ways of doing so.
For any sort of audio editing tool, but also for some playback visualizations, this could be pretty valuable, and has relatively low complexity implementing I'd think. Trimming an audio clip is a destructive action, and doing this automatically would be pretty performance intensive. I could see this particularly useful for situations where you need to see the next couple of seconds of waveform, but you don't have to see the entire thing - one example I can think of would be live DJing / compositing, where the ability to see the waveform ahead could help with timing and transitions.
That's why I was wondering, @JackTheFoxOtter - as far as live production / processing / editing, those needs would probably be better handled by #567.
Using the texture component like that would not be optimal for real-time applications as you would be continually generating new procedural textures for each change made to the input parameters.
This is actually relatively simple change that would be useful.
The component will recompute anytime something changes - which is pretty much what all audio editing applications do, it's not very unusual.
Jack brought up something that I think could be worth considering with regard to previewing a set duration of a clip. I had said I think the values should be clamped to the clip length, but now I'm thinking it may be a better idea to allow values outside of that, but anything out there would just render as flat. This would let you have a window of a set number of seconds that can go past the beginning or end.
Is your feature request related to a problem? Please describe.
It is currently not practical to get a texture of a section of an audio clip. The audio waveform texture only offers a render of the entire length of an audio waveform. This limits its utility tremendously. To get a smaller length of a quality that's useful, the entire texture has to be an unreasonable resolution and the texture has to be scaled and offset.
Describe the solution you'd like
I would like to see values added to the component, being a start and end time of the clip for selecting the section to be rendered. Values below zero should be zeroed out and values above the length of the clip should be brought down to the clip's length. When a new clip is provided to the component, the component should update to have a start time of 0 and an end time of the clip's length.
Describe alternatives you've considered
The rect mesh allows for arbitrary information to be passed in, but this doesn't have the resolution needed, and it would involve the frustration of playing the section of the clip to record the graph if it did.
Additional Context
No response
Requesters
Baxter