33 Grain* retVal =
nullptr;
98 std::vector<Range<int>> ranges;
111 if (!ranges[i].isEmpty())
121 m_audioSegments.data()[segmentIndex].segmentStartPosition = startPosition;
139 return static_cast<float>(
m_audioSegments[segmentIndex].segmentStartPosition) /
static_cast<float>(
size());
145 return static_cast<float>(
m_audioSegments[segmentIndex].segmentStartPosition +
147 static_cast<float>(
size());
153 return Range<int>(
m_audioSegments[segmentIndex].selectionStartPosition,
172 return static_cast<float>(
m_audioSegments[segmentIndex].selectionStartPosition) /
static_cast<float>(
size());
178 return static_cast<float>(
m_audioSegments[segmentIndex].selectionStartPosition +
180 static_cast<float>(
size());
195 auto constrained = limits.constrainRange(range);
196 jassert(range == constrained);
203 m_audioSegments.data()[segmentIndex].selectionStartPosition = startPosition;
214 String filePathsAsCSV;
216 bool firstTime =
true;
225 filePathsAsCSV +=
",";
227 filePathsAsCSV += segment.path;
230 return filePathsAsCSV;
238 names.add(segment.name);
295 if (segmentCount <= segmentIndex || segmentIndex < 0)
344 juce::Random::getSystemRandom().nextInt(
static_cast<int>(
m_audioSegments.size()));
376 if (segmentCount <= segmentIndex || segmentIndex < 0)
Definition OscillatorUtils.h:39
bool isPlaying
Definition OscillatorUtils.h:73
int size()
Definition KrotosAudioBufferDSP.h:394
void setAudioSelectionRangeAbsolute(int segmentIndex, Range< int > range)
Sets the absolute selection range of an audio segment relative to the audio buffer start.
Definition SampleEngine.cpp:183
int getAudioSegmentLengthInSamples(int segmentIndex)
Returns the length of an audio segment.
Definition SampleEngine.cpp:269
void setGrainLimit(int newLimit)
Definition SampleEngine.cpp:64
float getIndicator2()
Definition SampleEngine.cpp:87
int m_grainLimit
Definition SampleEngine.h:355
void flushGrains()
Definition SampleEngine.cpp:75
float getAudioSelectionStartPositionPercent(int segmentIndex)
Returns the start position of an audio segment selection as a fraction of the audio buffer length.
Definition SampleEngine.cpp:169
int getAudioSelectionStartPosition(int segmentIndex)
Returns the start of the selected section of an audio segment.
Definition SampleEngine.cpp:243
void setAudioSelectionStartPositionAbsolute(int segmentIndex, int startPosition)
Sets the absolute start of an audio segment selection relative to the audio buffer start.
Definition SampleEngine.cpp:200
void setSegmentMuted(int segmentIndex, bool isMuted)
'Mutes' an audio segment in the sampler. In effect, this just means the sample is skipped in the roun...
Definition SampleEngine.cpp:372
bool allSegmentsMuted()
Definition SampleEngine.cpp:360
const String & getAudioSegmentName(int segmentIndex) const
Returns the name of an audio segment.
Definition SampleEngine.cpp:164
Range< int > getAudioSelectionRange(int segmentIndex)
Returns the start and end position of an audio segment selection as a Range.
Definition SampleEngine.cpp:150
void setSelectionRanges(const std::vector< Range< int > > &selectionRanges)
Sets the selection ranges of the audio segments.
Definition SampleEngine.cpp:106
void freeGrain(Grain *grain)
Definition SampleEngine.cpp:66
juce::String getGetLoadedFilePathsAsCSV()
Definition SampleEngine.cpp:212
Grain * allocateGrain()
Definition SampleEngine.cpp:31
float getIndicatorRPM()
Definition SampleEngine.cpp:90
void setAudioSelectionLength(int segmentIndex, int length)
Sets the length of an audio segment selection.
Definition SampleEngine.cpp:206
float getAudioSegmentEndPositionPercent(int segmentIndex)
Returns the end position of an audio segment as a fraction of the audio buffer length.
Definition SampleEngine.cpp:142
bool m_allSegmentsMuted
Definition SampleEngine.h:366
volatile float m_indicator2Value
Definition SampleEngine.h:358
static const int MAX_NUM_GRAINS
Definition SampleEngine.h:88
float getAudioSelectionEndPositionPercent(int segmentIndex)
Returns the end position of an audio segment selection as a fraction of the audio buffer length.
Definition SampleEngine.cpp:175
void setAudioSelectionRangeRelative(int segmentIndex, Range< int > range)
Sets the selection range of an audio segment relative to the segment.
Definition SampleEngine.cpp:189
int m_lastSegmentRoundRobinIndex
Definition SampleEngine.h:364
void prepareNextSegmentIndex(bool sequential=true)
Calculate the next segment to be played back.
Definition SampleEngine.cpp:319
void setNextSegmentIndex(int index)
Sets the next segment index to be picked.
Definition SampleEngine.cpp:291
float getIndicator1()
Definition SampleEngine.cpp:84
Grain m_grainArray[MAX_NUM_GRAINS]
Definition SampleEngine.h:354
int getAudioSelectionLengthInSamples(int segmentIndex)
Returns the length of the selected section of an audio segment.
Definition SampleEngine.cpp:249
const int getNextSegmentIndex() const
Returns the index of the next segment to be played.
Definition SampleEngine.cpp:413
Array< AudioSegment > m_audioSegments
Definition SampleEngine.h:361
volatile float m_indicator1Value
Definition SampleEngine.h:357
int getNumAudioSegments()
Definition SampleEngine.h:161
void setIndicator1(float newVal)
Definition SampleEngine.cpp:85
std::vector< Range< int > > getSelectionRanges()
Returns an array of segment selection ranges.
Definition SampleEngine.cpp:96
String getNextCuedSegmentName() const
Returns the next cued segment name TODO: Update this to return actual cued segment....
Definition SampleEngine.cpp:411
const int getLastSegmentIndex() const
Returns the index of the previous segment that was played.
Definition SampleEngine.cpp:414
bool isPlaying()
returns true if any grains are active
Definition SampleEngine.cpp:17
volatile float m_indicatorRPMValue
Definition SampleEngine.h:359
void clearAudioSegments()
Definition SampleEngine.cpp:93
void setIndicatorRPM(float newVal)
Definition SampleEngine.cpp:91
Range< int > getAudioSelectionRangeRelative(int segmentIndex)
Returns the selection range of an audio segment relative to the segment's start position.
Definition SampleEngine.cpp:158
int m_segmentRoundRobinIndex
Definition SampleEngine.h:363
void calculatePolyphonyCount()
Definition SampleEngine.cpp:4
Range< int > getAudioSegmentRange(int segmentIndex)
Returns the start and end positions of an audio segment as a Range.
Definition SampleEngine.cpp:283
Value & getSoloValue(int index)
Returns a reference to the 'solo' Value of an audio segment. You can use Value::referTo to have the s...
Definition SampleEngine.cpp:416
void addAudioSegment(AudioSegment &seg)
Definition SampleEngine.cpp:94
int getAudioSegmentStartPosition(int segmentIndex)
Returns the start of an audio segment.
Definition SampleEngine.cpp:263
float getAudioSegmentStartPositionPercent(int segmentIndex)
Returns the start position of an audio segment as a fraction of the audio buffer length.
Definition SampleEngine.cpp:136
Grain * getGrainArray()
Definition SampleEngine.cpp:73
void setIndicator2(float newVal)
Definition SampleEngine.cpp:88
StringArray getAudioSegmentNames() const
Returns a StringArray of audio segment names loaded in the engine.
Definition SampleEngine.cpp:233
int m_skippedSegmentIndex
Definition SampleEngine.h:367
int m_currentPolyphony
Definition SampleEngine.h:353
void setAudioSegmentStartPosition(int segmentIndex, int startPosition)
Sets the start of an audio segment relative to the audio buffer start.
Definition SampleEngine.cpp:118
void setAudioSegmentRange(int segmentIndex, Range< int > range)
Sets the start and end of an audio segment relative to the audio buffer start.
Definition SampleEngine.cpp:130
void setAudioSegmentLength(int segmentIndex, int length)
Sets the length an audio segment.
Definition SampleEngine.cpp:124
void removeSegment(int segmentIndex)
Remove a segment from the sample engine.
Definition SampleEngine.cpp:310
Definition AirAbsorptionFilter.cpp:2
A struct to describe an audio sample (as appears in the waveform view)
Definition SampleEngine.h:24