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
I've been thinking about asking about this since I came across it a few months ago. Since a DMC sample is made up of various stepped levels, it is possible to internally modify the step values to produce a crude custom waveform like pulses, "sharkfins", and sawtooths... sawtee- \\\ <those.
This was apparently [url=http://famitracker.com/forum/posts.php?id=171]previously discussed although the Gameboy is somehow involved.
And a link to the page where an explanation was [url=http://slack.net/~ant/misc/nes-saw/]given by kreese, but here's [url=http://slack.net/~ant/misc/nes-saw/old-saw.html]the older one as well.
_______________________
[BURNING LOVE]
[url=http://www.youtube.com/user/ImATrackMan]YouTube
[url=https://twitter.com/ImATrackMan]Twitter (Stay off my lawn, kids)
A sawtooth would be nice, if it's possible to reset the delta counter to 0 every time a looped ramp-sample would complete a cycle. But I guess that's only possible with overclocking.
There are actually a couple of .NESs (not NSFs) on nesdev that show this is very possible on a normal NES (Not to mention the fact that both of mine ran them). No overclocking necessary.
[edited to clarify.]
_______________________
[BURNING LOVE]
[url=http://www.youtube.com/user/ImATrackMan]YouTube
[url=https://twitter.com/ImATrackMan]Twitter (Stay off my lawn, kids)
Im_a_Track_Man: A few points of clarification. What you're seeing there is in fact 7-bit PCM directly written to the DAC. Blargg is calling it "DMC" because that's what the register is called. One of the bits is used to decode 1-bit DPCM to 7-bit PCM. A lot of players currently use PCM: MuseTracker, SuperNSF, and DefleMask.
SuperNSF is superior to the others. jsr would have to totally rewrite his player code to include PCM. It's a very cycle-based and exact process that the entire engine has to be based around. Basically you get PCM to play first, then you write the rest of the engine around it.
DPCM sample generation is possible. It's even possible to draw DPCM samples. It's kind of a mucky process; plus you still have to use the DPCM frequency divider. You'd have to draw three samples off by a half-step each and then have a look up table to fill in the blanks to have a couple full octaves.
I'm not saying it's not feasible or possible. I think we have a lot of other interesting DPCM ideas on the table and this could be one of the good ones after some others are implemented.
Interesting, I made saw waves in FT but obviously this method is of no use.
Although if you use higher pitches for the sample you can turn it into a low duty- pulse kind of wave.