25#ifndef LMMS_VIBRATING_STRING_H
26#define LMMS_VIBRATING_STRING_H
42 VibratingString(
float pitch,
float pick,
float pickup,
const float* impulse,
int len,
43 sample_rate_t sampleRate,
int oversample,
float randomize,
float stringLoss,
float detune,
bool state);
78 std::unique_ptr<sample_t[]>
data;
110 for (
int i = 0;
i < pick; ++
i)
121 if (len + pick > dl->
length)
130 for (
int i = 0;
i < len; ++
i)
154 ptr = dl->
data.get();
171 if (ptr < dl->
data.get())
187 while (outpos < dl->
data.get())
191 while (outpos > dl->
end)
#define noexcept
Definition DistrhoDefines.h:72
void resample(const float *src, f_cnt_t srcFrames, f_cnt_t dstFrames)
Definition VibratingString.cpp:94
void fromBridgeUpdate(DelayLine *dl, sample_t insamp)
Definition VibratingString.h:167
sample_t nextSample()
Definition VibratingString.h:51
std::unique_ptr< DelayLine > initDelayLine(int len)
Definition VibratingString.cpp:71
void setDelayLine(DelayLine *dl, int pick, const float *values, int len, float scale, bool state)
Definition VibratingString.h:105
VibratingString & operator=(const VibratingString &)=delete
std::unique_ptr< sample_t[]> m_outsamp
Definition VibratingString.h:95
VibratingString(VibratingString &&) noexcept=delete
VibratingString()=default
~VibratingString()=default
float m_state
Definition VibratingString.h:93
static sample_t dlAccess(DelayLine *dl, int position)
Definition VibratingString.h:184
sample_t bridgeReflection(sample_t insamp)
Definition VibratingString.h:233
VibratingString(const VibratingString &)=delete
static sample_t fromBridgeAccess(DelayLine *dl, int position)
Definition VibratingString.h:216
float m_stringLoss
Definition VibratingString.h:89
void toBridgeUpdate(DelayLine *dl, sample_t insamp)
Definition VibratingString.h:147
std::unique_ptr< DelayLine > m_fromBridge
Definition VibratingString.h:84
std::unique_ptr< float[]> m_impulse
Definition VibratingString.h:91
int m_pickupLoc
Definition VibratingString.h:86
int m_oversample
Definition VibratingString.h:87
static sample_t toBridgeAccess(DelayLine *dl, int position)
Definition VibratingString.h:228
int m_choice
Definition VibratingString.h:92
float m_randomize
Definition VibratingString.h:88
std::unique_ptr< DelayLine > m_toBridge
Definition VibratingString.h:85
register unsigned i
Definition inflate.c:1575
JSAMPIMAGE data
Definition jpeglib.h:945
Definition AudioAlsa.cpp:35
T fastRandInc(T upper) noexcept
Returns a pseudorandom number within [0, upper] (inclusive upper bound).
Definition lmms_math.h:126
QPoint position(const QDropEvent *de)
position is a backwards-compatible adapter for QDropEvent::position and pos functions.
Definition DeprecationHelper.h:47
std::uint32_t sample_rate_t
Definition LmmsTypes.h:42
float sample_t
Definition LmmsTypes.h:39
std::uint64_t f_cnt_t
Definition LmmsTypes.h:43
Definition VibratingString.h:77
sample_t * pointer
Definition VibratingString.h:80
sample_t * end
Definition VibratingString.h:81
int length
Definition VibratingString.h:79
std::unique_ptr< sample_t[]> data
Definition VibratingString.h:78