|
|
January 22nd, 2010
Rewiring Reason is a nice feature – you can use all the Reason synths, effects and instruments in Logic Pro (it should work even in Express Edition). Basis is the so called Rewire protocoll which has been invented by Propellerhead before a good while.

Basically its pretty forward to wire both application together. You just need to know that one of the apps should be the Master, while the other is the slave. Usually you have Logic Pro as the Master, from which you control everything and Reason only as some kind of big effect box.
To start with it, please open Logic Pro and afterwards Propellerhead Reason – NOT vice versa. The master needs to be opened first.
Then create a new track in Logic. The type is “External MIDI”.
In Reason, step up to highest hardware component, the hardware device. There is a button called “Adv. Midi Device”. Click it.
In Logic you are now able to choose Reason in the Library. Just select your “External MIDI” Track and open the Library. You’ll see a folder called “Reason” and then several instruments, depending of what you created. I have chosen one called “Synth”.

Now the signal should go into Reason and do things, but you need to wire it back into Logic to hear it. This can be done with a new track in Logic, an AUX track. You can create it in the Mixer view in “Options > Create new Aux”. Once done you are able to choose the channel which comes from Reason in Logics “I/O” section. I have chosen R/Cha 9/10. If you choose the stereo sum: this already works, but if you want to separate between different channels you need to patch the reason components. I wanted to use the single outputs, so, back to reason.
In Reason you can choose in Options that you would like to view the Rack from the back.

