| Top |
Functions
Properties
| AgsAudio * | audio | Read / Write |
| audio-channel | Read / Write | |
| note | Read / Write | |
|
|
timestamp | Read / Write |
Types and Values
| #define | AGS_NOTATION_DEFAULT_BPM |
| #define | AGS_NOTATION_TICS_PER_BEAT |
| #define | AGS_NOTATION_MINIMUM_NOTE_LENGTH |
| #define | AGS_NOTATION_MAXIMUM_NOTE_LENGTH |
| #define | AGS_NOTATION_DEFAULT_LENGTH |
| #define | AGS_NOTATION_DEFAULT_JIFFIE |
| #define | AGS_NOTATION_DEFAULT_DURATION |
| #define | AGS_NOTATION_DEFAULT_OFFSET |
| #define | AGS_NOTATION_DEFAULT_END |
| #define | AGS_NOTATION_DEFAULT_DIVISION |
| #define | AGS_NOTATION_CLIPBOARD_VERSION |
| #define | AGS_NOTATION_CLIPBOARD_TYPE |
| #define | AGS_NOTATION_CLIPBOARD_FORMAT |
| enum | AgsNotationFlags |
| #define | AGS_TYPE_NOTATION |
| struct | AgsNotation |
| struct | AgsNotationClass |
Description
AgsNotation acts as a container of AgsNote. The timestamp property tells the
engine what the first x offset of AgsNote applies.
You can lookup AgsNotation by start x offset with ags_notation_find_near_timestamp().
The next x offset is calculated as following:
next_x_offset = x_offset + AGS_NOTATION_DEFAULT_OFFSET;
Use ags_notation_add_note() to add AgsNote to AgsNotation and ags_notation_remove_note()
to remove it again.
In order to copy or cut notes you select them first by calling ags_notation_add_region_to_selection().
Functions
AGS_NOTATION_GET_OBJ_MUTEX()
#define AGS_NOTATION_GET_OBJ_MUTEX(obj) (&(((AgsNotation *) obj)->obj_mutex))
ags_notation_get_obj_mutex ()
GRecMutex * ags_notation_get_obj_mutex (AgsNotation *notation);
Get object mutex.
Since:
ags_notation_test_flags ()
gboolean ags_notation_test_flags (AgsNotation *notation,AgsNotationFlags flags);
Test flags
to be set on notation
.
Since:
ags_notation_set_flags ()
void ags_notation_set_flags (AgsNotation *notation,AgsNotationFlags flags);
Set flags
on notation
.
Since:
ags_notation_unset_flags ()
void ags_notation_unset_flags (AgsNotation *notation,AgsNotationFlags flags);
Unset flags
on notation
.
Since:
ags_notation_find_near_timestamp ()
GList * ags_notation_find_near_timestamp (,GList *notation,guint audio_channel);AgsTimestamp *timestamp
Retrieve appropriate notation for timestamp.
Parameters
notation |
the |
[element-type AgsAudio.Notation][transfer none] |
audio_channel |
the matching audio channel |
|
timestamp |
the matching timestamp, or |
[allow-none] |
Since:
ags_notation_add ()
GList * ags_notation_add (,GList *notationAgsNotation *new_notation);
Add new_notation
sorted to notation
Parameters
notation |
the |
[element-type AgsAudio.Notation][transfer none] |
new_notation |
the AgsNotation to add |
Since:
ags_notation_sort_func ()
gint ags_notation_sort_func (,gconstpointer a);gconstpointer b
Compare a
and b
.
Since:
ags_notation_get_audio ()
GObject * ags_notation_get_audio (AgsNotation *notation);
Get audio.
Since:
ags_notation_set_audio ()
void ags_notation_set_audio (AgsNotation *notation,);GObject *audio
Set audio.
Since:
ags_notation_get_audio_channel ()
guint ags_notation_get_audio_channel (AgsNotation *notation);
Gets audio channel.
Since:
ags_notation_set_audio_channel ()
void ags_notation_set_audio_channel (AgsNotation *notation,);guint audio_channel
Sets audio channel.
Since:
ags_notation_get_is_minor ()
gboolean ags_notation_get_is_minor (AgsNotation *notation);
Gets is minor.
Since:
ags_notation_set_is_minor ()
void ags_notation_set_is_minor (AgsNotation *notation,);gboolean is_minor
Sets is minor.
Since:
ags_notation_get_sharp_flats ()
guint ags_notation_get_sharp_flats (AgsNotation *notation);
Gets sharp flats.
Since:
ags_notation_set_sharp_flats ()
void ags_notation_set_sharp_flats (AgsNotation *notation,);guint sharp_flats
Sets sharp flats.
Since:
ags_notation_get_timestamp ()
AgsTimestamp * ags_notation_get_timestamp (AgsNotation *notation);
Get timestamp.
Since:
ags_notation_set_timestamp ()
void ags_notation_set_timestamp (AgsNotation *notation,);AgsTimestamp *timestamp
Set timestamp.
Since:
ags_notation_get_note ()
GList * ags_notation_get_note (AgsNotation *notation);
Get note.
Since:
ags_notation_set_note ()
void ags_notation_set_note (AgsNotation *notation,);GList *note
Set note by replacing existing.
Parameters
notation |
the AgsNotation |
|
note |
the |
[element-type AgsAudio.Note][transfer full] |
Since:
ags_notation_add_note ()
void ags_notation_add_note (AgsNotation *notation,AgsNote *note,);gboolean use_selection_list
Adds note
to notation
.
Parameters
notation |
the AgsNotation |
|
note |
the AgsNote to add |
|
use_selection_list |
if |
Since:
ags_notation_remove_note ()
void ags_notation_remove_note (AgsNotation *notation,AgsNote *note,);gboolean use_selection_list
Removes note
from notation
.
Parameters
notation |
the AgsNotation |
|
note |
the AgsNote to remove |
|
use_selection_list |
if |
Since:
ags_notation_remove_note_at_position ()
gboolean ags_notation_remove_note_at_position (AgsNotation *notation,,guint x);guint y
Removes one AgsNote of notation.
Since:
ags_notation_get_selection ()
GList * ags_notation_get_selection (AgsNotation *notation);
Retrieve selection.
Since:
ags_notation_is_note_selected ()
gboolean ags_notation_is_note_selected (AgsNotation *notation,AgsNote *note);
Check selection for note.
Since:
ags_notation_find_point ()
AgsNote * ags_notation_find_point (AgsNotation *notation,,guint x,guint y);gboolean use_selection_list
Find note by offset and tone.
Parameters
notation |
the AgsNotation |
|
x |
offset |
|
y |
note |
|
use_selection_list |
if |
Since:
ags_notation_find_region ()
GList * ags_notation_find_region (AgsNotation *notation,,guint x0,guint y0,guint x1,guint y1);gboolean use_selection_list
Find note by offset and tone region.
Parameters
notation |
the AgsNotation |
|
x0 |
start offset |
|
y0 |
start tone |
|
x1 |
end offset |
|
y1 |
end tone |
|
use_selection_list |
if |
Since:
ags_notation_find_offset ()
GList * ags_notation_find_offset (AgsNotation *notation,,guint x);gboolean use_selection_list
Find all notes by offset x
.
Since:
ags_notation_free_selection ()
void ags_notation_free_selection (AgsNotation *notation);
Clear selection.
Since:
ags_notation_free_all_selection ()
void ags_notation_free_all_selection ();GList *notation
Clear all selection of notation
.
Since:
ags_notation_add_point_to_selection ()
void ags_notation_add_point_to_selection (AgsNotation *notation,,guint x,guint y);gboolean replace_current_selection
Select notes at position.
Parameters
notation |
the AgsNotation |
|
x |
x offset |
|
y |
y note tone |
|
replace_current_selection |
if |
Since:
ags_notation_remove_point_from_selection ()
void ags_notation_remove_point_from_selection (AgsNotation *notation,,guint x);guint y
Remove notes at position of selection.
Since:
ags_notation_add_region_to_selection ()
void ags_notation_add_region_to_selection (AgsNotation *notation,,guint x0,guint y0,guint x1,guint y1);gboolean replace_current_selection
Add note within region to selection.
Parameters
notation |
the AgsNotation |
|
x0 |
x start offset |
|
y0 |
y start tone |
|
x1 |
x end offset |
|
y1 |
y end tone |
|
replace_current_selection |
if |
Since:
ags_notation_remove_region_from_selection ()
void ags_notation_remove_region_from_selection (AgsNotation *notation,,guint x0,guint y0,guint x1);guint y1
Remove note within region of selection.
Since:
ags_notation_add_all_to_selection ()
void ags_notation_add_all_to_selection (AgsNotation *notation);
Add all note to selection.
Since:
ags_notation_copy_selection ()
xmlNode * ags_notation_copy_selection (AgsNotation *notation);
Copy selection to clipboard.
Since:
ags_notation_cut_selection ()
xmlNode * ags_notation_cut_selection (AgsNotation *notation);
Cut selection to clipboard.
Since:
ags_notation_insert_from_clipboard ()
void ags_notation_insert_from_clipboard (AgsNotation *notation,,xmlNode *notation_node,gboolean reset_x_offset,guint x_offset,gboolean reset_y_offset);guint y_offset
Paste previously copied notes.
Parameters
notation |
the AgsNotation |
|
notation_node |
the clipboard XML data |
|
reset_x_offset |
if |
|
x_offset |
region start cursor offset |
|
reset_y_offset |
if |
|
y_offset |
region start cursor tone |
Since:
ags_notation_insert_from_clipboard_extended ()
void ags_notation_insert_from_clipboard_extended (AgsNotation *notation,,xmlNode *notation_node,gboolean reset_x_offset,guint x_offset,gboolean reset_y_offset,guint y_offset,gboolean match_channel);gboolean no_duplicates
Paste previously copied notes.
Parameters
notation |
the AgsNotation |
|
notation_node |
the clipboard XML data |
|
reset_x_offset |
if |
|
x_offset |
region start cursor offset |
|
reset_y_offset |
if |
|
y_offset |
region start cursor tone |
|
match_channel |
only paste if channel matches |
|
no_duplicates |
only paste if current note doesn't exist |
Since:
ags_notation_to_raw_midi ()
guchar * ags_notation_to_raw_midi (AgsNotation *notation,,gdouble bpm,gdouble delay_factor,glong nn,glong dd,glong cc,glong bb,glong tempo);guint *buffer_length
Convert notation
to raw-midi.
Parameters
notation |
the AgsNotation |
|
bpm |
the source bpm |
|
delay_factor |
the source delay factor |
|
nn |
numerator |
|
dd |
denominator |
|
cc |
clocks |
|
bb |
beats |
|
tempo |
tempo |
|
buffer_length |
the return location of buffer length |
Since:
ags_notation_from_raw_midi ()
AgsNotation * ags_notation_from_raw_midi (,guchar *raw_midi,glong nn,glong dd,glong cc,glong bb,glong tempo,gdouble bpm,gdouble delay_factor);guint buffer_length
Parse raw_midi
data and convert to AgsNotation.
Parameters
raw_midi |
the data array |
|
nn |
numerator |
|
dd |
denominator |
|
cc |
clocks |
|
bb |
beats |
|
tempo |
tempo |
|
bpm |
the bpm to use |
|
delay_factor |
the segmentation delay factor |
|
buffer_length |
the buffer length |
Since:
ags_notation_new ()
AgsNotation * ags_notation_new (,GObject *audio);guint audio_channel
Creates a new instance of AgsNotation.
Since:
AGS_IS_NOTATION()
#define AGS_IS_NOTATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), AGS_TYPE_NOTATION))
AGS_IS_NOTATION_CLASS()
#define AGS_IS_NOTATION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE((class), AGS_TYPE_NOTATION))
AGS_NOTATION()
#define AGS_NOTATION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), AGS_TYPE_NOTATION, AgsNotation))
AGS_NOTATION_CLASS()
#define AGS_NOTATION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST((class), AGS_TYPE_NOTATION, AgsNotationClass))
AGS_NOTATION_GET_CLASS()
#define AGS_NOTATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), AGS_TYPE_NOTATION, AgsNotationClass))
Types and Values
AGS_NOTATION_DEFAULT_LENGTH
#define AGS_NOTATION_DEFAULT_LENGTH (16 * 16 * 1200 / AGS_NOTATION_TICS_PER_BEAT)
AGS_NOTATION_DEFAULT_JIFFIE
#define AGS_NOTATION_DEFAULT_JIFFIE (60.0 / AGS_NOTATION_DEFAULT_BPM / AGS_NOTATION_TICS_PER_BEAT)
AGS_NOTATION_DEFAULT_DURATION
#define AGS_NOTATION_DEFAULT_DURATION (AGS_NOTATION_DEFAULT_LENGTH * AGS_NOTATION_DEFAULT_JIFFIE * AGS_USEC_PER_SEC)
AGS_NOTATION_DEFAULT_OFFSET
#define AGS_NOTATION_DEFAULT_OFFSET (64 * (1 / AGS_NOTATION_MINIMUM_NOTE_LENGTH))
enum AgsNotationFlags
Enum values to control the behavior or indicate internal state of AgsNotation by enable/disable as flags.
Property Details
The “audio” property
“audio” AgsAudio *
The assigned AgsAudio
Owner: AgsNotation
Flags: Read / Write
Since:
The “audio-channel” property
“audio-channel”guint
The effect's audio-channel.
Owner: AgsNotation
Flags: Read / Write
Allowed values: <= 65535
Default value: 0
Since:
The “note” property
“note”gpointer
The assigned AgsNote
[transfer full]
Owner: AgsNotation
Flags: Read / Write
Since: