Goto: [ Program Documentation ]
//
// Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu>
// Creation Date: Thu Jun 12 17:12:36 GMT-0800 1997
// Last Modified: Thu Jun 12 17:12:41 GMT-0800 1997
// Filename: ...sig/doc/examples/sig/sigfile/.../reverberation.cpp
// Syntax: C++; sig
//
// Description:
//
#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 != 3) {
cerr << "Usage: " << argv[0] << " input.snd output.snd\n";
exitUsage(argv[0]);
}
SoundHeader header;
header.setHeader(argv[1]);
double revtime;
cout << "What reverb time: ";
cin >> revtime;
long numSamples = (long)(header.getSamples() + revtime * header.getSrate());
int revtype;
cout << "What reverb type: (1 = ReverbA) : ";
cin >> revtype;
double revamount;
cout << "What reverb amount: [0..1]: ";
cin >> revamount;
// Elements:
SoundFileIn insound(argv[1]);
SoundFileOut outsound(argv[2], header);
Reverberator reverb;
// Connections:
outsound.connect(reverb);
reverb.connect(insound);
reverb.connect(insound);
reverb.connect(insound);
reverb.setReverbTime(revtime);
reverb.setReverbAmount(revamount);
reverb.setReverbType(revtype);
Action action;
action.tick(outsound, numSamples);
return 0;
}
void exitUsage(const char* command) {
cout << endl;
cout <<
"Mixes two soundfiles together. You can adjust the amplitude" << endl;
cout <<
"of each input and the starting time of the second file in" << endl;
cout <<
"the output. If either of the soundfiles is stereo, then the" << endl;
cout <<
"the output will be stereo, and the mono channel will become" << endl;
cout << "the left channel." << endl;
cout << endl;
cout << "Usage: " << command << " insound1 insound2 outsound" << endl;
cout << endl;
cout << "Program input: " << endl;
cout << " (a) amplitude scaling of file 1" << endl;
cout << " (b) amplitude scaling of file 2" << endl;
cout << " (c) offset time in seconds of second sound file" << endl;
cout << endl;
exit(1);
}
// md5sum: aec16b84e25462d0cd0b45f0b57c6fdf reverberation.cpp [20050403]