Note Preview should take into consideration most recent effect

Post about feature requests here.
User avatar
Project
Posts: 39
Joined: Wed May 06, 2015 10:38 pm
Location: Spokane, WA

Note Preview should take into consideration most recent effect

Postby Project » Mon May 11, 2015 9:18 am

When placing a note, what you hear does not reflect how it will sound if you have an effect in a previous row.

Famitracker should look at the most recent effect on all the effect columns, and apply them to the note that is heard when placing it, not just when playing the frame. This will give a more accurate idea to the musician of what sound they are putting into the tracker, rather than them having to remember the effects they've already put and "just know" that it will sound like that when they play the frame.

This should also apply to Preview Full Row.

Threxx
Posts: 343
Joined: Wed Apr 22, 2015 2:34 pm
Location: Brooklyn, NY
Contact:

Re: Note Preview should take into consideration most recent effect

Postby Threxx » Mon May 11, 2015 7:58 pm

This would require the tracker to look through the entire channel, every single pattern, to find any active effects when you do something as simple as placing a note. It would be ridiculously system-intensive.

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: Note Preview should take into consideration most recent effect

Postby Stratelier » Tue May 12, 2015 12:55 am

Yeah, this would be pretty complicated to do right. If the search is limited to just the current pattern then that's probably sufficient for most purposes (though the fact it is cursor position dependent is still an annoyance).

User avatar
Project
Posts: 39
Joined: Wed May 06, 2015 10:38 pm
Location: Spokane, WA

Re: Note Preview should take into consideration most recent effect

Postby Project » Tue May 12, 2015 2:45 am

Threxx wrote:This would require the tracker to look through the entire channel, every single pattern, to find any active effects when you do something as simple as placing a note. It would be ridiculously system-intensive.


I was thinking something more along the lines of "Search backwards until you find an effect on this column on this pattern, and if one is found, don't search anymore because all the ones above that aren't going to apply on the same column.

So in the example below we are placing a note at row 02 (the one without anything on it).

00 C#3 00 F 441

01 C#3 00 F 442

02 --- -- - ---

03 C#3 00 F 400

04 C#3 00 F C00

Everything above row 02 will be searched from the bottom up, UNTIL an effect is found.
Everything below row 02 will be unprocessed and ignored.
Famitracker finds an effect (4xx) on row 01.
Famitracker stops searching and does not process row 00, as it no longer applies to the note we are placing on row 02.

That's my attempt at making this use as little processing as possible.

User avatar
Dr. Merio
Posts: 680
Joined: Mon Apr 20, 2015 6:25 pm
Location: On your screen
Contact:

Re: Note Preview should take into consideration most recent effect

Postby Dr. Merio » Tue May 12, 2015 3:03 am

What you described would be problematic if there's many enabled effects at once. For example, if there's two effects on the same row.

User avatar
Project
Posts: 39
Joined: Wed May 06, 2015 10:38 pm
Location: Spokane, WA

Re: Note Preview should take into consideration most recent effect

Postby Project » Tue May 12, 2015 4:18 am

Dr. Merio wrote:What you described would be problematic if there's many enabled effects at once. For example, if there's two effects on the same row.


Just process it per column then.

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: Note Preview should take into consideration most recent effect

Postby Stratelier » Wed May 13, 2015 1:42 am

Project wrote:I was thinking something more along the lines of "Search backwards until you find an effect on this column on this pattern, and if one is found, don't search anymore because all the ones above that aren't going to apply on the same column.

I.e. don't search previous patterns because the user could start playing a song from at any point other than the beginning, so any lingering effects from previous patterns aren't necessarily relevant anyway.

User avatar
Project
Posts: 39
Joined: Wed May 06, 2015 10:38 pm
Location: Spokane, WA

Re: Note Preview should take into consideration most recent effect

Postby Project » Wed May 13, 2015 7:33 am

Stratelier wrote:
Project wrote:I was thinking something more along the lines of "Search backwards until you find an effect on this column on this pattern, and if one is found, don't search anymore because all the ones above that aren't going to apply on the same column.

I.e. don't search previous patterns because the user could start playing a song from at any point other than the beginning, so any lingering effects from previous patterns aren't necessarily relevant anyway.


No, in effect it would continue searching previous patterns until an effect is found, and if an effect is found it stops searching. It only cares about the most recent effect.

User avatar
Stratelier
Posts: 378
Joined: Sun Apr 26, 2015 7:46 pm

Re: Note Preview should take into consideration most recent effect

Postby Stratelier » Wed May 13, 2015 5:23 pm

Project wrote:No, in effect it would continue searching previous patterns until an effect is found...

And that is the part that is just not practical. I suppose the average case scenario isn't too bad, but the worst-case scenario would require serious optimization/caching to stay viable.

User avatar
rainwarrior
Forum Staff
Posts: 165
Joined: Thu Apr 23, 2015 8:23 pm
Location: Canada
Contact:

Re: Note Preview should take into consideration most recent effect

Postby rainwarrior » Wed May 13, 2015 5:34 pm

It's a lot more practical than it seems. Even a brute-force search when you start playback would be instantaneous; searching through a thousand bytes doesn't take much CPU. (Though even if it did, you could calculate and cache the state at the beginning of each pattern, and work it out incrementally to the current row, etc.) Both OpenMPT and Vortex Tracker II do something like this to varying extents.

My issue with it is that I wouldn't want this feature, so I'd hope there is an option. I'd like a preview to play what I see, what I'm working on, not inherit state from elsewhere in the piece. It might be a nice option, though, especially for people that find hanging-effects to be a problem. A visual indicator of effects, like a colour stripe through the column from effect start to effect end or something like that might be interesting!

For the time being, if you need to preview a row in context, you can use CTRL+ENTER to play a single row. Play a row with the desired effects on it first, and then play the row you want to hear with the effects.


Return to “Feature Requests”

Who is online

Users browsing this forum: No registered users and 1 guest