newsAdvanced Gtk+ Sequencer - News

 
 

Heavy cleaned code and critical bug-fix in GSequencer v0.7.73

Item posted by Joël Krähemann <jkraehemann> on Wed 28 Sep 2016 03:18:33 AM UTC.

About 4 days spending on compiler warnings and fixing them. So we could say I was really busy. Further recently I figured out a critical bug in ags_audio.c not cleaning up properly after shrinking lines. This was annoying since AgsFFPlayer caused to crash after selecting a Soundfont2 having less audio pads. During the clean there were detected some other issues not very important.

Refactored loading configuration from AgsSimpleFile

I have reduced some duplicated code as reading project files using the simple format. Everything is now setup by ags_xorg_application_context.c and not by ags_simple_file.c anymore. First the configuration gets extracted by a XPath expression and the loaded additionally to the default configuration.

Although the file is opened twice the change is appreciated very much.

Heavy code clean-up

4 days from morning till late evening working on fixing mismatched pointer types was horrible. But it was a chance to revisit the code and look for the right. There was an issue with AgsNotationEdit and AgsPatternEdit accessing a GList not correctly. Rather abusing the list as an instance of a certain type.

Yeah, over 30.000 lines of compiler output was really heavy. Now, you just get warnings of strings containing terminating null-byte or discarding qualifier. That's ok since everything in GSequencer is modular.

Exporting symbols lead me to decide to do the clean-up. As recognizing there are wrong named functions in the header files. How ever it's fixed now and should go straight forward yet.

Improved JACK synchronization and enabled multiple sinks

Blocking JACK callback on entry and signaling AgsJackDevout if done audio processing causes JACK to integrated better. That's why the Advanced Gtk+ Sequencer won't proceed processing until JACK is done.

AgsPanel got more useful there is now a connection editor available from machines context menu. Specify the wished mapping of AgsPanels line to the available soundcards. It's not very well tested but basically you can do more advanced setups using multiple soundcards.

OSS4 output is supported again 10 years ago dropped. The configure script can customize the build by --disable-alsa or --disable-oss flag. Both are enabled by default.

JACK Audio Connection Kit output is defaulted for now. Your configuration file can now contain numbered soundcards specifying each a possible device.

[soundcard-0]
backend=jack
samplerate=48000
buffer-size=512
pcm-channels=2
device=ags-devout-0
format=16

Back to the top

Powered by Savane 3.14-8aba.
Corresponding source code