Beast - Music Synthesizer and Composer  0.11.1+10.g2da35
bsewaveosc.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_WAVE_OSC_H__
3 #define __BSE_WAVE_OSC_H__
4 
5 #include <bse/bsesource.hh>
6 #include <bse/bsewave.hh>
7 #include <bse/gslwaveosc.hh>
8 
9 /* --- object type macros --- */
10 #define BSE_TYPE_WAVE_OSC (BSE_TYPE_ID (BseWaveOsc))
11 #define BSE_WAVE_OSC(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_WAVE_OSC, BseWaveOsc))
12 #define BSE_WAVE_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_WAVE_OSC, BseWaveOscClass))
13 #define BSE_IS_WAVE_OSC(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_WAVE_OSC))
14 #define BSE_IS_WAVE_OSC_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_WAVE_OSC))
15 #define BSE_WAVE_OSC_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_WAVE_OSC, BseWaveOscClass))
16 
18  BseWave *wave;
19  GslWaveChunk *esample_wchunk;
20  GslWaveOscConfig config;
21  gfloat fm_strength;
22  gfloat n_octaves;
23 };
25 {};
26 
27 void bse_wave_osc_request_pcm_position (BseWaveOsc *self);
28 void bse_wave_osc_mass_seek (guint n_woscs,
29  BseWaveOsc **woscs,
30  gfloat perc);
31 void bse_wave_osc_set_from_esample (BseWaveOsc *self,
32  BseEditableSample *esample);
33 
34 
35 /* --- channels --- */
36 enum
37 {
38  BSE_WAVE_OSC_ICHANNEL_FREQ,
39  BSE_WAVE_OSC_ICHANNEL_SYNC,
40  BSE_WAVE_OSC_ICHANNEL_MOD,
41  BSE_WAVE_OSC_N_ICHANNELS
42 };
43 enum
44 {
45  BSE_WAVE_OSC_OCHANNEL_WAVE,
46  BSE_WAVE_OSC_OCHANNEL_GATE,
47  BSE_WAVE_OSC_OCHANNEL_DONE,
48  BSE_WAVE_OSC_N_OCHANNELS
49 };
50 
51 #endif /* __BSE_WAVE_OSC_H__ */
Definition: bsewaveosc.hh:17
Definition: bseeditablesample.hh:20
Definition: bsewave.hh:24
Definition: bsesource.hh:82
Definition: bsesource.hh:90
Definition: bsewaveosc.hh:24
Definition: gslwaveosc.hh:11