Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29
Ok, one time I was wondering what a looped section of my sample would sound, and although it's a 17-byte sample, it seems to be tuned down by one semitone. Why is that, and can I possibly use a similar looped waveform that's NOT detuned?
A 17-byte sample will always be pitched the same as it's repeating a waveform that's exactly that long. If it were 18 bytes it'd be slightly lower pitch, and 16 bytes would be slightly higher pitch. The way you get different pitches is by making something much longer to the point where looping doesn't determine pitch.
Yeah I get that, but this is supposed to be a note C when using playback rate $0 and $7 but it's a B instead. Probably the waveform completes one period after one loop of the sample because I tried it with such a weird one. The weird thing is that even when I took a hex editor and edited the last 2 bytes to go back to 00 at the end, it still played a B note.
That chart of note freqs at each playback rate is only helpful for relative pitches of a full playing sample. If using looped mode, then it only tells the the rate each sample takes up. So at speed $0 each 17samples take up 4181.71 Hz. If you were to divide that by 17 you get your 245.98 hz which is indeed a B-3.
If ricoh had made it such that every dmc wasn't padded as 16N+1 and just 16N, then the divisible 16 would just make every note go down 4 octaves exactly, but it's not. If you have the smallest sample size of one 16sample unit then the 1sample padding makes a huge difference and it'll detune to a B. This tends to not be so much of a problem for longer samples as that 1sample padding is less of a percentage and thus, less detuning.
So yeah, RJ1's right; the smallest looped dmc is supposed to be a B no matter what.