LMMS
Loading...
Searching...
No Matches
juce::SamplerSound Class Reference

#include <juce_Sampler.h>

Inheritance diagram for juce::SamplerSound:
juce::SynthesiserSound juce::ReferenceCountedObject

Public Member Functions

 SamplerSound (const String &name, AudioFormatReader &source, const BigInteger &midiNotes, int midiNoteForNormalPitch, double attackTimeSecs, double releaseTimeSecs, double maxSampleLengthSeconds)
 ~SamplerSound () override
const StringgetName () const noexcept
AudioBuffer< float > * getAudioData () const noexcept
void setEnvelopeParameters (ADSR::Parameters parametersToUse)
bool appliesToNote (int midiNoteNumber) override
bool appliesToChannel (int midiChannel) override
Public Member Functions inherited from juce::SynthesiserSound
 ~SynthesiserSound () override
Public Member Functions inherited from juce::ReferenceCountedObject
void incReferenceCount () noexcept
void decReferenceCount () noexcept
bool decReferenceCountWithoutDeleting () noexcept
int getReferenceCount () const noexcept

Private Attributes

String name
std::unique_ptr< AudioBuffer< float > > data
double sourceSampleRate
BigInteger midiNotes
int length = 0
int midiRootNote = 0
ADSR::Parameters params

Friends

class SamplerVoice

Additional Inherited Members

Public Types inherited from juce::SynthesiserSound
using Ptr = ReferenceCountedObjectPtr<SynthesiserSound>
Protected Member Functions inherited from juce::SynthesiserSound
 SynthesiserSound ()
Protected Member Functions inherited from juce::ReferenceCountedObject
 ReferenceCountedObject ()=default
 ReferenceCountedObject (const ReferenceCountedObject &) noexcept
 ReferenceCountedObject (ReferenceCountedObject &&) noexcept
ReferenceCountedObjectoperator= (const ReferenceCountedObject &) noexcept
ReferenceCountedObjectoperator= (ReferenceCountedObject &&) noexcept
virtual ~ReferenceCountedObject ()
void resetReferenceCount () noexcept

Detailed Description

A subclass of SynthesiserSound that represents a sampled audio clip.

This is a pretty basic sampler, and just attempts to load the whole audio stream into memory.

To use it, create a Synthesiser, add some SamplerVoice objects to it, then give it some SampledSound objects to play.

See also
SamplerVoice, Synthesiser, SynthesiserSound

@tags{Audio}

Constructor & Destructor Documentation

◆ SamplerSound()

juce::SamplerSound::SamplerSound ( const String & name,
AudioFormatReader & source,
const BigInteger & midiNotes,
int midiNoteForNormalPitch,
double attackTimeSecs,
double releaseTimeSecs,
double maxSampleLengthSeconds )

Creates a sampled sound from an audio reader.

This will attempt to load the audio from the source into memory and store it in this object.

Parameters
namea name for the sample
sourcethe audio to load. This object can be safely deleted by the caller after this constructor returns
midiNotesthe set of midi keys that this sound should be played on. This is used by the SynthesiserSound::appliesToNote() method
midiNoteForNormalPitchthe midi note at which the sample should be played with its natural rate. All other notes will be pitched up or down relative to this one
attackTimeSecsthe attack (fade-in) time, in seconds
releaseTimeSecsthe decay (fade-out) time, in seconds
maxSampleLengthSecondsa maximum length of audio to read from the audio source, in seconds

◆ ~SamplerSound()

juce::SamplerSound::~SamplerSound ( )
override

Destructor.

Member Function Documentation

◆ appliesToChannel()

bool juce::SamplerSound::appliesToChannel ( int midiChannel)
overridevirtual

Returns true if the sound should be triggered by midi events on a given channel.

The Synthesiser will use this information when deciding which sounds to trigger for a given note.

Implements juce::SynthesiserSound.

◆ appliesToNote()

bool juce::SamplerSound::appliesToNote ( int midiNoteNumber)
overridevirtual

Returns true if this sound should be played when a given midi note is pressed.

The Synthesiser will use this information when deciding which sounds to trigger for a given note.

Implements juce::SynthesiserSound.

◆ getAudioData()

AudioBuffer< float > * juce::SamplerSound::getAudioData ( ) const
inlinenoexcept

Returns the audio sample data. This could return nullptr if there was a problem loading the data.

◆ getName()

const String & juce::SamplerSound::getName ( ) const
inlinenoexcept

Returns the sample's name

◆ setEnvelopeParameters()

void juce::SamplerSound::setEnvelopeParameters ( ADSR::Parameters parametersToUse)
inline

Changes the parameters of the ADSR envelope which will be applied to the sample.

◆ SamplerVoice

friend class SamplerVoice
friend

Member Data Documentation

◆ data

std::unique_ptr<AudioBuffer<float> > juce::SamplerSound::data
private

◆ length

int juce::SamplerSound::length = 0
private

◆ midiNotes

BigInteger juce::SamplerSound::midiNotes
private

◆ midiRootNote

int juce::SamplerSound::midiRootNote = 0
private

◆ name

String juce::SamplerSound::name
private

◆ params

ADSR::Parameters juce::SamplerSound::params
private

◆ sourceSampleRate

double juce::SamplerSound::sourceSampleRate
private

The documentation for this class was generated from the following files: