vec triangle_slope(vec x){ double P = 8.0; // Period double A = 1.0; // Amplitude double T = 0.05; // Threshold for soft thresh return soft_threshold(triangle_wave(x - P/4,P,A),T); }
/** This function gets the next audio sample **/ short SOUND_get_next_sample() { static short buffer; //Do we have something to play? if( current_note == SILENCE || current_note == EOT ) { return wave_mode == TRIANGLE ? buffer : 0; } if( wave_mode == TRIANGLE ) buffer = triangle_wave(); if( wave_mode == SQUARE ) buffer = square_wave(); if( wave_mode == SAWTOOTH ) buffer = sawtooth_wave(); //No sound return buffer; }