Right after releasing 0.2 I hammered CVS with more changes. I fixed a long
standing bug, when request-pads in adder and tee where not handled correctly.
After disconnecting some elements the song never played again. I also added code
to guide format negotiation when using adder - it needs a caps-filter afterwards
that enforces audioconverts after all incoming source to the same format.
In bt-edit I totally rewrote the fake-selection handling in the pattern and
sequence view. I also added a gtk+-version dependent workaround for the cursor
navigation bug. Right now I work on improving the editing in the pattern view.... read more
Lots of commit and bug tracker activity this month. As we're heading for the 0.2
release I spend most time doing bugfixing. Berzerka discovered that song-saving
was flawed. Editing the patterns did not always took effect. Removing machines
had leaks and ref-count problems. There were some long-standing gtk-warnings.
All fixed in CVS. Finally that loop-playing problem got on my nerves. I was
trying to fix that several times in the past already. Finally I found that it
was a small issue with GStreamers adder element. Many thanks also to Henri
Valta, who contributed several patches. All the new testing also lead to some
new and some re-enabled unit tests.... read more
LAC 2007 was great. Was nice to meet all these people. The buzztard demo was
well received. I will try to make a screencast of the upnp remote control
feature. I could only demo it there at a second attempt as I didn't received the
wifi router which was needed for the demo. I have put the slides online  (if
someone knows how the get rid of the stripes that openoffice 2 produces when
exporting slides with a gradient in the background to pdf, I am listening). For
the slides I updated the architecture picture and put it on the wiki too 
The time there was good to fix a lot of small issues. I believe its a good time
to try the project now. If everything goes right we try to release a 0.2 end of
April.... read more
February passed really quickly. I was quite busy preparing the FOSDEM talk.
Still I found some time to work on the project. Again I had to hunt some
refcount leaks and it took me days to track them down and fix them. We also had
more testers in the channel and could fix some build problems. Right now I am
working on some features for the LAC 2007 demo in Berlin . For those who
can't be there - I will write more about these new things next month.... read more
Last month I started to offer extensions from the buzztard project for gstreamer
inclusion . I believe that the idea behind is generic enough to
support them. The discussion and interest has been relative low so far :( I'll
probably interpret this then as agreement and commit the changes. The preset
handling has been improved. The buzz presets can be saved now too and meta data
(comments) can be edited as well. The generic implementation also shapes up.... read more
happy 2007 to you and may it be a good year for the project :)
In last month news I wrote about the gst element check. Now we also have the
respective UI parts. The apps check if the have mandatory and optional elements
available. If elements are missing the user will see an explanation which are
missing and what for they are needed. For optional elements its up to the user
to decide if that is okay or if they should be installed. In the future we can
make use of the new gstreamer libgimmicodec mechanism, to download and install
missing elements on the fly.... read more
This month we fleshed out the planning for 0.2 . From now on we like to release
often and regularily. We defined a lot of small gtk ui tasks. If you like to
help, we welcome you with open arms on irc://irc.quakenet.org/#buzztard.
First changes after the release are already in CVS. I worked on the buzzmachine
emulation. I can now handle some more plugins. We need to update and re-run the
coverage tests to get a clear picture. Regarding wrapper gst-elements we have a
bug in gstreamer bugzilla that needs some work .... read more
Finally! We did release 0.1 "genesis". In June 2002 we registered the project
and started thinking. For more than year nothing big happened. In February 2004
the first GStreamer example code landed in CVS. That was using GStreamer 0.8.
Then the metamorphosis began: using GObject, adding unit tests, API docs, user
docs and so on. In August 2005 came the switch to GStreamer 0.10. In summer 2006
our team grew from 2 to 4 developers. The whole project already contains 139000
lines of code.... read more
Finally I found some time to work one one thing that was getting on my nerves.
For the unit tests we now have a BtTestSettings class. This allows us to
simulate all sort of settings. The other benefit is that we don't need to make
sure that we don't modify user settings during test runs. And we get not hit by
my favourite GConf nastyness anymore .
Next I did a lot more bugfixing in the UI - or lets call it implementing
previously unimplemented stuff. Added some more tooltips here and there, syncing
data displays and so on.... read more
Lots of news this time. Also this time I welcome another team member on board -
Tommi 'nbd' Sakari Uimonen. His first action was a code review of the core lib
and a big patch that const'ified it more. By giving him a quick demo of the
application we also uncovered a lot of bugs. Next nbd will work on a pattern
Berzerka implemented song-length changing. The list will be dynamically expanded
as one scrolls down. Also keyboard shortcuts are coming to set Length and move
the loop area.... read more
The last month were quite busy for me. But now I've settled down in Finland an can finally spend more time working on the project.
So what happened since May?
At first lets welcome a new team member - Patric 'Berzerka' Schmitz. He joined a just a few days ago.
Together we looked into several build problems - most fixed in CVS already.
With his first commit he fixed some layout problems in the sequence view, made it look a bit nicer and prepared for new features.... read more
Last month I did some work on the GUI. I felt adventurous and tried to push the GtkTreeview to its limmit.
Of couse it doesn't work at the first try. But the outcome is this http://bugzilla.gnome.org/show_bug.cgi?id=338271
patch. Comments welcome (especially at the naming :) ).
The pattern-editor has now very basic editing capabillities. Nothing very comfortable, but he, its a start.... read more
This time I have a good excuse for beeing late again. A new job, a new country ... But what happend in the project?
Due to never ending sync problems with the adder, I've scratched the idea of doing mute/solo/bypass by dynamically altering the pipeline connections. Now I simply add volume elements and mute them :) voila, that works. Also found out that basetransform elements should be able to operate in a pass-through mode. This doesn't works for me yet. Need to investigate more.... read more
Uhhm, late news this time again. This month we had the LinuxTag and the CeBIT, so I've been away a lot.
I've used the time to do some more planning aleast. Still CVS has seen many commits. The major change is that we are now moving all the song-file-io into a serialisation interface. Before we had a big ugly block of code that generated or parsed the native xml-fileformat. Problem is that changes needed to be made in object and in the io-code. Now its in the same class. Even better we can (hopefully) use it for cut/copy/paste and undo/redo.... read more
Last month I reported that seeking works. This was only half of the truth. It does not work when recoding to files. For now we added some workaround, otherwiese it would record huge songs. I need to investigate what exactly makes it fail.
There is still progress on the recording front. Songs now have tags too. The data you enter on the information page goes into the tags (ogg and mp3).
Next I did a major overhaul of our gst-buzztard module. It now has docs, tests and features a little soft-synth. Really a little one, but progress compared to 'audiotestsrc'. It can play notes (yes, a real trigger param) and it has a simple decay envelope. Before audiotestsrc was beeping continously and we were only shaping this with a separate volume element. Want to hear an example? Here you go:
http://www.buzztard.org/files/melo1.ogg... read more
Next todo list item done - seeking works! I've implementd it for audiotestsrc and the gstbml plugin. This means two things: first we now get the EOS (end of stream) for generated data too and second we can play loops again.
I've also extended the GUI a little. You can now move the loop-start/end around by holding ctrl/alt while clicking in the position column of the sequence. Need to add keyboard-shortcuts for it still. Loops are also loaded from and stored in song-files now. ... read more
Progress! First the mute, solo, bypass stuff seems to work. I need to write tests for it now ;) The seeking did not managed to be solved in gstreamer-0.10 but its been looked at now, so we're optimistic.
In the last month's news I wrote about the recording feature. It turned out to be not as difficult as I thought. And voila - buzztard can record songs as ogg, mp3, wav, flac and raw ;)
Implementing the record feature made me aware that machine settings and preferences GUI can't handle enums. So thats now fixed too.
You can try this out yourself. Load one of the simpleX.xml testfiles and switch the waveform of the genarator while playing.... read more
puh, I've not managed to write up a summary for the last month. SO you get a double news update now.
We currently have some blockers upstream in gstreamer. We're optimistic they are fixed soon. For one blocker we seem to at least have a workaround so we can continue working there. Its about implementing 'mute', 'solo' and 'bypass' states of machines. The other issue is seeking. Means we still can't loop, scrubb and most important properly detect the end-of-song.... read more
as announced in last month news, the focus was porting and ... it's done. Buzztard now builds against gstreamer-0.9. Just in time as the first releases of gstreamer-0.9 have been done.
So how complete is it and whats the difference?
The good news is that everything that worked before works again. The only missing thing is that some seeking stuff is still in work in gstreamer, so we use a hack for now to detect the end of a song.
Generally we feel that the new gstremaer is much more mature design-wise. E.g. all the threading problems we had withing the gtk-ui are gone, the play-position is reported more exact and so on.... read more
work, work, work ...
nearly forgot to send the monthly news ;)
Point one. I've got the whole buzztard app ported to use the GstController subsystem. This mean timing is very tight and we can do subtick smoothing (soft fading between pattern values).
On the other hand using the GstController requires all plugins to understand seeking and stuff. So there is more work to do. This lead to one decision:... read more
Good and 'bad' news,
the bad ones first: I though there is just a little to do and then we would be much closer to our goal. Since two days I was working on this and became aware that it is in fact tricky. Just spend two hour and some beers with waffel on discussing a solution. The issue I am talking about is the usage of the GstController module in buzztard. It sounds simple. Basically the gst-controller maintains envelopes with control-changes over time and the gstreamer elements ask for new values from time to time. The challenge is keeping these queues up-to-date. buzztard is pattern based. That means changes in a pattern result in changes here and there. Second patterns can be layered (several pattern can play at once for one machine). That means events can overwrite otehrs before becomming effective. Finally patterns can overlay (or shadow) other patterns in time. All this is easy to handle if you just evaluate it while playing. But now we build up a second representation of the internal data and need to keep them in sync. It sounds like we go for something like a window manager in X does. Changes in patterns cause damages and a damage manager has to updates the controller queues where they have been damaged,... read more
exiting news - we've just got a first song with 3 windows buzzmachines running! No more crashes in multithreaded environments, thanks to a new dllwrapper (credits go to the avifile, xine and pitfdll projects).
Still its not perfect as we seem to not yet set the default values in machines. So the example mentioned above (buzz6.xml) sounds quite broken. In bt-edit one can adjust the properties while it plays to get a bit better sound. In contrast the example buzz4.xml sounds quite okay already.... read more
It was a busy month. Thanks to Alex for compile reports. The problems are hopefully fixed now. So, what happend?
Spend the month working on several parts. The saver now saves most data the loader understands. The GUI works better. We now have drag-and-drop of files into the app, more key-actions and severla of the GUI features are saved to the settings. The GUI also adapt to gnome settings at runtime. The Pattern editor has facillities to create, rename, delete patterns.... read more
Have now writen the basics for GstController, GstParent and GstPolyChild (GstPolyVoice). Unfortunately I don't get many comments. So I've commited GstParent. Now I was getting comments ;). Okay, I've reverted the commits and put it back to sleep in bugzilla. Seems like I'll have to do a gstreamer-buzztard package so that I finally can continue with my project.
Not much done really. Just spend time with getting all the things into gstreamer that we need and done some cleanup here and there. Okay, some buzzmachines do now work better with the machine wrapper. I really hope that I can continue soon.... read more
the month was short - so is this status update ;)
# buzz machine wrapper
I've already blogged this - we have the first few original buzzmachines (goa kick, elak-svf) 'running' in buzztard. It's not perfect yet, but we know the issues and we know what to do.
# gstreamer and dynamic parameters
I've attended the gstreamer summit in barcelona. One thing we've discussed is how to handle dynamic parameters in gstreamer elements. There is intensive discussion about this going on right now. Hopefully we can find a solution for all requrements and start implementing it soon.... read more