2 |
* * |
* * |
3 |
* LinuxSampler - modular, streaming capable sampler * |
* LinuxSampler - modular, streaming capable sampler * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005-2007 Christian Schoenebeck * |
* Copyright (C) 2005-2008 Christian Schoenebeck * |
7 |
* * |
* * |
8 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
9 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
84 |
virtual String EngineName(); |
virtual String EngineName(); |
85 |
virtual InstrumentManager* GetInstrumentManager(); |
virtual InstrumentManager* GetInstrumentManager(); |
86 |
|
|
87 |
static const float* VolumeCurve; ///< Table that maps volume control change values 0..127 to amplitude. Unity gain is at 90. |
// Simple array wrapper just to make sure memory is freed |
88 |
static const float* PanCurve; ///< Table that maps pan control change values 0..128 to right channel amplitude. Unity gain is at 64 (center). |
// when liblinuxsampler is unloaded |
89 |
static const float* CrossfadeCurve; ///< Table that maps crossfade control change values 0..127 to amplitude. Unity gain is at 127. |
class FloatTable { |
90 |
|
private: |
91 |
|
const float* array; |
92 |
|
public: |
93 |
|
FloatTable(const float* array) : array(array) { } |
94 |
|
~FloatTable() { delete[] array; } |
95 |
|
const float& operator[](int i) const { return array[i]; } |
96 |
|
}; |
97 |
|
|
98 |
|
static const FloatTable VolumeCurve; ///< Table that maps volume control change values 0..127 to amplitude. Unity gain is at 90. |
99 |
|
static const FloatTable PanCurve; ///< Table that maps pan control change values 0..128 to right channel amplitude. Unity gain is at 64 (center). |
100 |
|
static const FloatTable CrossfadeCurve; ///< Table that maps crossfade control change values 0..127 to amplitude. Unity gain is at 127. |
101 |
|
|
102 |
//protected: |
//protected: |
103 |
static InstrumentResourceManager instruments; |
static InstrumentResourceManager instruments; |