Skip to content

Commit

Permalink
Merge pull request #11 from LMMS/master
Browse files Browse the repository at this point in the history
from LMMS:master
  • Loading branch information
curlymorphic committed Dec 21, 2014
2 parents a774e5d + 635e92a commit 0bbc963
Show file tree
Hide file tree
Showing 30 changed files with 920 additions and 71 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ INCLUDE(FindPkgConfig)

SET(VERSION_MAJOR "1")
SET(VERSION_MINOR "0")
SET(VERSION_PATCH "99")
SET(VERSION_PATCH "100")
#SET(VERSION_SUFFIX "")
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
IF(VERSION_SUFFIX)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?xml version="1.0"?>
<!DOCTYPE lmms-project>
<lmms-project version="1.0" creator="LMMS" creatorversion="1.0.98" type="instrumenttracksettings">
<lmms-project version="1.0" creator="LMMS" creatorversion="1.0.99" type="instrumenttracksettings">
<head/>
<instrumenttracksettings muted="0" type="0" name="Kick power" solo="0">
<instrumenttrack pan="0" fxch="0" scale_type="linear" pitchrange="1" pitch="0" basenote="57" vol="100">
<instrumenttrack pan="0" fxch="0" pitchrange="1" pitch="0" basenote="57" vol="100">
<instrument name="kicker">
<kicker decay_numerator="4" decay_denominator="4" distend="0.8" click="0.25" endnote="0" version="1" decay="594" syncmode="0" noise="0" slope="0.33" dist="1.2" env="0.163" scale_type="linear" startnote="0" startfreq="130" endfreq="5" gain="1"/>
<kicker decay_numerator="4" decay_denominator="4" distend="0.8" click="0.25" endnote="0" version="1" decay="360" syncmode="0" noise="0.2" slope="0.372" dist="1.2" env="0.163" startnote="0" startfreq="145" endfreq="30" gain="1"/>
</instrument>
<eldata scale_type="linear" fres="0.5" ftype="0" fcut="14000" fwet="0">
<elvol lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4" scale_type="linear"/>
<elcut lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4" scale_type="linear"/>
<elres lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4" scale_type="linear"/>
<eldata fres="0.5" ftype="0" fcut="14000" fwet="0">
<elvol lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4"/>
<elcut lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4"/>
<elres lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4"/>
</eldata>
<chordcreator chord="0" scale_type="linear" chordrange="1" chord-enabled="0"/>
<arpeggiator arptime="100" arprange="1" arptime_denominator="4" syncmode="0" arpmode="0" scale_type="linear" arp-enabled="0" arp="0" arptime_numerator="4" arpdir="0" arpgate="100"/>
<midiport inputcontroller="0" fixedoutputvelocity="-1" inputchannel="0" scale_type="linear" outputcontroller="0" writable="0" outputchannel="1" fixedinputvelocity="-1" fixedoutputnote="-1" outputprogram="1" basevelocity="63" readable="0"/>
<chordcreator chord="0" chordrange="1" chord-enabled="0"/>
<arpeggiator arptime="100" arprange="1" arptime_denominator="4" syncmode="0" arpmode="0" arp-enabled="0" arp="0" arptime_numerator="4" arpdir="0" arpgate="100"/>
<midiport inputcontroller="0" fixedoutputvelocity="-1" inputchannel="0" outputcontroller="0" writable="0" outputchannel="1" fixedinputvelocity="-1" fixedoutputnote="-1" outputprogram="1" basevelocity="63" readable="0"/>
<fxchain numofeffects="0" enabled="0"/>
</instrumenttrack>
</instrumenttracksettings>
Expand Down
161 changes: 161 additions & 0 deletions data/presets/Kicker/SnareMarch.xpf
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
<?xml version="1.0"?>
<!DOCTYPE lmms-project>
<lmms-project version="1.0" creator="LMMS" creatorversion="1.0.99" type="instrumenttracksettings">
<head/>
<instrumenttracksettings muted="0" type="0" name="Snare March" solo="0">
<instrumenttrack pan="0" fxch="0" pitchrange="1" pitch="0" basenote="57" vol="100">
<instrument name="kicker">
<kicker decay_numerator="4" decay_denominator="4" distend="0" click="1" endnote="0" version="1" decay="240" syncmode="0" noise="0.85" slope="1" dist="0" env="0.644" startnote="0" startfreq="229" endfreq="195" gain="1"/>
</instrument>
<eldata fres="0.56" ftype="3" fcut="929" fwet="1">
<elvol lspd_denominator="4" sustain="0.294" pdel="0" userwavefile="" dec="0.453" lamt="0" syncmode="0" latt="0" rel="0.1" amt="1" x100="0" att="0" lpdel="0" hold="0" lshp="2" lspd="0.0997" ctlenvamt="0" lspd_numerator="4"/>
<elcut lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="2" lspd="0.001" ctlenvamt="0" lspd_numerator="4"/>
<elres lspd_denominator="4" sustain="0.5" pdel="0" userwavefile="" dec="0.5" lamt="0" syncmode="0" latt="0" rel="0.1" amt="0" x100="0" att="0" lpdel="0" hold="0.5" lshp="0" lspd="0.1" ctlenvamt="0" lspd_numerator="4"/>
</eldata>
<chordcreator chord="0" chordrange="1" chord-enabled="0"/>
<arpeggiator arptime="100" arprange="1" arptime_denominator="4" syncmode="0" arpmode="0" arp-enabled="0" arp="0" arptime_numerator="4" arpdir="0" arpgate="100"/>
<midiport inputcontroller="0" fixedoutputvelocity="-1" inputchannel="0" outputcontroller="0" writable="0" outputchannel="1" fixedinputvelocity="-1" fixedoutputnote="-1" outputprogram="1" basevelocity="63" readable="0"/>
<fxchain numofeffects="6" enabled="1">
<effect autoquit_numerator="4" autoquit_denominator="4" syncmode="0" autoquit="1" gate="0" name="ladspaeffect" wet="1" on="1">
<ladspacontrols ports="10">
<port02 data="0"/>
<port03 data="0"/>
<port04 data="2.07"/>
<port05 data="3.51"/>
<port06 data="-47.97"/>
<port07 data="-12.69"/>
<port08 data="-47.97"/>
<port09 data="-47.34"/>
<port010 data="-47.97"/>
<port011 data="9.99"/>
</ladspacontrols>
<key>
<attribute value="caps" name="file"/>
<attribute value="Eq2x2" name="plugin"/>
</key>
</effect>
<effect autoquit_numerator="4" autoquit_denominator="4" syncmode="0" autoquit="1" gate="0" name="ladspaeffect" wet="0.5" on="0">
<ladspacontrols ports="4">
<port02 data="0.370265"/>
<port03 data="0"/>
<port04 data="0.9995"/>
<port05 data="0.10875"/>
</ladspacontrols>
<key>
<attribute value="caps" name="file"/>
<attribute value="Plate2x2" name="plugin"/>
</key>
</effect>
<effect autoquit_numerator="4" autoquit_denominator="4" syncmode="0" autoquit="1" gate="0" name="ladspaeffect" wet="1" on="1">
<ladspacontrols ports="9">
<port07>
<data scale_type="log" value="0.4" id="6315252"/>
</port07>
<port08>
<data scale_type="log" value="2000.25" id="2498139"/>
</port08>
<port09 data="0"/>
<port010 data="1"/>
<port011 data="0.5"/>
<port012 data="1"/>
<port013 data="0"/>
<port014>
<data scale_type="log" value="659.34" id="5231681"/>
</port014>
<port015>
<data scale_type="log" value="4862.63" id="1579810"/>
</port015>
</ladspacontrols>
<key>
<attribute value="calf" name="file"/>
<attribute value="Reverb" name="plugin"/>
</key>
</effect>
<effect autoquit_numerator="4" autoquit_denominator="4" syncmode="0" autoquit="1" gate="0" name="ladspaeffect" wet="0.18" on="1">
<ladspacontrols ports="13">
<port04 data="0"/>
<port05 data="1.02375"/>
<port06 data="0.96"/>
<port07 data="0.50125"/>
<port012 data="5.049"/>
<port013 data="10"/>
<port015>
<data scale_type="log" value="20000" id="8103466"/>
</port015>
<port016>
<data scale_type="log" value="10" id="4889780"/>
</port016>
<port017>
<data scale_type="log" value="20000" id="6261168"/>
</port017>
<port018>
<data scale_type="log" value="10" id="4037431"/>
</port018>
<port019>
<data scale_type="log" value="215.82" id="6293968"/>
</port019>
<port020 data="15.9973"/>
<port021>
<data scale_type="log" value="0.9999" id="2846145"/>
</port021>
</ladspacontrols>
<key>
<attribute value="calf" name="file"/>
<attribute value="Saturator" name="plugin"/>
</key>
</effect>
<effect autoquit_numerator="4" autoquit_denominator="4" syncmode="0" autoquit="1" gate="0" name="ladspaeffect" wet="1" on="1">
<ladspacontrols ports="13">
<port04 data="0"/>
<port05 data="1.02375"/>
<port06 data="0.96"/>
<port07 data="1"/>
<port012 data="5.049"/>
<port013 data="10"/>
<port015>
<data scale_type="log" value="20000" id="7709628"/>
</port015>
<port016>
<data scale_type="log" value="10" id="7480205"/>
</port016>
<port017>
<data scale_type="log" value="20000" id="4036038"/>
</port017>
<port018>
<data scale_type="log" value="10" id="1042561"/>
</port018>
<port019>
<data scale_type="log" value="721.71" id="92193"/>
</port019>
<port020 data="1.31484"/>
<port021>
<data scale_type="log" value="0.100237" id="7520542"/>
</port021>
</ladspacontrols>
<key>
<attribute value="calf" name="file"/>
<attribute value="Saturator" name="plugin"/>
</key>
</effect>
<effect autoquit_numerator="4" autoquit_denominator="4" syncmode="0" autoquit="1" gate="0" name="ladspaeffect" wet="1" on="1">
<ladspacontrols ports="10">
<port02 data="-47.97"/>
<port03 data="-10.8"/>
<port04 data="0"/>
<port05 data="0"/>
<port06 data="0"/>
<port07 data="0"/>
<port08 data="0"/>
<port09 data="0"/>
<port010 data="0.72"/>
<port011 data="2.52"/>
</ladspacontrols>
<key>
<attribute value="caps" name="file"/>
<attribute value="Eq2x2" name="plugin"/>
</key>
</effect>
</fxchain>
</instrumenttrack>
</instrumenttracksettings>
</lmms-project>
63 changes: 32 additions & 31 deletions include/BasicFilters.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,68 +75,69 @@ class LinkwitzRiley
inline void setCoeffs( float freq )
{
// wc
const float wc = F_2PI * freq / m_sampleRate;
const float wc2 = wc * wc;
const float wc3 = wc2 * wc;
const double wc = D_2PI * freq;
const double wc2 = wc * wc;
const double wc3 = wc2 * wc;
m_wc4 = wc2 * wc2;

// k
const float k = wc / tan( wc * 0.5 );
const float k2 = k * k;
const float k3 = k2 * k;
const double k = wc / tan( D_PI * freq / m_sampleRate );
const double k2 = k * k;
const double k3 = k2 * k;
m_k4 = k2 * k2;

// a
static const double sqrt2 = sqrt( 2.0 );
const float sq_tmp1 = sqrt2 * wc3 * k;
const float sq_tmp2 = sqrt2 * wc * k3;
m_a = 1.0f / ( 4.0f * wc2 * k2 + 2.0f * sq_tmp1 + m_k4 + 2.0f * sq_tmp2 + m_wc4 );
const double sq_tmp1 = sqrt2 * wc3 * k;
const double sq_tmp2 = sqrt2 * wc * k3;

m_a = 1.0 / ( 4.0 * wc2 * k2 + 2.0 * sq_tmp1 + m_k4 + 2.0 * sq_tmp2 + m_wc4 );

// b
m_b1 = ( 4.0f * ( m_wc4 + sq_tmp1 - m_k4 - sq_tmp2 ) ) * m_a;
m_b2 = ( 6.0f * m_wc4 - 8.0f * wc2 * k2 + 6.0f * m_k4 ) * m_a;
m_b3 = ( 4.0f * ( m_wc4 - sq_tmp1 + sq_tmp2 - m_k4 ) ) * m_a;
m_b4 = ( m_k4 - 2.0f * sq_tmp1 + m_wc4 - 2.0f * sq_tmp2 + 4.0f * wc2 * k2 ) * m_a;
m_b1 = ( 4.0 * ( m_wc4 + sq_tmp1 - m_k4 - sq_tmp2 ) ) * m_a;
m_b2 = ( 6.0 * m_wc4 - 8.0 * wc2 * k2 + 6.0 * m_k4 ) * m_a;
m_b3 = ( 4.0 * ( m_wc4 - sq_tmp1 + sq_tmp2 - m_k4 ) ) * m_a;
m_b4 = ( m_k4 - 2.0 * sq_tmp1 + m_wc4 - 2.0 * sq_tmp2 + 4.0 * wc2 * k2 ) * m_a;
}

