I just built a live DVD for the use with Advanced Gtk+ Sequencer there some other projects included as well. Further it is shipped with drum sounds of hydrogen and Soundfont2 files of fluidsynth.
http://sourceforge.net/projects/ags/files/minos-one.iso
The system is x86_64 using realtime patch for linux-3.14.25-rt22. WindowMaker is default window manager with openbox as alternative ...... read more
There's at least one more release planed to target crashes of Advanced Gtk+ Sequencer.
There currently known problems in ags_devout.c
Additionally run() is used instead of run_adding() of LadspaDescriptor.
Further opening files during playback crashes the engine, too.
Any patches against 0.4.2-19 are appreciated.
Advanced Gtk+ Sequencer is planed to be split into different libraries. I'm promising me more reliability with this change.
Due the fact of crashing the entire system, approximately after 30 minutes, this is considered to be critical. This crash is believed to have its root cause of exhausting memory.
The documentation was just updated and is available either as PDF or Docbook XML. You may also want to take a look at the wiki.
Fixed some formating, updated images and completed some content.
... this is the location used to safe its preferences or autosave files.
The current memory leaks probably has to do with AgsThreadPool and related AgsReturnable thread. Since AgsTaskThread makes extensive use of it won't be easy to get a satisfiable solution at the time.
We could reuse threads :(
... Seems to May be a problem with Gtk+-2.0
Inspecting code thus to find memory leaks.
Got it :)
The AgsSeekable interface needs to be implemented.
Its signal ::seek should be called on the following actions of AgsNavigation:
Further notes for AgsEditor and related. The scrolling is really anoying.
No need for this interface wheter notation or pattern both depend on ags-count-beats recall.
And itselves uses AgsTactable interface which shall suit.
Last days just invested some time in doing further documentation.
Please visit Advanced Gtk+ Sequencer API.
There is still a need doing more work on documenting
Me just successfully generated a complete API reference. The problem was of a missing parameter passing to gtkdoc-mkdb
.
Here the basic steps to generate API:
cd doc/reference/ags
gtkdoc-scan --module=ags --source-dir=../../../src/ags --rebuild-sections --rebuild-types
cd ../../../
export CFLAGS=`pkg-config --cflags glib-2.0 gtk+-2.0 libxml-2.0 libinstpatch-1.0 ao alsa uuid`
export CFLAGS="-I./src -I/usr/include $CFLAGS"
export LDFLAGS=`pkg-config --libs glib-2.0 gtk+-2.0 libxml-2.0 libinstpatch-1.0 ao alsa uuid`
files=`ls *.o`
export LDFLAGS="$files -L./ $LDFLAGS"
gtkdoc-scangobj --module=ags --output-dir=doc/reference/ags
cd doc/reference/ags
gtkdoc-mkdb --source-dir=../../../src/ags --module=ags --xml-mode --output-format=xml
gtkdoc-mkhtml ags ags-docs.xml
Lot's of thing's were clarified and modularized of the API. From code reduction to bugfixes and further functionality added. I just want to say it works great.
It's a kind of WYMIWYG (What You Mean Is What You Get) no magic has some caveates. Like latency of physics isn't clarified for now. May be some initial magic is needed and if you know Advanced Gtk+ Sequencer you know it's possible.
It's strict layering and distinction of GUI, audio and thread interoperationality and meshing in a object orientated manner is one of the greatest advantages.... read more
Since export to WAV works great I really know there's only one active output channel. Don't forget to mention the thread tree was fixed once more.
And the best of all is at all available in ags-0.4.2-rc4
Since I'm doing gtk+ for a very long time there some common problems like not freeing GList retrieved by gtk_container_get_children(). Next commit(s) is going to fix it.
Further some strings may not be freed correctly. AgsFile uses libxml2 and it's not evident if attribute values are freed correctly. To target string memory leaks would be next big thing.
API of Advanced Gtk+ Sequencer may adopt the behaviour of gtk_container_get_children() for retrival of any child objects.
This looks really mad:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23442 joel 20 0 255g 445m 12m S 384,3 5,7 2:46.58 ags
...
This looks a bit better
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
26151 joel 20 0 2473m 1,7g 11m S 331,5 22,5 10:25.62 ags
The time looks incorrect. Is mtrace an enthusiast and what's the difference to trace.log?... read more
In the next hours you get release candidate #1 of Advanced Gtk+ Sequencer. It fixes most of the beta versions faults. There still open issues like thread safety and if plugins are loaded correctly or crash ags
.
There comes further improvements like unstable WAV export, thread safe volume meter or fixes to XML input/output.
Critical fixes to replacing deprecated note edit widgets and AgsDial.
Further some community work was done like updating wiki pages and API reference, as well the screenshorts.
Just updated API reference on http://ags.sourceforge.net/api/ags/index.html and created some new tickets in view of next release.
Advanced Gtk+ Sequencer 0.4.2 comes soon and it's a great release.
You'll benefit of following improvements:
Recent subversion tree has fixed XML in-/output and modified DTD. Tactrate was completely removed and is implied. Further tact is the smallest note size and unit in position notation and setting loops.
Currently I'm working on LADSPA support of comming release 0.4.2
You may add or remove LADSPA effects by using machine properties editor by accessing context menu. It features as well a LADSPA browser. Within you may choose your prefered widget as port control. Currently supported are:
Future releases may bring more advantages of port controls.
Subversion tree has some fixes related to reading files. It's revision number is 1844.
to be continued ...
Tomorrow is date for oncomming release 0.4.1 and comes mainly with fixes against 0.4.0. It brings the following advantages:
There still some issues won't be fixed but is certainly a great step towards usability.
AGS_DEVOUT_DEFAULT_SCALE was introduced to limit BPM in ags_devout.h
#define AGS_DEVOUT_DEFAULT_SCALE (((AGS_DEVOUT_DEFAULT_BPM / 60.0) * (AGS_DEVOUT_DEFAULT_BPM / 60.0)) / ((60.0 / AGS_DEVOUT_DEFAULT_BPM) * (60.0 / AGS_DEVOUT_DEFAULT_BPM)))
120 BPM equals 2 beats per second for now. Previously you had rather 16 beats per 2 seconds. There will be a need for further work on Advanced Gtk+ Sequencer to enhance its reliability.
BPM is probably wrong calculated since tact isn't used anymore.
Fixes are following.
According to wolframalpha.com following equations have some interesting values:
solve (i * 943 * (-1) * z)/ x - 944 * z + 440y
solve (i * 943 * (-1) * z)/ x - 944 * z + 1/45 * 440y
But what I really want to do is the optimal output rate for accoustics. It is between 943 and 944.
Further universe oscillates at 52 Hz or something alike.
Tact will just disappear as control because it makes no sense to have these kind of segmentation.
Affected are the sequencers and notation editor.
This may be incompatible to prior versions.
I experienced a good flow while playing drum sequencer. Here are now the correct frequencies:
Thread | Frequency |
---|---|
Audio Loop | 1000 Hz |
Devout Thread | 47 Hz |
Gui Thread | 250 Hz |
Task Thread | 1000 Hz |
After some probes I recognized that someone told me prior to use system clock as iteration counts per second. System clock usually opperates on 250 Hz.
Devout thread is planed to use at 22 Hz because of good experience with a buffer size of 940 frames.
Thread | Frequency |
---|---|
Audio Loop | 1000 Hz |
Devout Thread | 22 Hz |
Gui Thread | 250 Hz |
Task Thread | 1000 Hz... read more |