home *** CD-ROM | disk | FTP | other *** search
/ Sound Sensations! / sound_sensations.iso / demos / midif / manyplay.c < prev    next >
Text File  |  1988-09-03  |  1KB  |  46 lines

  1. /*********************************************************************
  2. *
  3. *  manyplay             01 Aug 88            Copyright (c) 1988 cMIDI 
  4. *
  5. *  cMIDI function library demonstration.  File 9 of 20.
  6. *
  7. *********************************************************************/
  8. #include <stdio.h>
  9. #include <cmidi.h>
  10.  
  11. main( int argc, char *argv[] )
  12.    {
  13.    int i, copies, transposition;
  14.  
  15.    /* Open cmidi, and prepare the track(s). */
  16.    CmidiOpen();
  17.    TrackPtrRegister( 1, TRACK_PTR_PLAY );
  18.    TrackReadCmidiData( argv[1], 1 );
  19.    TrackPtrPlayListInsert( 1 );
  20.    if ((argc!=4) || ERRORQUEUED())
  21.       {
  22.       printf( "Proper command line format: \n\n"
  23.    "  manyplay filename copies transposition \n\n"
  24.    "  where \"filename\" specifies name of file containing track data\n"
  25.    "        \"copies\" specifies number of times track data is copied\n"
  26.    "        \"transposition\" specifies transposition of track copies\n");
  27.       CmidiClose(CLOSE_RESET_MPU);
  28.       exit( 1 );
  29.       }
  30.  
  31.    copies = atoi( argv[2] );
  32.    transposition = atoi( argv[3] );
  33.    for (i=2; i<=(copies+1); i++)
  34.       {
  35.       TrackPtrRegister( i , TRACK_PTR_PLAY );
  36.       TrackPtrCopy( i, 1 );
  37.       TrackPtrPlayListInsert( i );
  38.       TrackPtrTranspose( i, (i-1)*transposition );
  39.       }
  40.  
  41.    TrackPlay();
  42.    /* Wait until playing has finished, then close cmidi. */
  43.    while ( PLAYING() );
  44.    CmidiClose( CLOSE_RESET_MPU | CLOSE_PRINT_ERRORS );
  45.    }
  46.