Top |
AgsAudio * | audio | Read / Write |
guint | audio-channel | Read / Write |
gpointer | note | Read / Write |
AgsTimestamp * | timestamp | Read / Write |
#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 |
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()
.
#define AGS_NOTATION_GET_OBJ_MUTEX(obj) (&(((AgsNotation *) obj)->obj_mutex))
GRecMutex *
ags_notation_get_obj_mutex (AgsNotation *notation
);
Get object mutex.
Since: 3.1.0
gboolean ags_notation_test_flags (AgsNotation *notation
,AgsNotationFlags flags
);
Test flags
to be set on notation
.
Since: 3.0.0
void ags_notation_set_flags (AgsNotation *notation
,AgsNotationFlags flags
);
Set flags
on notation
.
Since: 3.0.0
void ags_notation_unset_flags (AgsNotation *notation
,AgsNotationFlags flags
);
Unset flags
on notation
.
Since: 3.0.0
GList * ags_notation_find_near_timestamp (GList *notation
,guint audio_channel
,AgsTimestamp *timestamp
);
Retrieve appropriate notation for timestamp.
notation |
the GList containing AgsNotation. |
[element-type AgsAudio.Notation][transfer none] |
audio_channel |
the matching audio channel |
|
timestamp |
the matching timestamp, or |
[allow-none] |
Since: 3.0.0
GList * ags_notation_add (GList *notation
,AgsNotation *new_notation
);
Add new_notation
sorted to notation
notation |
the GList containing AgsNotation. |
[element-type AgsAudio.Notation][transfer none] |
new_notation |
the AgsNotation to add |
Since: 3.0.0
gint ags_notation_sort_func (gconstpointer a
,gconstpointer b
);
Compare a
and b
.
Since: 3.0.0
GObject *
ags_notation_get_audio (AgsNotation *notation
);
Get audio.
Since: 3.1.0
void ags_notation_set_audio (AgsNotation *notation
,GObject *audio
);
Set audio.
Since: 3.1.0
guint
ags_notation_get_audio_channel (AgsNotation *notation
);
Gets audio channel.
Since: 3.1.0
void ags_notation_set_audio_channel (AgsNotation *notation
,guint audio_channel
);
Sets audio channel.
Since: 3.1.0
gboolean
ags_notation_get_is_minor (AgsNotation *notation
);
Gets is minor.
Since: 3.1.0
void ags_notation_set_is_minor (AgsNotation *notation
,gboolean is_minor
);
Sets is minor.
Since: 3.1.0
guint
ags_notation_get_sharp_flats (AgsNotation *notation
);
Gets sharp flats.
Since: 3.1.0
void ags_notation_set_sharp_flats (AgsNotation *notation
,guint sharp_flats
);
Sets sharp flats.
Since: 3.1.0
AgsTimestamp *
ags_notation_get_timestamp (AgsNotation *notation
);
Get timestamp.
Since: 3.1.0
void ags_notation_set_timestamp (AgsNotation *notation
,AgsTimestamp *timestamp
);
Set timestamp.
Since: 3.1.0
GList *
ags_notation_get_note (AgsNotation *notation
);
Get note.
Since: 3.1.0
void ags_notation_set_note (AgsNotation *notation
,GList *note
);
Set note by replacing existing.
notation |
the AgsNotation |
|
note |
the GList containing AgsNote. |
[element-type AgsAudio.Note][transfer full] |
Since: 3.1.0
void ags_notation_add_note (AgsNotation *notation
,AgsNote *note
,gboolean use_selection_list
);
Adds note
to notation
.
notation |
the AgsNotation |
|
note |
the AgsNote to add |
|
use_selection_list |
if |
Since: 3.0.0
void ags_notation_remove_note (AgsNotation *notation
,AgsNote *note
,gboolean use_selection_list
);
Removes note
from notation
.
notation |
the AgsNotation |
|
note |
the AgsNote to remove |
|
use_selection_list |
if |
Since: 3.0.0
gboolean ags_notation_remove_note_at_position (AgsNotation *notation
,guint x
,guint y
);
Removes one AgsNote of notation.
Since: 3.0.0
GList *
ags_notation_get_selection (AgsNotation *notation
);
Retrieve selection.
Since: 3.0.0
gboolean ags_notation_is_note_selected (AgsNotation *notation
,AgsNote *note
);
Check selection for note.
Since: 3.0.0
AgsNote * ags_notation_find_point (AgsNotation *notation
,guint x
,guint y
,gboolean use_selection_list
);
Find note by offset and tone.
notation |
the AgsNotation |
|
x |
offset |
|
y |
note |
|
use_selection_list |
if |
Since: 3.0.0
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.
notation |
the AgsNotation |
|
x0 |
start offset |
|
y0 |
start tone |
|
x1 |
end offset |
|
y1 |
end tone |
|
use_selection_list |
if |
Since: 3.0.0
GList * ags_notation_find_offset (AgsNotation *notation
,guint x
,gboolean use_selection_list
);
Find all notes by offset x
.
Since: 3.0.0
GList * ags_notation_find_note_256th_range (AgsNotation *notation
,guint x_256th_lower
,guint x_256th_upper
,gboolean use_selection_list
);
Find all notes by range x_256th_lower
to x_256th_upper
.
notation |
the AgsNotation |
|
x_256th_lower |
offset lower |
|
x_256th_upper |
offset upper |
|
use_selection_list |
if |
Since: 6.9.0
void
ags_notation_free_selection (AgsNotation *notation
);
Clear selection.
Since: 3.0.0
void
ags_notation_free_all_selection (GList *notation
);
Clear all selection of notation
.
Since: 3.14.10
void ags_notation_add_point_to_selection (AgsNotation *notation
,guint x
,guint y
,gboolean replace_current_selection
);
Select notes at position.
notation |
the AgsNotation |
|
x |
x offset |
|
y |
y note tone |
|
replace_current_selection |
if |
Since: 3.0.0
void ags_notation_remove_point_from_selection (AgsNotation *notation
,guint x
,guint y
);
Remove notes at position of selection.
Since: 3.0.0
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.
notation |
the AgsNotation |
|
x0 |
x start offset |
|
y0 |
y start tone |
|
x1 |
x end offset |
|
y1 |
y end tone |
|
replace_current_selection |
if |
Since: 3.0.0
void ags_notation_remove_region_from_selection (AgsNotation *notation
,guint x0
,guint y0
,guint x1
,guint y1
);
Remove note within region of selection.
Since: 3.0.0
void
ags_notation_add_all_to_selection (AgsNotation *notation
);
Add all note to selection.
Since: 3.0.0
xmlNode *
ags_notation_copy_selection (AgsNotation *notation
);
Copy selection to clipboard.
Since: 3.0.0
xmlNode *
ags_notation_cut_selection (AgsNotation *notation
);
Cut selection to clipboard.
Since: 3.0.0
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.
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: 3.0.0
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.
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: 3.0.0
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.
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: 3.0.0
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.
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: 3.0.0
AgsNotation * ags_notation_new (GObject *audio
,guint audio_channel
);
Creates a new instance of AgsNotation.
Since: 3.0.0
#define AGS_NOTATION_DEFAULT_LENGTH (16 * 16 * 1200 / AGS_NOTATION_TICS_PER_BEAT)
#define AGS_NOTATION_DEFAULT_JIFFIE (60.0 / AGS_NOTATION_DEFAULT_BPM / AGS_NOTATION_TICS_PER_BEAT)
#define AGS_NOTATION_DEFAULT_DURATION (AGS_NOTATION_DEFAULT_LENGTH * AGS_NOTATION_DEFAULT_JIFFIE * AGS_USEC_PER_SEC)
#define AGS_NOTATION_DEFAULT_OFFSET (64 * (1 / AGS_NOTATION_MINIMUM_NOTE_LENGTH))
Enum values to control the behavior or indicate internal state of AgsNotation by enable/disable as flags.
“audio”
property“audio” AgsAudio *
The assigned AgsAudio
Owner: AgsNotation
Flags: Read / Write
Since: 3.0.0
“audio-channel”
property “audio-channel” guint
The effect's audio-channel.
Owner: AgsNotation
Flags: Read / Write
Allowed values: <= 65535
Default value: 0
Since: 3.0.0
“note”
property “note” gpointer
The assigned AgsNote
[transfer full]
Owner: AgsNotation
Flags: Read / Write
Since: 3.0.0