This is the codebase for paper "Automatic Recognition of Cascaded Guitar Effects" at DAFX23.
A bunch of rendered examples can be found here.
Please refer to the colab notebook for a run through of the workflow.
| Number | Effect name | pySoX Function name | parameters |
|---|---|---|---|
| 1 | overdrive | overdrive() |
{'gain_db': 5} |
| 2 | distortion | overdrive() |
{'gain_db': 15} |
| 3 | chorus | chorus() |
{'n_voices': 5} |
| 4 | flanger | flanger() |
{'depth': 5, 'phase': 50} |
| 5 | phaser | phaser() |
{} |
| 6 | tremolo | tremolo() |
{} |
| 7 | reverb | reverb() |
{'reverberance': 80} |
| 8 | feedback_delay | echos() |
{'n_echos': 3, 'delays': [200,400,600], 'decays':[0.4,0.2,0.1], 'gain_out':0.5} |
| 9 | slapback_delay | echo() |
{'n_echos': 3, 'delays': [200,400,600], 'decays':[0.4,0.2,0.1], 'gain_out':0.5} |
| 10 | low_boost | bass() |
{'frequency': 200, 'gain_db': 10} |
| 11 | low_reduct | bass() |
{'frequency': 200, 'gain_db': -10} |
| 12 | hi_boost' | treble() |
{'frequency': 8000, 'gain_db': 20} |
| 13 | hi_reduct' | treble() |
{'frequency': 8000, 'gain_db': -20} |
| Dataset type | n_classes | Feature Type | Using Clean | Epochs | Validation Accuracy (Highest) | Notes |
|---|---|---|---|---|---|---|
| 1on1 | 13 | MFCC mean | No | 100 | 0.41 | |
| 1on1 | 13 | MFCC mean | Yes | 100 | 0.85 | |
| 1onN | 13 | MFCC mean | No | 100 | 0.55 | converge fast |
| 1onN | 13 | MFCC mean | Yes | 100 | 0.96 | converge fast |
| Model type | Test set | With clean | effect method | n_classes | Feature Type | micro F1 | macro F1 | Notes |
|---|---|---|---|---|---|---|---|---|
| CRNN | guitarset test split | Yes | [1,5] | 13 | Mel Spectrogram | 0.999 | 0.999 | converge slow |
| resnet18 | guitarset test split | Yes | [1,5] | 13 | Mel Spectrogram | 0.999 | 0.999 | |
| baseline | guitarset test split | Yes | [1,5] | 13 | MFCC | 0.951 | 0.952 | MFCC+MLP |
| sampleCNN | guitarset test split | Yes | [1,5] | 13 | Raw audio | 0.864 | 0.684 | |
| CRNN | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | Mel Spectrogram | 0.963 | 0.961 | converge slow |
| resnet18 | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | Mel Spectrogram | 0.968 | 0.970 | |
| resnet14 | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | Mel Spectrogram | 0.963 | 0.955 | |
| resnet10 | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | Mel Spectrogram | 0.958 | 0.950 | |
| resnet6 | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | Mel Spectrogram | 0.926 | 0.917 | |
| baseline | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | MFCC | 0.779 | 0.772 | MFCC+MLP |
| sampleCNN | IDMT-SMT-GUITAR | Yes | [1,5] | 13 | Raw audio | 0.804 | 0.640 | |
| CRNN | guitarset test split | No | [1,5] | 13 | Mel Spectrogram | 0.967 | 0.968 | converge slow |
| resnet18 | guitarset test split | No | [1,5] | 13 | Mel Spectrogram | 0.958 | 0.965 | |
| baseline | guitarset test split | No | 1,5] | 13 | MFCC | 0.892 | 0.897 | MFCC+MLP |
| sampleCNN | guitarset test split | No | [1,5] | 13 | Raw audio | 0.877 | 0.778 | |
| CRNN | IDMT-SMT-GUITAR | No | [1,5] | 13 | Mel Spectrogram | 0.856 | 0.851 | converge slow |
| resnet18 | IDMT-SMT-GUITAR | No | [1,5] | 13 | Mel Spectrogram | 0.876 | 0.906 | |
| resnet14 | IDMT-SMT-GUITAR | No | [1,5] | 13 | Mel Spectrogram | 0.848 | 0.832 | |
| resnet10 | IDMT-SMT-GUITAR | No | [1,5] | 13 | Mel Spectrogram | 0.860 | 0.844 | |
| resnet6 | IDMT-SMT-GUITAR | No | [1,5] | 13 | Mel Spectrogram | 0.830 | 0.811 | |
| baseline | IDMT-SMT-GUITAR | No | [1,5] | 13 | MFCC | 0.704 | 0.696 | MFCC+MLP |
| sampleCNN | IDMT-SMT-GUITAR | No | [1,5] | 13 | Raw audio | 0.697 | 0.623 |