MCPcopy Create free account
hub / github.com/DISTRHO/Cardinal / fvec_set_window

Function fvec_set_window

deps/aubio/src/mathutils.c:60–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58}
59
60uint_t fvec_set_window (fvec_t *win, char_t *window_type) {
61 smpl_t * w = win->data;
62 uint_t i, size = win->length;
63 aubio_window_type wintype;
64 if (window_type == NULL) {
65 AUBIO_ERR ("window type can not be null.\n");
66 return 1;
67 } else if (strcmp (window_type, "ones") == 0)
68 wintype = aubio_win_ones;
69 else if (strcmp (window_type, "rectangle") == 0)
70 wintype = aubio_win_rectangle;
71 else if (strcmp (window_type, "hamming") == 0)
72 wintype = aubio_win_hamming;
73 else if (strcmp (window_type, "hanning") == 0)
74 wintype = aubio_win_hanning;
75 else if (strcmp (window_type, "hanningz") == 0)
76 wintype = aubio_win_hanningz;
77 else if (strcmp (window_type, "blackman") == 0)
78 wintype = aubio_win_blackman;
79 else if (strcmp (window_type, "blackman_harris") == 0)
80 wintype = aubio_win_blackman_harris;
81 else if (strcmp (window_type, "gaussian") == 0)
82 wintype = aubio_win_gaussian;
83 else if (strcmp (window_type, "welch") == 0)
84 wintype = aubio_win_welch;
85 else if (strcmp (window_type, "parzen") == 0)
86 wintype = aubio_win_parzen;
87 else if (strcmp (window_type, "default") == 0)
88 wintype = aubio_win_default;
89 else {
90 AUBIO_ERR ("unknown window type `%s`.\n", window_type);
91 return 1;
92 }
93 switch(wintype) {
94 case aubio_win_ones:
95 fvec_ones(win);
96 break;
97 case aubio_win_rectangle:
98 fvec_set_all(win, .5);
99 break;
100 case aubio_win_hamming:
101 for (i=0;i<size;i++)
102 w[i] = 0.54 - 0.46 * COS(TWO_PI * i / (size));
103 break;
104 case aubio_win_hanning:
105 for (i=0;i<size;i++)
106 w[i] = 0.5 - (0.5 * COS(TWO_PI * i / (size)));
107 break;
108 case aubio_win_hanningz:
109 for (i=0;i<size;i++)
110 w[i] = 0.5 * (1.0 - COS(TWO_PI * i / (size)));
111 break;
112 case aubio_win_blackman:
113 for (i=0;i<size;i++)
114 w[i] = 0.42
115 - 0.50 * COS( TWO_PI*i/(size-1.0))
116 + 0.08 * COS(2.0*TWO_PI*i/(size-1.0));
117 break;

Callers 2

new_aubio_windowFunction · 0.85
aubio_pvoc_set_windowFunction · 0.85

Calls 2

fvec_onesFunction · 0.85
fvec_set_allFunction · 0.85

Tested by

no test coverage detected