ensonic is currently certified at Master level.

Name: Stefan Sauer
Member since: 2004-02-19 19:35:53
Last Login: 2012-01-13 07:57:04

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
buztard

Finally after a long time, I managed to release a 0.6 of buzztard. So far only one regression was found and bml-0.6.1 was released to fix it.

A few things happened before the release still. At first after updating my distro, I made a lot of changes to avoid deprecated gtk+ api. For now we ship a copy of the ruler widget (that got removed in 3.0). The internal ruler widget
is a lot saner than the upstream one too.

Another big change was to move from string parameter for notes to an enum. This is faster and lets us do things like blending of note ranges or transposing.

I also made quite a few bug-fixes - laspa effects work again, fluidsynth fixes, etc.

Now I look forward to a lot of new changes in 0.7.X.
buzztard


hi,

The buzztard team has released version 0.6.0 "black beats blue" of its
buzz-alike music composer. All modules got extensive improvements over the last
release from more than two years ago. Give it a try, join hacking and report bugs.

bml
Improved machine compatibility.

bsl
Several bug fixes and better compatibility.

buzztard
Main feature of this release is full undo/redo support. Related to it is the
journaling of edit action and the crash recovery. This way chances of losing
changes in the song are quite low. Other UI improvements are: tip of day,
improved spectrum analyzer, clipboard support, more commands in context menus
and many more). This release features a gstreamer decoder that enables playback
of buzztard songs in any gstreamer based media player.
We also kept the buzztard codebase clean and ported from deprecated APIs to the
successors (gnomevfs->gio, hal->gudev). The libraries and the applications got
performance improvements in many areas.
Also the docs have been improved a lot with tutorials, keyboard shortcut tables,
better coverage and man-pages.

gst-buzztard
Lots of code cleanups. Get rid of the temporary help interface. Switch from
liboil to orc. Performance improvements.

project-page: http://www.buzztard.org
screenshots: http://www.buzztard.org/index.php/Screenshots
downloads : http://sourceforge.net/projects/buzztard/files/
gstreamer & buzztard


Over the last 2 month I did quite a bit of work on the GStreamer side. Right now we're working on 0.10 and 0.11 in parallel. I worked on the audiovisualizers and opencv elements in 0.10. I added a freeverb port to 0.10. In 0.11 I updated the controller susbsystem. If is now a lot easier to use and faster too. I also ported the audiovisualizers and fixed a few elements here and there.

In the beginning of November I gave a seminar about mobile multimedia using GStreamer. For that I wanted to have a few more examples. I have been polishing some examples in GStreamer and adding some more (simple audio-mixer with xfade). One example is a nice showcase for how easy you can do some things. It is called tonematrix. It is 497 lines of c, including comments, a GTK ui with an own widget and the whole GStreamer handling. The toy supports different sounds, different speeds and different scales.

Buzztard allows live control of audio elements. Right now can use midi and hid devices. The software that exposes the wiimote as a hid device uses uinput. This is a kernel device with a simple api that allows user-space apps to create hid devices. I wrote a small toy (280 lines of c) that can use different GStreamer pipelines containing analyzer elements and map the detected features to virtual joystick controls. The simplest example is to map the loudness of the mic-input to the x-axis. A similar example is to map the brightness of the
camera input to a joystick axis. Then you can control e.g. the filter-cutoff of a synthesizer by shielding the light from the camera sensor. Now the fun starts with the recently improved facedetect plugin in GStreamer. This can not only detect the faces, but also the positions of eyes, nose and mouth within the face. Unfortunately the detection is not very stable when drawing faces. The idea here obviously is to make grimaces and control sound with that. A very expressive performance :)

I also spend a lot of time to track down issues with dynamic linking. A few more fixes are done on buzztard side and GStreamer side. I think on the buzztard side things are good for a release. Everything is reviewed (docs, demo-songs, ...) and make distcheck passes :)
buzztard, valgrind and ...


This month I focused on testing for the next release. My free time for the project was a big short anyway, as my family move to our new home and I had quite some janitorial work to do.

One lesson learned for the start. Some time ago I had problems with tests going crazy and eating memory. This can bring down the whole system which is bad. My solution at this time setrlimit(RLIMIT_AS,&rl) to cap the memory usage. While that works, that is also one way to shoot yourself in the foot. I was wondering why tests that work flawlessly on 32bit systems fail with "mmap() failed: Cannot allocate memory". Doh, 64bit platforms need more memory than 32bit ones. Now I raised the limits unconditionally and everything is working again. Would be good to check the difference to see how much more memory 64bit apps that in average - its not twice as much I think.

I did lots of valgrinding and obviously found and squashed a few leaks. It would be really nice if each library would ship a suppression file as part of the dev package. The file could be installed to /usr/lib/valgrind/.supp. The pkg-config file would have two variables: 'vg_supp' pointing to the suppression file and 'vg_env' setting extra environment variables easing valgrinding. This way one could just collect these from the libraries an application uses and be done. GObject based libs could suppress their singletons to improve the valgrind experience.

From time to time potential users show up on irc and get scared when I ask them to build the latest version from the sources. In the need for having an easy way to offer testers and translators the latest version, I took a look at glick. It is actually pretty straight forward. The resulting glick files where initially somewhat large, but after pruning development files, they are just about 6 Mb. I have two of them online - one for 32bit and one for 64bit systems. How to use them? Just download and run them - they don't install anything. The only downside I can see so far is, that the glick bundle would use the same settings as the properly installed one, which could be harmful if different versions are run. Also the path to the example songs in the bundle is somewhat cryptic - /proc/self/fd/1023/share/buzztard/songs :/. Having better desktop integration of such bundles would be great too, but less see how glick evolves.

50 files changed, 836 insertions(+), 373 deletions(-)
buzztard

After lots of changes I have switched the code permanently to the new sequence model. It saves about 170 lines of code in the sequence-page source. There is some potential to save more though.

I also did more work on state persistence. A song now contains more information (selected machines, pattern, options) and these things are restored when loading a song.

Another good change was moving the song-unsaved flag from the song (core-library) to the edit application. This make the core library more light-weight. The editor application can now determine whether there is something to save by combining the unsaved-flag and the undo/redo stack. The unsaved-flag is still needed as I feel not everything needs to go to the undo/redo stack (like selecting a machine). Undo/redo looks quite complete now. I found a solution for my last issue, although I am still not entirely happy with it.

I also made a few startup time improvements. Found a weird issue with the interaction-controller library probing joystick devices. One ioctl on joy devices for hdaps devices is hanging for quite a bit.

Finally I did a huge cleanup on or somewhat uncommon header file setup. We always had a header declaring the types and one the methods. This helped with include conflicts. But now we have 50% less files to care and I just needed 2 forward declarations.

Again several bugs were fixed. I will check remaining reported bugs and hope that everything is fine to consider releasing 0.6.

253 files changed, 27205 insertions(+), 26602 deletions(-)

121 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
  • djcb certified ensonic as Master
  • nedko certified ensonic as Master

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

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

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