Lower octave with pulse wave channels in mml / ppmck ?

Discuss NSF files, FamiTracker, MML tools, or anything else related to NES music.

Moderator: Moderators

Post Reply
User avatar
8bitmatt
Posts: 31
Joined: Wed Feb 02, 2011 2:24 pm
Location: Oklahoma
Contact:

Lower octave with pulse wave channels in mml / ppmck ?

Post by 8bitmatt »

Is there a way to reach a lower octave with the standard A and B channels? Also, why is this limitation there?
Anything lower than 'a' on octave one just sounds like 'c' on octave 2.

If you use the Namco N163 and enable more than one track, each track gets clocked less often and a nice side effect is that you can get lower notes. I'd like to not use the N163, in this case, if I don't need to.

Here's a working example:
http://www.mmlshare.com/tracks/view/443

Code: Select all

#EX-NAMCO106 2
AP t80 l8 v12

; 25% Duty Cycle square wave 
@N01 = {00, 15 15 15 15 0 0 0 0 0 0 0 0 0 0 0 0 }

A o1 @01
A b b- a a- g g- f e e- d d- c
; a- and below sound like octave two 'c'

P o0 @@1
P r1.. b b- a a- g g- f e e- d d- c
User avatar
thefox
Posts: 3139
Joined: Mon Jan 03, 2005 10:36 am
Location: Tampere, Finland
Contact:

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by thefox »

8bitmatt wrote:Is there a way to reach a lower octave with the standard A and B channels? Also, why is this limitation there?
Nope, that's a limitation of the NES sound hardware (and the reason for the limitation is simply that it was designed this way).
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by tepples »

One way to work around it is to play the same thing on the triangle channel and at a lower volume on the second pulse channel. This way the triangle channel fills in the fundamental and the second pulse channel fills in the overtones.

As for why Nintendo didn't put more octaves into the NES APU, it would have cost more money. Every octave that a channel can hit costs at least another dozen transistors inside the chip. And with late 1970s-early 1980s TV speakers not having especially high-fidelity bass reproduction, Nintendo probably didn't consider it worth the real estate on the chip. Just be glad that the pulse channels already go an octave lower than the pulse channels on the ColecoVision and Sega Master System.
User avatar
8bitmatt
Posts: 31
Joined: Wed Feb 02, 2011 2:24 pm
Location: Oklahoma
Contact:

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by 8bitmatt »

Wow. You guys are fast! (I love this forum)


Extra thanks to tepples for the deep insight and smart workaround.
User avatar
Bregalad
Posts: 8036
Joined: Fri Nov 12, 2004 2:49 pm
Location: Caen, France

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by Bregalad »

TV speakers not having especially high-fidelity bass reproduction, Nintendo probably didn't consider it worth the real estate on the chip.
In fact, this would be a good reason to reach lower octaves with retangle waves, but not triangle (which is poor in harmonics). Not what Nintendo did obviously.
zzo38
Posts: 1080
Joined: Mon Feb 07, 2011 12:46 pm

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by zzo38 »

The VRC6 square waves can go one octave lower than the 2A03 square waves, because there is one more bit of the period; VRC6 can use more settings for duty as well (three bits instead of two bits). (I used VRC6 to write a ZZT music player for the Famicom, because the 2A03 doesn't go low enough.)
[url=gopher://zzo38computer.org/].[/url]
ionustron
Posts: 34
Joined: Wed Apr 14, 2010 12:25 pm

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by ionustron »

If you want to go lower with the N163 for whatever reason, you can use up to 32 samples for the wave. Longer the wave, the lower the range will be, but with that many the waves tend to just fall apart, sound like mush, etc. There is prolly a correct term for the point where the human ear can no longer distinguish a low frequency but I don't remember (I doubt think the waves could actually properly produce tones that insanely low anyway.)

I don't believe calling more channels effects the range nearly as much as just using larger samples. It can make your sound really out of tune if you're not careful though.

(actually this gets me thinking about the bug that's in all old MCK N163 nsf files where seemingly the ENTIRE wave definition is played on each channel. Was it playing 128 samples on everything? I wonder if this is abuseable for some interesting fds-like things at the least.)
lidnariq
Posts: 10677
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Lower octave with pulse wave channels in mml / ppmck ?

Post by lidnariq »

ionustron wrote:If you want to go lower with the N163 for whatever reason, you can use up to 32 samples for the wave. Longer the wave, the lower the range will be, but with that many the waves tend to just fall apart, sound like mush, etc.
Also increasing the number of channels. The hardware supports all the way up to 256 samples, but you can only usefully use 128 (at 8 channels) to 240 of them (1ch). I bet the mushiness is the 4-bit nature of the samples.
There is prolly a correct term for the point where the human ear can no longer distinguish a low frequency but I don't remember (I doubt think the waves could actually properly produce tones that insanely low anyway.)
At the lower frequency range, you're probably running into this: http://en.wikipedia.org/wiki/Equal-loudness_contour
Post Reply