77 typedef double StkFloat;
100 PROCESS_SOCKET_IPADDR,
107 std::string message_;
112 StkError(
const std::string& message, Type type = StkError::UNSPECIFIED)
113 : message_(message), type_(type) {}
119 virtual void printMessage(
void) { std::cerr <<
'\n' << message_ <<
"\n\n"; }
122 virtual const Type&
getType(
void) {
return type_; }
125 virtual const std::string&
getMessage(
void) {
return message_; }
136 typedef unsigned long StkFormat;
182 static void swap16(
unsigned char *ptr );
185 static void swap32(
unsigned char *ptr );
188 static void swap64(
unsigned char *ptr );
191 static void sleep(
unsigned long milliseconds );
194 static bool inRange( StkFloat value, StkFloat min, StkFloat max ) {
195 if ( value < min )
return false;
196 else if ( value > max )
return false;
201 static void handleError(
const char *message, StkError::Type type );
204 static void handleError( std::string message, StkError::Type type );
213 static StkFloat srate_;
214 static std::string rawwavepath_;
215 static bool showWarnings_;
216 static bool printErrors_;
217 static std::vector<Stk *> alertList_;
221 static std::ostringstream oStream_;
222 bool ignoreSampleRateChange_;
228 virtual ~Stk(
void );
277 StkFrames(
unsigned int nFrames = 0,
unsigned int nChannels = 0 );
280 StkFrames(
const StkFloat& value,
unsigned int nFrames,
unsigned int nChannels );
331 StkFloat&
operator() (
size_t frame,
unsigned int channel );
339 StkFloat
operator() (
size_t frame,
unsigned int channel )
const;
348 StkFloat
interpolate( StkFloat frame,
unsigned int channel = 0 )
const;
351 size_t size()
const {
return size_; };
364 void resize(
size_t nFrames,
unsigned int nChannels = 1 );
374 void resize(
size_t nFrames,
unsigned int nChannels, StkFloat value );
377 unsigned int channels(
void )
const {
return nChannels_; };
380 unsigned int frames(
void )
const {
return (
unsigned int)nFrames_; };
394 StkFloat
dataRate(
void )
const {
return dataRate_; };
401 unsigned int nChannels_;
409 if ( size_ > 0 )
return false;
415 #if defined(_STK_DEBUG_)
417 std::ostringstream error;
418 error <<
"StkFrames::operator[]: invalid index (" << n <<
") value!";
428 #if defined(_STK_DEBUG_)
430 std::ostringstream error;
431 error <<
"StkFrames::operator[]: invalid index (" << n <<
") value!";
441 #if defined(_STK_DEBUG_)
442 if ( frame >= nFrames_ || channel >= nChannels_ ) {
443 std::ostringstream error;
444 error <<
"StkFrames::operator(): invalid frame (" << frame <<
") or channel (" << channel <<
") value!";
449 return data_[ frame * nChannels_ + channel ];
454 #if defined(_STK_DEBUG_)
455 if ( frame >= nFrames_ || channel >= nChannels_ ) {
456 std::ostringstream error;
457 error <<
"StkFrames::operator(): invalid frame (" << frame <<
") or channel (" << channel <<
") value!";
462 return data_[ frame * nChannels_ + channel ];
467 #if defined(_STK_DEBUG_)
469 std::ostringstream error;
470 error <<
"StkFrames::operator+=: frames argument must be of equal dimensions!";
475 StkFloat *fptr = &f[0];
476 StkFloat *dptr = data_;
477 for (
unsigned int i=0; i<size_; i++ )
483 #if defined(_STK_DEBUG_)
485 std::ostringstream error;
486 error <<
"StkFrames::operator*=: frames argument must be of equal dimensions!";
491 StkFloat *fptr = &f[0];
492 StkFloat *dptr = data_;
493 for (
unsigned int i=0; i<size_; i++ )
498 typedef unsigned short UINT16;
499 typedef unsigned int UINT32;
500 typedef signed short SINT16;
501 typedef signed int SINT32;
502 typedef float FLOAT32;
503 typedef double FLOAT64;
506 const StkFloat SRATE = 44100.0;
512 const unsigned int RT_BUFFER_SIZE = 512;
523 #if !defined(RAWWAVE_PATH)
524 #define RAWWAVE_PATH "../../rawwaves/"
527 const StkFloat PI = 3.14159265358979;
528 const StkFloat TWO_PI = 2 * PI;
529 const StkFloat ONE_OVER_128 = 0.0078125;
531 #if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__) || defined(__WINDOWS_MM__)
532 #define __OS_WINDOWS__
533 #define __STK_REALTIME__
534 #elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__UNIX_JACK__)
536 #define __STK_REALTIME__
537 #elif defined(__IRIX_AL__)
539 #elif defined(__MACOSX_CORE__) || defined(__UNIX_JACK__)
540 #define __OS_MACOSX__
541 #define __STK_REALTIME__