Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MIDI Klavier (https://www.delphipraxis.net/48669-midi-klavier.html)

FAlter 28. Jun 2005 19:53


MIDI Klavier
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

ich habe auf meiner Festplatte noch eine uralte MIDI-Komponente gefunden und wollte sie ausprobieren.

Bis jetzt ist dabei das herausgekommen, was hier anhängt. (Die Komponente hängt mit an.)

Man spielt über die Tastatur. Die Töne werden über das gewählte MIDI-Gerät ausgegeben.

Die Standard-Tastenbelegung:
untere Reihe beginnt bei <, obere bei q, schwarze schräg darüber.

Wer eine nicht-deutsche Tastatur hat, muss die Belegung anpassen. Die Einstellungen werden in einer INI gespeichert*, die Registry bleibt also sauber (außer dem Unistaller-Eintrag, um es über Systemsteuerung/Software deinstallieren zu können.)

Auch hier zu finden:
PC-Welt: http://www.pcwelt.de/downloads/multi.../midi_klavier/
MSN (über PC-Welt): http://tech.de.msn.com/downloads/aud...mentid=9286718
AOL (über PC-Welt): http://computer.aol.de/Downloads-MP3...1605181-0.html
Freeware.de (über Upload.de): http://www.freeware.de/download/midi-klavier_35675.html
Updates.de (Über Upload.de): http://www.updates.de/software/Progr...ier_35675.html
Shareware.de (Über Uploads.de): http://midi-klavier.shareware.de/

Infos in meinem Blog:
http://falters-blog.blogspot.com/search/label/MIDI

Mfg
FAlter

Neueste Version: V 1.0 - Final
Eventuell erneut runterladen von http://faltersoft.de/soft/?software=klavier oder Anhang.
Es wurden noch zwei weitere kleine Testtools beigelegt.

*) unter <user>\Anwendungsdaten\FAlterSoft\MIDI-Klavier

turboPASCAL 28. Jun 2005 20:34

Re: MIDI Klavier
 
Hey, nicht schlecht. (nur mal die Exe angeschaut)

Aber die Initialisierung der Tasten wird erst nach einem Neustart aktiv.
(ne' Programminterne Vorbelegung währe auch noch gut)

Interesant wird es noch mit einer Aufnahme.- und Wiedergabefunktion (Tastendrucklänge, Pausenlänge messen und ab in ein File oder so)

Neuni 28. Jun 2005 21:29

Re: MIDI Klavier
 
lol...ich glaub ich schmeiß mein echtes Keyboard weg ;)

Vorschläge:
Midi-Files aufnehmen und wiedergeben
Tasten nicht erst nach neustart ändern
Vorbelegung
Auf die Tasten (Bilder9 klicken können.

FAlter 28. Jun 2005 22:38

Re: MIDI Klavier
 
Zitat:

Zitat von turboPASCAL
Aber die Initialisierung der Tasten wird erst nach einem Neustart aktiv.

Ja, das war ein Bug, ich habe die Initialisierung an der falschen Stelle gemacht, jetzt sollte es funktionieren.

Zitat:

(ne' Programminterne Vorbelegung währe auch noch gut)
Ähm, kann ich machen, evtl. beim nächsten Update...

Zitat:

Interesant wird es noch mit einer Aufnahme.- und Wiedergabefunktion (Tastendrucklänge, Pausenlänge messen und ab in ein File oder so)
notiert, MID und eigenes Format ;-)

Zitat:

Zitat von neuni
Auf die Tasten (Bilder9 klicken können.

Werde ich eventuell auch mal machen, aber auf der Tastatur spielt es sich eigentlich doch besser :mrgreen:

Und jetzt lade ich ein Update hoch, die neue Version kann Instrumentenwahl.

//Edit: Fertig. Bei der neuen Version solltet ihr keine zu kleine Bildschirmauflösung eingestellt haben, um die 128 Instrumente auf den Bildschirm zu bekommen (nicht 640x480). Aber heutzutage ist ja sowieso größeres Standard.

Nicolai1234 28. Jun 2005 22:57

Re: MIDI Klavier
 
Ich finds klasse: :thumb:

Könntest du evtl. noch eine kure Erklärung zu der Komponente geben oder den Quelltext kommentieren?
Ich finde diese Art der Soundausgabe für weitere Projekte sehr Interessant. Dann muss man keine Sounddateien mitliefern...

tilman 28. Jun 2005 23:04

Re: MIDI Klavier
 
Irgendwie macht die Source bei mir Probleme, da steht dauernd system.pas nicht gefunden. Aber die Koponente selbst funzt und auch deine exe geht bei mir... naja, liegt vielleicht daran das die kompo mit Delphi7 nicht so gut zusammenarbeitet oder so.

FAlter 29. Jun 2005 11:17

Re: MIDI Klavier
 
Zitat:

Zitat von tilman
system.pas nicht gefunden

Diese Unit gehört zu Delphi dazu. Das Problem hast du, wenn aus irgendeinem Grund das Unterverzeichnis Lib des Delphi-Verzeichnisses nicht mehr in den Bibliotheksverzeichnissen und im Suchpfad steht, hatte ich auch schon mal.

Kann aber sein, dass die Kompo nicht gut mit D7 arbeitet. Mit D6 hab ichs noch probiert, das geht... Aber laut Readme ist sie für Delphi 3 (das ich hier auch genommen habe).

Zitat:

Zitat von Nicolai1605
Könntest du evtl. noch eine kure Erklärung zu der Komponente geben oder den Quelltext kommentieren?

Eigentlich spricht die Komponente für sich - zumindest, soweit ich sie schon genutzt habe.

Sie mal in mein FormCreate:

Delphi-Quellcode:
  Dev := Ini.ReadInteger('Device', 'ID', 0);

  if MidiOut.Numdevs = 0 then
  begin
    Application.MessageBox(PChar(NoDevices), PChar(ErrorTitle),
      MB_OK or MB_ICONSTOP);
    Application.Terminate;
    exit;
  end
  else
  begin
    for I := MidiOut.Numdevs - 1 downto 0 do
    begin
      MidiOut.DeviceID := I;
      MenuItem := TMenuItem.Create(self);
      with MenuItem do
      begin
        Caption := MidiOut.ProductName;
        RadioItem := true;
        Tag := I;
        OnClick := ChangeDevice;

        if Dev = I then
          Checked := true;
      end;
      Gert1.Add(MenuItem);
    end;
  end;
  MidiOut.DeviceID := Dev;
  MidiOut.Open;
MidiOut ist hier die Komponente (TMidiOutput).

Erst wird aus der INI das zuletzt verwendete Gerät gelesen. Dann wird geprüft, ob kein Gerät vorhanden ist, dann wird das Programm beendet (mit einer Fehlermeldung ;) )
Ansonsten wird in einer Schleife auf das Gerät gewechselt. So kann dessen Name erhalten werden, es wird hier ein entsprechender Menüeintrag generiert.

Allgemein wäre die kürzeste Form der Initialisierung:
Im Objektinspektor 0 als DeviceID einstellen und dann nur MidiOut.Open (beim Programm beenden oder vorm Gerätewechsel MidiOut.Close nicht vergessen). Dann hast du aber immer das gleiche Gerät.

Um jetzt Töne auszugeben:

Delphi-Quellcode:
MidiOut.PutShort(Message, DataByte1, DataByte2);
Datenbytes gehen im Bereich von 0 bis 127 (oberstes Bit immer gelöscht).

Da gibt es einmal die Channel-Messages (n steht für die Channelnummer, es gibt 16 Channels von 0 bit 15, in Hex 0 bos F):
Hex - Funktion:
§8n - Note Off (Datenbyte 1 ist Note, Datenbyte 2 brauchst du hier nicht (Lautstärke))
$9n - Note On (Datenbyte 1 ist Note, Datenbyte 2 ist Lautstärke, wieder von 0 bis 127)
$Cn - Program Change (Instrumentenwechsel, Sie Instrumente stehen in meinem Instrumentenmenü, die Nummer habe ich beim entsprechenden TMenuItem als Tag hinterlegt, Datenbyte 2 wird ignoriert (Bei der MIDI-Schnittstelle wird es, glaube ich, gar nicht übertragenm, wenn du ein externes Gerät ausgewählt hast))

Es gibt noch weitere, aber diese hier habe ich selbst schon verwendet. Über die anderen muss ich mich noch informieren, ebenso wie über globale Messages (nicht Channelbezogen).

Die Noten gehen von 0 bis 127 in Halbtonschritten. 60 ist dabei c'.

Channel 10 (A) ist eine3 Besonderheit: Hier kannst du kein Instrument einstellen, dafür hast du hier das Schlagzeug. Die zugeordneten Instrumente sind:

Zitat:

Zitat von MIDI-Liste über Drums
MIDI-Drums
Ton Tastennummer Schlaginstrument
B1 35 Acoustic Bass Drum
C2 36 Bass Drum 1
C#2 37 Side Kick
D2 38 Acoustic Snare
D#2 39 Hand Clap
E2 40 Electric Snare
F2 41 Low Floor Tom
F#2 42 Closed High-Hat
G2 43 High Floor Tom
G#2 44 Pedal High Hat
A2 45 Low Tom
A#2 46 Open High Hat
B2 47 Low-Mid Tom
C3 48 High-Mid Tom
C#3 49 Crash Cymbal 1
D3 50 High Tom
D#3 51 Ride Cymbal 1
E3 52 Chinese Cymbal
F3 53 Ride Bell
F#3 54 Tambourine
G3 55 Splash Cymbal
G#3 56 Cowbell
A3 57 Crash Cymbal 2
A#3 58 Vibrastrap
B3 59 Ride Cymbal 2
C4 60 High Bongo
C#4 61 Low Bongo
D4 62 Mute High Conga
D#4 63 Open High Conga
E4 64 Low Conga
F4 65 High Timbale
F#4 66 Low Timbale
G4 67 High Agogo
G#4 68 Low Agogo
A4 69 Cabasa
A#4 70 Maracas
B4 71 Short Whistle
C5 72 Long Whistle
C#5 73 Short Guiro
D5 74 Long Guiro
D#5 75 Claves
E5 76 High Wood Block
F5 77 Low Wood Block
F#5 78 Mute Cuica
G5 79 Open Cuica
G#5 80 Mute Triangle
A5 81 Open Triangle
General-MIDI-Drums


tilman 29. Jun 2005 11:22

Re: MIDI Klavier
 
Zitat:

Zitat von FAlter
Zitat:

Zitat von tilman
system.pas nicht gefunden

Diese Unit gehört zu Delphi dazu. Das Problem hast du, wenn aus irgendeinem Grund das Unterverzeichnis Lib des Delphi-Verzeichnisses nicht mehr in den Bibliotheksverzeichnissen und im Suchpfad steht, hatte ich auch schon mal.

Ja, ich arbeite so ca. seit 5-6 Jahren mit Delphi... das system.pas dazu gehört und mein fehler auf einen falschen LIB-Pfad hinweißt ist mir schon klar :wink:
Nur: Ich kann unter Delphi die Komponenten einbinden, und compilieren. Ich kann unter meinem Windows auch die exe ausführen. Wenn ich aber die souce in D7 lade erhalte ich system.pas nicht gfeunden, übrigens ohne eine angabe einer Zeile. Ein sehr seltsamer Fehler den ich so noch nicht hatte. In jedem anderen projekt wird die system.pas problemlos gefunden, eben sogar wenn ich die Midi-Kompon reinpack... echt merkwprdig. Wäre gut wenn mal jemand unter WinXP / D7 die Source testet...

FAlter 29. Jun 2005 11:28

Re: MIDI Klavier
 
Wie gesagt, bei mir war das irgendwann plötzlich da, keine Ahnung warum...* Und einzige Abhilfe war es, das in den Bibliothekspfad einzutragen oder in den Suchpfad. Das Problem trat bei ALLEN Projekten auf...

Trag einfach mal dein Lib-Verzerichnis in den Suchpfad ein und sieh nach, was dann passiert. Wenn es dann geht, ist es doch OK...

________
*) Ich glaube, ich hatte da gerade das Update 2 fpr D3 installiert :gruebel:

