May 29, 2006
Today I have been at a mediaeval festival at the castle of Dyk with some friends. In addition to this there is a wonderful garden surrounding the building. To be honest it has been even more interesting than the castle itself.
A good friend had shown me some trees there, and told me that a tree is something like a zodiac sign for old celtic religions. I discovered that I am maple. In front of each tree signs were made explaining the meaning of the tree. Here you can see, what maple means:
Maple (sorry for only being available in German)
All in all I have been fascinated and shocked how many of these things really fit to my very own personality. Usually I am no person of astrology…
May 24, 2006
Do you know progressive rock/metal music? I presume that you do. During the last days I’ve listened to Riverside, the so called new prog-metal gods from poland. And once again you fell over the same situation. Why does progressive mean, that your heart shall break listening to their songs in most cases?
I know a lot of people who really prefer the progressive style of Liquid Tension Experiment, especially songs like Acid Rain or Paradigm Shift. They are doing this push-through style, where you cannot sit on your couch listening to it, but neither you can run through your appartment headbanging as you don’t get the beats coordinated with your hairs. It’s brilliant.
So what really bothers me, is the fact that it seems like Mike Portnoy is the only person being allowed to play the drums in a freaking, double-time, fast forward way. I cannot say, that he is the only one capable of playing like this, because it is definetly doable. Moreover it seems like no one has the balls to freak out behind his set. Believe me, you can do it! There is no reason to hesitate.
During your drum lessons you get to hear, that you should be the one regulating the band. You are the one responsible for holding everyone together. Well, that fits musically as privately, but that’s a different story. So I guess most drummers just don’t feel comfortable when they play some odd-time-signatures and therefore are afraid to disconcert the rest of the band. And having multiple musicians playing at a different feeling makes you loose any harmony. But hey, it is said, that your drums should keep the band together, but who says that you should make it easy to them? Having played in a progressive band now since 4 years I can just tell that it increases the skills of every musician when he gets used to different bar types. They will never acknowledge this to you, but you know that it is exactly this way.
So next time you sit behind your drums, remember my words and fascinate your audience with some technical brilliance in a fast forward feeling. Let’s do progressive !!!Rock!!!
Damn, this has been a productive day. At first it didn’t look like this, but now I am more than happy with the things being solved by this night. Unfortunately I fell over 2 bugs in the MediaKit of ZETA no one recognized before. This really sucks as I had a chance to fix this once. So, if anyone will ever get into the same situation maybe these information will help you
- BMediaRoster::SetRunModeNode() doesn’t seem to work correctly. Asking for the RunMode inside of the node after setting it, I have been pretty surprised as still it had the previous state. During construction of a Node it seems to get B_DROP_DATA state. Afterwards I set it to B_INCREASE_LATENCY for playback. The docs say that you should use B_OFFLINE for saving to file actions. So that’s exactly what I tried. But as mentioned before the RunMode still remains in B_INCREASE_LATENCY. The only way to work around was sending a Message to the sound producing node and storing a fake run_mode/playback_state in an own variable.
- BBufferGroup::RequestBuffer() has an undocumented behaviour. That is actually the reason why rendering hasn’t been working fully yesterday. Given the situation you request a buffer of 4K size. As we all now, this means 4096 bytes. The MediaKit seems to allocate more memory for the buffer. SizeAvailable() of the buffer returns 4160. This is ok with me, but if you access the used data size with SizeUsed() what do you expect it returns? 4096 or 4160? Yes, it is 4160. I would have expected the situation that at least SizeUsed() returns the 4096, because I requested this size. The used size can be changed afterwards per SetSizeUsed() and that’s what it is doing now. Parsing the buffer over to the rendering node, it now gets the correct size when checking for it and saving to the file works fluently.
As this has been done, I focused on something I wanted to manage as soon as possible. Some preprocessor checks were added to look wether K1 gets compiled under ZETA or any other BeOS related operating system. In R5 case localization gets disabled and english is the standard application language. Additionally some internal structures has been changed, so that by now K1 should compile and run on R5 without problems. I will try to get it to run by tomorrow, so be prepared to get a new screenshot.
Good fight, good night!
May 23, 2006
Having two blogs about the same project may seem senseless, but nevertheless currently there’s no way around. So here’s the latest K-1 progress:
Hm… lots and lots of code, but still not done with the current part of the project. I’ve been working hard on the saving/rendering engine. It is based on some neat elements. In the beginning I thought I might use the media_writer.media_addon from Haiku, but very soon issues with this one were coming along. It is simply not usable. Because of this and some personal reasons I decided to implement a K1 media_writer.media_addon. This one is derived from BBufferConsumer, BContollable as well as from BFileInterface and fits for everything needed at K1. Later the code for this add-on may get opensourced on request as it is totally outside of the code of K1. During startup K1 checks, wether the addon has been loaded by the media_addon_server. If not, saving is not possible, but you can work nevertheless and save your work in your project files, as soon as this is implemented.
Talking about the saving algorithm itself, I had a discussion with a friend about a feature, which came up accidently. If you select a certain area of the track, you are able just to export this one. So cutting and saving in a fast manner is doable very very easy now.
Issues which are still left depend on certain media_formats. Unfortunately some files get saved with the wrong bitrate. As soon as this is fixed, saving should be implemented more or less and it’s time for the beta-testers to run some media files on K1.
During all the time testing, I realized that the file-loading algorithm is much too slow. Currently it is decoding the whole file and afterwards creates the preview. This can be done in one step for most cases. Sometimes a Codec returns a wrong Duration() as the file gets still parsed while I want to have this information. That’s the reason, why for instance MediaConverter is sometimes not converting a whole file. Checking wether the information is correct can be done during decoding and only if the duration changes a complete re-run over the Cache makes sense. But this is to be scheduled after the rendering…
May 21, 2006
Puuuh.. what an evening. Or shall I say what a night? Spending yesterday on the kermis of Neukirchen was a good idea, but it seems I am getting old. After lots and lots of beer we decided to visit the “King’s” residence, as we forgot to get some keys for our sleeping place. Unfortunately the party there was also at its end, which did not hinder us from celebrating… On our walking-tour we got to know some strange people, who invited us to join another party 3 villages away. But we rejected as the TAXI costs would not have been worth the fun.
All in all we were back at a friends house, ringing the bell as long as his wife opened the door mumbling some dozy words, I don’t remember them exactly due to the alcohol level. Finally getting some sleep at about 5 in the morning, with a beer in the hand
May 19, 2006
Welcome to my Blog. Why another one, you may ask? There is no reason! Today a good friend just stated that an IT guy without a blog is no IT guy, and to be honest, browsing through the web may give you that impression. So I didn’t want to stay old-fashioned and started this little webproject.