Is it possible to "DAW-ify" OpenMPT?

Started by Cartman1337, August 09, 2024, 21:05:09

Previous topic - Next topic

Cartman1337

As the subject says; is it possible to "DAW-ify" OpenMPT ever so slightly? Specifically what I think would be useful is a feature where you can visualize a sample, with a toggle, to see how far in the pattern it reaches. Especially useful for samples that play longer than a full pattern, or if you want to use a drum loop as a guideline for your own drums and want to see the hit-points visually in the program. See the attached suggestion of how I visualize something like that working, where channel 2 is set up to visualize channel 1 in the example. Want to hear opinions before I potentially set up a "ticket" in your issue tracker.

Saga Musix

Typical DAWs have one thing going that makes this easy for them: They always play audio linearly, from start to end. Audio clips in DAWs usually (?) cannot be pitched up and down arbitrarily. That makes it very easy to compute at any point in time if a sample is still playing, and at which position it is playing.

On the other hand, OpenMPT supports dozens of obscure module formats that all need to be able to be represented by its pattern editor, and they all have weird stuff going on that makes it extremely difficult to quickly update the pattern editor display in case some new data is entered: There are pattern jump commands that can make a pattern run backwards or not at all. There are pattern loops that may result in infinte playback of a few pattern rows. And of course you have pitch bend commands with complex internal rules, making the computation of how far we're into the playback of a sample extremely challenging. Any change you make to a pattern could completely invalidate those computations, meaning that potentially the entire module would have to be re-scanned to figure out which sample is playing at which point in time. With very long and complex modules this process could take several seconds, but even with less complex ones it would have to introduce a noticable delay to the pattern drawing that would most likely not be acceptable.

The only way I could imagine that such a real-time display could possibly work is through the introduction of a "simplified" MPTM format that doesn't allow any pattern jumps or pattern loops, and that this feature was only available on channels with no pitch bend commands or similar. Otherwise it would be a nightmare to compute the display accurately, and the one thing that's even less useful than having no sample display is having an inaccurate sample display that you cannot rely on.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Cartman1337

Thanks for the detailed breakdown of the complexities, Saga Musix!

What I suggested wasn't really for real-time applications, but for the editor while writing it in, and like I said; with a toggle to turn it on and off, that you may hook up with a "warning" about the function potentially taking a few seconds to calculate, and whatever other reservations there needs to be about it.

Personally I use very few of those looping and jumping functions (occasionally a Cxx), but for drum and vocal samples I sometimes wish I had some way of graphically seeing how they fit in there. I wouldn't have to be on during playback for my use of it.

Exhale

how about a simplified sample... for example one of the places I find myself wishing for a visualization of the sample the most is vocal samples... so a super simplified sample that can only be played at c-4 and wont have any of the above mentioned effects applied to it (within reason obviously) - selectable via a toggle that makes it so you can visualise the sample would be helpful at least for me... a basic implimentation of this thing, which I have proposed in the past but I am glad to now see a bunch of details as to why it would be so complicated. So what I am suggesting, again for clarity, is a simplified sample, with only the effects that can be applied to it, possibly as a toggle to press in the sample tab, that will mean that particular sample is visualised when it is played. Only on the MPTM format.
___________________
No longer helping. Do not expect replies.

Cartman1337

@Exhale I completely agree! That is my main problem with samples as well; when I use vocal samples that are so long that they go well into a new pattern, and it would be great to actually see where it ends, to know if I need to mess with it or even where to start the next one. And I don't usually use effects on those, though some times I might play them at for instance C#5, B4 or A#4 instead of the default C5, based on the voice and the music accompanying it. Same with my mentioned wish to visualize a drum loop; those would rarely make sense in putting under massive effects either.

If you implement something like this you could just do it simple and have a "warning text" when you hover the toggle, or a message box the first time you click it, saying that the effect is for simple guidelines only, and that not all effects applied to a sample will get visualized.

LPChip

I would take it a different route entirely. Add channels specifically for these drawn wave forms, and after you put it in, it just plays like that. So rather than having C-4 01 v64 xyy, you would have a bar the size of C-4, and right-click can specify the sample and volume, and that's it.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs