Category Archives: Products

Software and tools I released

Resurrecting Vocal Highlands

Korg Wavestation (Matt Perry, Creative Commons Attribution-Share Alike Generic)

Korg Wavestation (Matt Perry, Creative Commons Attribution-Share Alike Generic)

The Korg Kronos includes all samples of the Korg Wavestation (»0488 Soft EP through 0971 VS155«). Despite the fact that Korg meanwhile offers a software based Wavestation emulation, the Kronos does not include it. Instead, the HD-1 engine must be used. Unfortunately there is no converter available, so resurrecting sounds requires manual work.

I was after one sound only for decades, which was excessively used by Joe Zawinul on several recordings. On a Wavestation SR, it’s located at performance slot 2 of the ROM 8 bank.

The performance is based on two samples, ROM11 407 »VoiSyn1a« (Kronos: ROM 863) and ROM11 188 »VS60« (Kronos: ROM 644).

The sound is not that difficult to reproduce, but the Kronos is hard to program due to its many features (not to mention its complex envelopes). This very afternoon, I had a lot of fun programming (and playing) it. And of course the sound made it immediately to my stock setlist.

Update 2015-05-10: Here’s a PCG containing the preset. It’s pretty close to the original IMO, including the velocity dynamics and the vibrato, which only affects the »VS60« sample. The vibrato is available through the joystick as well as through an optionally connected expression pedal.

Jeux d’orgues 2 pour le Korg Kronos

During the last couple of days, I spent several hours to convert »Jeux d’orgues 2« for the Korg Kronos. I imported the SoundFont, adjusted the multisamples, created programs and combinations. More details can be found via the Jeux d’orgues 2 product page.

Release Notes

Initial release :) .


I need feedback whether the data provided works well on other machines. While I think the files provided should do the trick, I’m not absolutely sure whether I understood the sample management of the Kronos correctly.


I had a lot of fun playing this pipe organ’s stops using the Kronos, and hope you enjoy as well. In case you do, please consider spending a couple of bucks to Joseph Basquin (see »FAIRE UN DON« at the bottom of his page) who kindly agreed to reuse his samples.

Since MoNav learned to speak

About two weeks ago I blogged about my first attempts to teach MoNav to provide speech output. While everything worked well on my desktop machines, MoNav did tend to crash every now and then on the N900, rendering it pretty useless for the intended use.

As debugging was a bit difficult, I have just rewritten a suspicious part of the code. Et voilà, a test drive through the city of Karlsruhe the past evening was of great joy and pleasure.

The speech output still is not mass compliant, though. MoNav is too verbose, instructions are spoken too late, and MoNav needs too long to detect that the vehicle left the precomputed route. But that’s just tedious work in progress to be done during the next weeks and months.

And though I’m complaining, do not forget that MoNav in its current state actually is capable to guide you to your destination, while I’m pleased with what I achieved during the past weeks.

I’ll continue the work on speech output for car drivers before I’ll dive into making it compliant with the needs of cyclists.

In case you want to play with the current code, you’ll need to compile the branch from source:

  • hg clone monav-permaroute
  • cd monav-permaroute
  • hg update permaroute
  • qmake
  • (/Developer/QtSDK/Desktop/Qt/474/gcc/bin/qmake on Mac OS X)
  • make

You’ll also need updated map packages for this version to run properly. I’ve already precomputed some mapsets:

The above lines are not intended for end users. It’s for all those openstreetmap addicts who are interested to follow the current development of MoNav.

Have fun!

Recently, as Maths made my Xmas Break

In the last posting I mentioned that I made the routes in MoNav more persistent:

As a consequence, I’ve just written some code that detects whether the vehicle is still “on track”. The route only gets recalculated in case the vehicle left it for more than x meters. This makes the route much more persistent and will cause far less headache than the previous approach.

Since the GPS position is always a bit inaccurate, it will almost never be exactly on the computed route. Instead, it will aberrate a bit from it. What you want to achieve is to detect whether the current position still is either near the route, e.g. left or right of it, no more than x meters away and still in direction to the planned target, or in the opposite direction.

Continue reading

When MoNav learned to speak

A couple of months ago I opened a branch named »ui-ng« in MoNav‘s repository to develop a new user interface. Meanwhile this branch became a playground for several hacks, and some of them are just spikes to check out whether some ideas work or not.

I denied to work on speech output this spring, as I knew this would become a rather lengthy task. But it was obvious that I won’t resist the temptation during the cold and dark winter months. So I added the first code to generate spoken turn instructions recently. It is an ugly hack, just to determine what was possible. The code as found in the »ui-ng« repo works, well, at least a bit. The instructions are far away from being useful, except for lonesome crossings or roundabouts without other crossings nearby.

I’m using prerecorded samples for now, as the current open source speech synthesis systems did not show the results I desired. OTOH, this means I cannot generate instructions with dynamic contents like distances or street names. Additionally, those samples currently are included in the application binary, which will pollute the memory of handset devices as soon I’ll add further localized samples (currently speech is available in german and english language only).

The main issue is that MoNav recalculates the route each time a GPS position update is received – which means each second on the N900. As the GPS position always is a bit inaccurate, MoNav will speak »Please turn right« when you pass, for example, a gas station and the GPS position is off the road by a couple of meters.

As a consequence, I’ve just written some code that detects whether the vehicle is still “on track”. The route only gets recalculated in case the vehicle left it for more than x meters. This makes the route much more persistent and will cause far less headache than the previous approach. As this happened just a couple of minutes ago, the code is not in the repo yet.

There’s still a lot of work to do, and I’m curious whether I’ll stay motivated enough to do all of the work ahead. On the other hand it’s just plain fun to explore the secrets of a usable routing application.

So stay tuned. The next week(s) will show whether I’ll »head straightforward« :) .

MoNav User Interface now available in German Language

The last two days I’ve worked on a first translation system for MoNav. Thanks to Qt4 it was just simple, and admittedly I copied over some lines of code from one of my other projects, Gebabbel.

MoNav checks the user’s system for a locale string, searches for a matching translation file, and if available, it gets loaded. Currently, the translation files are included in the binary, so we do not need to care about install paths and the like. As soon we have some translations available, they will be removed from the binary and installed as separate files to save some memory.

This also means we are in desparate need of translators for the upcoming releases. Do you want MoNav to appear in your mother tongue, maybe Russian, Chinese, or Bamanankan? As no programming skills are required to create a translation, do not hesitate to contact us.

Can MoNav do bike routing #17251¹

Today my way led from Darmstadt to Aschaffenburg, where I visited some relatives and friends. MoNav did a very good job guiding me. As it chose a route which led along major roads, I set a via point in Messel, and got really great results.

The trip info page I recently introduced was very helpful. Well, it’s like a progress bar on computers. It does neither shorten the remaining distance, nor does it beam you to the destination. But anyway, it’s very useful to have some figures right at your fingertips during the tour, so you know whether you should hurry or you can enjoy a short rest.

The trip was about 50 kilometers which I planned to cope with in 2 hours. Though the terrain is completely flat, some head wind caused an average speed of 20 km/h only – I needed 30 minutes more as I planned.

Once again, I really enjoyed to have MoNav’s excellent offline routing available during the trip. Before I used MoNav, I spent hours in front of my computer to prepare a trip. Today, I just check what MoNav suggests before I leave and help it with some via points – that’s it. An issue of minutes, not hours.

I’d like to thank all Co-Mappers who contributed the data I used during today’s trip. Thanks girls and guys.

¹ According to echo $RANDOM

Trip Info Page for MoNav

Though I’m currently rewriting the user interface of MoNav, I’m still missing some features while being on the road. During a trip, I want to see information about the remaining route distance, the distance and time already traveled, and as a cyclist who sometimes crosses hilly regions, I found some altitude information very useful. Obviously some volunteer is needed to write the code to accomplish that. Waiting for someone else is a valid option, but I know it’s much better to get things done™ :) .

I pushed the first code to the central repository a couple of minutes ago. It’s not polished yet, and the user interface requires some more dedication. I’d also like to add a display of the average speed, but this required some redesign of the track logger code first.

