Menu

AGS - Advanced Gtk+ Sequencer / Blog: Recent posts

Doing some wiki for developers

Due to the need of AgsGuiTaskThread namely for GUI feedback especially interfacing AgsAudioLoop with AgsGuiThread, I've introduced AgsGuiTaskThread ...

soon, read more in the wiki

...

There were many crashes by doing some concurrent memory access without any mutex.

Further informations:

Posted by Joël Krähemann 2014-05-27 Labels: wiki doc thread

rc4 is out

You may experience

  • auto scrolling
  • incrementing tact
  • time display
  • playing Soundfont2 in note edit
  • loop control in note edit
Posted by Joël Krähemann 2014-05-22 Labels: rc4 soundfont2 loop control time

Advanced Gtk+ Sequencer features Soundfont2

Revision 1707 has for now support of Soundfont2 and can be played on the piano roll. That's a big step in usability towards release 0.4.0.

Release early and often is kept in mind of 0.4.0. May be it comes a bit earlier than the second deadline for 2014/31/05.

Posted by Joël Krähemann 2014-05-19 Labels: soundfont2 piano roll

Thanks to Element Green

This man could explain me Soundfont2 in one sentence. The mailing list response was really helpful.

...

Keep in mind that the toplevel objects in a SoundFont are called presets. Presets contain zones which link to instruments and instruments contain zones which link to samples.

Posted by Joël Krähemann 2014-05-19

thread tree needs to be fixed

Deadlocks along the way and the most logic way is to introduce AgsThreadHangcheck to target the problem in a peformant and intuitive way.

May be the need for RX/TX gate control? By having validation of the gates state. And it could intercept in case.

Posted by Joël Krähemann 2014-05-18 Labels: thread hangcheck

memory leaks

Probably plenty of them in Advanced Gtk+ Sequencer. For today I gonna fix just the worst. Audio data consumes most memory ...

String properties and filenames probably affected, too. During runtime duplicated AgsRecall may be finalized, too.

Posted by Joël Krähemann 2014-05-17 Labels: memory leaks runtime

found nice macro in libinstpatch

The following macro clarifies much:

#define ipatch_sf2_get_samples(sfont) \
    ipatch_container_get_children (IPATCH_CONTAINER (sfont), \
                                   IPATCH_TYPE_SF2_SAMPLE)

Is getting samples so easy?

Posted by Joël Krähemann 2014-05-17

Pattern & notation reading/writing XML

Latest subversion VCS includes a few fixes related to reading pattern or notation from XML. So we could say saving/opening files is fully implemented for version 0.4.0.

It works great!

Next issue to solve is playing soundfonts by notation. Additionally some memory leaks need to be fixed ...

Next release announcement seems not so far away.

Only 2 weeks towards release

Posted by Joël Krähemann 2014-05-14 Labels: 0.4.0 XML announcement

Implemented AgsPlugin and refactored AgsSynth

Implemented all AgsPlugin related GUI file IO. These means your machines state should be restored when opening appropriate file.

Further AgsSynth was refactored. The unused ampliefier controls aren't there anymore. Additionally introduced AgsSynthInputPad and AgsSynthInputLine.

ATTENTION: the reading of files is still not bug free so you shouldn't rely on it.

Posted by Joël Krähemann 2014-05-04

State of reimplemented XML IO

Saving and parsing files works great. Last steps include implementing AgsPlugin related objects to do its job.

New deadline of next release is within 2 days. If nothings goes wrong there could be enough time to implement amplifier and echo effects.

There still some issues relating threading. Sometimes the thread tree hangs up.

Posted by Joël Krähemann 2014-04-14 Labels: release 0.4.0 XML

rc2 is here

As I'm writing this post there already two new important fixes. Race condition and missing machines after reading file.

Reading file is really slow, for now.

WARNING: still having problems saving files cause of broken references.

Posted by Joël Krähemann 2014-04-11

ags-recall-container and audio/channel info missing in XML file

WARNING: ags-recall-container and audio/channel info missing in XML file.

This isn't really bad but Advanced Gtk+ Sequencer version 0.4.0 will have a stronger semantic.

Posted by Joël Krähemann 2014-04-10


To implement AgsEditor specified XML file IO

Advanced Gtk+ Sequencer has a need for enhanced get/set abilities in regard of first stable pre release 0.4.0. The modularity of ags is one of its main goals.

Further there should be a fix for high resolution buffers. ags_devout.c and ags_audio_loop.c need to be fixed.

It follows the wanted changes to ags_file_gui.c as DTD:

