From e722f609e02fd5c0983eaa623bb2f90c1cbb9218 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Wed, 20 Dec 2006 02:23:43 +0000 Subject: [PATCH] fixed basic envelope git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@443 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 3 +++ src/tracks/instrument_track.cpp | 11 ++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6bdd9366e..9784bd686 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-12-20 Tobias Doerffel + * src/tracks/instrument_track.cpp: + fixed basic envelope + * plugins/kicker/kicker.h: * plugins/kicker/kicker.cpp: * plugins/kicker/logo.png: diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index 15f07bb7b..55c5e2687 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -575,18 +575,19 @@ void instrumentTrack::processAudioBuffer( sampleFrame * _buf, { m_envWidget->processAudioBuffer( _buf, _frames, _n ); v_scale *= ( (float) _n->getVolume() / DEFAULT_VOLUME ); - const fpab_t ENV_FRAMES = 32; + const fpab_t ENV_FRAMES = 10; if( _n->totalFramesPlayed() == 0 ) { // very basic envelope for not having clicks at the // beginning - for( fpab_t i = 0; i < tMin( _frames, - ENV_FRAMES ); ++i ) + const fpab_t frames = tMin( _frames, + ENV_FRAMES ); + for( fpab_t i = 0; i < frames; ++i ) { for( ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch ) { - _buf[i][ch] *= (float) i / ENV_FRAMES; + _buf[i][ch] *= (float) i / frames; } } } @@ -607,7 +608,7 @@ void instrumentTrack::processAudioBuffer( sampleFrame * _buf, for( ch_cnt_t ch = 0; ch < DEFAULT_CHANNELS; ++ch ) { - _buf[i][ch] *= (float) ( _frames - i ) / + _buf[i][ch] *= (float) ( _frames-i-1 ) / ENV_FRAMES; } }