Entwickler-Ecke
Freeware Projekte - Metronom
JayEff - Fr 30.03.07 23:16
Titel: Metronom
Hallo Leute!
Wie so oft, hab ich ein relativ sinnbefreites Programm geschrieben, das mir irgendwann mal in den Sinn kam. Ich wusste sofort einen wundervollen Namen:
Das Jaytronom
Was tut es?
Es ist vorallem ein Taktgeber. Es soll, ähnlich einem richtigen Metronom, für Musiker eine Orientierung für eine gleichbleibende Spielgeschwindigkeit bieten.
...aber?
Nun. Es ist sehr ungenau, trotz Einsatz des TDXTimers. Die Ungenauigkeit erkennt man am deutlichsten, wenn man eine Frequenz von 60 bpm einstellt und das Interval, welches in ms angegeben wird, betrachtet: Es schwankt zwischen 1100 und 1200 ms! Bei 60 bpm sollte es natürlich konstant bei 1000 ms sein.
...ja, aber ist es dann nicht ... Schwachsinn?
Nein. Zumindest nicht unbedingt. Man kann auch mit einer kleinen Toleranz im Frequenzbereich leben ;)
Ausserdem wars ein interessantes Stück Geometrie den Zeiger zu zeichnen. Bei der Gelegenheit: Die Paintbox, auf die gezeichnet wird, kann man in der IDE beliebig vergrößern/-kleinern, alle Punkte werden zur Laufzeit aus den Width/Height-Eigenschaften errechnet.
Eine Anmerkung noch: Man erkennt ab und zu ein Flimmern. Bevor jemand fragt: DoubleBuffered ist true. ;)
Ironwulf - Sa 31.03.07 23:09
ich kann die exe nicht entpacken nur die wave und die bass.dll ...
Karlson - Sa 31.03.07 23:30
Also bei mir klappt das Entpacken und das Programm :gruebel:
JayEff, hast du Doublebuffered auf true? Weil bei mir flackert das ab und zu! :mrgreen: (nein, spass ;) )
Funktioniert gut, ich hab keine Fehler entdecken können. Ist bestimmt für Musiker sehr nützlich, wenn sie ihr metronom mal grad nich dabei haben.
@Ironwolf: Ich hab mit Winrar keine Probleme. Liegt wohl an deinem Packprogramm.
Saubäär - Sa 31.03.07 23:36
Karlson hat folgendes geschrieben: |
| Ist bestimmt für Musiker sehr nützlich, wenn sie ihr metronom mal grad nich dabei haben. |
Aber zufällig den Desktop ;o)
Ironwulf - Sa 31.03.07 23:37
ich hab die fehler beim entpacken
! Pfad\Jaytronom[1].zip: Unknown method in Jaytronom.exe
! Cannot execute "Pfad\Jaytronom.exe"
Karlson - Sa 31.03.07 23:40
Saubäär hat folgendes geschrieben: |
Karlson hat folgendes geschrieben: | | Ist bestimmt für Musiker sehr nützlich, wenn sie ihr metronom mal grad nich dabei haben. |
Aber zufällig den Desktop ;o) |
Hey, da gibts ne richtig coole
Erfindung [
http://www.flashbios.org/catalog/images/laptop_complete.jpg] jetzt. Du wirst es nicht glauben, aber da braucht man nicht mal mehr den Monitor mitzuschleppen! :lol:
Ne echt jetzt...gibt genug Leute (wohl hauptsächlich Studenten) die ihren Laptop oft mit rumschleppen - und wenn man sich dann das Metronom sparen kann ist das doch okay. Zumindest war das Teil meiner Schwester ziemlich schwer und unhandlich. Die wär bestimmt froh wenn sie sowas gehabt hätte!
Saubäär - Sa 31.03.07 23:42
Cool was das denn?? :wink:
Aber als Musiker kann ich dir sagen, dass man sowas wie ein Metronom nie und nimmer brauch! (meine Meinung)
Gruß
Ironwulf - Sa 31.03.07 23:43
schwer un unhandlich? die passn heutzutage in jede hosentasche :D
Karlson - Sa 31.03.07 23:44
Ja, schön toll! Ich wollte nur nett sein. Leck mich :lol: :mrgreen:
@Saubäär: Ich hab keine Ahnung wofür man das brauchen könnte - aber ich hab auch nur 6 Wochen Blockflöte in der Grundschule gespielt ;)
Saubäär - Sa 31.03.07 23:45
Karlson hat folgendes geschrieben: |
| Ja, schön toll! Ich wollte nur nett sein. Leck mich :lol: |
War das jetzt erst gemeint? Ich scherze doch nur. :wink:
Karlson - Sa 31.03.07 23:46
Ach was! Ich hab doch extra den LoL Smiley dazu gemacht ;)
Saubäär - Sa 31.03.07 23:48
Dann bin ich beruhigt.
Gute Nacht Freunde :D
JayEff - So 01.04.07 18:02
Saubäär hat folgendes geschrieben: |
| Aber als Musiker kann ich dir sagen, dass man sowas wie ein Metronom nie und nimmer brauch! (meine Meinung) |
Lass mich raten: E-Gitarre nach Tabulatur? :roll: Ich spiele seit über 10 Jahren Klavier und Saxophon und ich garantiere dir, ohne Metronom kannst du kein "anständiges" Instrument auf teamfähige Art und Weise lernen, da du nie lernst, im Takt zu spielen. Kaum kommst du in ein Orchester/Band und sollst dich z.B. am Schlagzeuger orientieren, wirst du nur Chaos verursachen :(
Edit: Aber das ist ja OT, also einich gehts hier ums Programm ;)
Wenn jemand ne Idee hat, wie man das leichte Flimmern wegbekommt, immer her damit. Ich hab einen DXTimer in dem per sinus/cosinus etc. immer die Linien per MoveTo/LineTo gezeichnet werden, mit einem Interval von 10 ms. Die Routine wird allerdings nicht bei jedem onTimer-Event ausgeführt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| Increment := 500 / Interval;
If ToRight Then alpha := alpha + Increment Else alpha := alpha - Increment;
If round(alpha * 3) <> round(prev_alpha * 3) Then Zeichnen; |
MrSaint - So 01.04.07 18:55
Hmm.. ich brauch sowas zwar nicht, aber ich würde zuerst versuchen, das ding genauer zu bekommen bevor ich versuch das flackern zu eliminieren ;) Ich schätze jetzt einfach mal, dass das laggen durch die zeichen-Methode erzeugt wird.. Dann würde ich einfach mal den Timer in einen eigenen Thread packen und im OnTimer das Klack-Geräusch abspielen lassen. Im Main-Thread würde ich dann mit einem zweiten Timer das Zeichnen machen. Den zusätzlichen Thread kannst du ja noch auf Realtime-Priority setzen und dann sollte es, denke ich, besser laufen. Dann hast du nämlich einen eigenen Thread, der häufiger Zeit bekommt als der Main-Thread und der gibt dein Geräusch aus. Und der Thread kann dann seine Timer-Messages (ich geh jetzt mal davon aus, dass OnTimer-Ereignisse per Message abgearbeitet werden) immer möglichst schnell abarbeiten, weil er ja sonst nix zu tun hat. Der Main-Thread muss ja nebenher auch immer noch malen und auf Klicks, MouseMoves etc. reagieren...
Wenn du aber Pech hast, sind die Timer einfach so ungenau :( Das wär natürlich blöd ;)
MrSaint
JayEff - So 01.04.07 19:03
MrSaint hat folgendes geschrieben: |
| Ich schätze jetzt einfach mal, dass das laggen durch die zeichen-Methode erzeugt wird.. |
Nope, schon ausprobiert.
Das Klicken wird übrigens dann ausgelöst, wenn der Zeiger die Mitte erreicht, nicht per Interval eines Timers.
Übrigens, wenn man die BPM auf ca 65 stellt, bekommt man recht genau 1000ms auf dem Hin- und 1015ms auf dem Rückweg des Zeigers. Also die Ungenauigkeit sollte sich "wegrechnen" lassen, muss mal sehn, ob das geht. Aber eigentlich ist die Ungenauigkeit kein Problem: Beim Spielen soll man nicht sich eine genaue Geschwindigkeit perfekt einprägen, sondern lernen, nach einer Vorgegebenen "Richtgeschwindigeit" zu spielen. Der Dirigent variiert am Ende sowieso.
Regan - So 01.04.07 20:07
Also, der fehler beim Entpacken kommt bei mir auch. Als ich es dann mit Winrar gemacht habe, funktionierte es plötzlich. na egal.
Bei mir wird kein Bild angezeigt,zumindest, wenn man das programm erst kleingezuogen und dann wieder großgezogen hat; Mein Vorschlag: Größe ändern verhindern.
Und noch was: Pausiert man das Programm und stellt man einen anderen wert ein, so wird der Interval addiert.
P.S. Du solltest den Timer nur laufen lassen, wenn das Programm aktiv ist.
JayEff - So 01.04.07 22:36
Regan hat folgendes geschrieben: |
| Als ich es dann mit Winrar gemacht habe, funktionierte es plötzlich. |
Nun, ich habs mit Winzip verpackt :gruebel:
Regan hat folgendes geschrieben: |
| Bei mir wird kein Bild angezeigt, [...]zumindest, wenn man das programm erst kleingezuogen und dann wieder großgezogen hat; Mein Vorschlag: Größe ändern verhindern[/...] |
Klar, bsSingle war schon geplant, nur... Dass dann das Bild nicht mehr angezeigt wird ...? :gruebel: Das find ich echt seltsam. Die Paintbox wächst beim Verändern der Fenstergröße nämlich nicht mit, oder so.
Regan hat folgendes geschrieben: |
Und noch was: Pausiert man das Programm und stellt man einen anderen wert ein, so wird der Interval addiert.
P.S. Du solltest den Timer nur laufen lassen, wenn das Programm aktiv ist. |
Das ist seltsam... Wenn man auf Start/Stop klickt wird der Timer normalerweise Enabled:= not Enabled. :gruebel:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!