tildearrow / furnace

a multi-system chiptune tracker compatible with DefleMask modules
GNU General Public License v2.0
2.63k stars 207 forks source link

Sample map not using the correct pitches for looped DPCM samples #1599

Closed Vuurniac closed 11 months ago

Vuurniac commented 11 months ago

As I am moving the audio portion of my NES homebrew project from an unofficial Famitracker fork to Furnace, it seems that the sample map is not able to recreate the map I used for looped DPCM sample bass no matter what I do. I assume this is a quirk of the fact that the tracker tries to approximate the notes by using the nearest pitch available, but this somehow results in notes not using some of the available DPCM pitch register values.

Consider the example: Looped DPCM samples come out pitched down by about one half-step due to NES hardware errata, so my map needs to use pitch 0 to create B-1, pitch 1 to create C#2, pitch 2 to create D#2, pitch 3 to create E-2 and so on... By recreating this mapping in Furnace I get:

I'd prefer to be able to avoid having to type out a DPCM pitch effect next to every note manually to fix this, but at the moment there might not be any other option because hand-mapping register values to notes directly is not possible. For systems that have a good sample pitch range this is not an issue but for NES it certainly is. The proper register values might need to be "hard-coded" as a fix or allowed to be entered manually into the map.

Thank you!

tildearrow commented 11 months ago

0.6.1 will introduce a new tab in the NES instrument editor which allows you to edit a sample map's DPCM pitches in a FamiTracker-like way.