Hallo Delphi-Forum/Entwickler-Ecke,
Ich hab mein erstes OS-Projekt zum Anlass genommen, mich auch mal hier zu tummeln, statt immer nur in der Delphi-Praxis
Deshalb findet man dieses Cross-Posting auch dort (
www.delphipraxis.net...+komponenten+v7.html).
Da es hier vllt. nich so gelaufig ist: Die Komponenten (TMidiInput, TMidiOutput) stellen eine Verbindung zu beliebigen MIDI-Geraeten her (ueber das MMSYSTEM) und unterstuetzen neben den normalen (kurzen) Kommandos auch SysEx-Nachrichten. Damit kann man Soft- und Hardware-Synthesizer ansteuern.
---
Hallo DP,
Lange vorbereitet, endlich da: Eine neue Version der alten MIDI-Komponenten, welche hier schon eine Weile in der DP rumgeistern.
Hauptsaechlich benutzt von FAlter fuer sein
MIDI-Klavier und sein MIDI-Tutorial (
Teil 1,
Teil 2).
Version 6 wurde seiner Zeit von
FAlter und
turboPASCAL erstellt (und damit fuer Delphi 6 fit gemacht). Vielen Dank dafuer!
Da die urspruengliche Version Public Domain war, habe ich mir erlaubt, die Lizensierung zu aendern (zumal PD in Deutschland theoretisch nicht moeglich ist).
Version 7 steht unter der
MPL 1.1+ mit optionaler alternativer Nutzung der
GPL 3+ oder der
LGPL 3+ (aehnlich dem Firefox-Browser).
Die MPL erlaubt euch die freie Nutzung der Komponenten, ohne den Quellcode eures gesamten Programms veroeffentlichen zu muessen (im Gegensatz zur GPL/LGPL).
Details bitte dem Lizenz-Header entnehmen. Wer es total frei will, nutzt sie fuer sich unter der GPL
Aenderungen zur v6.1:
- Dateien gruendlich aufgeraeumt (Beispiele von den Komponenten getrennt, teilweise umbenannt)
- Neues Package (erstellt mit D2010, noch nicht weiter getestet)
- Kleine Debug-App hinzugefuegt, welche MIDI-Ereignisse durchschleift und dabei anzeigt (kann auch als Mini-Demo genutzt werden ^^)
- Fehlerbehebungen (z.B. SysEx funktioniert jetzt (wieder?))
- Viele Bequemlichkeitsfunktionen, wie NoteOn, NoteOff, ChangeInstrument (mit komplett Set-Tabelle!), etc. (wie von shmia vorgeschlagen)
- Angefangen TMidiInput und TMidiOutput von einer Basisklasse abzuleiten (fuer abstrakteren Zugriff)
- Bisher nicht implementierte Funktionen eingebaut (z.B. Patch-caching), teilweise als experimentell gehintet, da nicht getestet
- Nutzt v3.0c der Basis-Komponenten von David Churcher
Die Komponenten entwickle ich im Moment waehrend meines US-Aufenthalts, daher kann ich nur unter Turbo Delphi 2006 sowie Delphi 2010 Pro auf WinXP testen.
Geplant ist volle Unterstuetzung fuer Windows XP bis 7 und D6 und neuer, kann dass aber erst spaeter verifizieren (ausser jemand hilft mir :stupid:).
Die alten Beispiele (unter \Examples\) werde ich demnaechst noch ueberarbeiten.
Download
Die aktuellesten Aenderungen gibt es immer aus meinem
Mercurial-Repository bei BitBucket.
Dort bekommt Ihr auch nen RSS-Feed, Changelog, Issue-Tracker, etc. Neuerer Zwischenversionen bitte direkt ausm Repo
unter "Source" und dann rechts oben "get source" -> zip herunterladen, da ich hier nicht jedes Commit posten werde.
Aktuelle Revision:
v7.0r3
bitbucket.org/h4ndy/...midiio-dev-7.0r3.zip
Changeset:
Quelltext
1: 2: 3: 4: 5:
| Merged newer base component version 3.0c (used 3.0 for modifications) - prevent Windows shutdown fixed - possible SysEx data appending fixed - found on http://go.to/davesmidi # http://davesmidi.dchurcher.com/ - Updated README accordingly |
Vorschlaege, Hinweise, Bugs bitte hier melden oder direkt im
Issue-Tracker einen neuen Eintrag anlegen.
Hoffe, dass die Dinger noch anderen Leuten Freude bereiten