Audaspace 1.5.0
A high level audio library.
Loading...
Searching...
No Matches
ADSR.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright 2009-2016 Jörg Müller
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16
17#pragma once
18
25#include "fx/Effect.h"
26
28
32class AUD_API ADSR : public Effect
33{
34private:
38 float m_attack;
39
43 float m_decay;
44
48 float m_sustain;
49
53 float m_release;
54
55 // delete copy constructor and operator=
56 ADSR(const ADSR&) = delete;
57 ADSR& operator=(const ADSR&) = delete;
58
59public:
68 ADSR(std::shared_ptr<ISound> sound, float attack, float decay, float sustain, float release);
69
74 float getAttack() const;
75
80 void setAttack(float attack);
81
86 float getDecay() const;
87
92 void setDecay(float decay);
93
98 float getSustain() const;
99
104 void setSustain(float sustain);
105
110 float getRelease() const;
111
116 void setRelease(float release);
117
118 virtual std::shared_ptr<IReader> createReader();
119};
120
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition Audaspace.h:119
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition Audaspace.h:116
#define AUD_API
Used for exporting symbols in the shared library.
Definition Audaspace.h:93
The Effect class.
The ADSR effect implements the Attack-Delay-Sustain-Release behaviour of a sound.
Definition ADSR.h:33
void setSustain(float sustain)
Sets the sustain level.
void setDecay(float decay)
Sets the decay time.
float getDecay() const
Returns the decay time.
float getSustain() const
Returns the sustain level.
float getAttack() const
Returns the attack time.
ADSR(std::shared_ptr< ISound > sound, float attack, float decay, float sustain, float release)
Creates a new ADSR object.
virtual std::shared_ptr< IReader > createReader()
Creates a reader for playback of the sound source.
void setAttack(float attack)
Sets the attack time.
float getRelease() const
Returns the release time.
void setRelease(float release)
Sets the release time.
This sound is a base class for all effect factories that take one other sound as input.
Definition Effect.h:34