Midi Sheet Music

Auf Sourceforge gibt es das Projekt Midi Sheet Music (http://sourceforge.net/projects/midisheetmusic/, http://midisheetmusic.sourceforge.net/). Dabei handelt es sich um eine Software in welche man eine MIDI Datei einladen kann und anschließend eine Notenansicht bekommt. Beim Abspielen zeigt die Software dann an welche Tasten(kombinationen) für welche Noten gespielt werden müssen. Die Software läuft dabei auf Windows, Linux und MacOS, ist in C# geschrieben und steht unter der GPL.

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

Auf ein HashSet mittels eines Indicies zugreifen

Man nehme folgendes Stück C# Quelltext:

HashSet test=new HashSet();

Das Problem an einem solchen HashSet ist, das man nicht mittels eines Indicies auf dieses zugreifen können. Die Zeile:

string tmp=test[5];

würde also nicht funktionieren. Abhilfe schafft hier die Klasse SortedSet:

SortedSettest=new SortedSet();

Nun kann man mittels ElementAt über einen Indice selektiert werden:

string tmp=test.ElementAt(5);

Wichtig ist dabei das der Namesspace System.Linq eingebunden ist da diese Funktionalität über eine Extension implementiert wird.

Shortcut keys für das Menü setzen

Für ein Windows Forms Menü wollte ich einen Shortcut key (für die MFC kundigen auch Accelerator genannt) setzen. Das funktioniert im Normalfall auch immer ohne Probleme. Nur bei den Tasten Keys.NumPad0Keys.NumPad9 funktioniert das nicht.

Auch eine manuelle Zuweisung:

topToolStripMenuItem.ShortcutKeys = Keys.NumPad5;

schlägt mit einer Exception fehl. Der Trick hier ist es die nummerischen Tasten des Numpad immer mit Strg oder Alt zu benutzen. So ist es ohne Probleme möglich dem Menüpunkt den Shortcut key Alt + Numpad 5 zuzuweisen. Ich tippe mal das hängt bei diesen Tasten mit der Doppelbelegung (Num aus/an) zusammen.

KeePass in neuer Version erschienen

Der freie Passwortmanager KeePass ist vor kurzem in der neuen Version 2.16 erschienen. Im Gegensatz zu 1er Serie ist die 2er Serie komplett neugeschrieben worden und basiert auf .NET bzw. Mono. Sie läuft somit ohne Probleme auch unter Linux. Damit kann der Manager auch plattformübergreifend eingesetzt werden. Die Software steht dabei unter GPLv2 und kann unter http://keepass.info/download.html bezogen werden.

3DS Bibliothek für C#

Es gibt unter http://code.google.com/p/lib3ds/ ein Google Code Projekt welches eine Bibliothek zum lesen und schreiben von 3DS implementiert. Leider gab es bis vor kurzem keine freie 3DS Bibliothek für .NET respektive Mono. Nun gibt es unter http://code.google.com/p/lib3dsnet/ eine Portierung der lib3ds, welche wie das Original unter LGPL steht.

Die Bibliothek unterstützt dabei nicht nur das lesen und schreiben, sondern auch alle möglichen Arten von 3DS Nodes wie Kameras oder Meshes. Auch die Transformation der Objekte zueinander wird in dieser Bibliothek vorgenommen. In Grenzen kommt lib3ds.Net auch mit defekten 3DS Dateien zurecht. Nach den ersten Tests funktioniert die Bibliothek tadellos :)

Weitere Informationen gibt es unter:
http://en.wikipedia.org/wiki/.3ds