Goto: [ Program Documentation ]

//
// Programmer:    Craig Stuart Sapp <craig@ccrma.stanford.edu>
// Creation Date: Tue Mar 24 23:52:42 GMT-0800 1998
// Last Modified: Wed Mar 25 00:02:42 GMT-0800 1998
// Filename:      ...sig/doc/examples/sig/sigfile/negate/negate.cpp
// Syntax:        C++; sig
//
// Description:   Flips the sign of sound.  Parts that were positive
//                amplitude become negative amplitude and vice-versa.
//

#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) exitUsage(argv[0]);

   SoundHeader header(argv[1]);

   // Elements:
   SoundFileIn  insound(argv[1]);
   SoundFileOut outsound(argv[2], header);
   Scale        leftScale(-1);      
   Scale        rightScale(-1);      

   // Connections:
   leftScale.connect(insound);
   rightScale.connect(insound);

   outsound.connect(leftScale);
   if (header.getChannels() == 2) {
      outsound.connect(rightScale, 0, 1);
   }

   Action action;
   action.tick(outsound, header.getSamples());

   return 0;
}
   


void exitUsage(const char* command) {
   cout << endl;
   cout << "Inverts the input soundfile." << endl;
   cout << endl;
   cout << "Usage: " << command << " insound outsound" << endl;
   cout << endl;

   exit(1);
}



// md5sum: d4eaca396ddd41151e54c3a24e75d466 negate.cpp [20050403]