FAlter 29. Jun 2005 11:39

Re: MIDI Klavier
 
Hi...

Jetzt habe ich wieder 'ne neue Version hochgeladen.

Änderungen:
1. Eine Zeile Code hinzugefügt und somit Bug gefixt, der das zuletzt verwendete Gerät nicht korrekt wiederhergestellt hat.

2. Standardtastenbelegung implementiert.

3. Mausklicks auf Tasten implementiert.

TODO sind immernoch:

1. Drumspur einstellen, speichern, laden...

2. Aufnahme und Wiedergabe, Speichern, laden...

Mfg
FAlter

tilman 29. Jun 2005 11:44

Re: MIDI Klavier
 
Zitat:

Trag einfach mal dein Lib-Verzerichnis in den Suchpfad ein und sieh nach, was dann passiert. Wenn es dann geht, ist es doch OK...
glaub es oder glaub es mir nicht... die lib steht korrekt drin (hab extra nochmal nacheguckt), und JEDES programm funzt bei mir nacgh wie vor, und in den meisten (gnau: in allen, was ein wunder!) wird auch die system.pas genutzt. Aber stets einwandfrei gefunden. Der Fehler muss wo anders liegen. Kann aber dennoch an meiner installation liegen... bei delphi weiß man nie genau. ist ein toller compiler... keine Frage (Ernst gemeint!). Aber ich hatte schon die tollsten Fehlermeldungen. Z.B. wer noch D3 (deutsche VErsion) auf Platte hat soll mal in der Hilfe unter Index oder Suchen folgendes eingeben:
Code:
Interner Fehler: <ErrorCode>
diesen fehler hatte ich WIRKLICH einmal selbst. Schaut ihn euch an!

FAlter 29. Jun 2005 12:17

Re: MIDI Klavier
 
Hi,

Zitat:

Zitat von tilman
Code:
Interner Fehler: <ErrorCode>
diesen fehler hatte ich WIRKLICH einmal selbst. Schaut ihn euch an!

Ich habe den regelmäßig, aber nur bei einem Projekt. Ich muss dann immer ein zweites Mal auf Compilieren klicken, dann funktioniert es.

Einmal hatte ich so einen Internen Fehler gemeldet bekommen, obwohl es nur ein Syntaxfehler war beim Einbinden einer DLL-Funktion (Start-Time Linking).

Aber ich glaube, wir werden jetzt ziemlich dolle OT. Also thematisch zurück zu meinem MIDI Klavier ;)

Mfg
FAlter

FAlter 29. Jun 2005 17:25

Re: MIDI Klavier
 
Hi,

Es gibt wieder eine neue Version...

1. Programmsymbol geändert...

2. Statt GetAsyncKeyState wurde GetKeyState verwendet.

3. Aufnahme / Wiedergabe, laden/speichern im eigenen Format... Der Versuch, MIDI zu verwenden, ist leider gescheitert, es kamen nur Dateien zustande, bei denen der Windows Media Player abgestürzt ist, andere Player meldeten Division durch Null... Da muss ich noch daran arbeiten...

4. :gruebel: Ich kann mich gar nicht mehr an alle Änderungen erinnern...

Felix MIDI Klavier Dateiformat

Ist gaaanz einfach aufgebaut!

Die Datei besteht aus beliebig vielen Einträgen, die in zeitlicher Reihenfolge sortiert sein mussen.

Ein Eintrag ist 7 Bytes groß:

4 Bytes Integer-Wert little endian beschreibt relativ zum Dateianfang (welcher 0 ist) die Vergangene Zeit in 50-ms-Schritten.
1 Byte MIDI-Message
2 Bytes Daten (auch, wenn nur eines benötigt ist, das andere kann zum Verstecken von geheimen Informationen verwendet werden ;) )

Beispiel:

Integer-Wert ist 100 -> 5 Sekunden nach Wiedergabestart
MIDI-Message ist Ton An, Channel 1
Daten sind Ton c', Lautstärke 127

Integer-Wert ist 200 -> 10 Sekunden nach Wiedergabestart
MIDI-Message ist Ton Aus, Channel 1
Daten sind Ton c', Unwesentliches Byte

Dann wird c' 5 Sekunden lang gespielt, und zwar beginnt der Tun 5 Sekunden nach Wiedergabestart...

Mfg
FAlter

Nils_13 29. Jun 2005 17:38

Re: MIDI Klavier
 
Unter XP läufts wieder nicht :kotz:

Die Muhkuh 29. Jun 2005 17:42

Re: MIDI Klavier
 
Zitat:

Zitat von Nils_13
Unter XP läufts wieder nicht :kotz:

