Autor |
Beitrag |
Zyrano
Hält's aus hier
Beiträge: 15
|
Verfasst: Di 15.03.11 22:29
Hallo liebe Leutz,
nachdem ich gestern so riesen Hilfe bekommen habe, möchte ich euch gern das Resultat meiner ersten Arbeit mit Delphi zeigen.
Es ist ein Metronom, indem man die BPM-Zahl eingeben kann, und das Programm anhand dessen mit einem Klickgeräusch den Takt vorgibt. Sehr praktisch für Musiker die einen Metronom verwenden.
Bitte berücksichtigt, dass das wirklich mein erstes Programm ist was ich fertiggestellt habe (nach der Lehrzeit mit "Delphi für Kids").
Ich hoffe es gefällt =)
EDIT1:
Habe das Programm grade auf Version 0.2 geupdated.
Hier der Changelog (v 0.2):
Buttons zur Korrektur der BPM hinzugefügt. Nun kann während des laufenden Programms die Variable neu berechnet werden und passt somit die Geschwindigkeit an.
Greetz Zyrano (KC-Worx)
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von Zyrano am Mi 16.03.11 00:33, insgesamt 5-mal bearbeitet
|
|
FinnO
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Di 15.03.11 22:39
Gefällt
Auch die Animation ist ganz nett - Bedingt durch den Timer gibt es zwar nicht gerade 100%ige Taktgenauigkeit, aber da kann man nun wirklich nichts so einfach dran ändern. Was jetzt noch ein super Feature wäre, wäre die betonten Zählzeiten für verschiedene Taktarten durch einen anderen Ton zu kennzeichnen, beispielsweise ein Piep - im 4/4 Takt wäre das dann auf der eins und auf der 3....
LG,
Finn Ole
|
|
ALF
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Di 15.03.11 22:58
jo, gefällt
Beim start gibt es ne Verzögerung.
Alles andere hat Finno gesagt.
Weiter so
Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Zyrano
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 16.03.11 00:25
Neue Version hochgeladen !
Changelog siehe Post#1 =)
|
|
ALF
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Mi 16.03.11 00:37
kleinen Bug gefunden
Wenn auf Stop und die Led rechts ist an und ich gehe auf Start, kommt erst sound, Led rechts bleibt obwohl links kommen müsste. Musste noch mal schauen.
ALf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 16.03.11 14:12
Ich auch:
Bei hoher CPU-Last hört man den Sound nach dem Zufallsprinzip.
Hast Du den Multimedia-Timer genommen?
|
|
ALF
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Mi 16.03.11 14:32
naja, glaube selbst ein Mediaplayer würde bei hoher CPUlast nicht mehr sauber abspielen.
Wobei ich gerade mal getestet habe, 70% Last auf 3 kerne gab es mal kurz nen aussetzter(WinXP pro)
Ansonsten keine Probleme damit, lief danach sauber weiter
Es wird sicherlich kein Musiker ein Metronom starten, neben bei COD4 spielen und ein riesen Prog compilieren und was was ich noch alles machen
ALf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Zyrano
Hält's aus hier
Beiträge: 15
|
Verfasst: Mi 16.03.11 19:34
hathor hat folgendes geschrieben : | Ich auch:
Bei hoher CPU-Last hört man den Sound nach dem Zufallsprinzip.
Hast Du den Multimedia-Timer genommen? |
Hi,
nein ich habe Timer benutzt.
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 17.03.11 10:39
Ich habe eine interessante Komponente gefunden: ThreadedTimer.
Die ThreadPriority lässt sich einstellen.
Beispielprogramm incl. Komponente (incl.Core2MaxPerf11.exe von ct) im Anhang.
Man stellt auch hier "Anomalien" fest, aber nicht so extrem!
Der Timer nutzt diese Funktion:
msdn.microsoft.com/e...32%28v=vs.85%29.aspx
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ThdTimer, StdCtrls;
type TForm1 = class(TForm) ThreadedTimer1: TThreadedTimer; Label1: TLabel; procedure ThreadedTimer1Timer(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ThreadedTimer1Timer(Sender: TObject); begin Windows.Beep(1500,25); If Label1.color=clLime then Label1.color:= clYellow else Label1.color:=clLime; end;
end. |
Einloggen, um Attachments anzusehen!
|
|
ALF
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Do 17.03.11 17:53
Mh... da kann er Windowsbordmittel nehmen. Seine Exe hihgprior setzen
Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|