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.
Note Preview should take into consideration most recent effect
Re: Note Preview should take into consideration most recent effect
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.
- Stratelier
- Posts: 378
- Joined: Sun Apr 26, 2015 7:46 pm
Re: Note Preview should take into consideration most recent effect
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).
Re: Note Preview should take into consideration most recent effect
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.
Re: Note Preview should take into consideration most recent effect
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.
Re: Note Preview should take into consideration most recent effect
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.
- Stratelier
- Posts: 378
- Joined: Sun Apr 26, 2015 7:46 pm
Re: Note Preview should take into consideration most recent effect
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.
Re: Note Preview should take into consideration most recent effect
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.
- Stratelier
- Posts: 378
- Joined: Sun Apr 26, 2015 7:46 pm
Re: Note Preview should take into consideration most recent effect
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.
- 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
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.
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.
Who is online
Users browsing this forum: No registered users and 1 guest