Home   Information   Classes   Download   Usage   Mail List   Requirements   Links   FAQ   Tutorial


FileLoop.h
1 #ifndef STK_FILELOOP_H
2 #define STK_FILELOOP_H
3 
4 #include "FileWvIn.h"
5 
6 namespace stk {
7 
8 /***************************************************/
24 /***************************************************/
25 
26 class FileLoop : protected FileWvIn
27 {
28  public:
30  FileLoop( unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024 );
31 
33  FileLoop( std::string fileName, bool raw = false, bool doNormalize = true,
34  unsigned long chunkThreshold = 1000000, unsigned long chunkSize = 1024,
35  bool doInt2FloatScaling = true );
36 
38  ~FileLoop( void );
39 
41 
51  void openFile( std::string fileName, bool raw = false, bool doNormalize = true, bool doInt2FloatScaling = true );
52 
54  void closeFile( void ) { FileWvIn::closeFile(); };
55 
57  void reset( void ) { FileWvIn::reset(); };
58 
60  unsigned int channelsOut( void ) const { return data_.channels(); };
61 
63 
67  void normalize( void ) { FileWvIn::normalize( 1.0 ); };
68 
70 
74  void normalize( StkFloat peak ) { FileWvIn::normalize( peak ); };
75 
77  //unsigned long getSize( void ) const { return data_.frames(); };
78  unsigned long getSize( void ) const { return fileSize_; };
79 
81 
86  StkFloat getFileRate( void ) const { return data_.dataRate(); };
87 
89 
92  void setRate( StkFloat rate );
93 
95 
101  void setFrequency( StkFloat frequency ) { this->setRate( fileSize_ * frequency / Stk::sampleRate() ); };
102 
104  void addTime( StkFloat time );
105 
107 
112  void addPhase( StkFloat angle );
113 
115 
120  void addPhaseOffset( StkFloat angle );
121 
123 
132  StkFloat lastOut( unsigned int channel = 0 ) { return FileWvIn::lastOut( channel ); };
133 
135 
144  StkFloat tick( unsigned int channel = 0 );
145 
147 
154  virtual StkFrames& tick( StkFrames& frames,unsigned int channel = 0 );
155 
156  protected:
157 
158  StkFrames firstFrame_;
159  StkFloat phaseOffset_;
160 
161 };
162 
163 } // stk namespace
164 
165 #endif
STK file looping / oscillator class.
Definition: FileLoop.h:27
FileLoop(std::string fileName, bool raw=false, bool doNormalize=true, unsigned long chunkThreshold=1000000, unsigned long chunkSize=1024, bool doInt2FloatScaling=true)
Class constructor that opens a specified file.
StkFloat tick(unsigned int channel=0)
Compute a sample frame and return the specified channel value.
FileLoop(unsigned long chunkThreshold=1000000, unsigned long chunkSize=1024)
Default constructor.
void setRate(StkFloat rate)
Set the data read rate in samples. The rate can be negative.
void addTime(StkFloat time)
Increment the read pointer by time samples, modulo file size.
void reset(void)
Clear outputs and reset time (file) pointer to zero.
Definition: FileLoop.h:57
unsigned int channelsOut(void) const
Return the number of audio channels in the data or stream.
Definition: FileLoop.h:60
void closeFile(void)
Close a file if one is open.
Definition: FileLoop.h:54
StkFloat getFileRate(void) const
Return the input file sample rate in Hz (not the data read rate).
Definition: FileLoop.h:86
void normalize(void)
Normalize data to a maximum of +-1.0.
Definition: FileLoop.h:67
StkFloat lastOut(unsigned int channel=0)
Return the specified channel value of the last computed frame.
Definition: FileLoop.h:132
void openFile(std::string fileName, bool raw=false, bool doNormalize=true, bool doInt2FloatScaling=true)
Open the specified file and load its data.
void addPhase(StkFloat angle)
Increment current read pointer by angle, relative to a looping frequency.
void normalize(StkFloat peak)
Normalize data to a maximum of +-peak.
Definition: FileLoop.h:74
virtual StkFrames & tick(StkFrames &frames, unsigned int channel=0)
Fill the StkFrames object with computed sample frames, starting at the specified channel and return t...
~FileLoop(void)
Class destructor.
unsigned long getSize(void) const
Return the file size in sample frames.
Definition: FileLoop.h:78
void setFrequency(StkFloat frequency)
Set the data interpolation rate based on a looping frequency.
Definition: FileLoop.h:101
void addPhaseOffset(StkFloat angle)
Add a phase offset to the current read pointer.
STK audio file input class.
Definition: FileWvIn.h:53
virtual void normalize(void)
Normalize data to a maximum of +-1.0.
virtual void reset(void)
Clear outputs and reset time (file) pointer to zero.
StkFloat lastOut(unsigned int channel=0)
Return the specified channel value of the last computed frame.
Definition: FileWvIn.h:193
virtual void closeFile(void)
Close a file if one is open.
An STK class to handle vectorized audio data.
Definition: Stk.h:276
unsigned int channels(void) const
Return the number of channels represented by the data.
Definition: Stk.h:404
StkFloat dataRate(void) const
Return the sample rate associated with the StkFrames data.
Definition: Stk.h:421
static StkFloat sampleRate(void)
Static method that returns the current STK sample rate.
Definition: Stk.h:145
The STK namespace.
Definition: ADSR.h:6

The Synthesis ToolKit in C++ (STK)
©1995--2019 Perry R. Cook and Gary P. Scavone. All Rights Reserved.