mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-04 01:32:42 +00:00
dee5936497
Original commit message from CVS: more thoughts about interfaces for instruments
50 lines
1.9 KiB
Text
50 lines
1.9 KiB
Text
$Id$
|
|
|
|
* new general interfaces
|
|
* GST_TYPE_PRESET_MANAGER
|
|
- add preset managment
|
|
- API:
|
|
GList *get_presets();
|
|
void activate_preset_by_index(glong index);
|
|
void activate_preset_by_name(const gchar *name);
|
|
void add_current(const gchar *name);
|
|
void remove_preset_by_index(glong index);
|
|
void remove_preset_by_name(const gchar *name);
|
|
- features
|
|
- there should always be a default preset
|
|
- questions
|
|
- were and how do we store the presets?
|
|
|
|
* GST_TYPE_UI_HINT
|
|
- add hints to generate 'good' looking interfaces to elements
|
|
- API:
|
|
GList *get_group_list()
|
|
- features
|
|
- grouping of parameters
|
|
- each group has a label and references a list of dparams or properties
|
|
- question
|
|
- should this be aware of instruments (voice-groups)
|
|
- do we better use this to tell that a frequency is infact a note
|
|
|
|
* new interfaces for audio applications
|
|
* GST_TYPE_MUSIC_GENERATOR
|
|
- add hints so that application can use a element as an instrument
|
|
- API:
|
|
DParam *get_note_dparam();
|
|
GList *get_trigger_dparams();
|
|
char *get_number_of_voices_property();
|
|
GList *get_global_param_names();
|
|
GList *get_voice_param_names();
|
|
- features
|
|
- find out which params to use to play notes/trigger sounds
|
|
- these params will not appear in a control-ui
|
|
- notes involve a key to frequency translation
|
|
- find out if the element has a number_of_voices property
|
|
- if yes, we can find out about the max by looking at the gparamspec
|
|
- setting the property, adds/removes voices
|
|
- if the element supports it, it needs to:
|
|
- register voice-dparams as e.g. note_XXX, where XXX is the voice-number
|
|
- run the voice-loop in the chain/loop function
|
|
each voice processes the same input, if at all
|
|
the outputs of all voices are mixed together
|
|
|