<!ELEMENT ags-editor (ags-toolbar, ags-editor-pane, ags-notebook)>
<!ATTLIST ags-editor
          id               ID         #REQUIRED
          version          CDATA      #REQUIRED
          build-id         CDATA      #REQUIRED
          flags            PCDATA     #REQUIRED
          >
<!ELEMENT ags-editor-pane (IDREF*)>
<!ATTLIST ags-editor-pane
          id               ID         #REQUIRED
          >
<!ELEMENT ags-toolbar EMPTY>
<!ATTLIST ags-toolbar
          id               ID         #REQUIRED
          edit-mode        CDATA      "edit"
          tic              CDATA      "1/1"
          zoom             CDATA      "1:4"
          mode             CDATA      "multi-channel"
          >
<!ELEMENT ags-notebook (ags-notebook-tab-list)>
<!ATTLIST ags-notebook
          id               ID         #REQUIRED
          >
<!ELEMENT ags-notebook-tab-list (ags-notebook-tab*)>
<!ATTLIST ags-notebook-tab-list
          id               ID         #REQUIRED
          >
<!ELEMENT ags-notebook-tab EMPTY>
<!ATTLIST ags-notebook-tab
          id               ID         #REQUIRED
          notation         IDREF      #IMPLIED
          >
Posted by Joël Krähemann 2014-04-07

update/refactoring AgsEditor in front of 0.4.0

ags-buffer recall implemented in recent subversion tree. Additionaly extended AgsFFPlayer to play notation.

AgsEditor is not grained. Therefore an important update to make it more gained is comming soon.

  • move GtkDrawingArea of AgsEditor to AgsNoteEdit
  • implement saving editor related settings

additional goals

  • test AgsPlayNotationAudioRun
Posted by Joël Krähemann 2014-04-05

announcement: 0.4.0-rc1 released

  • To link running lines is working, again.
  • corrected tact jiffie
  • fixed race condition
  • thread tree doesn't crash for a while
Posted by Joël Krähemann 2014-04-02

Tact jiffie not changed in beta release

Due to some problems with thread syncing I changed AGS_DEVOUT_DEFAULT_TACT_JIFFIE. It was just reverted by now.

That means your sound was played to slow by beta release.

Posted by Joël Krähemann 2014-03-31

runs now with RT priority 99

Hi, it works!

Posted by Joël Krähemann 2014-03-31

Warning freezed GNU/Linux

recent Realtime Kernel freezed with Advanced Gtk+ Sequencer.

Posted by Joël Krähemann 2014-03-29

0.4.0-beta released

0.4.0-beta was released early in hope to get feedbacks. The API shouldn't change anymore. Further the functionality of 0.4.0 is here but a lot of things are broken due some refactoring.

So as next especially fixes to the beta code base will follow.

  • fix reseting links of running channels
  • fix soundfont2 support
  • fix painting of GUI
  • fix context menu actions of AgsMachine inherited objects
  • fix preferences dialog
  • probably fix AgsNotation
  • enhance editor
  • implement seeking... read more
Posted by Joël Krähemann 2014-03-29 Labels: release 0.4.0

Kernel panic

The AgsThreadPool object is still unstable.

Posted by Joël Krähemann 2014-03-24 Labels: thread pool

using AgsThreadPool by GUI feedback

The GUI feedback slows down the entire application and is therefore a bottle-neck. The thread pool is believed to give some performance boost.

The situation for now is that every tic of AgsDevout a task is executed. This task creates everytime a new thread. It's well known that creating threads is computing expensive work. That's why the task code should use the thread pool instead of instantiating every tic a new thread.... read more

Posted by Joël Krähemann 2014-03-23 Labels: performance thread pool

AgsRunOrder deprecated

With AgsRecyclingContainer the run order is reproducible that is why AgsRunOrder is deprecated and therefore removed.

ags_recycling_container_find_child(recycling_container->parent,
                                   recycling_container);
Posted by Joël Krähemann 2014-03-19

Happy playing drum ...

is the commit's message namely 1507 where I had to recognize that refactoring is really working :)

Posted by Joël Krähemann 2014-03-19

over 100 commits ago ...

Did you recognize that ags uses GtkExpander instead of GtkOptionMenu to layout AgsLine?

The new screenshot called ags-0_4_0-beta.png shows it. And will be the strategy for representing pads in Advanced Gtk+ Sequencer 0.4.0

I'll do some fixes of known issues and then will the first Beta released.

Soon come ...

Posted by Joël Krähemann 2014-03-16 Labels: expander line pad
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.