aboutsummaryrefslogtreecommitdiff
path: root/README
blob: 8cb94cb40b96660b6d372fd8f2e03025e3594cb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
Advanced Gtk+ Sequencer
====

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.

jkraehemann@gmail.com

It is recommended to have a realtime kernel in conjunction with ags in order to do more computing expensive synthesis.

Please visit http://rt.wiki.kernel.org for more information.

Following site gives you advice in configuring ALSA

http://www.alsa-project.org/main/index.php/Low_latency_howto

You might want to disable systemd accounting.

https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html

$ systemd-run -p CPUAccounting=false -p MemoryAccounting=false -p TasksAccounting=false -p IOAccounting=false -p BlockIOAccounting=false --scope gsequencer

If you have pulseaudio running you might run `gsequencer` with pasuspender like:

$ pasuspender -- gsequencer

Purpose
====

The Advanced Gtk+ Sequencer framework is related to audio computation by representing it within a tree structure. It does various
abstraction and the base library can serve as fundament of any application.

libags provides an application context and a threaded tree. Which is synchronized by hard-realtime fashion. In terms of deterministic
dead-line. Each tic of the used threads has to fulfill its work in order to proceed. The file object might be used for light-weight
composition or persistency.

libags-audio is built upon libags and provides a tree of audio signals. They can be computed in parallel. One key feature is the
nested recycling tree. It allows to share audio data across channels. Further it avoids to wedge the parallel tree. There is support
for free plugin standards like LADPSA, DSSI and Lv2. So it does give support to read or write MIDI data.

libags-gui is a standalone library providing additional Gtk+-2.0 widgets.

GSequencer is the main application providing a Gtk+-2.0 GUI. Allowing you to edit or record notation. It is designed to be accessible
you should be able to control the entire application by keyboard. Likewise it implements various Atk interfaces. The frontend to AGS
requires to add machines by menubar and link them appropriately with properties dialog. It is available of the context menu. Note you can't
create any loops within the tree.

General Notes on Licensing
====

Following images are used by the documentation and hence are distributed under the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation.

* docs/images/ags_ffplayer.png
* docs/images/ags_navigation.png
* docs/images/ags_performance_preferences.png
* docs/images/ags_midi_preferences.png
* docs/images/ags_machine_properties-link_input.png
* docs/images/ags_machine_properties-input.png
* docs/images/ags_mixer.png
* docs/images/ags_select_accelerations_dialog.png
* docs/images/ags_machine_properties-resize_channels.png
* docs/images/ags_server_preferences.png
* docs/images/ags_midi_import_wizard_no2.png
* docs/images/ags_machine_envelope_info.png
* docs/images/ags_drum.png
* docs/images/ags_matrix.png
* docs/images/ags_midi_export_wizard_no1.png
* docs/images/ags_crop_notes_dialog.png
* docs/images/AGS_super-threaded.png
* docs/images/ags_midi_import_wizard_no1.png
* docs/images/AGS_recall_lifecycle.png
* docs/images/AGS_linking.png
* docs/images/AGS_iterator.png
* docs/images/ags_automation_window_drum.png
* docs/images/ags_audio_connection_output_line.png
* docs/images/ags_machine_envelope_editor.png
* docs/images/ags_select_notes_dialog.png
* docs/images/ags_move_notes_dialog.png
* docs/images/ags_ladspa_browser.png
* docs/images/ags-automation-toolbar.png
* docs/images/ags_ramp_accelerations_dialog.png
* docs/images/ags_export_window.png
* docs/images/ags_midi_export_wizard_no2.png
* docs/images/ags_audio_connection_output_bulk.png
* docs/images/ags_machine_envelope_pattern.png
* docs/images/ags-toolbar.png
* docs/images/ags_midi_dialog.png
* docs/images/ags_machine_properties-output.png
* docs/images/ags_syncsynth.png
* docs/images/ags_generic_preferences.png
* docs/images/ags_panel.png
* docs/images/ags_audio_preferences.png
* docs/images/ags_synth.png
* docs/images/ags_position_notation_cursor_dialog.png
* docs/images/ags_position_automation_cursor_dialog.png

