Showing posts with label Symbian. Show all posts
Showing posts with label Symbian. Show all posts

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.

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.

Sunday, April 3, 2011

Symbian ports

I want to start this post with my biggest kudos to Nokia. I've been accepted in the Qt Ambassadors Program and VMPK is now in the Ambassador Showcase among other great Qt applications.

Not only that, they have sent me a great Nokia C7-00 smartphone as a gift. This device uses Symbian^3 and can be programmed using Qt. It has a touchscreen with two concurrent touch points. Just what I wanted for VMPK! So there is hope that the next VMPK release will enjoy multitouch support, thanks to Qt and Nokia.

There will be also a Symbian port of VMPK, but some tests using the device's MIDI synthesizer and a few other tests show that the audio latency is so big that it is unbearable for real time usage. Another direction to explore is the wireless network, to send MIDI data using for instance a protocol based on UDP multicast like QMidiCtl, a program by our fellow Qt Ambassador Rui Nuno Capela.

QMidiCtl was created for Maemo, and it is available for Nokia N900 devices. It can be compiled also in Linux and Windows, but required a few adaptations for Symbian. Anyway, it works well in my C7 and here is a proof


I've tested it sending MIDI events to Linux, Windows and Mac OSX. The complementary software for Linux is QMidiNet, also made by Rui. It is compatible with IpMIDI by nerds.de that is available for Windows and Mac OSX. This may open interesting possibilities for VMPK not only on smartphones, but also on netbooks and tablets...