Akai EWI USB and me

Published on Fri 12 November 2010 under music

At the recent Bratislava Jazz Days, I was intrigued by the sight of Marián Jaslovský of Silvia Fourporation playing the Akai EWI 4000s electronic wind instrument. I used to play tenor saxophone as a hobby but I put it on hold a few years ago mainly due to the fact I had no way of practicing without disturbing the neighbors (I live in an apartment). The EWI seemed like a great way around that as it can be listened to via earphones. I had considered buying one before but I was put off by the expense. With my interest now re-kindled, I looked into the matter again and found the prices much more likeable. Crucially, I discovered the new USB variant.

The difference between the older 4000s and the USB model boils down to the latter being strictly a MIDI peripheral for a computer. It has no audio output (i.e. no built-in synthesizer) and it's powered only via its USB connection. Compared to its older sibling, the EWI USB is a no-fuss, light, inexpensive affair. Still, it is by no means a toy. It features a robustly built body with virtually no moving parts (there are touch-sensitive metallic pads instead of keys) and the sound one can produce is only limited by the quality of the synthesizer the instrument is plugged into.

Having spent some time with the unit since I purchased it, I must say I'm thoroughly satisfied. It feels very natural in my hands. The mouthpiece is completely different from the saxophone but I knew I wasn't going to replicate the experience perfectly anyway. The tactile feedback is different as well since the "keys" don't move but I find the experience very much similar to what I was used to. Touching a pad feels just like finishing a key-press in that there is a definite, solid limit to the motion of the finger. And when I set the software synthesizer to the right sound it really does feel just like an acoustic wind instrument, albeit not a saxophone. The feeling is quite thrilling and has to be experienced to be believed.

There are quirks as well, of course. The instrument cannot be simply picked up and played - I have to uncoil the cables, plug the USB cable into the EWI, plug the other end into my notebook, plug in the headphones - oh, and boot the notebook and log in, obviously. So there is a "transaction cost" to every session, one cannot just pick the thing up for five relaxing minutes. This would be different if I had a dedicated netbook just for the EWI as many people seem to prefer (especially those who also perform) but I don't really mind. I need hundreds of hours of practice to get back into form, anyway.

Another difficulty is the mouthpiece which puts up a lot of resistance. I once tried playing an oboe and this feels similar - it takes more energy to push air through the mouthpiece than was the case with my saxophone. I believe this is something I simply need to get used to but right now I often end up out of breath.

One last quibble I have with the instrument is the feeble neckstrap that simply doesn't do it justice. I already had to mend it with superglue. But that's really a minor point and I'm sure most wind players will have a quality neckstrap lying around.

One thing I haven't mentioned is the veritable odyssey involved in making the thing work with my computer. I use Linux so I knew it wouldn't be that easy; it wasn't and there are still a few details to work out. That's a topic for another post, however. My main point for now: the EWI wants to be played. When I come home from work and look at it I immediately feel like picking it up and taking a few practice runs. I find that simply priceless.


The pyKonsole distraction

I use KDE 4. One of my workspaces is configured with a "dashboard" activity, displaying all the usual monitoring widgets (CPU, RAM, network, temperatures). When my notebook starts acting slow, I hop over to the dashboard to check out my CPU load. If it's high I whip out Konsole and launch htop to find the culprit. It has occurred to me that it would really be nice if I could see the CPU hog right away.

I realized there must be a process-monitor plasmoid out there but a Konsole widget seemed so much more flexible. Plasmacon seemed to fit the bill and I had it on the desktop in next to no time. It turned out, however, that it has no facility to launch a command at start-up. I figured it should be easy to extend the widget as it's written in Python. Checking the documentation for Konsole's KPart turned up two promising methods: sendInput() and startProgram(). Neither of them worked.

I inserted some trace code into Plasmacon's init method and it turned out that the object Plasmacon creates is just a plain KParts::ReadOnlyPart. Browsing PyKDE documentation brought the answer: PyKDE doesn't include a binding for kdebase-apps. The upshot is that you can create a Konsole::Part instance from Python but you can't access its full API.