Following listings are used by the documentation and hence are distributed under the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation.

* docs/listings/effects_echo_channel.c
* docs/listings/file_property.c
* docs/listings/effects_echo_audio.c
* docs/listings/linking_prerequisites.c
* docs/listings/linking_safe.c
* docs/listings/effects_echo_audio_run.c
* docs/listings/effects_recall_container.c
* docs/listings/file_write.c
* docs/listings/add_pattern.c
* docs/listings/linking_unsafe.c
* docs/listings/thread_application_context.c
* docs/listings/effects_echo_channel_run.c
* docs/listings/audio.c
* docs/listings/pull_thread.c
* docs/listings/application_mutex.c
* docs/listings/audio_application_context.c
* docs/listings/recycling.c
* docs/listings/config.c
* docs/listings/pcm_info.c
* docs/listings/start_thread.c
* docs/listings/file_read.c
* docs/listings/complete_example.c

The Advanced Gtk+ Sequencer logo is used by the final binary hence it is applied under the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

* gsequencer.share/images/ags.png

As well the desktop file:

* gsequencer.desktop.in

The generated symbol files have the very same license as their origin:

* libags.sym (GPLv3+ and AGPLv3+)
* libags-audio.sym (GPLv3+)
* libags-gui.sym (GPLv3+)

And so for the glib-object marshallers file:

* ags/object/ags_marshallers.list

Third-party files of gtk-doc TODO:JK: add missing information, copyright provided by http://www.gnome.org:

* docs/reference/libags/Makefile.am
* docs/reference/libags/git.mk
* docs/reference/libags/gtk-doc.make
* docs/reference/libags-audio/Makefile.am
* docs/reference/libags-audio/git.mk
* docs/reference/libags-audio/gtk-doc.make
* docs/reference/libags-gui/Makefile.am
* docs/reference/libags-gui/git.mk
* docs/reference/libags-gui/gtk-doc.make
* docs/reference/libgsequencer/Makefile.am
* docs/reference/libgsequencer/git.mk
* docs/reference/libgsequencer/gtk-doc.make
* gtk-doc.make
* m4/gtk-doc.m4

Third-party files of autotools permissive licensed see specific files for warranty disclaimer and a notice preservation requirement, copyright provided by http://www.fsf.org:

* compile
* compile.guess
* config.h.in
* config.rpath
* config.sub
* configure
* depcomp
* INSTALL
* install-sh
* ltmain.sh
* Makefile.in
* missing
* test-driver

Derived files of gsequencer licensed under the terms of GNU GPLv3+, copyright provided by http://www.nongnu.org/gsequencer:

* po/gsequencer.pot

Third-party files of Ulrich Drepper (gettext) without any copyrightable content:

* po/ChangeLog
* po/POTFILES.in
* po/stamp-po

Third-party files of Ulrich Drepper (gettext) permissive licensed see specific files for warranty disclaimer and a notice preservation requirement, copyright provided by http://www.fsf.org:

* po/Makefile.in.in
* po/remove-potcdate.sin

Third-party files of Ulrich Drepper (gettext) free software licensed, copyright provided by http://www.fsf.org:

* po/Makevars.template
* po/Makevars
* po/Rules-quot

Third-party files of Ulrich Drepper (gettext) all-permissive licensed, copyright provided by http://www.fsf.org:

* po/quot.sed
* po/boldquot.sed
* po/en@quot.header
* po/en@boldquot.header
* po/insert-header.sin

Generated files by glib-genmarshal licensed under the terms of GNU LGPLv2.1+, copyright provided by http://www.gnome.org:

ags/object/ags_marshal.c
ags/object/ags_marshal.h

Third-party files of Filipe Coelho ISC licensed please consider copyright notice, copyright provided by http://www.falktx.com:

lv2/lv2plug.in/ns/lv2ext/lv2_programs.h

Third-party files of David Robillard licensed under the terms of GNU GPLv3+, copyright provided by http://www.drobilla.net:

lv2.lib/mda/EPiano-presets.ttl