Showing the changes to src/spectrogram.c (1 of 5 files). Show all
Unified · Split
| @@ -41,13 +41,14 @@ · 40 unmodified lines | ||
| 41 | 41 | |
| 42 | 42 | #define MAX_X_SIZE 200000 |
| 43 | 43 | |
| 44 | −typedef enum {Window_Hann, Window_Hamming, Window_Bartlett, Window_Rectangular, Window_Kaiser} win_type_t; | |
| 44 | +typedef enum {Window_Hann, Window_Hamming, Window_Bartlett, Window_Rectangular, Window_Kaiser, Window_Dolph} win_type_t; | |
| 45 | 45 | static lsx_enum_item const window_options[] = { |
| 46 | 46 | LSX_ENUM_ITEM(Window_,Hann) |
| 47 | 47 | LSX_ENUM_ITEM(Window_,Hamming) |
| 48 | 48 | LSX_ENUM_ITEM(Window_,Bartlett) |
| 49 | 49 | LSX_ENUM_ITEM(Window_,Rectangular) |
| 50 | 50 | LSX_ENUM_ITEM(Window_,Kaiser) |
| 51 | + LSX_ENUM_ITEM(Window_,Dolph) | |
| 51 | 52 | {0, 0}}; |
| 52 | 53 | |
| 53 | 54 | typedef struct { |
| @@ -178,8 +179,10 @@ static double make_window(priv_t * p, int end) · 124 unmodified lines | ||
| 178 | 179 | case Window_Hamming: lsx_apply_hamming(w, n); break; |
| 179 | 180 | case Window_Bartlett: lsx_apply_bartlett(w, n); break; |
| 180 | 181 | case Window_Rectangular: break; |
| 181 | − default: lsx_apply_kaiser(w, n, lsx_kaiser_beta( | |
| 182 | − (p->dB_range + p->gain) * (1.1 + p->window_adjust / 50), .1)); | |
| 182 | + case Window_Kaiser: lsx_apply_kaiser(w, n, lsx_kaiser_beta( | |
| 183 | + (p->dB_range + p->gain) * (1.1 + p->window_adjust / 50), .1)); break; | |
| 184 | + default: lsx_apply_dolph(w, n, | |
| 185 | + (p->dB_range + p->gain) * (1.005 + p->window_adjust / 50) + 6); | |
| 183 | 186 | } |
| 184 | 187 | for (i = 0; i < p->dft_size; ++i) sum += p->window[i]; |
| 185 | 188 | for (i = 0; i < p->dft_size; ++i) p->window[i] *= 2 / sum |
| @@ -673,8 +676,8 @@ sox_effect_handler_t const * lsx_spectrogram_effect_fn(void) · 487 unmodified lines | ||
| 673 | 676 | "\t-z num\tZ-axis range in dB; default 120", |
| 674 | 677 | "\t-Z num\tZ-axis maximum in dBFS; default 0", |
| 675 | 678 | "\t-q num\tZ-axis quantisation (0 - 249); default 249", |
| 676 | − "\t-w name\tWindow: Hann (default), Hamming, Bartlett, Rectangular, Kaiser", | |
| 677 | − "\t-W num\tWindow adjust parameter (-10 - 10); applies only to Kaiser", | |
| 679 | + "\t-w name\tWindow: Hann(default)/Hamming/Bartlett/Rectangular/Kaiser/Dolph", | |
| 680 | + "\t-W num\tWindow adjust parameter (-10 - 10); applies only to Kaiser/Dolph", | |
| 678 | 681 | "\t-s\tSlack overlap of windows", |
| 679 | 682 | "\t-a\tSuppress axis lines", |
| 680 | 683 | "\t-r\tRaw spectrogram; no axes or legends", |