Why is the arpeggio having no effect on this instrument? - FamiTracker

# FamiTracker

FamiTracker Support Forums

Skip to content

## Why is the arpeggio having no effect on this instrument?

General discussion about tracking, help and support.
Post Reply

- Print view

2 posts • Page 1 of 1

drdevil
  Posts: 236
  Joined: Sun Sep 20, 2015 10:13 am
  Location: Scotland
  Contact:
  Contact drdevil
  Website Twitter YouTube Google+

### Why is the arpeggio having no effect on this instrument?

- Quote

Post by drdevil » Wed Apr 06, 2016 11:09 am

I'm trying to recreate some sounds from Journey to Silius, but I'm running into some problems. I feel like a noob asking for help (especially because I've been here for months), but I'd like to know why the instrument is just ignoring the little arpeggio.
I hope this hasn't already been asked, but I'm pretty sure it hasn't. I've read the wiki, but can't find anything to solve the problem.

Attachments
  Fade-In Lead 1.fti
    0.5.0 beta
    (195 Bytes) Downloaded 112 times

I'm HarmoDevil. Formerly Dr Devil.
You'll find that your ears will bleed if you go on this link.
Top

HertzDevil
  Posts: 475
  Joined: Thu Apr 23, 2015 7:39 pm
  Location: Hong Kong SAR
  Contact:
  Contact HertzDevil
  Website Facebook Twitter Skype
  YouTube

### Re: Why is the arpeggio having no effect on this instrument?

- Quote

Post by HertzDevil » Wed Apr 06, 2016 1:02 pm

This is because it uses 0.5.0 beta. I addressed the effect of simultaneously using arpeggio sequences and pitch sequences somewhere at the beta thread.
The arpeggio sequence is always processed before the pitch sequence, and they exhibit different behaviour depending on their modes, at least in exported NSFs:

- Arpeggio, absolute: Reads var_ch_Note, calls ft_translate_freq_only
- Arpeggio, relative: Overwrites var_ch_Note, calls ft_translate_freq_only
- Arpeggio, fixed: Calls ft_translate_freq_only
- Pitch, relative: Overwrites var_ch_TimerPeriodLo/Hi
- Pitch, absolute: Reads var_ch_Note, calls ft_translate_freq_only, then overwrites var_ch_TimerPeriodLo/Hi

ft_translate_freq_only alters var_ch_TimerPeriodLo/Hi by loading the pitch register from the table and indexing it with the accumulator value, which has a similar function to CChannelHandler::RunNote in the tracker source.
0.5.0 beta does not have true absolute pitch sequences. Observe how an absolute pitch sequence alone is equivalent to absolute arpeggio followed by relative pitch; therefore, any absolute pitch sequence can be recreated by using the relative setting instead, then adding { | 0 } as an absolute arpeggio sequence. This relative-becomes-absolute behaviour applies to previous versions of FamiTracker as well, which becomes particularly important for looped sequences. The sequence essentially resets to the default pitch of the current note before applying the pitch offset; however, because the absolute arpeggio does not update var_ch_Note (doing so makes it identical to relative arpeggio), what is used in the arpeggio sequence does not really matter, since the absolute pitch sequence must restore the original note value every time.
This can be solved by simply modifying the pitch sequence to use the relative setting. Regardless of whether you recorded the instrument or manually recreated it, there is no need for using the arpeggio sequence in a vibrato instrument anyway; replace the -1 term with 0 and an equivalent pitch sequence term, perhaps using the register view to ensure that tick remains the same for the recorded note (otherwise you will not even get an usable instrument outside that narrow range of notes).
refactoring 0cc-famitracker
Top

Display posts from previous:
Sort by

Post Reply

- Print view

2 posts • Page 1 of 1

Return to “General Talk”

Jump to

- Rules
- Wiki
- FamiTracker
- General Talk
- Bug Reports
- Feature Requests
- Source and development
- Music
- Original Music
- Cover Music
- Other
- Site Issues & Suggestions