diff options
Diffstat (limited to 'doxygen/html/playsmf_8cpp-source.html')
| -rwxr-xr-x | doxygen/html/playsmf_8cpp-source.html | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/doxygen/html/playsmf_8cpp-source.html b/doxygen/html/playsmf_8cpp-source.html deleted file mode 100755 index 5db53c4..0000000 --- a/doxygen/html/playsmf_8cpp-source.html +++ /dev/null @@ -1,117 +0,0 @@ -<HTML>
-<HEAD>
-<TITLE>The Synthesis ToolKit in C++ (STK)</TITLE>
-<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css">
-</HEAD>
-<BODY BGCOLOR="#FFFFFF">
-<CENTER>
-<img src="princeton.gif"> <img src="ccrma.gif"><P>
-<a class="qindex" href="index.html">Home</a> <a class="qindex" href="information.html">Information</a> <a class="qindex" href="classes.html">Classes</a> <a class="qindex" href="download.html">Download</a> <a class="qindex" href="usage.html">Usage</a> <a class="qindex" href="maillist.html">Mail List</a> <a class="qindex" href="system.html">Requirements</a> <a class="qindex" href="links.html">Links</a> <a class="qindex" href="tutorial.html">Tutorial</a></CENTER>
-<HR>
-<!-- Generated by Doxygen 1.3-rc3 -->
-<h1>playsmf.cpp</h1><div class="fragment"><pre>00001 <span class="comment">// playsmf.cpp</span>
-00002 <span class="comment">//</span>
-00003 <span class="comment">// Simple program to test the MidiFileIn class by reading and playing</span>
-00004 <span class="comment">// a single track from a given Standard MIDI file.</span>
-00005 <span class="comment">//</span>
-00006 <span class="comment">// by Gary Scavone, 2003.</span>
-00007 <span class="comment">//</span>
-00008 <span class="comment">// compile: g++ -Wall -o playsmf playsmf.cpp RtMidi.o MidiFileIn.cpp Stk.cpp -framework CoreMIDI -framework CoreFoundation -framework CoreAudio</span>
-00009
-00010 <span class="preprocessor">#include "MidiFileIn.h"</span>
-00011 <span class="preprocessor">#include "RtMidi.h"</span>
-00012 <span class="preprocessor">#include <signal.h></span>
-00013 <span class="preprocessor">#include <unistd.h></span>
-00014
-00015 <span class="keywordtype">bool</span> done = <span class="keyword">false</span>;
-00016 <span class="keyword">static</span> <span class="keywordtype">void</span> finish(<span class="keywordtype">int</span> ignore){ done = <span class="keyword">true</span>; }
-00017
-00018 <span class="keywordtype">void</span> usage(<span class="keywordtype">void</span>) {
-00019 <span class="comment">// Error function in case of incorrect command-line</span>
-00020 <span class="comment">// argument specifications.</span>
-00021 std::cout << <span class="stringliteral">"\nusage: testmidi file track\n"</span>;
-00022 std::cout << <span class="stringliteral">" where file = a standard MIDI file,\n"</span>;
-00023 std::cout << <span class="stringliteral">" and track = the track to play (0 = 1st track).\n\n"</span>;
-00024 exit(0);
-00025 }
-00026
-00027 <span class="keywordtype">int</span> main( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[] )
-00028 {
-00029 <span class="keywordflow">if</span> ( argc != 3 ) usage();
-00030
-00031 <a class="code" href="classRtMidiOut.html">RtMidiOut</a> midi;
-00032
-00033 <span class="keywordflow">if</span> ( midi.<a class="code" href="classRtMidiOut.html#a5">getPortCount</a>() < 1 ) {
-00034 std::cout << <span class="stringliteral">"\nThere are no MIDI output destinations available!\n\n"</span>;
-00035 exit(0);
-00036 }
-00037
-00038 <span class="keywordflow">try</span> {
-00039 midi.<a class="code" href="classRtMidiOut.html#a3">openPort</a>();
-00040 }
-00041 <span class="keywordflow">catch</span> ( <a class="code" href="classRtError.html">RtError</a> & ) {
-00042 <span class="comment">// You might want to do something more useful here.</span>
-00043 std::cout << <span class="stringliteral">"\nAborting program!\n"</span>;
-00044 exit(0);
-00045 }
-00046
-00047 <span class="comment">// Install an interrupt handler function. Type "ctrl-c" to quit the</span>
-00048 <span class="comment">// program.</span>
-00049 (void) signal(SIGINT, finish);
-00050
-00051 <span class="keywordflow">try</span> {
-00052 <a class="code" href="classMidiFileIn.html">MidiFileIn</a> midiFile( argv[1] );
-00053
-00054 <span class="comment">// Print a little information about the file.</span>
-00055 std::cout << <span class="stringliteral">"\nThe MIDI file ("</span> << argv[1] << <span class="stringliteral">") information:\n"</span>;
-00056 std::cout << <span class="stringliteral">" - format = "</span> << midiFile.<a class="code" href="classMidiFileIn.html#a2">getFileFormat</a>() << <span class="stringliteral">"\n"</span>;
-00057 std::cout << <span class="stringliteral">" - tracks = "</span> << midiFile.<a class="code" href="classMidiFileIn.html#a3">getNumberOfTracks</a>() << <span class="stringliteral">"\n"</span>;
-00058 std::cout << <span class="stringliteral">" - seconds / ticks = "</span> << midiFile.<a class="code" href="classMidiFileIn.html#a6">getTickSeconds</a>() << <span class="stringliteral">"\n"</span>;
-00059
-00060 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> track = (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) atoi( argv[2] );
-00061 <span class="keywordflow">if</span> ( midiFile.<a class="code" href="classMidiFileIn.html#a3">getNumberOfTracks</a>() <= track ) {
-00062 std::cout << <span class="stringliteral">"\nInvalid track number ... playing track 0.\n"</span>;
-00063 track = 0;
-00064 }
-00065
-00066 std::cout << <span class="stringliteral">"\nPress <enter> to start reading/playing.\n"</span>;
-00067 <span class="keywordtype">char</span> input;
-00068 std::cin.get(input);
-00069
-00070 std::vector<unsigned char> event;
-00071 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ticks = midiFile.<a class="code" href="classMidiFileIn.html#a8">getNextMidiEvent</a>( &event, track );
-00072 <span class="keywordflow">while</span> ( !done && event.size() ) {
-00073
-00074 <span class="comment">// Pause for the MIDI event delta time.</span>
-00075 <a class="code" href="classStk.html#d7">Stk::sleep</a>( (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>) (ticks * midiFile.<a class="code" href="classMidiFileIn.html#a6">getTickSeconds</a>() * 1000 ) );
-00076
-00077 midi.<a class="code" href="classRtMidiOut.html#a7">sendMessage</a>( &event );
-00078
-00079 <span class="comment">// Get a new event.</span>
-00080 ticks = midiFile.<a class="code" href="classMidiFileIn.html#a8">getNextMidiEvent</a>( &event, track );
-00081 }
-00082
-00083 <span class="comment">// Send a "reset" to the synthesizer.</span>
-00084 event.clear();
-00085 event.push_back( 0xff );
-00086 midi.<a class="code" href="classRtMidiOut.html#a7">sendMessage</a>( &event );
-00087 }
-00088 <span class="keywordflow">catch</span> ( <a class="code" href="classStkError.html">StkError</a> & ) {
-00089 <span class="comment">// You might want to do something more useful here.</span>
-00090 std::cout << <span class="stringliteral">"\nAborting program!\n"</span>;
-00091 midi.<a class="code" href="classRtMidiOut.html#a4">closePort</a>();
-00092 exit(0);
-00093 }
-00094
-00095 std::cout << <span class="stringliteral">"Goodbye!\n"</span>;
-00096 <span class="keywordflow">return</span> 0;
-00097 }
-</pre></div><HR>
-
-<table>
- <tr><td><A HREF="http://www-ccrma.stanford.edu/software/stk/"><I>The Synthesis ToolKit in C++ (STK)</I></A></td></tr>
- <tr><td>©1995-2002 Perry R. Cook and Gary P. Scavone. All Rights Reserved.</td></tr>
-</table>
-
-</BODY>
-</HTML>
|
