@@ -140,9 +140,11 @@ namespace lsp
140140 dspu::Sample *pOriginal; // Source sample (original, as from source file)
141141 dspu::Sample *pProcessed; // Processed sample
142142 float *vThumbs[meta::sampler_metadata::TRACKS_MAX]; // List of thumbnails
143+ float *vCutThumbs[meta::sampler_metadata::TRACKS_MAX]; // List of thumbnails with cut-off
143144
144145 uint32_t nUpdateReq; // Update request
145146 uint32_t nUpdateResp; // Update response
147+ bool bEnvEdit; // Envelope editing
146148 bool bSync; // Sync flag
147149 float fMinVelocity ; // Minimum velocity
148150 float fMaxVelocity ; // Maximum velocity
@@ -171,32 +173,73 @@ namespace lsp
171173 uint32_t nCompensateFadeType; // Compensate fade type
172174 float fPreDelay ; // Pre-delay
173175 float fMakeup ; // Makeup gain
176+ float fEnvelopeAttackTime ; // Attack time
177+ float fEnvelopeHoldTime ; // Hold time
178+ float fEnvelopeDecayTime ; // Decay time
179+ float fEnvelopeSlopeTime ; // Slope time
180+ float fEnvelopeReleaseTime ; // Release time
181+ float fEnvelopeBreakLevel ; // Break level
182+ float fEnvelopeSustainLevel ; // Sustain level
183+ float fEnvelopeAttackCurve ; // Attack curvature
184+ float fEnvelopeDecayCurve ; // Decay curvature
185+ float fEnvelopeSlopeCurve ; // Slope curvature
186+ float fEnvelopeReleaseCurve ; // Release curvature
187+ uint32_t nEnvelopeAttackType; // Attack curve type
188+ uint32_t nEnvelopeDecayType; // Decay curve type
189+ uint32_t nEnvelopeSlopeType; // Slope curve type
190+ uint32_t nEnvelopeReleaseType; // Release curve type
174191 float fGains [meta::sampler_metadata::TRACKS_MAX]; // List of gain values
175192 float fLength ; // Length of source sample in milliseconds
176193 float fActualLength ; // Length of processed sample in milliseconds
177194 status_t nStatus; // Loading status
178195 bool bOn; // On flag
196+ bool bEnvelopeOn; // Envelope is enabled
197+ bool bEnvelopeHoldOn; // Enable Hold point
198+ bool bEnvelopeBreakOn; // Enable Break point
179199
180200 plug::IPort *pFile; // Audio file port
181201 plug::IPort *pPitch; // Pitch
202+
182203 plug::IPort *pStretchOn; // Stretch enabled
183204 plug::IPort *pStretch; // Stretch amount
184205 plug::IPort *pStretchStart; // Start of the stretch region
185206 plug::IPort *pStretchEnd; // End of the stretch region
186207 plug::IPort *pStretchChunk; // Stretch chunk
187208 plug::IPort *pStretchFade; // Stretch cross-fade length
188209 plug::IPort *pStretchFadeType; // Stretch cross-fade type
210+
189211 plug::IPort *pLoopOn; // Loop enabled
190212 plug::IPort *pLoopMode; // Loop mode
191213 plug::IPort *pLoopStart; // Start of the loop region
192214 plug::IPort *pLoopEnd; // End of the loop region
193215 plug::IPort *pLoopFadeType; // Loop cross-fade type
194216 plug::IPort *pLoopFade; // Loop cross-fade length
217+
195218 plug::IPort *pHeadCut; // Head cut
196219 plug::IPort *pTailCut; // Tail cut
197220 plug::IPort *pFadeIn; // Fade in length
198221 plug::IPort *pFadeOut; // Fade out length
199222 plug::IPort *pMakeup; // Makup gain
223+
224+ plug::IPort *pEnvelopeOn; // Enable envelope
225+ plug::IPort *pEnvelopeHoldOn; // Enable Hold point
226+ plug::IPort *pEnvelopeBreakOn; // Enable Break point
227+ plug::IPort *pEnvelopeAttackTime; // Attack time
228+ plug::IPort *pEnvelopeHoldTime; // Hold time
229+ plug::IPort *pEnvelopeDecayTime; // Decay time
230+ plug::IPort *pEnvelopeSlopeTime; // Slope time
231+ plug::IPort *pEnvelopeReleaseTime; // Release time
232+ plug::IPort *pEnvelopeBreakLevel; // Break level
233+ plug::IPort *pEnvelopeSustainLevel; // Sustain level
234+ plug::IPort *pEnvelopeAttackCurve; // Attack curvature
235+ plug::IPort *pEnvelopeDecayCurve; // Decay curvature
236+ plug::IPort *pEnvelopeSlopeCurve; // Slope curvature
237+ plug::IPort *pEnvelopeReleaseCurve; // Release curvature
238+ plug::IPort *pEnvelopeAttackType; // Attack curve type
239+ plug::IPort *pEnvelopeDecayType; // Decay curve type
240+ plug::IPort *pEnvelopeSlopeType; // Slope curve type
241+ plug::IPort *pEnvelopeReleaseType; // Release curve type
242+
200243 plug::IPort *pVelocity; // Velocity range top
201244 plug::IPort *pPreDelay; // Pre-delay
202245 plug::IPort *pOn; // Sample on outputflag
@@ -239,6 +282,7 @@ namespace lsp
239282 bool bBypass; // Bypass flag
240283 bool bReorder; // Reorder flag
241284 bool bHandleVelocity; // Velocity handling flag
285+ bool bEnvelopeEdit; // Envelope edit
242286 float fFadeout ; // Fadeout in milliseconds
243287 float fDynamics ; // Dynamics
244288 float fDrift ; // Time drifting
@@ -247,6 +291,7 @@ namespace lsp
247291 plug::IPort *pDynamics; // Dynamics port
248292 plug::IPort *pHandleVelocity; // Velocity handling
249293 plug::IPort *pDrift; // Time drifting port
294+ plug::IPort *pSampleSel; // Sample selector
250295 plug::IPort *pActivity; // Activity port
251296 plug::IPort *pListen; // Listen sample preview
252297 plug::IPort *pStop; // Stop listen sample preview
@@ -303,6 +348,7 @@ namespace lsp
303348
304349 public:
305350 void set_fadeout (float length);
351+ void set_envelope_edit (bool edit);
306352
307353 public:
308354 bool init (ipc::IExecutor *executor, size_t files, size_t channels);
0 commit comments