ensonic is currently certified at Master level.

Name: Stefan Kost
Member since: 2004-02-19 19:35:53
Last Login: 2009-06-10 19:50:20

FOAF RDF Share This

Homepage: http://www.sonicpulse.de

Notes:
Here are the other homepages:
www.buzztard.org - homepage of what will be a free clone of the buzz music composer (based on gstreamer and a lot of gnome)
www.eksor.de - homepage of my music band (all songs for free download)

Projects

Recent blog entries by ensonic

Syndication: RSS 2.0

10 Jun 2009 »

buzztard

May passed quickly. I was testing a lot and as usual this brings bugs to day- light. I noticed one particular problem, that I still have to solve. Buzztard songs are actually zip file containing the songs.XML file and references files like samples. When the song is save the externals are copied from its original location into the zip. First there is a chance that the file becomes unavailable between loading it and saving the song (e.g. if the files where loaded some a sample CD) and then of course if those songs are given to someone then the zip is all there is. I see two ways to handle it - a) if the file is not available, save the raw-pcm as a wave-file, b) when loading new files samples, copy these somewhere and keep the file open and when loading a song, copy this somewhere and keep it open (somewhere = local file system). One thing I already have implemented is save saving, that is rename the old file, save and in the case of failure roll back.

There were also a couple of bugfixes in the UI. I had a long session to fix object destruction and detaching related signal handlers - too bad that the limitations in g_signal_connect_object() still render it pretty useless.

In the beginning of the month I continued with the work on the buzzmachines module. I rewrote one effect from scratch and its pretty compatible. I also added more presets and demo-songs.

While testing more buzz songs I realized two long standing issues. On the buzz song loader I got one detail wrong from the reverse-engineering - I was loading polyphonic pattern with voices and time swapped. That was easy to fix and make many songs sound proper. I made a few other compatibility fixes and improvements on the song load too. The other problem was actually much more work - the buzzmachine emulation had a big flaw. When I instantiated a plugin I was loading the dll/so once for the class and created the machine instance at the same time. The emulation API only had a init(). That means for multiple instances I was "reusing" the class wide instance. It worked surprisingly well :) Now I did a big refactoring there. In class init the dll/so is loaded and for each gobject instance I create a instance of the wrapped machine.

Finally I got around implementing one feature in the GStreamer side. There are a couple of wrapper plugins in gstreamer that act as a bridge between different plugin APIs. The way this was done had quite a drawback. Whenever the plugin was loaded, it was re-registering all the element types. In order to do that it needed plugin specific metadata. So it was loading each of the bridged plugins and querying the features. It needed two patches to get that changed. Now gstreamer does not ref each element class of a loaded plugin during loading and the registry can cache plugin specific metadata. What does it mean practically? A typical buzz song now loads in a quarter of the time.

10 May 2009 »

buzztard

Lots of testing and small improvements again. Besides the usual valgind sessions I tried the LLVM/Clang Static Analyzer. There are some annoying warnings, but lots of correct one too. Most of them were nothing major, but this is a good tool to follow. I also got more feedback from the NetBSD packages and worked on my Maemo port. This resulted in a couple of portability fixes and dependency cleanups.

With the testing came also many small but nice fixes and improvements. E.g. stereo wavetable support was incomplete and is now working fine. The pattern editor got many improvements like entering wave-table numbers, note-off support. Finally "play notes" is fully done. Latency is a bit better also. With latest pulsesink in gst-plugins-good git its actually quite okay (thanks wtay!).

The buzzmachines module has more machines ported, I have started to add demo songs and preset files. This needed some update in the gstreamer plugin too. Under windows the plugins, presets and help is all crammed into one dir. I have split it to have docs and presets under share and not in lib.

Thanks for help on gobject-introspection irc channel, bindings start to work. I have a javascript example that plays songs. Major obstacle was to get the js syntax right. The python sample does still not work. I hope it will after this summer of code.

I also reviewed and extended the user-docs. This version finally becomes usable :) Will do the strings freeze and pre-release tarballs this month.

8 Apr 2009 »

buzztard

We're heading for a 0.5 release! Most planned features are done and thus its time for testing. I've added some more unit tests. Especially for the dynamic editing, which now finally seems to work quite fine.

I added more keyboard shortcuts to support the workflow people might know from buzz. There is one to start playback from cursor-position and several for cycling through the comboboxes in pattern editor. I started to work on the play-notes functionality in pattern editor too. One can play notes while editing if song is playing already. Need to play the song in a idle-loop otherwise. Also need to figure the horrible latency I get.

One feature that was missing compared to buzz, is that buzz also shows parameters (volume, panorama) of incoming connections in the parameter view. We have this now too.

I also refactored some code in the machines and made monitoring more flexible. As a result the level-meters in the toolbar are now post-gain. Means if you change the volume you see the level-changing accordingly.

Last change of the month is some eye candy. The icons in the machine view don't become blurry when zooming anymore. I also added some simple effects to show the state (desaturizing them or making them half transparent).

LJ has part two of the buzztard article</b> online. Its an interview and tells you all you never wanted to know a bout me and the project.

8 Mar 2009 »

buzztard

Yay. LJ has a nice online article about buzztard. While helping the author to get the code up & running, I mad several improvments to the configure stuff to make things more obvious, especially when installing not to /usr. I also updated the instructions on the wiki and waffel updated our jhbuild module- set.

The GStreamer buzzmachine plugin now supports an index.txt file in the search path. This is used in buzz to categorize machines. The wrapper plugin adds the categories to the GStreamer classification filed and buzztard-edit uses it to build a structured menu. This helps makes the menu a bit more useful again. Same stuff needed for ladspa (via rdf).

The whole machine graph handling is now getting into 2nd phase. I can already disconnect stuff while playing without breaking things. Adding sources still has issues :/

I also made a series of UI experiemnts. I now have some code for doing properly scaled svgs on gnome-canvas. Sofar the machine icons became blurry when zooming. This was quite noticable in the screenshots of the article. Speaking of those I am suprised that even today, browsers only do nearest neighbour scaling. As graphics is fun, I also hacked some pixbuf filter effect, so that I can get icon variants for selecting and disabling. This will hopefully be integrated in next month. Finally I replaced the VU meter code with the cairo variant from gbo #547490 and made some fixes/improvements.

24 Feb 2009 »

make me happy again

If you are an ubuntu developer, please dedicate some minutes to this bug report. Not having a working oprofile is quite bad, especially if it looks like all that is needed is to rebuild the package against the right kernel. Thanks, a lot!

89 older entries...

 

ensonic certified others as follows:

  • ensonic certified ensonic as Journeyer
  • ensonic certified mathrick as Journeyer
  • ensonic certified Uraeus as Master
  • ensonic certified rbultje as Journeyer
  • ensonic certified ds as Master
  • ensonic certified thomasvs as Master
  • ensonic certified mathieu as Master
  • ensonic certified zeenix as Journeyer
  • ensonic certified omega as Master
  • ensonic certified thaytan as Master
  • ensonic certified jdahlin as Journeyer
  • ensonic certified herzi as Master
  • ensonic certified peaceandlove as Journeyer
  • ensonic certified waffel as Journeyer
  • ensonic certified jdub as Journeyer
  • ensonic certified phkhal as Journeyer
  • ensonic certified Elleo as Journeyer
  • ensonic certified deadchip as Journeyer
  • ensonic certified pycage as Master
  • ensonic certified cinamod as Master

Others have certified ensonic as follows:

  • ensonic certified ensonic as Journeyer
  • mathrick certified ensonic as Journeyer
  • Uraeus certified ensonic as Master
  • jdahlin certified ensonic as Journeyer
  • dfenwick certified ensonic as Journeyer
  • herzi certified ensonic as Master
  • mirwin certified ensonic as Master
  • waffel certified ensonic as Master
  • pycage certified ensonic as Master
  • kfoltman certified ensonic as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page