ModPlug Central

OpenMPT Development (Archive) => Feature Requests => Feature Request Archive => Topic started by: Harbinger on November 30, 2008, 16:59:15

Title: Filter
Post by: Harbinger on November 30, 2008, 16:59:15
With a little searching i found that i had posted this before, but embedded it in another group of requests. So at the risk of ticking off admin for bringing up old subjects, i felt it was important to bump it and give it its own topic.

One of the best tools we could have is a Filter where we can search and replace/delete any data based on channel, row, instrument, sample, note attributes (like the tone or duration, for example), note FX (like key velocity or portamento), or instrument/channel FX (like Txx tempo changes or the Zxx macros). The filter we have is good, but it needs an upgrade to give us more choices.

For example, what if i want to shift the Kick Bass at row 5 to row 7, but only in pattern 1-15 and 19-22? Perhaps i have a slow volume increase with vxx note FX (in the 3rd column), and i'd like to thin out the data (so that duplicate volume (vxx) data is erased) so i can introduce other note FX (like axx or oxx). What if need to change from the key of D to Db (or C#) but only in rows 24-31 for instruments 4, 7, and 9, for patterns 50-53? OTOH, just select them (discontiguous data), and i'll change them manually while the patterns play so i can hear where they would best sound?

The implementation of this (at least as far as the selecting process) can best be accomplished by creating a variable that stores what data fields are selected, in the form of a list of the data fields (rather than a range). This would allow for discontiguous data to be selected.
Shifting data is basically an automated cut-and-paste. Thinning data will require a function that searches the same data from the previous row. Key changes require asking the user if it should be a chromatic transposition (where the selected notes are confined to only the notes of a key) or a tonal transposition (where the selected notes are altogether shifted up or down according to the key's relation to C).

This i'm sure would require a little work, but i think it's not a heavy dose of time to implement (this coming from a non-programmer! ::) ).
Title: Filter
Post by: psishock on November 30, 2008, 17:10:32
Quote from: "Harbinger"This i'm sure would require a little work, but i think it's not a heavy dose of time to implement
Yet another wrapped "this is easy to do" statement? You know that our dear developers just love those. :lol:
Title: Filter
Post by: Saga Musix on November 30, 2008, 17:33:03
grrrrr, yes we do!
Title: Filter
Post by: bvanoudtshoorn on December 01, 2008, 22:28:45
I think that what we *really* need are regular expressions, expanded to work in two dimensions. :P

Seriously, though, this could be good, but I think that you'd have to be very careful to not make the dialog too complex -- you want it to still be possible to do the 'simple' queries easily.
Title: Filter
Post by: Harbinger on December 05, 2008, 22:17:34
You're right, but that relies on a good GUI. How many prorgrams have we seen that were VERY flexible, but that were so complicated you needed a manual for the simple things...

As a former programmer, i can see that this feature would be easy logically but the hard part would be the GUI. :?
Title: Re: Filter
Post by: Saga Musix on March 04, 2011, 14:21:44
I suppose this thread can be moved to the archive then?
Title: Re: Filter
Post by: Harbinger on March 08, 2011, 17:12:03
Is it possible to move my last post only to the Technical Section, and archive the rest?

Title: Re: Filter
Post by: Saga Musix on March 08, 2011, 17:58:15
Ok, the original post has been cut out and moved to the tech docs.