NSF Reason Refill or Cubase VSTi exists?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
NSF Reason Refill or Cubase VSTi exists?
by on (#40489)
Does an NSF Reason Refill or Cubase VSTi exist?

by on (#40669)
You won't find any good solution by now. Most VST's don't even use the same pulse/triangle/noise waves as the good old NES did. As far as I know the pulse channels have a really interesting algorithm though they nearly sound as "normal" pulse waves you can generate on a simple synthesizer. But I'm not sure, however if your sound does not have to be 100% NES you can "cheat" with synths including a pulse gen. Triangle however is very tricky, it seems to use a special Pitch Envelope or something, I don't know. For the noise channel you should use blue noise generators.

I haven't seen any Reason Refills by now but I'll tell you if there exist some. :)

Another solution (which I prefer) is creating a NSF file with a long played note off a sound channel (I made them 1 min long), rip the track to WAV, and load it into your hosts' sampler. All you need is a good sampler. I use Fruity Loops along with Halion 3. Cubase already comes with Halion 1 so consider yourself lucky. Too bad this sampler isn't capable of "volume stepping" like the NES and uses only normal DCA Envelope.

Sorry for my sucky english which sucks. :D

by on (#40688)
You can create the NES tones via the tone generators in Reason, you don't need a refill..however the noise won't work out.

There is an NES VSTi that actually does a decent job at emulating the 2A03, and it's free..there's even a few Japanese ones that work out very well (and you can even create macro arpeggio and stuff. I forget what hte Japanese plugin is called but the VSTi for the others I believe is "NES Pulse" and "NES Triangle" and "NES Noise"

Or something to that effect. Do some google searches. They're fairly easy to find.

by on (#40773)
tssf wrote:
You can create the NES tones via the tone generators in Reason, you don't need a refill..however the noise won't work out.

There is an NES VSTi that actually does a decent job at emulating the 2A03, and it's free..there's even a few Japanese ones that work out very well (and you can even create macro arpeggio and stuff. I forget what hte Japanese plugin is called but the VSTi for the others I believe is "NES Pulse" and "NES Triangle" and "NES Noise"

Or something to that effect. Do some google searches. They're fairly easy to find.


I've tested those 3 VST's earlier. The waves are not close to the hardware ones, however I liked the ASDR devices awsell as some other stuff like the LFO's. But I think the noise is acceptable. I don't want to rip every note from the noise channel just to edit a shitload of samples only to load them into my sampler, since the noise channel has a weird "pitch algorithm".

by on (#40777)
It's fairly easy to generate the 32ksample loop that the NES's noise channel uses. The following C code will generate it on stdout (8bits/sample, 1 channel)
Code:
int main (int argc, char * argv[]) {
  unsigned char feedback;
  unsigned short nreg=1;
  int i;

  for (i=0;i<32767;i++) {
    feedback=((nreg>>13)&1)^((nreg>>14)&1);
    nreg=(nreg<<1)+feedback;
    nreg&=0x7FFF;
    putchar(((nreg>>14)&1)?'~':' ');
  }
}


Then you loop it and only play it at specific sample rates, specifically (for US NESes) 3,579,545 Hz divided by the numbers in the NTSC line at http://nesdevwiki.org/wiki/APU_Noise

For the NES triangle, just take an ordinary triangle wave and degrade it to 4bits.

by on (#40824)
lidnariq wrote:
It's fairly easy to generate the 32ksample loop that the NES's noise channel uses. The following C code will generate it on stdout (8bits/sample, 1 channel)
Code:
int main (int argc, char * argv[]) {
  unsigned char feedback;
  unsigned short nreg=1;
  int i;

  for (i=0;i<32767;i++) {
    feedback=((nreg>>13)&1)^((nreg>>14)&1);
    nreg=(nreg<<1)+feedback;
    nreg&=0x7FFF;
    putchar(((nreg>>14)&1)?'~':' ');
  }
}


Then you loop it and only play it at specific sample rates, specifically (for US NESes) 3,579,545 Hz divided by the numbers in the NTSC line at http://nesdevwiki.org/wiki/APU_Noise

For the NES triangle, just take an ordinary triangle wave and degrade it to 4bits.


Too bad I can't code programs with C nor any other programming lanugage, but thanks for the advice with the Triangle. I gotta try it out sometime.

by on (#40850)
Eightbit Allstar wrote:
Too bad I can't code programs with C nor any other programming lanugage, but thanks for the advice with the Triangle. I gotta try it out sometime.


Oh. If that's the only thing, use this javascript instead:

Code:
<script>
function writefsr() {
  var i,N=1;

  do {
    N=(N<<1)+((N>>13)&1)^((N>>14)&1);
    N &= 0x7FFF;
    document.write((((N>>14)&1)?'z':'0'));
  } while (N != 1);
 }
</script>

<body onLoad="javascript:writefsr();">
</body>


Save it to an html file, load that in a web browser (i've only tested in firefox but i can't imagine IE wouldn't work), copy and paste the text to a new file, and import as raw audio.

by on (#40871)
lidnariq wrote:
Eightbit Allstar wrote:
Too bad I can't code programs with C nor any other programming lanugage, but thanks for the advice with the Triangle. I gotta try it out sometime.


Oh. If that's the only thing, use this javascript instead:

Code:
<script>
function writefsr() {
  var i,N=1;

  do {
    N=(N<<1)+((N>>13)&1)^((N>>14)&1);
    N &= 0x7FFF;
    document.write((((N>>14)&1)?'z':'0'));
  } while (N != 1);
 }
</script>

<body onLoad="javascript:writefsr();">
</body>


Save it to an html file, load that in a web browser (i've only tested in firefox but i can't imagine IE wouldn't work), copy and paste the text to a new file, and import as raw audio.


Do you mean pasting the generated code to a TXT-file, then saving as WAV? Or what file type do you mean?

by on (#40877)
Eightbit Allstar wrote:
Do you mean pasting the generated code to a TXT-file, then saving as WAV? Or what file type do you mean?


Copy the code to a text file, save it as something.html. Load that in firefox (or IE?). Copy and paste the generated Zs and zeros to a text file, name it whatever (e.g. noise.raw), then using your audio editing software's "import raw" command as 8bits/sample, 1 channel, (e.g.) 440 samples/second (lowest noise pitch). Trim the imported sound to the first 32767 samples, and set it to loop the entire length. Optionally remove DC bias and adjust volume.

by on (#40891)
lidnariq wrote:
Eightbit Allstar wrote:
Do you mean pasting the generated code to a TXT-file, then saving as WAV? Or what file type do you mean?


Copy the code to a text file, save it as something.html. Load that in firefox (or IE?). Copy and paste the generated Zs and zeros to a text file, name it whatever (e.g. noise.raw), then using your audio editing software's "import raw" command as 8bits/sample, 1 channel, (e.g.) 440 samples/second (lowest noise pitch). Trim the imported sound to the first 32767 samples, and set it to loop the entire length. Optionally remove DC bias and adjust volume.


Thanks.

by on (#40914)
Glad to be of help!

by on (#43309)
check this out:

http://www.chipcollection.com/catalog/p ... ucts_id=28

supposedly a reason refill with NES sounds!

sweet, i am gonna check this out