3 * new general interfaces
4 * GST_TYPE_PRESET_MANAGER
8 void activate_preset_by_index(glong index);
9 void activate_preset_by_name(const gchar *name);
10 void add_current(const gchar *name);
11 void remove_preset_by_index(glong index);
12 void remove_preset_by_name(const gchar *name);
14 - there should always be a default preset
16 - were and how do we store the presets?
19 - add hints to generate 'good' looking interfaces to elements
21 GList *get_group_list();
22 struct ui_hint_group {
27 struct ui_hint_group_entry {
28 enum UiHintGroupEntryType type={PARAM,DPARAM};
33 "color_selection/rgb",
34 "color_selection/hsv",
40 - grouping of parameters, each group has:
41 - a label: giving a title to the group
43 - this can give the UI a hint about the purpose of the controls
44 - this only makes sense, if we dont make this a thousand templates
45 - a list of dparams or properties
47 - should this be aware of instruments (voice-groups)
48 - no, instruments should auto-generate those
50 * new interfaces for audio applications
51 * GST_TYPE_MUSIC_GENERATOR
52 - add hints so that application can use a element as an instrument
55 DParam *get_note_dparam();
56 GList *get_trigger_dparams();
58 DParamType get_dparam_type(DParam *);
59 dparamtype = { NOTE, TRIGGER, OTHER }
61 char *get_number_of_voices_property();
62 GList *get_global_param_names();
63 GList *get_voice_param_names();
65 - find out which params to use to play notes/trigger sounds
66 - these params will not appear in a control-ui
67 - notes involve a key to frequency translation
68 - find out if the element has a number_of_voices property
69 - if yes, we can find out about the max by looking at the gparamspec
70 - setting the property, adds/removes voices
71 - if the element supports it, it needs to:
72 - register voice-dparams as e.g. note_XXX, where XXX is the voice-number
73 - run the voice-loop in the chain/loop function
74 each voice processes the same input, if at all
75 the outputs of all voices are mixed together