Choose the instrument you want and patch two cabels from the for example master out in the hardware controller on top. The hardware controller finally decides which channels you can hear in Logic. Because I have choosen 9 and 10, my stereo out from the instrument goes into the hardware device in slot 9 and 10 too.
Once done, this is finished and you have successfully rewired Logic to Reason and vice versa. Now your creativity can begin and learning start  Enjoy!
Tags: Logic, MIDI, Music, Reason Posted in Audio Software, Music, Music Tech. and Hardware | 1 Comment »
January 8th, 2010
Readers of my blog maybe have already noticed it: Jason found out, that somebody has taken my code, removed the copyright stuff and uploaded it to the Wordpress directory. I was quite surprised – the content-thief is telling on his blog that he had two weeks holiday while he came across Wave and implemented this plugin. I mean, what the f***? Are people really thinking that nobody will notice that theft in the case of beta software? I just can say: don’t use tecinfor-wave. This is outdated code and the distributor didn’t write it – I doubt he can help in error cases.
But everything has its good sides. I decided to put my development on that plugin more into public and created a new google code project: Wavediver. You can find the original Wordpress plugin there. I will try to update the API and make it more usable. At the moment it’s a little bit, well, ugly Let’s hope that it will reach the status to be included in the PIWI framework later.
Already included is a cli.php file, which enables you to send Adobe Wave message from the command line, just with: php -f cli.php. That can help testing.
If there is anybody who wants to join up – don’t hesitate.
Tags: Adobe Wave, PHP, Wavediver, Wordpress Posted in Open Source, Software Development | No Comments »
December 23rd, 2009
The years is on it’s end and this is finally the last post (I guess). It was a very hectic year. On day life I worked on two different huge projects. At night life I joined Apache Software Foundation as Committer for Commons, Committer and PMC for Log4PHP and today I have been elected as PMC for the Logging TLP. That’s great, I really enjoy working with the Apache people. And could learn lots, of course. In that time I helped with Commons Compress 1.0 and Log4PHP 2.0.0. Unfortunatly I had several ideas for which I simply had not time left. So I wanted to put my Json Component to Commons and write a Compression Component for Apache Camel. Well, maybe next year.
I read several books this year, but could not find any extraordinary ones. Except for the very good new novels of Boris Koch. This man is quite a rising star in germanys youth book division. Even when I am not exactly what people call young, I enjoyed his books very much. If you like fantastic and great stories, you should try him. Of course, only german – at the moment. In the technic section, there is only one book I want to mention. Its Extending and Embedding PHP from Sara Golemon. I am afraid that it’s currently sold out, but I hope there will be a new edition out soon. Well, my efforts of compiling PHP are not succesfull currently, but maybe next year I will get it running and then with Saras help I might be able
Only less articles have been published in 2009. But I in autumn I created several new stuff for the PHP Magazin. Hopefully they will appear in the next two issues. Let’s see.
Musically I have started to play Shakuhachi which has become very important to me. It’s a long way to go with that bamboo flute, but I will try. On the synths part of life, I upgrade to Logic 8 which is MUCH fun. Unfortunatly shortly after I bought it, Logic 9 came out. Guess I will not update the next time….
Let’s see what the new year brings. I wish you all a merry chrismas and a happy new year!
Tags: Life Posted in On the road | No Comments »
December 14th, 2009
After long work, I sent out the announcement for the first Log4PHP release this morning. Let’s see how this one works out – first reports from DBpedia users were promising.
Here is the original statement:
The Log4PHP community is pleased to introduce the Apache Log4PHP 2.0.0 (Incubating) release [1]. It’s the first Log4PHP release since 2004 and tons of changes have been done. Finally Log4PHP has become a well tested framework made for PHP 5. Many thanks to all the contributors who made this release possible. Please download [2] Log4PHP and enjoy
The Log4PHP team
[1] http://incubator.apache.org/log4php/changes-report.html
[2] http://incubator.apache.org/log4php/download.html
Tags: Apache, Apache Log4PHP, PHP, Software Posted in Apache Log4PHP, Open Source | 4 Comments »
December 9th, 2009
I recently got a copy of Apache Geronimo 2.1: Quick Reference . This book should help me with my first steps with this container. Here is a little review for this brand new release of Packt publishing.
My first impression was: wow, is that really a quick reference? The book has a good format and comes with roundabout 370 pages. I hoped for a short book in these times I don’t have too much time for huge novels in the kind of “Gone with the wind”. However, I jumped through the content and figured out that this is actually a quick reference - very good for the impatient developers like me!
In fact, this book covers all relevant topics I can imagine: it starts with an introduction and a description of Geronimos architecture, which gives an brief (sometimes a bit short) overview of how Geronimo works with its plugins and its deployment strategy. I would have loved to read a bit more about the “hot deployment” feature of Geronimo. In JBoss world, this has brought me some headache. In this book it’s only covered with roundabout one page, just saying that it exists, were you need to place your files and how you can monitor that activity. Even later it’s not mentioned in special. Well, but that’s ok for a Quick Reference.
After this, one gets in touch with the most important knowledge of JMS, Database connectivity and JPA. Then there is an extraordinary good chapter about Security. Its one of the biggest chapters in this book and one can feel quite well how expierenced these guys are. Topics are handled in some kind of How-To way, like “Creating a new keystore” or “Changing a private key password”. These guys know what they speak about, probably the best chapter in this book.
Then it comes to CORBA, which I found also interesting, but to short in general. JNDI was reduced to the most important “put your hands there” information. Then it comes to Geronimo Plugins. This one was very interesting too and I wished to read more about it, but well, again, it’s short reference. You can find much Listings in this chapter, but I cannot say that they helped me too much without digging in the containers documentation.
In the administration chapter, the authors show the different portlets Geronimo provides for monitoring actions. It’s basically a walk through of the different pages of the Geronimo console. I think, this chapter could have been improved much more. For example, the Thread Pools Portlet is described with just one sentence: “…lists the thread pools defined in the server, and lets you monitor the thread pools.”. Ok, I don’t need a book for that information. Some other portlets are described a bit more in detail, but nothing which makes me to a Geronimo Guru.
Later you will have a How-To use the Geronimo Eclipse Plugin. It contains lots of screenshots which helps you to create a project specifically for the Geronimo. More impressive was the Cluster chapter. Clustering is a difficult topic and I would use this section for doing the job. It’s a good mix between explanation and reference.
Last chapter I was eager to see was the one with the Geronimo Internals. At some parts it reads like a smaller version of an API. It should help to develop own GBeans and it does, but not so much that I would have a huge benefit compared to the docs.
Final words: this one is really a reference and not a teaching book. If you would like to buy it, you should have some knowledge about JEE and about Containers in general. This book will not help you to understand the technologies behind. It’s more a collection of How-Tos, and that is what I expected from a Quick Reference. The authors made this point clear on the cover, were they are stating that you need to know about JEE5 concepts. At some points I would have preferred some more information. Sometimes I would have wished that they put not so much unnecessary listings (I don’t need import statements in java listing nor do I need XML-Comments in a 10 line XML file). I think, if you are developing an application, this book is a nice to have. If you are more an administrator and need to develop, package or cluster Geronimo, this book will probably give you some benefits. Especially the security chapter is well done.
However, thanks for this book, I like it, but it’s not one of my all-time faves.
Tags: Apache, Bookreview, Geronimo, Java Posted in Books, Open Source, Software Development | No Comments »
November 18th, 2009
The last weeks I struggled with JavaScript. I hated it quite soon, but with knowledge came some comfort and finally I am now able to use jQuery without too much pain. Let’s hope that I don’t have requirements which need a deep knowledge of that stuff However, that brought me to the idea (as odd as it sounds) to try out some server side javascript. It was exactly the right time when Packt Pub. contacted me about their new book on Apache Geronimo.
I wanted to step into Geronimo before a few years, but JBoss, Weblogic and even Websphere were used on my projects. No time for playing with Geronimo. Well, but with this book I will start finally and check out whats possible with this little beast
From the table of contents, server side javascript seems not to be on the list. But thats not to bad – I think I have a new idea for a blog post.
However, I am looking forward to this book. Packt already informed that it’s on the way to me. So far a very good impression of this publisher. Polite people, quick delivery. Let’s see how good the book is.
Tags: Geronimo, Java Posted in Books, Open Source, Software Development | No Comments »
October 30th, 2009
Meister IKKEI Hanada
spielt traditionelle, seit dem 14. Jahrhundert überlieferte Musik der Komuso (Fuke Shakuhachi-Mönche) auf der Shakuhachi (japanische Bambusflöte).
Samstag, 14. November 2009, 19.00 Uhr
Münchner Kung Fu und Tai Chi Sportschule GmbH
Unterer Anger 15, 80331 München
Karten zu 15 Euro
Telefonische Reservierung unter:
Tel: 08179/929375
Fax: 08179/929376
Posted in Music | No Comments »
October 28th, 2009
The JavaMagazin decided to put the little Commons Compress article online. Originally it has been published in the JavaMagazin 08/2009. Enjoy!
Tags: Apache, Authoring, Commons Compress Posted in Authoring & Publishing, Commons Compress, Open Source | No Comments »
August 21st, 2009
This is not too easy. At Log4PHP we have exactly that problem right now. Somebody is using the FileAppender and figured out, that one Apache process was waiting looong time before it could write. Reason: the logger locked the Logfile for the whole time of the request. If you have lots of requests, you can think what it means. Performance is past, in the case.
Time for me to think about the different options to write to log files.
I figured out, that I have to compare the following options:
1) Not closing the file while the whole request is running. This is not an option in a live system, but will give me a good idea whats currently the case
$fp = fopen($file, 'a+');
while($count < $loop) {
fwrite($fp, $text);
}
fclose($fp);
2) Closing the file directly after fwrite is called
while($count < $loop) {
$fp = fopen($file, 'a+');
fwrite($fp, $text);
fclose($fp);
}
3) Use file_put_contents, which is known as an alias to fopen, fwrite and fclose
while($count < $loop) {
file_put_contents($file, $text, FILE_APPEND);
}
4) Leave the file open while the whole request, but unlock it with flock and flock it again, when the next log event occurs
$fp = fopen($file, 'a+');
flock($fp, LOCK_UN);
while($count < $loop) {
if (flock($fp, LOCK_EX)) {
fwrite($fp, $text);
}
flock($fp, LOCK_UN);
}
fclose($fp);
5) Use a nonblocking stream for this and flock
$fp = fopen($file, 'a+');
stream_set_blocking($fp, 0);
while($count < $loop) {
if (flock($fp, LOCK_EX)) {
fwrite($fp, $text);
}
flock($fp, LOCK_UN);
}
fclose($fp);
6) Use the error_log method, which my friend Kevin Horst brought up
while($count < $loop) {
error_log($text, 3, $file);
}
For each of this options I wrote a simple function which wrote 10000 times 100 characters in a freshly created log file. I measured before opening and after closing. Additionally I tried out with 2 seperated threads if the write access is nonblocking. Good thing is, option 2 to 6 are actually nonblocking. And here are the timing results:
1) Execution with NOT closing the log file took 0.0668561458588 seconds
2) Execution with CLOSING the log after each write file took 30.1630220413 seconds
3) Execution with file_put_content took 30.153963089 seconds
4) Execution with leaving the file open, but LOCKING and UNLOCKING it took 0.148998975754 seconds
5) Execution with nonblocking stream took 0.149605989456 seconds
6) Execution with the error_log method took 30.069578886 seconds
Let’s see what it means.
Not closing the file until the 10000 fwrite calls are handled as actually the fastest. No surprise. It just took 0.0668 seconds but this one is not really an option, cause other threads have to wait until this request has been finished.
If you close the file after each fwrite and make it available to other threads and then reopen it, is hell. For 10000 calls of this kind I needed 30 seconds! It’s insane to have this in a productive system. The same goes with file_put_contents. Well, I allready knew (its in the php docs) that this method is nothing else then a wrapper for fopen, fwrite and fclose. Times are so similar that I say it’s exactly the same. Sometimes the one is some millis faster, sometimes the other.
If you open the file, unlock it with flock and flock it again it works very well. Just 0.14 ms for the 10000 fwrite calls. Thats the double amount of option 1, but yeah, here we do some more stuff. The interpreter cares about who is allowed to write, together with the OS. flock works that way, that a call to this function blocks until the requestor gets the actual lock. You can be sure that only one thread is actually writing.
Same goes to the nonblocking stream. This works with stream_set_blocking($fp, 0);. The file stream is nonblocking, means each thread could write at it the same time. That no mess happens, we need an flock here too. That brings us to the nearly same results as fopen, flock, fwrite, flock, fclose option above. But looking at the logfiles of this one and option 4, this one looks more nice to me. This is just subjective, but it looks like the lock is shared more nicely between both threads.
Last one is the error_log method. It didn’t had any idea what to expect, but… 30 seconds! This one behaviours like a wrapper for fopen, fwrite and fclose, like file_put_content. No guys, this is not really a method enabled for logging! If one would use this in a framework like Log4PHP, that would be hell to performance. I would think that this should better removed out. The name suggests a good logging method, but this is not the case.
Having that all said, Log4PHP will get the lock and unlock option number 4. I feel good with it, since it’s quite straightforward. I don’t have too much expierence with the non blocking stream and don’t want to have this in a framework like log4php is.
However, Logging must be used carefully at all. I thnk on a system with 10000 request a second. Enabling logging into one file could bring the system down. I think a live system should have the option to log exactly one request. Maybe triggered by an url param. Think carefully what you log and how you configure your live system.
The complete script can be found here.
Tags: Apache Log4PHP, PHP Posted in Apache Log4PHP, Open Source, Software Development | 12 Comments »
August 4th, 2009
Well, the term finished is a bit overrated. But I wrote a Wordpress plugin which sends a message to your Adove Wave feed, after you have published a blog post. The message will contain the title of your post as text and is linked the latest blog post.
Installation is quite simple: just download the Wordpress plugin, unpack it, and upload it via FTP to your blog. You need to store it in the wp-content/plugins folder. Then log into you wordpress installation, choose “Plugins” and activate the “Christian Grobmeier Wave Plugin”. Sorry for the name dudes, but Wordpress usually needs something unique and I hadn’t had a name which sounds more cool. Well, you have to deal with it.
Once that is done you need to configure your plugin. This can be done in “Settings / Grobmeier Wave Plugin”. Please provide the topic you want to post to, your wave Username and your Wave password. If you don’t have such things, you’ll probably need a Adobe Publisher Account.
That’s all for the plugin. Once you finished the steps above, Wordpress will send notifications to your users when ever you post something.
If you come into unexpected trouble, then please check if you are running Wordpress with PHP5. I figured out this morning that my installation was running on PHP4 for a long time… this brought up several syntax exceptions. To be clear: you’ll need PHP5 to run this plugin.
Last thing beeing said: this is licensed with Apache License 2.0. No guarantees, use at own risk.
Your feedback is appreciated. If you have any more questions, drop me some lines too.
Tags: Adobe Wave, PHP, Wordpress Posted in Open Source, Software Development | 11 Comments »
|