Things didn't look so trivial anymore but I decided to have a go at creating the necessary bindings. PyKDE uses a generator called SIP (apt-get install python-sip in Debian) to create Python modules from C++ headers and deceptively simple spec files. I tried to write a SIP spec for Konsole starting from Konsole::Part's header file and various .sip files I dug up. I have to say SIP provides rather modest feedback. I ended up stuck with a terse "syntax error" message providing no detail at all.

I noticed a little comment in one of the .sip files, saying "Generated by twine". Googling for twine proved to be quite a challenge; this is really obscure code used primarily by PyKDE creators and few others. There is no website nor documentation. Another comment in a .sip file provided the decisive clue: a mention of "twine2". It brought me to http://gitorious.org/twine2 where the tool currently seems to live. And yes, it's a generator of input for a generator. Go figure...

Writing a twine2 script seemed quite daunting but I came up with an entirely different approach: what if I could talk to the Konsole via DBus? I quickly discovered qdbusviewer and clicked around to see what I could do. Unfortunately, while the org.kde.plasma-desktop service does expose a /Konsole object, it doesn't provide its Sessions. Some could be found under org.kde.konsole but they included strictly sessions in proper Konsole windows; the one in the Plasma widget didn't show up in the list. I had to go back to twine2.

Except I didn't. The ability to delve into the guts of open source software is one of its most useful aspects but there is a limit to how far down the rabbit hole one can reasonably afford to go. I've reached that limit and had to accept that, for the foreseeable future, I will simply not have a process monitor on my dashboard. Worse things have happened.


Bratislava Jazz Days 2010

Published on Sun 07 November 2010 under music

The pre-Halloween weekend is one of the year's highlights for anyone who lives here in Bratislava and likes jazz or good music in general. The reason, of course, is the Bratislava Jazz Days. I've been attending since 1994 and I have yet to be disappointed.

Bratislava currently markets itself as The Little Big City and BJD fits nicely into that concept. The format has stabilized in recent years: three nights (Friday to Sunday) on two stages with about four acts per stage per night. The two stages are on the opposite ends of a Communist-era venue called the PKO ("Park of Culture and Relaxation"). To get from one stage to the other, one has to cross a large lobby. That's where the beer is. It's also the place where people catch up with friends they may not have seen since the previous year. Getting together with friends is actually the most important part of the Jazz Days, although some people may not even realize it - after all, most of the time is spent listening to music.

The festival offers a great opportunity to expand one's musical horizons; that's why I buy tickets for all three nights and never worry too much about who's playing. The big names (Betty Carter, Kurt Elling, Courtney Pine etc.) do provide unforgettable experiences but the ticket really earns its worth when an Elias Meiri or a Karrin Allyson comes on stage and thoroughly charms the audience.

BJD 2010 brought about a slight change in scheduling. In previous years, B-stage acts had been timed to fill in the breaks between concerts on the main stage. This year's B stage got expanded (with longer shows and four acts per night instead of three) so one had to actually choose between them. A-stage line-ups were definitely more intriguing so that's where I ended up spending most of my time.

The festival's opening act was my good friend Sisa Michalidesová performing music she had composed for the movie "Zimní kúzelníci" (Winter Magicians) with an absolutely stellar band featuring some of Slovakia's best musicians (Michal Žáček on soprano saxophone, Peter Preložník on keyboards, Boris Lenko on accordion etc.). The work had been adapted for the band members and also to allow improvized solos but it wasn't quite jazz; as with many true masters, Sisa's music evades precise classification. It was compact yet diverse, evocative, perfectly arranged and beautifully played. The result was much more impressive than on the soundtrack CD and I was quite happy for Sisa.

