VLC und der MIDI Support

Der freie Medienplayer VLC kann bereits ab Version 0.9 bzw. unter Windows ab Version 1.1 MIDI-Dateien abspielen. Nun sollte man denken, sobald man eine Midi hineineinpackt sollte es funktionieren. Leider ist es nicht ganz so einfach. Wen man dies versucht bekommt man folgene Fehlermeldung:

MIDI-Synthese nicht eingerichtet:
Für die MIDI-Synthese wird eine Sound-Font-Datei (.SF2) benötigt.
Bitte Sound-Font installieren und über VLC-Einstellungen (Input / Codecs > Audiocodecs > FluidSynth) konfigurieren.

Kein passendes Decodermodul:
VLC unterstützt das Audio- oder Videoformat „MIDI“ nicht. Leider können Sie daran nichts ändern.

Die Meldung sagt dabei eigentlich schon alles. Es fehlt der passende Soundfont. Zu finden ist ein solcher unter http://www.schristiancollins.com/generaluser.php – dort sollte man sich für die FluidSynth Variante entscheiden. Unter Linux reicht es meist das entsprechende Paket mit den Soundfonts zu installieren.

Die Einstellungen von VLC

Die Einstellungen von VLC

Nach dem Download, kann man in den Einstellungen unter „Codecs -> Audiocodecs -> FluidSynth“ die SF2 Datei angeben. Sieht man die entsprechende Option nicht, so sollte man von der einfachen in die erweiterte Ansicht schalten. Nachdem die Einstellung getätigt ist, kann der VLC MIDI-Dateien ohne Probleme abspielen.

In der Konsole kopieren und einfügen

Unter Windows ist das Kopieren und Einfügen in der Kommandozeile eine relativ umständliche Operation. Dort muss man einen extra Modus zum Markieren starten und kann den markierten Text dann mit der Eingabetaste in die Zwischenablage befördern. Unter Mac OS X funktioniert das ganze systemweit, also auch in der Konsole mittels „Cmd + C“ und „Cmd + V“.

Probleme hatte ich bisher immer unter Linux, denn dort breche ich mit „Strg + C“ meist das laufende Konsolenprogramm ab. Hier gibt es dann die Lösung über das Kontextmenü. Aber auch für die Tastatur gibt eine Variante welche das Kopieren und Einfügen erlaubt. So reicht es zusätzlich zum „Strg + C“ und „Strg + V“, die Umschalttaste zu drücken. Damit kann man die entsprechenden Operationen auch auf der Konsole durchführen.

Alle MacPorts aktualisieren

Möchte man seine über MacPorts installierte Software auf den aktuellen Stand bringen, so muss man dafür im Terminal folgende Befehle eingeben:

sudo port selfupdate
sudo port upgrade outdated

Der erste Befehl sorgt dabei dafür das MacPorts selbst auf den aktuellen Stand gebracht wird. Mit dem zweiten Befehl werden anschließend die installierten Pakete aktualisiert. Dies kann je nach Menge durchaus einige Minuten bis Stunden dauern.

Robocode

Sich einen Roboter bauen und diese gegen andere Roboter kämpfen zu lassen, kann relativ schnell ins Geld und Material gehen. Einfacher wird es dabei mit Robocode, wobei es sich um eine Softwareumgebung handelt, in welcher Roboter programmiert werden können. Anschließend treten diese in einer virtuellen Arena gegeneinander an.

Die Bots im Kampf gegeneinander

Die Bots im Kampf gegeneinander

Geschrieben werden die Roboter in Java. Dabei finden sich eine Menge Beispiele in der Robocode Installation. Bei Robocode selbst handelt es sich um Open Source Software welche unter der Eclipse Public License steht. Die offizielle Webseite ist unter http://robocode.sourceforge.net/ zu finden. Lauffähig ist das ganze unter Linux, Mac OS X und Windows.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Robocode

Probleme mit Chrome und lokalem Javascript

Da beginnt man den Tag mit dem gemütlichem Debuggen von Javascript Code und plötzlich bekommt man von Chrome folgende Meldung auf der Javascript-Konsole:

Cross origin requests are only supported for HTTP.

vorgesetzt. Da stellt sich natürlich die Frage was passiert ist. Die Antwort ist relativ einfach. Chrome unterbindet das die betreffende Webapplikation etwas von einem anderen Ursprung laden kann. Bei HTTP würde so etwas funktionieren. Wenn man das ganze über das „file:///“ Schema aufruft wird es etwas komplizierter. Dafür muss Chrome der Parameter „-allow-file-access-from-files“ übergeben werden, welcher das ganze dann wieder erlaubt. Unter Mac OS X könnte die Kommandozeile dann wie folgt aussehen:

open /Applications/Google\ Chrome.app/ --args -allow-file-access-from-files

Danach funktionieren die „Cross origin requests“ unter Chrome auch lokal.