#include "../src/ChipSym.hpp" #include "standalone_helpers.hpp" template struct NESGen : StepHandler { T ngen; NESGen() : ngen( -0.2, 0.2, 44100 ) {} virtual int dostep( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames, double streamTime, RtAudioStreamStatus status ) override { unsigned int i, j; double *buffer = (double *) outputBuffer; for ( i=0; i triGen; int df = 2<<8; triGen.ngen.setDigWavelength( df ); triGen.playAudioUntilEnterPressed(); triGen.ngen.setDigWavelength( df / 2 ); triGen.playAudioUntilEnterPressed(); NESGen< ChipSym::NESPulse > pulsGen; df = 2<<9; pulsGen.ngen.setDigWavelength( df ); pulsGen.playAudioUntilEnterPressed(); pulsGen.ngen.setDigWavelength( df / 2 ); pulsGen.playAudioUntilEnterPressed(); NESGen< ChipSym::NESNoise > noiseGen; noiseGen.playAudioUntilEnterPressed(); noiseGen.ngen.setModeFlag( true ); noiseGen.playAudioUntilEnterPressed(); noiseGen.ngen.setModeFlag( false ); noiseGen.ngen.setPeriod( 3 ); noiseGen.playAudioUntilEnterPressed(); noiseGen.ngen.setModeFlag( false ); noiseGen.ngen.setPeriod( 11 ); noiseGen.playAudioUntilEnterPressed(); #endif NESGen< ChipSym::NESArbitraryWaveform > arbGen; int df = 2<<7; arbGen.ngen.setDigWavelength( df ); arbGen.playAudioUntilEnterPressed(); for( uint i=0; i<32; ++i ) { arbGen.ngen.setWaveformPoint( i, 7 * ( sin ( 2 * 3.14159 * i / 32 ) + 1 ) ); } arbGen.playAudioUntilEnterPressed(); return 0; }