Saturday, August 27, 2011

Presenting VMPK for Nokia N950

I've been playing with my new and sexy Nokia N950 developer device, and here is the fruit: a newborn VMPK. I've just released a beta for testing, usable but not yet optimized. Please, try it. Your feedback will be appreciated.

Download VMPK & FluidSynth for N950 from sourceforge.net

I've learned two lessons from the Symbian port of VMPK published at Nokia's OVI Store: people expect that if a program looks like a piano, it should sound like a piano. It doesn't matter if the product description says that it doesn't produce any sound by itself. Dozens of comments in OVI Store page confirm that there is no hope that users read the description before downloading a program.

When I was doing some research for the Symbian port, I've discovered that creating sound always used very large audio buffers, no matter the method, producing about one second of latency or more. This is unacceptable for a musical instrument emulation, so network MIDI was the only available option. On the other hand, the Nokia N9xx uses Linux, including ALSA and PulseAudio among other usual infrastructure, so the latency is not a problem and FluidSynth is a perfectly sound complementary addition to VMPK.

Second lesson: an user interface that fits well in the desktop version of the program is barely usable on the mobile phone form factor. The solution is to create a new user interface using QML, the new declarative language for Qt user interfaces. The piano keyboard widget was already built around the Qt Graphics View Framework, so it only required to be wrapped as a QDeclarativeItem subclass and it was readily available as a QML object, to be combined with the Qt Quick Components for Meego library to build the new user interface. Here are some screenshots.

Main page, common controls are shown.

Main menu, note names option activated.

Preferences page.

About page.

Sunday, June 5, 2011

VMPK 0.4.0 Released

This release adds touch screen support (multi-touch) for all platforms, if it is supported by the OS and hardware. New RtMidi classes have been merged, which includes Jack MIDI support and a new network MIDI driver (UDP multicast) compatible with IpMIDI and QMidiNet. A Symbian^3 port has been made. There are new translations to Dutch and Swedish. A bug crashing the program when changing the octave base has been fixed.

My suggestion is to use the packages provided by your distribution when possible. If you prefer to compile the program yourself, I would like to give you some advices to build VMPK with the new features. First of all, you need CMake 2.8. The touch screen feature is available on all platforms, thanks to Qt >= 4.6 (but is better supported in Qt 4.7). There are two new build options:
  • RTMIDI_DRIVER: selects the RtMidi backend. The default one depends on the OS. Allowed values: ALSA, JACK, COREMIDI, IRIX, WINMM, NET.
  • PROGRAM_NAME: selects the executable name.
In Linux, you can compile VMPK with ALSA, JACK or NET drivers, but only one each time. You may build the program with different names, though, if you want several versions installed at once. For instance:

$ mkdir build-jack
$ cd build-jack
$ cmake .. -DRTMIDI_DRIVER=JACK -DPROGRAM_NAME=vmpk-jack -DCMAKE_BUILD_TYPE=release
$ make

$ mkdir build-net
$ cd build-net
$ cmake .. -DRTMIDI_DRIVER=NET -DPROGRAM_NAME=vmpk-net -DCMAKE_BUILD_TYPE=release
$ make

For the network version, there is a new help page here: http://vmpk.sourceforge.net/m/


Enjoy!

Sunday, May 29, 2011

Akademy-es 2011



I've been attending the Akademy-es 2011 at Barcelona last week-end, instead of protesting and making the Spanish Revolution 2.0. It was a pleasure to meet Antonio Larrosa face to face again, after 5 years. We met the first time at Akademy-es 2006, also in Barcelona, where the idea for KMid2 was born. Hugs, Antonio!

My presentation was rejected. I've offered the same paper ("MIDI en Linux") used at the IX Jornadas de Software Libre. As an alternative, they proposed a lightning talk about KMid, but I wasn't interested in this format. My project is not KMid, but KMid is a piece of my project: providing Linux and KDE the MIDI tools that are needed, and this includes KMid, KMetronome, KMidimon, Drumstick, and some more programs.

About the conferences. Some talks were recycled, year after year, like the Valgrind talk by Albert that anyway deserves to be repeated even more times because it is a key tool to enhance the code quality of our projects. Other topics were brand new and interesting, for instance the half-rolling release and bundle system of the Chakra distribution, presented by Manuel Tortosa.

After the meetings, supper and drinks. This is the so called "social program". Everything is social, of course, when a couple of geeks meets to do things together. Saturday supper, I was shocked by a question of one of the attendees. He said to me something like this: Who wants MIDI at 2011, anyway? The answer for this question was in my paper, but he didn't bothered to read it. To summarize: MIDI is not an alternative to MP3, like drawing is not an alternative to photography. Who thinks that every program related to drawing should be banned from KDE? After all, it is a technology invented in the paleolithic era.

Saturday, May 28, 2011

Mordor attacks

How to explain yesterday's events to all the inhabitants of Middle-earth?

JULI_GARZON_27.05.2011_15
The Squad of Orcs, here called "Orcos de Esquadra", attacked a large meeting of Hobbits at Shire's Square, when they were pacifically claiming real Democracy.

sytsew_27-5-2011_28web
There have been 121 injured, including 37 orcs.

Felip Puig
There was a repulsive Nazgul commanding the Orcs, Felip Puig.

La Caixa
Orcs and his commander defend the interests of the Black Tower, where evil dwells.

Wednesday, May 4, 2011

VMPK: new release, soon

A new VMPK release is coming, with some new features:

* Touch screen interface support.

* RtMidi 1.0.14, comes with Jack MIDI support. Note that RtMidi allows only one driver, so you need to choose at configuring time the desired MIDI backend.

* Network MIDI support (UDP multicast). It may be used in Linux, Windows and Mac, but is more interesting for portable devices. The protocol is compatible with ipMIDI for Windows and Mac (http://nerds.de) and with qmidinet and multimidicast in Linux/Unix (http://qmidinet.sourceforge.net).

* Symbian^3 port.