Damit kann FAlter nun sehr viel anfangen :roll: . Kommt eine Fehlermeldung etc.?m

Ausserdem kann ich das Gegenteil bestätigen: WinXP Professional mit SP2 läuft perfekt.

@FAlter

Wenn du das Programm irgendwann mal richtig ausbauen willst, dann hab ich was für dich: Schreiben von richtigen Noten (siehe Finale, Sibelius, etc.). Das wäre auch ganz toll :) .

Vllt. kannst du ja nen Projekt starten oder so ;)

Nils_13 29. Jun 2005 17:58

Re: MIDI Klavier
 
Zitat:

Zitat von Spider
Zitat:

Zitat von Nils_13
Unter XP läufts wieder nicht :kotz:

Damit kann FAlter nun sehr viel anfangen :roll: . Kommt eine Fehlermeldung etc.?m

Ausserdem kann ich das Gegenteil bestätigen: WinXP Professional mit SP2 läuft perfekt.

@FAlter

Wenn du das Programm irgendwann mal richtig ausbauen willst, dann hab ich was für dich: Schreiben von richtigen Noten (siehe Finale, Sibelius, etc.). Das wäre auch ganz toll :) .

Vllt. kannst du ja nen Projekt starten oder so ;)

:lol: hab ich auch. Es wird nichts abgespielt, es treten keine Fehlermeldungen auf.

[EDIT]Der Fehler ist unter XP bekannt :wink:[/EDIT]
[EDIT2]Außerdem sollte es überall laufen :wink:[/EDIT2]

turboPASCAL 29. Jun 2005 18:08

Re: MIDI Klavier
 
:bounce2:


WinXP Professional mit SP1 + Soundkarte :zwinker: ...läuft perfekt.


( Sollte der Probe-Button nicht Stop heissen & kannste auch irgend wann mal MIDI-Format speichern ? )

FAlter 29. Jun 2005 18:09

Re: MIDI Klavier
 
Hi,

Zitat:

Zitat von FAlter
4. :gruebel: Ich kann mich gar nicht mehr an alle Änderungen erinnern...

4. Lautstärkeregler ;-) Da eine Compzutertastatur keine Anschlagstärke kennt.

Zitat:

Zitat von Spider
Schreiben von richtigen Noten

So groß sollte das Programm eigentlich nicht sein. So etwas in der Art habe ich mir für den FAlterSoundEditor gedacht... Das Klafünf ist nur ein kleineres Testprojekt gewesen, inzwischen ist es schon mehr als das...

Zitat:

Zitat von Nils_13
Es wird nichts abgespielt,

Checkliste:
  • Hast du vorher einen Sound aufgenommen oder geladen, bevor du die Wiedergabe gestartet hast?
  • Hast du das richtige MIDI-Gerät gewählt?
  • Falls du ein externes Gerät hast, ist es korrekt angeschlossen?

Mfg
FAlter

FAlter 29. Jun 2005 18:14

Re: MIDI Klavier
 
Hi,

Zitat:

Zitat von turboPASCAL
( Sollte der Probe-Button nicht Stop heissen & kannste auch irgend wann mal MIDI-Format speichern ? )

Ich habe ihn Probe genannt, weil da nichts aufgenommen oder wiedergegeben wird --> Probespielen.

Ich hatte erst Stopp dastehen, aber das "pp" dabei gefällt mir nicht. Und Stop wäre Englisch, da es im deutschen neuerdings eben mit 2 p geschrieben wird. "Angehalten" oder ähnlich wäre noch eine Alternative, wie wäre es damit?

Das MIDI-Format werde ich noch versuchen, kennt jemand eine gute Doku über das Dateiformat? Meine Doku hat mir nicht geholfen, wie gesagt, WMP stürzt ab, andere Mediaplayer melden Division durch Null... Außerdem weiß ich, dass man den Tracks in MIDIs Namen geben kann, das war in der Doku nicht enthalten...

Mfg
FAlter

Die Muhkuh 29. Jun 2005 18:15

Re: MIDI Klavier
 
Zitat:

Zitat von FAlter
Hi,

Zitat:

Zitat von Spider
Schreiben von richtigen Noten

