Home Information Classes Download Usage Mail List Requirements Links FAQ Tutorial
00001 /***************************************************/ 00026 /***************************************************/ 00027 00028 #ifndef STK_SKINI_H 00029 #define STK_SKINI_H 00030 00031 #include "Stk.h" 00032 #include <vector> 00033 #include <string> 00034 #include <fstream> 00035 00036 class Skini : public Stk 00037 { 00038 public: 00039 00041 struct Message { 00042 long type; 00043 long channel; 00044 StkFloat time; 00045 std::vector<StkFloat> floatValues; 00046 std::vector<long> intValues; 00047 std::string remainder; 00049 // Default constructor. 00050 Message() 00051 :type(0), channel(0), time(0.0), floatValues(2), intValues(2) {} 00052 }; 00053 00055 Skini(); 00056 00058 ~Skini(); 00059 00061 00065 bool setFile( std::string fileName ); 00066 00068 00074 long nextMessage( Skini::Message& message ); 00075 00077 00081 long parseString( std::string& line, Skini::Message& message ); 00082 00084 static std::string whatsThisType(long type); 00085 00087 static std::string whatsThisController(long number); 00088 00089 protected: 00090 00091 void tokenize( const std::string& str, std::vector<std::string>& tokens, const std::string& delimiters ); 00092 00093 std::ifstream file_; 00094 }; 00095 00096 static const double Midi2Pitch[129] = { 00097 8.18,8.66,9.18,9.72,10.30,10.91,11.56,12.25, 00098 12.98,13.75,14.57,15.43,16.35,17.32,18.35,19.45, 00099 20.60,21.83,23.12,24.50,25.96,27.50,29.14,30.87, 00100 32.70,34.65,36.71,38.89,41.20,43.65,46.25,49.00, 00101 51.91,55.00,58.27,61.74,65.41,69.30,73.42,77.78, 00102 82.41,87.31,92.50,98.00,103.83,110.00,116.54,123.47, 00103 130.81,138.59,146.83,155.56,164.81,174.61,185.00,196.00, 00104 207.65,220.00,233.08,246.94,261.63,277.18,293.66,311.13, 00105 329.63,349.23,369.99,392.00,415.30,440.00,466.16,493.88, 00106 523.25,554.37,587.33,622.25,659.26,698.46,739.99,783.99, 00107 830.61,880.00,932.33,987.77,1046.50,1108.73,1174.66,1244.51, 00108 1318.51,1396.91,1479.98,1567.98,1661.22,1760.00,1864.66,1975.53, 00109 2093.00,2217.46,2349.32,2489.02,2637.02,2793.83,2959.96,3135.96, 00110 3322.44,3520.00,3729.31,3951.07,4186.01,4434.92,4698.64,4978.03, 00111 5274.04,5587.65,5919.91,6271.93,6644.88,7040.00,7458.62,7902.13, 00112 8372.02,8869.84,9397.27,9956.06,10548.08,11175.30,11839.82,12543.85, 00113 13289.75}; 00114 00115 #endif 00116 00117
The Synthesis ToolKit in C++ (STK) |
©1995-2007 Perry R. Cook and Gary P. Scavone. All Rights Reserved. |