Home
Information
Classes
Download
Usage
Mail List
Requirements
Links
FAQ
Tutorial
include
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
37
~FileLoop
(
void
);
38
40
49
void
openFile
( std::string fileName,
bool
raw =
false
,
bool
doNormalize =
true
);
50
52
void
closeFile
(
void
) {
FileWvIn::closeFile
(); };
53
55
void
reset
(
void
) {
FileWvIn::reset
(); };
56
58
unsigned
int
channelsOut
(
void
)
const
{
return
data_.
channels
(); };
59
61
65
void
normalize
(
void
) {
FileWvIn::normalize
( 1.0 ); };
66
68
72
void
normalize
( StkFloat peak ) {
FileWvIn::normalize
( peak ); };
73
75
unsigned
long
getSize
(
void
)
const
{
return
data_.
frames
(); };
76
78
83
StkFloat
getFileRate
(
void
)
const
{
return
data_.
dataRate
(); };
84
86
89
void
setRate
( StkFloat rate );
90
92
98
void
setFrequency
( StkFloat frequency ) { this->
setRate
( file_.
fileSize
() * frequency /
Stk::sampleRate
() ); };
99
101
void
addTime
( StkFloat time );
102
104
109
void
addPhase
( StkFloat angle );
110
112
117
void
addPhaseOffset
( StkFloat angle );
118
120
129
StkFloat
lastOut
(
unsigned
int
channel = 0 ) {
return
FileWvIn::lastOut
( channel ); };
130
132
141
StkFloat
tick
(
unsigned
int
channel = 0 );
142
144
153
StkFrames
&
tick
(
StkFrames
& frames );
154
155
protected
:
156
157
StkFrames
firstFrame_;
158
StkFloat phaseOffset_;
159
160
};
161
162
}
// stk namespace
163
164
#endif
The Synthesis ToolKit in C++ (STK)
©1995--2014 Perry R. Cook and Gary P. Scavone. All Rights Reserved.