[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 594: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 650: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 494: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5235: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3899)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5235: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3899)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5235: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3899)
FamiTracker • How does the DPCM exactly control the Triangle wave volume?
Page 1 of 1

How does the DPCM exactly control the Triangle wave volume?

Posted: Fri Jun 05, 2015 10:59 pm
by BioMechanicalDude
Noob question. The Zxx effect on the DPCM channel apparently affects the volume of the Triangle and Noise channels, but when experimenting with this effect, I hear no difference in volume, with any xx parameter, with or without DPCM samples. Yet people use it all the time. Why? How does it effect the volume and considering how much it turns it down, when samples are being used, is there a way to lower the volume of the DPCM and increase the one on the Triangle and Noise(except when disabling the DPCM) and why doesn't it(apparently) work with this effect?
Thanks.

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 2:15 am
by Patashu
Tracker > Display DPCM State

The higher that number is, the quieter triangle and noise get.

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 4:37 am
by jfbillingsley
Really? Try this ftm and see if you can hear the volume change.

If you have the DPCM channel muted, the Zxx effect won't change the delta counter and you'll hear no change.

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 8:16 am
by BioMechanicalDude
OK... Seems to work when there are no samples being used. But when there are, there doesn't seem to be any change and if there is, it's barely audible.

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 9:05 am
by jfbillingsley
Your Zxx commands aren't really having an effect because the samples are gonna change the delta counter so much anyway. The delta counter only has a range of 0 to 127, so even if you Z7F, after only a fraction of a second it'll be somewhere totally different.

Since the delta counter is constantly changing, the volume of the triangle channel will be constantly changing as well. It's changing so fast that it just sorta averages out, and the triangle channel's volume will sound a little quieter than usual but not a ton. It's harder to hear when you're constantly triggering new samples though, but it's much more obvious when you hear before, during, and after playing the sample (like Patashu said, turn on the "Display DPCM State" and you'll hear the triangle much quieter when the delta counter is higher).

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 12:10 pm
by BioMechanicalDude
So does that mean I can't use samples at all, without having the triangle wave sounding really quiet? Or is there some kind of technique, where you constantly change samples, in order to keep the triangle wave volume at a relatively high level?

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 12:29 pm
by Xyz
It means you should tilt your samples so that they reach the same position achieved by using Z00. In the default DMC editor just select a portion and click tilt. It'll tilt upwards which is that 0.

If, on the other hand, you wish to reset the Zxx number at the start of the sample, that's what the "D-counter" dropdown box in the DPCM tab is for.

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sat Jun 06, 2015 7:00 pm
by jfbillingsley
While the sample is playing, the triangle (and noise) channels will always be made a little quieter. But you can reduce that effect by ensuring that the samples stay, on average, at lower values. I noticed in your FTM that your samples are kinda centered around the bottom of the graph (if you click Edit in the DPCM instrument editor), which means the delta counter will be hovering around high values and making the triangle quieter. You might instead try RJDMC viewtopic.php?f=4&t=95 and import your source WAV files into that, and mess around with the settings so the samples will hover around the top half of the graph instead. And, like Xyz said, you can tilt the sample so that it returns to 0 (the top) at the end, which will restore full volume to the triangle and noise channels.

Re: How does the DPCM exactly control the Triangle wave volume?

Posted: Sun Jun 07, 2015 12:54 am
by rainwarrior
The DPCM, Triangle, and Noise all share a single output channel. They should have just mixed together without a problem, but the NES has a flaw in its output. Instead of a linear output, it has a curve that compresses the signal as the output volume gets higher.

Using Zxx pushes the output up on the curve into the more compressed area, reducing volume. Z00 returns it to the bottom, expanding the volume. A DPCM sample will cause it to fluctuate with the position of the sample.

The two square channels also share a single output, and have a similar defect, but there's not really an easy way to control it or take advantage of it.