Frankly, it’s a great joy and pleasure to contribute to MoNav. I’d like to thank its creator and maintainer, Christian Vetter, for the great work he put into it. The use of Qt for the backend and the frontend code. The uber fast routing engine. The use of OSM data for routing and the fast address search. And last but not least for his openness when it comes to new ideas and changes. Oh, and did I mention MoNav ran on the N900 out of the box from the first day I tried it :) ?

I’d also like to thank James Hollingshead who wrote the first ready to use vector renderer for MoNav. Though it still shows some minor glitches and is missing rendering of street names, it currently serves us very well for displaying offline vector map data.

Enough rant for now. The code is written, and I better should go to bed :) .

MoNav user interface overhaul – the cross platform hassle

The recent 0.3 release of MoNav provides a useful interface, which allows to invoke all features directly from its main window. It’s a great, both finger as well as user friendly interface, especially on mobile devices such as the Nokia N900. The downside is that it does not conform to the look and feel of the other applications of a given platform.

Continue reading

MoNav 0.3 Released

MoNav performing bicycle routing

MoNav performing bicycle routing

Christian Vetter, the inventor and maintainer of MoNav, just announced the release of MoNav 0.3. Finally the improvements and new features developed during the last weeks and months are available as precompiled installers. Here’s a copy of the original posting:

Hello everyone,

I am pleased to announce the release of the 0.3 version of MoNav
[1][2][3] just in time for your favorite Easter holiday trip.

The highlights of this release are:

  • UI Overhaul, take a look at the screenshots[4]
  • Offline vector renderer: QTileRenderer[5]
  • Better handling of map data and map modules: It is now very easy to switch between routing ( motorcar, bicycle, pedestrian ) and rendering modes ( online, offline vector… ).
  • Full Maemo support
  • Track logging
  • PBF[6] support: 10 times faster OpenStreetMap data parsing!
  • Console version of the preprocessor
  • Improved import of OpenStreetMap data: surface, smoothness, barriers, …
  • And many more

Of course MoNav still delivers blazingly fast routing, even for huge
graphs on mobile devices.

Downloads available[3]:

  • Client binaries for Windows32, Ubuntu 32/64 and Maemo
  • Map packages for most countries: pedestrian, motorcar and bicycle routing; online and offline vector rendering.

We are still looking for contributors in the following areas:

  • GUI design
  • Address Lookup ( Karlsruhe Schema, novel approaches … )
  • Binary package maintenance for various systems / distributions
  • Usability tests and improvements
  • New features
  • Of course other contributions are always welcome If you believe you can contribute and are interested in joining the development team please let us know.

Feel free to contact us on our mailing lists[7][8] or to post bugs to our bug tracker[9]

Please note that this project is under active development and while
considered stable may still contain serious bugs.
Comments, bug reports and suggestions are welcome and can be filed under [9]

Happy routing!
Christian Vetter

[1] MoNav Homepage:
[2] MoNav at OpenStreetMap Wiki:
[3] MoNav Downloads:
[4] MoNav Screenshots:
[5] QTile Renderer:
[6] PBF at OpenStreetMap wiki:
[7] MoNav mailing list:
[8] MoNav developer mailing list:
[9] MoNav bug tracker:

MoNav packages updated

Due to a nasty bug concerning the generation of tracklogs, I’ve updated all MoNav packages (Ubuntu i386, Ubuntu amd64, Maemo). The code is tested during two trips and behaves »as advertised«. Hint: On the N900, you’ll need to scroll down a bit in the preferences dialog to access the button to clear the tracklog (see the above hardcopy).

Desktop users do not need to update, as the desktop versions do not support GPS subsystems. N900 users should update the package as soon as possible.

Großdeutschland in MoNav

Map data by openstreetmap and its contributors, CC-by-SA

Map data by openstreetmap and its contributors, CC-by-SA

Living in Karlsruhe, Germany, I often found it annoying that my map data was cut along the german-french border, so I could only load either france or germany into MoNav. Of course, routing crossing the border was not possible this way.

Thus I created a map package using a bounding box which includes germany and adjacent areas. The exact coordinates used are top=55.0 bottom=46.0 left=5.7 right=15.1.

Additionally I’ve run the routing preprocessor three times, so the package contains routing for car drivers, cyclists, and pedestrians. This map is a must have for any german openstreetmap addict. Get from the download page.

MoNav Maps updated, public domain, public domain

I’ve modified the script for MoNav map generation and ran it anew. now hosts packages for car, bike, and pedestrian routing. The files are compatible with MoNav 0.3 as built from SVN. The files are not compatible with MoNav 0.2. The page also contains some basic installation instructions.

I’ve also uploaded a couple of installers. A deb for the Nokia N900 is provided as well as debs for Ubuntu i386 and amd64. A binary only tar.gz is also available.

I’ve also created a first rudimentary Win-Installer using the Nullsoft installer and Nsisqssg. Unfortunately the binary crashes during startup, so this installer is not available. I’m rarely using Redmond-OS, so in case someone else with some C++/Qt4 knowledge wants to debug the issue I wouldn’t object :) .

Please note that the binaries provided have been built from SVN trunk.
The main purpose of providing the files is to show what is possible with the collaboratively collected data of The software possibly will harm your machines and thus is not intended to be used by end users, but by brave mappers keen on testing bleeding edge software.

Recent MoNav Additions

Displaying a tracklog using data (CC-by-SA)

Displaying a tracklog using data (CC-by-SA)

Since the last post, I spent a couple of hours writing code for MoNav. The follwing list provides an overview over the lastest additions of mine:

  • There are three map widgets in MoNav, the main map, the place chooser map, and the street choser map. As there was no central instance to control the zoom level, some nasty effects occured in case the user used the various zoom controls (F-keys, mouse wheel, zoom bar, zoom buttons). The zoom levels now are stored persistently for each individual map, and managed by one central method, setZoom(int). The code now provides reasonable default zoom values instead of using the maximum possible zoom at each startup.
  • On the N900, the backlight now remains switched on as long as there is GPS data. Of course the user can still switch off the backlight using the hardware switch.
  • MoNav centered the map only in routing mode. In the map view mode, the GPS position left the viewport without the map following its position. As a cyclist, it may well be that you don’t want to use routing, but want the map to follow the GPS position anyway. There is no preference option for this new feature. The map link to the GPS position gets lost as soon as the user pans the map. It gets set during application startup, when loading another map data set, the user selects “Goto Departure”, or the user selects “Goto Gps-Location”.
  • In routing mode, the auto rotation now is optional. In case you are used to maps which always show north up, this option is for you.
  • MoNav got GPS updates by the GPS subsystem every 5 seconds or so. Though the documentation of QGeoPositionInfoSource states that a default object gets updates each time there are any, calling setUpdateInterval(1000) clearly boosts the GPS performance of MoNav.
  • The user can now switch track logging on and off via the preferences.
  • The tracklog files created by MoNav now are proper UTF-8 encoded files, which JOSM no longer denies to consume.
  • MoNav now is capable of rendering the tracklog in red colour (see screenshot), which is a much sought-after feature for pedestrians, hikers and cyclists.

Automated MoNav Map Preprocessing

European Map (, public domain)

European Map (, public domain)

The most exiting routing application is pretty useless without any map material. So is MoNav. Well, wait, you can convert some data from at your own, can’t you?

No, many people can’t. In case you are used to a Linux box, you may have good luck, as you have all the tools required at your diposal. But many potential users of MoNav might not be capable of compiling the application and map material by themselves.

So I spent some evening hours to set up a simple script which can automate the preprocessing. As STRATO generously is sponsoring three servers to be used by the OSM community, a few CPU cycles are available to do the hard processing work. Though I have no confirmation yet whether the machines can be used to convert MoNav maps regularly, I already converted some minor mapsets. Do not expect huge sets (like the whole of europe) soon, as this would hit the machine quite heavily.

The download page looks quite ugly (CSS experts wanted), as it gets automatically created by the abovementioned script. But anyway, it provides the possibility to download preprocessed maps for MoNav (currently only car routing maps are offered). Hope you enjoy.