Autor Beitrag
H4ndy
Hält's aus hier
Beiträge: 1


Delphi 2010 Professional
BeitragVerfasst: Sa 29.05.10 05:08 
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 :mrgreen:

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:
ausblenden 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 :)

_________________
Warum Pascal besser als C++ ist? Weil man in Pascal das NICHT kann:
for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8 )%2))P("| "+(*u/4)%2);