So groß sollte das Programm eigentlich nicht sein. So etwas in der Art habe ich mir für den FAlterSoundEditor gedacht... Das Klafünf ist nur ein kleineres Testprojekt gewesen, inzwischen ist es schon mehr als das...

Meinte ja auch nur, falls du viel Zeit hast ;)

turboPASCAL 29. Jun 2005 18:37

Re: MIDI Klavier
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von FAlter
...habe ihn Probe genannt, weil da nichts aufgenommen oder wiedergegeben wird --> Probespielen.

Ich hatte erst Stopp dastehen, aber das "pp" dabei gefällt mir nicht...

Hauptsache die bauen jetzt nicht alle STOP-Schilder in STOPP-Schilder um! :wink:

"Anhalten" ist doch auch noch eine Alternative. Probe ist nicht eindeutig

//edit
Zur Midi-Format-Docu. hab ich leider nur noch die Adresse: http://www.camx.de/kurs_welcome.htm
Habe auch noch ne' Unit(s), siehe Anhang, event. was für dich.

tilman 30. Jun 2005 08:36

Re: MIDI Klavier
 
Jetzt muss ich mich auch nochmal zu Wort melden: bei mir funzt es unter WinXP / D7 nicht aus unbekannten Gründen. Windows XP hat mit dem Programm dagegen alleine keine Probleme.

Nils_13 30. Jun 2005 13:57

Re: MIDI Klavier
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ein Screenshot von allen Einstellungen.

FAlter 30. Jun 2005 16:35

Re: MIDI Klavier
 
Hi,

und was bringt mir der Screenshot jetzt? Deine Windows-Einstellung für MIDI dürfte OK sein, das habe ich nice bezweifelt.

Im Programm kannst du auch andere Geräte einstellen, check das mal ab (Menü "Synthesizer").

Mfg
FAlter

FAlter 30. Jun 2005 17:26

Re: MIDI Klavier
 
Hi,

es gibt hier im Forum einen, nein, viele Nette Menschen. Einer davon ist turboPASCAL. Er hat sich die Mühe gemacht und die uralte Komponente überarbeitet.

Wer bisher Probleme mit der Komponente hatte, eventuell sind sie ja jetzt passé (oder wie man das schreibt).

Mfg
FAlter,
der gerade beim Coden der MIDI-Datei-Speicherung ist.

tilman 30. Jun 2005 18:46

Re: MIDI Klavier
 
es gibt hier im Forum einen, nein, viele Nette Menschen. Einer davon ist turboPASCAL. Er hat sich die Mühe gemacht und die uralte Komponente überarbeitet. [/quote]
Das ist wirklich nett von ihm, aber hat er die Komponente vielleicht auch irgendwo bereitgestellt?


//Edit:
Sorry, jetzt hab ichs. habe nur dein Posting nicht verstanden... aber egal

Delphi-Quellcode:
 Hi,

es gibt hier im Forum einen, nein, viele Nette Menschen. Einer davon ist turboPASCAL. Er hat sich die Mühe gemacht und die uralte Komponente überarbeitet.

Wer bisher Probleme mit der Komponente hatte, eventuell sind sie ja jetzt passé (oder wie man das schreibt).
DAS kompiliert! Warscheinlich benutzt es nicht system.pas :) (das war ein Scherz!). Jedenfalls funzt es. Hast du die MIDI-s selbst geschrieben oder setzt es immer noch auf den oldy-kompos auf?

FAlter 30. Jun 2005 20:41

Re: MIDI Klavier
 
Hi,

Zitat:

Zitat von tilman
Hast du die MIDI-s selbst geschrieben oder setzt es immer noch auf den oldy-kompos auf?

Was meinst du damit?

Mfg
FAlter

FAlter 1. Jul 2005 12:30

Re: MIDI Klavier
 
Hi,

ihr könnt jetzt auch als MIDI speichern (nicht öffnen!). Aber leider scheint die MCI-Schnittstelle von Windows nicht korrekt zu arbeiten. Mit Winamp kann ich die MIDIs anhören, mit WMP oder delphis TMediaPlayer nicht. Ich habe mich bisher auf das mindeste beschränkt, die Dateien sollten also eigentlich überall laufen.
Wenn jemand weiß, was man tun muss, damit auch WMP die Datei läd wäre ich über Infos darüber sehr dankbar.

Mfg
FAlter

turboPASCAL 1. Jul 2005 15:35

Re: MIDI Klavier
 
Hi, FAlter.

Das ging ja fix mit der Implementierung von MIDI!

Dass das Midi-File nicht im WMP (Windows Media Player) wiedergegeben wird könnte daran liegen, das die (Wiedergabe)Geschwindigkeit nicht stimmt.

Midi mit Winamp ist ok.

Habe es in zwei Midi-Editoren Geöffnet (es wurde nicht gemeckert!) und jedes mal war die Geschwindigkeit auf dem untersten Grenzwert.

Nach welcher Midi-Docu. hast du die Routine geschrieben?


Noch was, ist mir auf dem **** eingefallen, wie währe es mit einem Polyphon–Handy-Midi-Editor.
Dein Pgr. erinnert mich irgend wie daran. :zwinker:

FAlter 1. Jul 2005 15:52

Re: MIDI Klavier
 
Hi,

Zitat:

Zitat von turboPASCAL
Habe es in zwei Midi-Editoren Geöffnet (es wurde nicht gemeckert!) und jedes mal war die Geschwindigkeit auf dem untersten Grenzwert.

Was genau meinst du mit Geschwindigkeit? Eigentlich habe ich nirgendwo den untersten Wert genommen.

Mein Header
Zitat:

'MThd'#$00#$00#$00#$06#$00#$00#$00#$01#$00#$08
hat zwar mit 8 einen sehr kleinen Wert, aber 1 wäre noch kleiner und langsamer ;) , also knann es nicht die Untergrenze sein.

Ich habe den Link verwendet, den du gepostet hast.

Mfg
FAlter

TOC 20. Jul 2005 16:44

Re: MIDI Klavier
 
Hi FAlter!

Vielen vielen Dank für Deinen Thread und Deine Komponenten! Damit hast Du mir Antworten auf einige Fragen gegeben die mich schon sehr lange beschäftigten!

Damit werden jetzt endlich Programme möglich die mit einem Algorhitmus Musik komponieren ohne das man die Noten eingeben muß. Man schreibt einfach ein Programm und das macht dann Musik! Endlich kann ich mir einen Midi-Sequencer basteln mit ungewöhnlichen Takt- und Zeit-Verhältnissen die man in der üblichen Notation nicht darstellen kann!

Ich habe Deine MidiOut-Komponente gründlich getestet. Bei meinem alten Rechner, Pentium III MMX 450 Mhz mit TerraTec-Soundkarte unter Windows ´98 SE, klappt Deine MidiOut-Komponente sowohl mit Delphi 3.0 als auch 7.0 und verschiedenen Devices einwandfrei :thumb: !

Hier im Internet-Cafe unter Windows XP kommt allerdings bei keiner Midi-Device auch nur ein Piep!
Keine Fehlermeldung erscheint!

Deine MidiIn-Komponente kann ich nit testen weil ich leider kein Midi-KeyBoard hab.


Allerdings habe ich da mal zwei Fragen:

1.) Mit welchem Code kann man das Panning eintstellen, also Stereo, ob der Sound Links oder Rechts kommen soll. Auch im Midi-Kurs habe ich dazu nix gefunden oder es nit verstanden...

2.) Gibt es auch eine Möglichkeit eine Note beliebieger Frequenz, z.B. 1000 Hertz, abzuspielen oder kann man immer nur festgelegte Frequenzen verwenden?


Grüße von TOC :stupid:

TOC 22. Jul 2005 17:02

Re: MIDI Klavier
 
Hi!

Ach so geht das also: Der zweite Daten-Wert der zusammen mit der Note bei 'NoteOn' übermittelt wird ist die Anschlagstärke, nicht die Lautstärke! Die Lautstärke des Kanals setzt man also mit '$Bn,$07,LautStärke' wobei 'n' die Kanalnummer (0-15) ist!

---------------------------------------------------------------------------------------------------

[Edit] Eine aktuelle verbesserte Version von MidiOut Test findest Du hier: Direkte Ansteuerung der Midi-Schnittstelle mit Delphi

Grüße von TOC :stupid: !

SMO 22. Jul 2005 17:19

Re: MIDI Klavier
 
Zitat:

Zitat von TOC
Allerdings habe ich da mal zwei Fragen:

1.) Mit welchem Code kann man das Panning eintstellen, also Stereo, ob der Sound Links oder Rechts kommen soll. Auch im Midi-Kurs habe ich dazu nix gefunden oder es nit verstanden...

2.) Gibt es auch eine Möglichkeit eine Note beliebieger Frequenz, z.B. 1000 Hertz, abzuspielen oder kann man immer nur festgelegte Frequenzen verwenden?

Hallo TOC!

1.) Das Panning (die Position im Stereofeld) setzt man ebenso wie die Kanallautstärke über eine "Control Change" Nachricht, also $Bn,$0A,Panning. Gültige Werte sind wie üblich 0..127, wobei 0 für total links und 127 für total rechts steht.

2.) Du kannst nicht direkt Noten mit beliebigen Frequenzen spielen. Allerdings könntest du Pitch Bending benutzen, um die Frequenz zu manipulieren.

TOC 22. Jul 2005 17:24

Re: MIDI Klavier
 
Hi!

Zitat:

Zitat von SMO
1.) Das Panning (die Position im Stereofeld) setzt man ebenso wie die Kanallautstärke über eine "Control Change" Nachricht, also $Bn,$0A,Panning. Gültige Werte sind wie üblich 0..127, wobei 0 für total links und 127 für total rechts steht.

2.) Du kannst nicht direkt Noten mit beliebigen Frequenzen spielen. Allerdings könntest du Pitch Bending benutzen, um die Frequenz zu manipulieren.

Ahh, vielen Dank :thumb: ! $0A also. Ich bräuchte mal ein Midi-Handbuch. Hast Du vielleicht einen Link für mich in dem diese ControlChange-Befehle genauer erklärt werden? Der in diesem Thread vorhandene Link schweigt sich zu dem Thema leider fast völlig aus :cry:!

Grüße von TOC :drunken: !

SMO 22. Jul 2005 17:40

Re: MIDI Klavier
 
Kein Problem, diese und diese Seite habe ich schnell mit google gefunden, da sind die Controller aufgelistet.

TOC 23. Jul 2005 12:29

Re: MIDI Klavier
 
Hi!

Zitat:

Zitat von SMO
Kein Problem, diese und diese Seite habe ich schnell mit google gefunden, da sind die Controller aufgelistet.

Ahh, vielen Dank :-D ! Ich hab mir alles downgelodet. Dann hab ich ja endlich neue Lektüre für weitere Studien :drunken: ! Das werd ich mir zuhause gleich mal alles in Ruhe durcharbeiten...

Grüße von TOC :stupid: !

horst 24. Jul 2005 00:29

Re: MIDI Klavier
 
Ich find echt GEIL..hab schon ein paar Musikszücke damit kreiert :)

dersaartan 20. Dez 2005 16:39

Re: MIDI Klavier
 
Erstmal: Super Programm! Echt gute Arbeit!

So, jetzt mal zu meinem Problem: ich arbeite mit Delphi 7 und habe die Midikomponente installiert, Midi In und Out werden auch angezeigt. Nur wenn ich die Klavier Projektdatei kompilieren will sagt der Compiler mir folgendes:

[Warnung] UMain.pas(309): Unsicherer Typ 'PChar'
[Warnung] UMain.pas(309): Unsicherer Typ 'PChar'
[Warnung] UMain.pas(600): Unsicherer Code 'ASM'
[Fehler] UMain.pas(602): Inline Assembler Syntaxfehler
[Warnung] UMain.pas(780): Der Vergleich ergibt immer Falsch

Ich blick da jetzt nicht durch, kann mir jemand helfen?

1ceman 20. Dez 2005 18:42

Re: MIDI Klavier
 
respekt, geiles programm....

FAlter 21. Dez 2005 13:21

Re: MIDI Klavier
 
Das mit dem PChar geht nicht anders, die MessageBox-Funktion der Win-API kommt nicht mit Delphi-Strings klar, daher... Du kannst ja stattdessen Application.MessageDlg nehmen.

Und das mit dem Assembler kam mir am einfachsten vor zur Umwandlung little endian <--> big endian.

Delphi 3 compiliert es problemlos, keine Ahnung, was D7 für Probleme hat (kennt es bswap nicht?)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Seite 1 von 2  1 2      

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