inline void setLowpass( float freq )
{
setCoeffs( freq );
m_a0 = m_wc4 * m_a;
m_a1 = 4.0f * m_a0;
m_a2 = 6.0f * m_a0;
m_a1 = 4.0 * m_a0;
m_a2 = 6.0 * m_a0;
}

inline void setHighpass( float freq )
{
setCoeffs( freq );
m_a0 = m_k4 * m_a;
m_a1 = 4.0f * m_a0;
m_a2 = 6.0f * m_a0;
m_a1 = -4.0 * m_a0;
m_a2 = 6.0 * m_a0;
}

inline float update( float in, ch_cnt_t ch )
{
const float a0in = m_a0 * in;
const float a1in = m_a1 * in;
const float out = m_z1[ch] + a0in;

m_z1[ch] = a1in + m_z2[ch] - ( m_b1 * out );
m_z2[ch] = ( m_a2 * in ) + m_z3[ch] - ( m_b2 * out );
m_z3[ch] = a1in + m_z4[ch] - ( m_b3 * out );
m_z4[ch] = a0in - ( m_b4 * out );
const double x = in - ( m_z1[ch] * m_b1 ) - ( m_z2[ch] * m_b2 ) -
( m_z3[ch] * m_b3 ) - ( m_z4[ch] * m_b4 );
const double y = ( m_a0 * x ) + ( m_z1[ch] * m_a1 ) + ( m_z2[ch] * m_a2 ) +
( m_z3[ch] * m_a1 ) + ( m_z4[ch] * m_a0 );
m_z4[ch] = m_z3[ch];
m_z3[ch] = m_z2[ch];
m_z2[ch] = m_z1[ch];
m_z1[ch] = x;

return out;
return y;
}

