Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Drive.h@3:1666e2d5bd46, 2015-09-18 (annotated)
- Committer:
- vaifreak
- Date:
- Fri Sep 18 16:57:32 2015 +0000
- Revision:
- 3:1666e2d5bd46
- Parent:
- 2:25adc1277b3e
implement LPF, HPF
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| vaifreak | 1:bfbfd6fede05 | 1 | //============================================================================= |
| vaifreak | 2:25adc1277b3e | 2 | // @author vaifreak |
| vaifreak | 2:25adc1277b3e | 3 | // @brief OverDrive/Distortion unit. |
| vaifreak | 1:bfbfd6fede05 | 4 | //============================================================================= |
| vaifreak | 1:bfbfd6fede05 | 5 | #pragma once |
| vaifreak | 1:bfbfd6fede05 | 6 | #include "Clipper.h" |
| vaifreak | 1:bfbfd6fede05 | 7 | |
| vaifreak | 1:bfbfd6fede05 | 8 | //--------------------------------------------- |
| vaifreak | 1:bfbfd6fede05 | 9 | // |
| vaifreak | 1:bfbfd6fede05 | 10 | //--------------------------------------------- |
| vaifreak | 2:25adc1277b3e | 11 | class Drive : public EffectUnitBase |
| vaifreak | 1:bfbfd6fede05 | 12 | { |
| vaifreak | 1:bfbfd6fede05 | 13 | private: |
| vaifreak | 2:25adc1277b3e | 14 | ClipperBase *clipper_1; |
| vaifreak | 2:25adc1277b3e | 15 | ClipperBase *clipper_2; |
| vaifreak | 1:bfbfd6fede05 | 16 | |
| vaifreak | 1:bfbfd6fede05 | 17 | public: |
| vaifreak | 1:bfbfd6fede05 | 18 | float gain; |
| vaifreak | 1:bfbfd6fede05 | 19 | float vol; |
| vaifreak | 1:bfbfd6fede05 | 20 | |
| vaifreak | 1:bfbfd6fede05 | 21 | Drive( float g = 2.0f, float v = 1.0f ) |
| vaifreak | 1:bfbfd6fede05 | 22 | { |
| vaifreak | 1:bfbfd6fede05 | 23 | gain = g; |
| vaifreak | 1:bfbfd6fede05 | 24 | vol = v; |
| vaifreak | 1:bfbfd6fede05 | 25 | |
| vaifreak | 3:1666e2d5bd46 | 26 | |
| vaifreak | 3:1666e2d5bd46 | 27 | #if false |
| vaifreak | 2:25adc1277b3e | 28 | //Asynmmetry clipper |
| vaifreak | 2:25adc1277b3e | 29 | clipper_1 = new SimpleClipper(); |
| vaifreak | 2:25adc1277b3e | 30 | clipper_2 = new SoftClipper(); |
| vaifreak | 3:1666e2d5bd46 | 31 | #else |
| vaifreak | 3:1666e2d5bd46 | 32 | //Synmmetry clipper |
| vaifreak | 3:1666e2d5bd46 | 33 | clipper_1 = new SimpleClipper(); |
| vaifreak | 3:1666e2d5bd46 | 34 | clipper_2 = new SimpleClipper(); |
| vaifreak | 3:1666e2d5bd46 | 35 | #endif |
| vaifreak | 1:bfbfd6fede05 | 36 | } |
| vaifreak | 1:bfbfd6fede05 | 37 | |
| vaifreak | 2:25adc1277b3e | 38 | protected: |
| vaifreak | 2:25adc1277b3e | 39 | virtual float ProcessConcrete(float input) |
| vaifreak | 1:bfbfd6fede05 | 40 | { |
| vaifreak | 2:25adc1277b3e | 41 | input *= gain; |
| vaifreak | 2:25adc1277b3e | 42 | |
| vaifreak | 2:25adc1277b3e | 43 | if(input >= 0.0f) |
| vaifreak | 2:25adc1277b3e | 44 | return clipper_1->Process( input ) * vol; //positive side |
| vaifreak | 1:bfbfd6fede05 | 45 | else |
| vaifreak | 2:25adc1277b3e | 46 | return -clipper_2->Process( -input ) * vol; //negative side |
| vaifreak | 1:bfbfd6fede05 | 47 | } |
| vaifreak | 1:bfbfd6fede05 | 48 | }; |