11 #define BSE_TYPE_PART (BSE_TYPE_ID (BsePart))
12 #define BSE_PART(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_PART, BsePart))
13 #define BSE_PART_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_PART, BsePartClass))
14 #define BSE_IS_PART(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_PART))
15 #define BSE_IS_PART_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_PART))
16 #define BSE_PART_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_PART, BsePartClass))
27 const double *semitone_table;
40 guint links_queued : 1;
41 guint range_queued : 1;
48 void (*range_changed) (
BsePart *part,
57 BSE_PART_EVENT_CONTROL,
61 #define bse_part_transpose_factor( part, index ) ((part)->semitone_table[index])
62 void bse_part_set_semitone_table (
BsePart *
self,
63 const double *semitone_table);
64 void bse_part_links_changed (
BsePart *
self);
65 BsePartLinkSeq* bse_part_list_links (
BsePart *
self);
66 gboolean bse_part_delete_control (
BsePart *
self,
68 gboolean bse_part_delete_note (
BsePart *
self,
71 guint bse_part_insert_note (
BsePart *
self,
78 guint bse_part_insert_control (
BsePart *
self,
80 BseMidiSignalType ctype,
82 gboolean bse_part_change_note (
BsePart *
self,
90 gboolean bse_part_change_control (
BsePart *
self,
93 BseMidiSignalType ctype,
95 BsePartNoteSeq* bse_part_list_notes (
BsePart *
self,
101 gboolean include_crossings);
102 BsePartControlSeq* bse_part_list_controls (
BsePart *
self,
106 BseMidiSignalType ctype);
107 void bse_part_queue_notes_within (
BsePart *
self,
112 #define bse_part_queue_controls(p,t,d) bse_part_queue_notes_within (p, t, d, BSE_MIN_NOTE, BSE_MAX_NOTE)
113 BsePartNoteSeq* bse_part_list_selected_notes (
BsePart *
self);
114 BsePartControlSeq* bse_part_list_selected_controls (
BsePart *
self,
115 BseMidiSignalType ctype);
116 void bse_part_select_notes (
BsePart *
self,
123 void bse_part_select_controls (
BsePart *
self,
126 BseMidiSignalType ctype,
128 void bse_part_select_notes_exclusive (
BsePart *
self,
134 void bse_part_select_controls_exclusive (
BsePart *
self,
137 BseMidiSignalType ctype);
138 gboolean bse_part_set_note_selected (
BsePart *
self,
142 gboolean bse_part_set_control_selected (
BsePart *
self,
147 BsePartEventType event_type;
157 gfloat fine_tune_value;
158 gfloat velocity_value;
160 BseMidiSignalType control_type;
161 gfloat control_value;
164 BsePartEventType bse_part_query_event (
BsePart *
self,
170 #define BSE_PART_MAX_CHANNELS (0x1024)
171 #define BSE_PART_MAX_TICK (0x7fffffff)
172 #define BSE_PART_INVAL_TICK_FLAG (0x80000000)
173 #define BSE_PART_NOTE_CONTROL(ctype) ((ctype) == BSE_MIDI_SIGNAL_VELOCITY || \
174 (ctype) == BSE_MIDI_SIGNAL_FINE_TUNE)
237 #define BSE_PART_NOTE_N_CROSSINGS(note) ((note)->crossings ? (note)->crossings[0] : 0)
238 #define BSE_PART_NOTE_CROSSING(note,j) ((note)->crossings[1 + (j)])
239 #define BSE_PART_SEMITONE_FACTOR(part,noteval) (bse_part_transpose_factor ((part), CLAMP ((noteval), SFI_MIN_NOTE, SFI_MAX_NOTE) - SFI_KAMMER_NOTE))
240 #define BSE_PART_NOTE_FREQ(part,note) (BSE_KAMMER_FREQUENCY * \
241 BSE_PART_SEMITONE_FACTOR ((part), (note)->note) * \
242 bse_cent_tune_fast ((note)->fine_tune))
Definition: bsepart.hh:23
Definition: bsepart.hh:182
Definition: bsepart.hh:145
Definition: bsepart.hh:226
Definition: gbsearcharray.hh:37
Definition: bsepart.hh:47
Definition: bsepart.hh:20
Definition: bseitem.hh:39
Definition: bsepart.hh:178
Definition: bsepart.hh:26
Definition: bseitem.hh:33