private:
float m_sampleRate;
float m_wc4;
float m_k4;
float m_a, m_a0, m_a1, m_a2;
float m_b1, m_b2, m_b3, m_b4;
double m_wc4;
double m_k4;
double m_a, m_a0, m_a1, m_a2;
double m_b1, m_b2, m_b3, m_b4;

typedef float frame[CHANNELS];
typedef double frame[CHANNELS];
frame m_z1, m_z2, m_z3, m_z4;
};
typedef LinkwitzRiley<2> StereoLinkwitzRiley;
Expand Down
4 changes: 2 additions & 2 deletions include/Fader.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
class TextFloat;


class Fader : public QWidget, public FloatModelView
class EXPORT Fader : public QWidget, public FloatModelView
{
Q_OBJECT
public:
Expand Down Expand Up @@ -103,7 +103,7 @@ class Fader : public QWidget, public FloatModelView
float fRange = m_model->maxValue() - m_model->minValue();
float realVal = m_model->value() - m_model->minValue();

return height() - ( ( height() - ( *s_knob ).height() ) * ( realVal / fRange ) );
return height() - ( ( height() - m_knob->height() ) * ( realVal / fRange ) );
}

FloatModel * m_model;
Expand Down
1 change: 1 addition & 0 deletions plugins/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ ADD_SUBDIRECTORY(Bitcrush)
ADD_SUBDIRECTORY(carlabase)
ADD_SUBDIRECTORY(carlapatchbay)
ADD_SUBDIRECTORY(carlarack)
ADD_SUBDIRECTORY(CrossoverEQ)
ADD_SUBDIRECTORY(delay)
ADD_SUBDIRECTORY(DualFilter)
ADD_SUBDIRECTORY(dynamics_processor)
Expand Down
3 changes: 3 additions & 0 deletions plugins/CrossoverEQ/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
INCLUDE(BuildPlugin)

BUILD_PLUGIN(crossovereq CrossoverEQ.cpp CrossoverEQControls.cpp CrossoverEQControlDialog.cpp MOCFILES CrossoverEQControls.h CrossoverEQControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png")
Loading

0 comments on commit 0bbc963

Please sign in to comment.