Up next was the Polish singer Aga Zaryan who mesmerized us with her powerful stage presence. She has a beautiful, expressive face and a captivating voice that she commanded with calm confidence as she sang some quite challenging tunes from her repertoire. Her band was certainly up to the task, they blended with the singing to deliver a smooth, seamless experience. Aga Zaryan spends a lot of time in New York so her English was flawless (not necessarily the case with Slavic singers) though she could have performed more songs in Polish which I find very pleasant to listen to.

Ethereal singing was followed by accordion equilibristics soaked in passion and bittersweet nostalgia. Richard Galliano is widely regarded as the world's best accordionist and he provided ample justification for that view. His playing was out of this world, turning the instrument into sonic fireworks, bursting with cascades upon cascades of tones. Yet he proceeded with absolute ease, kind of "by the way", he never struggled with the accordion at all. He was fully focused on the point of the music, putting his soul into every note. Such a combination of virtuosity and sincerity is indeed rare in musicians and I couldn't help but be completely absorbed. Oh, and he had a band with him; they were fully absorbed as well. This was definitely Friday night's highlight, despite the fact that neither Galliano's genre nor accordion music as such count among my favorites.

Headliners at BJD occasionally fizzle out and so was the case with Zap Mama, a formation led by the Belgian singer of Congolese origins Marie Daulne. The band had great difficulty getting to the festival after having a flight canceled; they did start on time but with no sound check. It's hard to say if that had any impact or not but the performance was a bland fusion of light jazz with African and new-age elements, with a bit of theatrics thrown in that didn't quite work, especially after Richard Galliano. I left during the third song, happy to get home before 1 AM.

I couldn't attend on Saturday due to family commitments but they say Trombone Shorty almost tore down the building with his enormous energy. Oh well, maybe next time.

Sunday night started off with the Gustav Brom Big Band. I'm not really into big-band music but I do enjoy the way so many instruments blend into a cohesive sound - provided they actually do, of course. The Gustav Brom Big Band is a Czecho-Slovak affair with some rather excellent musicians (Radovan Tariška and Ondřej Čtveráček on saxophones etc.) constrained by the usual logistical issues of getting so many people together often enough. Still, their performance was quite impressive and a good way to get the evening going.

The American trumpeter Christian Scott with his Quintet brought out the serious stuff. Young yet very mature musicians produced an hour of intense, uncompromising, no-nonsense jazz at a very high technical level. The leader had a whiff of arrogance about him at times but he was earnest rather than flashy and he could definitely back it up with supreme playing. I must confess this late in the festival my ears were getting saturated and I couldn't perceive the non-trivial performance as well as I would have liked to. I know it was probably Sunday's highlight but it kind of went beyond me at that point.

Fortunately, Scott's quintet was followed by lighter fare in the form of veteran guitarist Larry Carlton's trio. Carlton is very obviously a skilled session musician who has no problem playing anything you throw his way, which made watching his own show all the more interesting. The set was colorful, with easy melodic numbers giving way to harder, more bluesy tunes. It was no earth-shattering experience but the musicians visibly enjoyed themselves and the intimate trio setting provided a nice epilogue to this year's festival.

Well, actually, Carlton was followed by Sunday's "headliners", Shakatak. It is a recent tradition at the Jazz Days to have a more pop-sounding act at the very end. I think it's actually very smart as those facing a busy Monday can leave early without much remorse. The strategy gives many people a sort of anti-climax feel, however, prompting an infamous sarcastic remark by an attendee that "next year they'll bring AC/DC" (the guy was fleeing from Level 42, by the way). Shakatak is a pop-jazz band that had a huge crossover hit in the '80s and they still happily tour the world thanks to that. More power to them, I say, but their show felt a bit worn so I left after about two songs.

As I'd mentioned before, I spent most of my time at the A stage. Excursions to the B-stage hall served as welcome diversions. The atmosphere there tends to be more muted, intimate, club-like. The bands were interesting especially on Sunday - the local Groove Brothers, a Hungarian world-music ensemble featuring hypnotic percussion duets, as well as Silvia Fourporation with its whimsical lyrics and a laid-back attitude.

I have to say this year's Jazz Days did a fine job of holding up the usual standards of their venerable franchise. Peter Lipa and other organizers at the Rock & Pop agency deserve much credit for keeping the magic alive; despite permanent worries about the future of the venue, Bratislava Jazz Days is poised to remain one of the top events for jazz fans in this neck of the woods.


A short Blojsom FAQ

Published on Sat 06 November 2010 under meta, howto

(Please note that in May 2013 the blog ha migrated to Pelican.)

This blog is powered by the Blojsom blog engine, installed and managed by myself on my own server. Blojsom is a nice piece of work but its documentation pages seem to be down at the moment, so I had to poke around a bit while setting it up. I've compiled a quick FAQ based on that experience:

  • Is Blojsom suitable for me? If you're familiar with Java-based web technologies and you want to host a blog, Blojsom is probably your best choice. Just drop the .war file into Tomcat's webapps/, deploy, tweak an XML file, restart and you're done. If you have no idea what the previous sentence is about, Blojsom is definitely not suitable for you.
  • How do I configure Blojsom? Low-level settings can be set in WEB-INF/web.xml and WEB-INF/classes/*.xml. There are only two things you really need to set, both of them in WEB-INF/classes/blojsom-helper-beans-include.xml. The first is database location. Look for "jdbc:hsqldb:mem" and replace "mem" with the desired path (like "/home/joe/databases/blog" where "/home/joe/databases" is an existing writable directory and "blog" is an arbitrary database name). Blojsom will create database files during the next start-up. By default, Blojsom also destroys its database upon shutdown (the default settings are meant for initial testing). To prevent that from happening, look for "hbm2ddl.auto" and on the same line, change "create-drop" to just "create".
  • When I start Blojsom and go to its URL I see no blog, only something about a "meta refresh". What's up with that? A single Blojsom installation can run multiple blogs at once, hence it has no central home page. Instead, each blog gets its own page. The default blog is called "default" and its URL under Blojsom is /blog/default/, i.e. instead of http://server/blojsom/ you should go to http://server/blojsom/blog/default/. How to automatically bring visitors from /blojsom to /blojsom/blog/default is a topic beyond the scope of this FAQ.
  • How do I log into Blojsom? Blojsom's default theme has no Log in link. To get to a blog's login page, simply append "?flavor=admin" to the blog's URL. The pre-set admin account is "blojsom" (password "blojsom"). Once logged in, you can configure accounts under Weblog Settings > Users.
  • How do I change my blog's theme? Themes are simply collections of files in subdirectories under WEB-INF/themes. A few are pre-installed; you can choose among them under Plugins > Configure > Theme Switcher plugin. Keep in mind that while logged in, you see the blog's "admin" flavor but themes are applied to the "html" flavor by default.
  • I hate all of the bundled themes, how do I add my own? Oh come on, the "autumn" theme is pretty good ;-) Anyway, your best bet is to copy an existing theme into a new directory and tweak the files until you're satisfied. One caveat: Blojsom doesn't actually use the files under WEB-INF/themes when rendering a blog. Instead, whenever you choose a theme in the admin page, its files are copied into resources/ and that's where Blojsom looks when rendering. So each time you want to see the changes you've made under WEB-INF/themes/myCoolTheme you have to choose "myCoolTheme" in the admin page. You could, of course, edit files under resources/ directly but you would risk losing your changes at the next theme switch.

Oh no, another blog

Published on Tue 19 October 2010 under meta

I am a software developer. My work involves a great deal of communication, much of it in writing. Sometimes it takes a lot of time and effort to get the message just right. I started this blog to practice my writing. I hope to evolve a fluid, consistent process for expressing my thoughts. This page has been made public as I hope a genuine audience, however small, may help me achieve that goal. I will do my best to return the favor in the most appropriate currency: interesting and maybe even useful prose.


« Page 6 / 6 »
Proudly powered by Pelican, which takes great advantage of Python.