Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi MidiInput sendet nicht alle Befehle (https://www.delphipraxis.net/139103-midiinput-sendet-nicht-alle-befehle.html)

LH_Freak 23. Aug 2009 22:57


MidiInput sendet nicht alle Befehle
 
Hallo,

ich arbeite gerade an einem Programm, dass es mir möglich macht aus ein paar Tönen, die mit einem MIDI Keyboard gespielt werden, mittels Presets ein mehr oder weniger umfangreiches Orchesterarrangement anfertigt. Das ganze funktioniert im Grunde erstaunlich gut, allerdings habe ich das Problem dass manche Tasten manchmal "hängen bleiben", also ich drücke sie nicht mehr, aber der Ton erklingt immer noch.
Zuerst habe ich vermutet, dass das ganze an den Delphi ASIO & VST Packages, mit denen ich das ganze über virtuelle Instrumente wiedergebe.
Allerdings habe ich das Problem auch, wenn ich über den MidiOutput abspiele.
Der Midi Input funktioniert über die Midi Unit, die bei den obengenannten Komponenten, dürfte von der Art her ähnlich sein wie in diesem Tutorial.

Ich hoffe irgendjemand hat eine Idee, schonmal danke im Vorraus

Gruß
LH_Freak

LH_Freak 24. Aug 2009 14:13

Re: MidiInput sendet nicht alle Befehle
 
Okay, ich habe das Problem jetzt lösen können.
Der Fehler war, dass ich (wie es der Programmierer der Asio Komponenten auch macht oO) wenn ein NoteOn Befehl mit Velocity 0 einfach an NoteOff weitergeleitet habe, und somit das ganze gegessen war. Allerdings muss man das NoteOn auch noch beibehalten, sonst gibt es entsprechendes Chaos.
Dann hatte ich noch einen Fehler in einer von meinen Funktionen und somit wurden alle Noten mit Velocity kleiner als 63 einfach weggelassen. Deshalb klang das ganze dann auch abgehakt.
Dennoch danke fürs durchlesen!

Gruß
LH_Freak

EDIT:
Ich sollte noch hinzufügen, dass die Komponenten, die in dem Tutorial verwendet werden auf jedenfall denen die bei dem Package dabei sind vorzuziehen sind, da auch dort einige Events einfach verschwinden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz