![]() |
AW: Virtual Piano
Zitat:
Zitat:
Delphi-Quellcode:
Bytes[CurrentByte] := round(MidiTracker.Tempo / 300 * 127); // Geschwindigkeit
Das Tempo byte
Delphi-Quellcode:
// Anzahl der Delta-Zeit sekunde pro Viertelnote
Bytes[14] := SmallNoteData[SmallNDSelected].Ticks;
Delphi-Quellcode:
Diese ergeben sich aus..
// Nenner (2 = 1/4, 3 = 1/8, 4 = 1/16, etc.)
Bytes[35] := SmallNoteData[SmallNDSelected].Nenner; Bytes[36] := 24; // Ticks per Quarter Note // 8 = 32 Note in 1/4 Note; Bytes[37] := SmallNoteData[SmallNDSelected].Value;
Delphi-Quellcode:
// Kleinste Noten
SmallNoteData[0].Name := '1/4 Note'; SmallNoteData[0].Value := 1; SmallNoteData[0].Nenner := 2; SmallNoteData[0].Ticks := 48; SmallNoteData[1].Name := '1/8 Note'; SmallNoteData[1].Value := 2; SmallNoteData[1].Nenner := 3; SmallNoteData[1].Ticks := 24; SmallNoteData[2].Name := '1/16 Note'; SmallNoteData[2].Value := 4; SmallNoteData[2].Nenner := 4; SmallNoteData[2].Ticks := 12; SmallNoteData[3].Name := '1/32 Note'; SmallNoteData[3].Value := 8; SmallNoteData[3].Nenner := 5; SmallNoteData[3].Ticks := 6; Zitat:
Zitat:
Es sei denn du veränderst die Geschwindigkeit.
Delphi-Quellcode:
// Bei einem Tempo von 120 BPM ist die Länge einer 1/4 Note 500ms.
// Bei 130 BPM (120/130 BPM =) 0.92 * 500ms = 461ms. TempoWait := ((120 / MidiTracker.Tempo) * 500) / (BeatProMaes[BeatPMSelected].Value) / SmallNoteData[SmallNDSelected].Value;
Delphi-Quellcode:
// Takt
BeatProMaes[0].Name := '2/2'; BeatProMaes[0].Value := 4; BeatProMaes[1].Name := '3/2'; BeatProMaes[1].Value := 6; BeatProMaes[2].Name := '4/2'; BeatProMaes[2].Value := 8; BeatProMaes[3].Name := '2/4'; BeatProMaes[3].Value := 2; BeatProMaes[4].Name := '3/4'; BeatProMaes[4].Value := 3; BeatProMaes[5].Name := '4/4'; BeatProMaes[5].Value := 4; BeatProMaes[6].Name := '5/4'; BeatProMaes[6].Value := 5; BeatProMaes[7].Name := '6/4'; BeatProMaes[7].Value := 6; BeatProMaes[8].Name := '7/4'; BeatProMaes[8].Value := 7; BeatProMaes[9].Name := '9/4'; BeatProMaes[9].Value := 9; Das sind die Namen und dazugehörige Values die du oben links im MidiTracker siehst. Pulse per 1/4 Note
Delphi-Quellcode:
Info.MIDINotes[Channel_, N-1].Ppqn := Info.MIDINotes[Channel, N-1].Length / Info.Ticks;
Hoffe mal das sind genug Infos. ;) Wenn hier ein Fehler ist kein problem dann sage es mir. gruss |
AW: Virtual Piano
Liste der Anhänge anzeigen (Anzahl: 1)
Tu mir leid aber die neue version, funct Dein Grid nicht mehr richtig:cry:
Habe dir mal 3 png zum anschauen rangehangen Hab nur 1Takt gezeichnet und dann mal die Auflösung gewechselt ! grid1: so hab ich angefangen, 1/16, Tempo stimmt nicht grid2: auf 1/4 umgestellt, Anzeige stimmt nicht, Tempo stimmt grid3: wieder zurück auf 1/16, Anzeige stimmt nicht mehr, Tempo stimmt :gruebel::gruebel::gruebel: Was soll ich jetzt, auf das was Du oben geschrieben hast, Antworten? Gruss |
AW: Virtual Piano
Zitat:
Sehe schon muss da noch einiges fixen. Das sich die Noten dem 1/4 Takt nicht mehr anpassen (haben sie das schon mal?) habe ich auch bemerkt. Er ignoriert den Sprung von 1/4 zu 1/8 und aktualisiert da nicht richtig wenn man mit 1/4 beginnt. Muss mir noch mal eine älter version anschauen. Zitat:
So kannst aber sehen das ich die richtigen Ticks usw.. übergebe. gruss |
AW: Virtual Piano
Zitat:
Zitat:
Das Du es richtig berechnest:thumb: klar sonst würde gar nichts funcen:P gruss |
AW: Virtual Piano
So sollte jetzt endlich mal richtig funktionieren.
Noten werden jetzt alle korrekt hochgezählt runter genauso wobei die Geschwindogkeit gleich bleibt. Also *.mtf Datei. Zitat:
Manchmal bin ich auch ohne die Hilfe von hier aufgeschmissen :) Top Forum (User) !! Muss mal gesagt werden. Zitat:
Ob ich nachher beim einladen der MidiDatei diese mit 48/24/12/6 parse macht einen großen Unterschied. Nämlich den das die Noten dann kürzer werden also schneller sind. gruss |
AW: Virtual Piano
Zitat:
gruss |
AW: Virtual Piano
Zitat:
Verwendest du falsche Datei? Noch besser geht es nicht das gleiche Rückwärts. ;) gruss |
AW: Virtual Piano
Hallo, ich lade keine Datei. Beim laden von 'alle meine entchen' funct es.:wink:
Ich will gerade einen neuen Sound machen, da funct es nicht bei mir! gruss |
AW: Virtual Piano
Zitat:
Funktioniert ohne probleme .. allerdings fange ich bei 1/4 an und vergrößere dann. PS: Aber achtung du kannst nicht mehr nach 1/4 zurückschalten wenn du 1/16 oder kleiner eingegeben hast Ich sagte ja schon kann zur zeit 7.5 nicht auf mein grid umlegen. Dazu muss ich das erst auf single umstellen. Die Note müßte dann 25% kleiner als 12 gezeichnet werden. Bin mal gespannt wie der wird ;) PS2: Hab mir das nochmal angeschaut das ist sehr kompliziert die Daten festzuhalten nach dem du auf das Grid gezeichnet hast und dann wieder zurückschaltest.:gruebel: Eventuell müßte ich die Daten dann Temporär abspeichern. (Oder ins ClipBoard kopieren) Das geht auf die Resourcen. gruss |
AW: Virtual Piano
Mal so als Idee, ich weiss ist nonvcl:wink:
Die gezeichnete länge, muss doch irgenwo berechnet werden. Mal so theoretisch: eine 4tel Note(Balken) 1/4 ist 20pixel eine 4tel Note 1/8 ist 40pixel eine 4tel Note 1/16 ist 80pixel eine 4tel Note 1/32 ist 160pixel eine 4tel Note 1/64 ist 320pixel eine 4tel Note und nun das ganze zurück rechen So nun gehen wir noch ein Schritt weiter! Bei 1/4 eine 4tel Note ist 20pixel, hast Du jetzt sogar die Möglichkeit ne 8tel darzusellen 1/4 eine 8tel Note hätte jetzt 10Pixel 1/4 eine 16tel Note hätte jetzt 5pixel 1/4 eine 32tel Note hätte jetzt 1pixel 1/4 64tel Note hätte jetzt 1pixel Wenn ich jetzt bei der Berechunng keinen fehler habe? aber soll ja als Vorlage dienen. Frage mich also, an welcher Stelle Du nun hängst? Gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr. |
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