1Advanced Gtk+ Sequencer
2====
3
4Copyright (C) 2005-2021 Joël Krähemann
5
6Permission is granted to copy, distribute and/or modify this document
7under the terms of the GNU Free Documentation License, Version 1.3
8or any later version published by the Free Software Foundation;
9with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
10A copy of the license is included in the section entitled "GNU
11Free Documentation License".
12
13Overview of Changes in AGS 3.8.0
14================================
15
16* Implemented additional volume controls of AgsMatrix, AgsSyncsynth, AgsFMSyncsynth,
17  AgsFFPlayer and AgsPitchSampler.
18* Implemented aliase of AgsFFPlayer and AgsPitchSampler with 4 controls.
19* new utility functions to computer linear interpolation.
20* new utility functions to frequency aliase.
21* new utility functions to phase shift.
22* new ags-fx-two-pass-aliase effect processor.
23
24Overview of Changes in AGS 3.6.0
25================================
26
27* Implemented AgsGstreamerFile capable of reading or writing common media file
28  types like MP3, MP4, MKV and WEBM.
29* Started to implement get type functions of enum values.
30
31Overview of Changes in AGS 3.4.0
32================================
33
34* Implemented AgsSF2SynthGenerator and AgsSFZSynthGenerator allowing you
35  to pitch missing samples.
36* Extended functionality of AgsFFPlayer and AgsPitchSampler to use SF2 and SFZ
37  synth generators.
38* Refactored ags_filter_util.c.
39
40Overview of Changes in AGS 3.3.0
41================================
42
43* Implemented new ags-fx engine, replaced all existing recalls with fx counterpart.
44* Implemented staging program of AgsAudioLoop, AgsAudioThread and AgsChannelThread.
45
46Overview of Changes in AGS 3.0.0
47================================
48
49* Implemented AgsAudiorec's fast export.
50* Implemented support for GObject-Introspection. Many gtk-doc annotations
51  fixed and extended symbol descriptions.
52* Refactored AgsComplex and AgsUUID in order to work with introspection. The
53  typedef doesn't use array types, anymore. But derived from a struct, now.
54* Implemented the AgsServer API dropped xmlrpc-c in favor of Libsoup2.4. Session
55  support using HTTP cookies.
56* Yay, AGS-OSC-OVER-XMLRPC has arrived. You can send your OSC packets now over
57  HTTP based on AgsServer supporting authentication and responses arrive on a
58  Websocket.
59* Migrated to Gtk+-3.0, dropped builtin theme. Minimal CSS file enabling stepper
60  for editors.
61* Migrated to GThread API, this was a quiet big refactoring. AgsThread core functions
62  have been rewritten, mainly AgsThread::clock() and AgsThread::run().
63  Removed exotic functions like lock, unlock, wait and signal the tree.
64* Major API changes, dropped many old functions like writing the "Wall of XML" file.
65* Supporting LLVM's clang compiler for now. Replaced all nested functions.
66* Fixed some potential SIGSEGVs.
67* Added online help browser along the WebKitGtk dependency.
68* Added basic key accelerators like: Ctrl-o, Ctrl-s, Ctrl-q and Ctrl-h. To open or
69  save files, quit the application or open online help browser.
70* Added better resolution to AgsSpectrometer.
71* Improved MIDI import/export.
72
73Overview of Changes in AGS 2.3.0
74================================
75
76* Improved AgsSynthGenerator to support impulse and FM LFO oscillator.
77* Implemented new impulse oscillator in ags_synth_util.c
78* Implemented ags_fm_synth_util.c to do frequency modulation oscillators.
79  Used by AgsSynthGenerator.
80* Implemented ags_lfo_synth_util.c to do amplification using LFO oscillator.
81* Added new machines AgsFMSynth, AgsFMSyncsynth and AgsPitchSampler.
82* Added support for complex data type.
83
84Overview of Changes in AGS 2.2.39
85================================
86
87* Added AgsComplex data type support in ags_audio_buffer_util.h and completed
88  Float32 support.
89
90Overview of Changes in AGS 2.2.38
91================================
92
93* Completed reworking unrolled loops to use vectorized builtin functions in
94  ags_audio_buffer_util.c. Improved the vector and audio buffer access using
95  incrementing indices.
96
97Overview of Changes in AGS 2.2.0
98================================
99
100* Implemented OSC export controller. Allowing you to trigger AgsExportOutput
101  task by the OSC server.
102* Reworked parsing LV2 RDF Turtles. Providing a better conforming
103  interpretation of prefixes and faster XPath expressions.
104* Improved copyright and licenses notices for many files.
105
106Overview of Changes in AGS 2.1.0
107================================
108
109* Implemented OSC server with different server paths. It has a front
110  controller passing the requests to the matching context path of a
111  controller.
112* There is a new OSC buffer util and util file. Further you may use the
113  AgsOscBuilder or AgsOscParser to interact with the OSC content format.
114* Configuration in place is done by AgsApplySoundConfig task.
115
116Overview of Changes in AGS 2.0.0
117================================
118
119* Implemented wave form editor with basic editing capabilities. Like copy &
120  paste, cursor positioning and editing dialogs.
121* New machines available AgsEqualizer10, AgsSpectrometer and AgsAudiorec.
122  You can now have a built-in 10 band equalizer, a spectrometer visualizing
123  the frequency using FFTW3 library and the ability to edit or record audio
124  data.
125* Refactored libags*.so by providing many API improvements. Grained control
126  of sound file resources. New lock strategy and many objects are thread-safe,
127  now.
128* Implemented AgsWave and AgsBuffer to contain large amount of audio data.
129* Added AgsMidi and AgsTrack skelleton.
130
131Overview of Changes in AGS 1.3.0
132================================
133
134* Supporting 4 different paste modes by allowing the user to activate
135  do 2 different check menu tool buttons. Switches are match audio channel
136  or line as well no duplicates.
137* New widget AgsScale available. It visualizes a control's possible value.
138  It is accessible, implements AtkValue and AtkAction interface to control
139  the ::value-changed signal or retrieving the range.
140* New widgets AgsScaleBox, AgsVScaleBox and AgsHScaleBox available. It is
141  responsible to layout your AgsScale. It inherits of GtkBox and overrides
142  GtkWidget::size-allocate and GtkWidget::size-request.
143* New widget AgsScrolledScaleBox available. It shall contain a AgsScaleBox
144  and make it scrollable.
145* Refactored automation editor by removing AgsAutomationArea and using
146  AgsAutomationEdit instead. The editor supports segmented automation.
147
148Overview of Changes in AGS 1.2.7
149================================
150
151* Completed migrating to asynchronous communication from libags*.so.1 to
152  libgsequencer.so.
153* Refactored large parts of ags_channel.c to remove redundant code and
154  make all functions thread-safe. Fixed some regression related to linking.
155
156Overview of Changes in AGS 1.2.0
157================================
158
159* Audio input support for all common backends like ALSA, OSS4, JACK and
160  Pulseaudio.
161* New widget AgsPiano available. It is an accessible widget which draws
162  a piano. It has events like ::key-pressed, ::key-released and ::key-clicked.
163* New widget AgsScrolledPiano available. It contains an AgsPiano and addtional
164  scrolling capabilities.
165* New widget AgsNotebook available. It is has been moved from libgsequencer to
166  libags-gui. It was refactored to be generic.
167* Refactored notation editor by replacing AgsEditor with AgsNotationEditor.
168  Notes have an alpha channel now. The editor supports segmented notation.
169
170Overview of Changes in AGS 1.0.0
171================================
172
173* Sticky controls allows you to adjust multiple controls at once.
174* Various bug-fixes especially improved Lv2ui syncing controls.
175
176Overview of Changes in AGS 1.0.0-beta
177================================
178
179* Experimental XMLRPC-C service prototype.
180
181Overview of Changes in AGS 0.9.29
182================================
183
184* New automation editor dialogs to select or ramp acceleration.
185* New editor dialog to select notes.
186
187Overview of Changes in AGS 0.9.28
188================================
189
190* all functional tests pass now again, since  gtk_main() integration.
191
192Overview of Changes in AGS 0.9.26
193================================
194
195* full gtk_main() support you might want to run it by calling
196  ags_gui_thread_do_run().
197
198Overview of Changes in AGS 0.9.24
199================================
200
201* Support for LADSPA_PATH, DSSI_PATH and LV2_PATH environment variables
202* Core-audio audio unit backend in order to port the application to
203  Apple OS X.
204
205Overview of Changes in AGS 0.9.10
206================================
207
208* Pulseaudio sink support. AgsPulseDevout has got a bigger ring-buffer
209  to avoid caching and allow slower write functions.
210
211Overview of Changes in AGS 0.9.8
212================================
213
214* You may now specify base note of AgsSynth or AgsSyncsynth.
215
216Overview of Changes in AGS 0.9.7
217================================
218
219* Implemented new functions to handle LV2_Event_Buffer. Note the old
220  functions to do so are deprecated and are incompatible to the
221  newer API.
222* AgsSyncsynth is a new AgsMachine object, allowing you to edit synth
223  notation.
224* Smaller refactoring of AgsApplySynth to use new AgsSynthGenerator
225  API.
226
227Overview of Changes in AGS 0.9.0
228================================
229
230* Using destroy worker for AgsRecall related unref resulting in much
231  better performance.
232* Many new unit tests and improved code by detecting errors.
233* Extended chapter 3 about concurrency of developer's book.
234
235Overview of Changes in AGS 0.8.9
236================================
237
238* Lots of properties applied during AgsTask sub-type instantiation.
239  Thus implemented missing ::finalize() and ::dispose().
240
241Overview of Changes in AGS 0.8.8
242================================
243
244* Additional editing tools available. After a Standard MIDI File import
245  you might want to move or crop notes. There are 2 dialogs available of
246  the toolbar allowing you to do so.
247
248Overview of Changes in AGS 0.8.5
249================================
250
251* Envelope is ready now for use. Featuring envelope editor with presets,
252  pattern presets and information tab.
253* Envelope dialog available trough machine's context menu. Supported by
254  AgsDrum, AgsMatrix, AgsFFPlayer, AgsDssiBridge and AgsLv2Bridge.
255* Fixed missing persistence of AgsLiveDssiBridge and AgsLiveLv2Bridge
256
257Overview of Changes in AGS 0.8.2
258================================
259
260* Added gettext support
261
262Overview of Changes in AGS 0.8.0
263================================
264
265* Added MIDI import wizard
266* Added MIDI export wizard
267
268Overview of Changes in AGS 0.7.0
269================================
270
271* provide GSequencer functionality as libraries
272