AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Virtual Piano
Thema durchsuchen
Ansicht
Themen-Optionen

Virtual Piano

Ein Thema von EWeiss · begonnen am 8. Mär 2011 · letzter Beitrag vom 13. Apr 2019
Antwort Antwort
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Virtual Piano

  Alt 18. Mai 2011, 17:39
jetzt startet wieder

Deine exportierte 'Freude' im normalen Mediaplayer10 abgespielt veryslow

Eingelesen in AnvilStudio2011 und Macaw, beide zeigen zwar an 4/4Takt aber 2/2 Noten, keine 4 4tel Noten. Tempo ist ja klar das es dann nicht stimmt.

EDIT:
Was hast Du denn jetzt gemacht mit deinem Prog!?
Lese ich jetzt meine 'Freude' ein stimmt ja gar nichts mehr weder die Anzeige noch Tempo
Dein mitgelieferte 'Glücklich' auch nicht'
Gruss
Miniaturansicht angehängter Grafiken
freude.png  

Geändert von alfold (18. Mai 2011 um 17:56 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Virtual Piano

  Alt 18. Mai 2011, 17:58
jetzt startet wieder

Deine exportierte 'Freude' im normalen Mediaplayer10 abgespielt veryslow

Eingelesen in AnvilStudio2011 und Macaw, beide zeigen zwar an 4/4Takt aber 2/2 Noten, keine 4 4tel Noten. Tempo ist ja klar das es dann nicht stimmt.

Gruss
Meine alte exportierte Freude funktioniert nicht richtig.
AnvilStudio zeigt den Takt nicht automatisch an. auch bei mir nicht.
Dort steht der Takt der zueletzt eingestellt wurde.

Wenn du exportierst achte darauf das du das richtige Format verwedenst ansonsten ist die Datei Defekt.
Also bei freude ist es 1/4, 4/4.
Das hat nichts mit der einstellung des grid zu tun bei dem du auf 1/16 gehen kannst um 16tel Noten zu addieren.
Vor dem exportieren dann wieder zurück nach 1/4 schalten ansonsten läd Anvil die Datei nicht!

Deine Datei ist sehr gut gemacht da ich damit MidiTracker testen kann.
Beim importieren der Freude in Miditracker habe ich ein problem was aber nicht an der Datei liegt.
Mein grid ist ausgelegt auf 12X12 Felder.

Wenn ich jetzt bei einem 1/4 Takt eine 16tel Note einlesen will gibt es probleme
da eine 16tel Note den wert 7.5 beinhaltet der ist aber nicht Teilbar durch 12 also wird er falsch gezeichnet
Das hat zur folge das der Sound dann nicht mehr stimmt.

Da muss ich noch einiges tun. Hilft wohl nur noch das Grid auf Double/Single auszulegen.

Zu deinem Edit:
Vergess alle alten exportierten Dateien..
Die sind nicht mehr gültig da Falsch.
Zur Freude beim importieren habe ich gerade schon was geschrieben.

gruss
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Virtual Piano

  Alt 18. Mai 2011, 19:11
Zitat:
Also bei freude ist es 1/4, 4/4.
Das hat nichts mit der einstellung des grid zu tun bei dem du auf 1/16 gehen kannst um 16tel Noten zu addieren.
Vor dem exportieren dann wieder zurück nach 1/4 schalten ansonsten läd Anvil die Datei nicht!
Machst Du da nicht ein Fehler?
Die Auflösung die ich stehen habe 1/16tel oder 1/32tel darf nicht mit dem Tempo der Midifiles zu tun haben. Auch wenn ich die Noten Zeichnen muss, einspielen per Tastatur kommt ja erst später.
Darf also auch nichts mit dem Export zu tun haben.
4/4Takt bei 120BPM bleibt auch so, egal wie die Auflösung ist und egal ob du ein eigenes Format verwendest und es dann exportierts. Denn das (4/4Takt 120BPM) sind die Werte die im Mididfile drinsteht und nicht welche Auflösung ich für die visualisierung verwende.
Denn dies Beispiel(4/4Takt 120BPM) dient zur Berechnung wie lange eine Note gespielt wird und danach richtet sich die Darstellung.

Also irgend wie verstehe ich Deine interne Umsetzung nicht

gruss alfold
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Virtual Piano

  Alt 18. Mai 2011, 19:34
Zitat:
Machst Du da nicht ein Fehler?

Zitat:
Die Auflösung die ich stehen habe 1/16tel oder 1/32tel darf nicht mit dem Tempo der Midifiles zu tun haben.
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:
  // 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;
Diese ergeben sich aus..

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:
Darf also auch nichts mit dem Export zu tun haben.
Wie soll ich sonst der anderen Anwendung mitteilen welche Noten ich spiele?

Zitat:
4/4Takt bei 120BPM bleibt auch so
Habe nichts anderes behauptet solange du in dem Bereich bleibst.
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

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

Geändert von EWeiss (18. Mai 2011 um 20:01 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Virtual Piano

  Alt 18. Mai 2011, 20:58
Tu mir leid aber die neue version, funct Dein Grid nicht mehr richtig
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



Was soll ich jetzt, auf das was Du oben geschrieben hast, Antworten?

Gruss
Angehängte Dateien
Dateityp: zip grid.zip (1,42 MB, 24x aufgerufen)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Virtual Piano

  Alt 18. Mai 2011, 21:14
Tu mir leid aber die neue version, funct Dein Grid nicht mehr richtig
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


Gruss
Danke ..
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:
Was soll ich jetzt, auf das was Du oben geschrieben hast, Antworten?
Eigentlich nichts ..
So kannst aber sehen das ich die richtigen Ticks usw.. übergebe.


gruss

Geändert von EWeiss (18. Mai 2011 um 21:17 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Virtual Piano

  Alt 18. Mai 2011, 21:43
Zitat:
Wenn du exportierst achte darauf das du das richtige Format verwedenst ansonsten ist die Datei Defekt.
Also bei freude ist es 1/4, 4/4.
Das hat nichts mit der einstellung des grid zu tun bei dem du auf 1/16 gehen kannst um 16tel Noten zu addieren.
Vor dem exportieren dann wieder zurück nach 1/4 schalten ansonsten ....
Aber dieses hab ich nicht verstanden. Das Exportieren hat doch nichts mit der Einstellung im Grid zu tun, ausser ebend 4/4 und Speed(BPM).

Zitat:
Er ignoriert den Sprung von 1/4 zu 1/8 und aktualisiert da nicht richtig wenn man mit 1/4 beginnt.
umgekehrt genauso

Das Du es richtig berechnest klar sonst würde gar nichts funcen

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Delphi-Forum.de - Array statisch/dynamisch oder TList fr Midi-Events This thread Refback 20. Sep 2011 14:59

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:47 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