| 187 | ///////////////////// |
| 188 | |
| 189 | ADSRNode::ADSRNode(AudioContext& ac) |
| 190 | : AudioNode(ac, *desc()) |
| 191 | , adsr_impl(new ADSRNodeImpl) |
| 192 | { |
| 193 | addInput(std::unique_ptr<AudioNodeInput>(new AudioNodeInput(this))); |
| 194 | addOutput(std::unique_ptr<AudioNodeOutput>(new AudioNodeOutput(this, 1))); |
| 195 | |
| 196 | adsr_impl->m_gate = param("gate"); |
| 197 | |
| 198 | adsr_impl->m_oneShot = setting("oneShot"); |
| 199 | adsr_impl->m_oneShot->setBool(true); |
| 200 | |
| 201 | adsr_impl->m_attackTime = setting("attackTime"); |
| 202 | adsr_impl->m_attackTime->setFloat(1.125f); // 125ms |
| 203 | |
| 204 | adsr_impl->m_attackLevel = setting("attackLevel"); |
| 205 | adsr_impl->m_attackLevel->setFloat(1.0f); // 1.0f |
| 206 | |
| 207 | adsr_impl->m_decayTime = setting("decayTime"); |
| 208 | adsr_impl->m_decayTime->setFloat(0.125f); // 125ms |
| 209 | |
| 210 | adsr_impl->m_sustainTime = setting("sustainTime"); |
| 211 | adsr_impl->m_sustainTime->setFloat(0.125f); // 125ms |
| 212 | |
| 213 | adsr_impl->m_sustainLevel = setting("sustainLevel"); |
| 214 | adsr_impl->m_sustainLevel->setFloat(0.5f); // 0.5f |
| 215 | |
| 216 | adsr_impl->m_releaseTime = setting("releaseTime"); |
| 217 | adsr_impl->m_releaseTime->setFloat(0.125f); // 125ms |
| 218 | |
| 219 | initialize(); |
| 220 | } |
| 221 | |
| 222 | ADSRNode::~ADSRNode() |
| 223 | { |