Goto: [ Program Documentation ]
// // Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu> // Creation Date: Wed Apr 30 15:51:15 GMT-0800 1997 // Last Modified: Sat May 24 23:58:05 GMT-0800 1997 // Filename: ...sig/doc/examples/sig/sigfile/sinewave/sinewave.cpp // Syntax: C++; sig // // Description: make a soundfile with the specified sinewave frequency/cycles // #include "sigAudio.h" #ifndef OLDCPP #include <iostream> using namespace std; #else #include <iostream.h> #endif void exitUsage(const char* command); int main(int argc, char* argv[]) { if (argc != 2) exitUsage(argv[0]); float frequency; cout << "Enter frequency for the sinewave: "; cin >> frequency; float numCycles; cout << "How many cycles of the sine wave in output: "; cin >> numCycles; float amplitude; cout << "What amplitude: "; cin >> amplitude; float phase; cout << "What phase: "; cin >> phase; int numSamples; numSamples = (int)(1.0/frequency*numCycles*44100 + 0.5); SoundHeader header; header.setHighMono(); // Elements: FixedSine sinewave(frequency, amplitude, phase); SoundFileOut outsound(argv[1], header); // Connections: outsound.connect(sinewave); Action action; action.tick(outsound, numSamples); return 0; } void exitUsage(const char* command) { cout << endl; cout << "Creates a fixed-frequency sinusoid for a specified number of cycles" << endl; cout << endl; cout << "Usage: " << command << " outsound" << endl; cout << endl; cout << "Program input: " << endl; cout << " (a) frequency in Hz of sinusoid" << endl; cout << " (b) number of cycles in output sound" << endl; cout << " (c) amplitude of sinusoid [0 .. 1]" << endl; cout << " (d) phase of sinusoid at beginning of soundfile" << endl; cout << endl; exit(1); } // md5sum: 5782491da9b2928d8c9f67e87c1f42d9 sinewave.cpp [20050403]