Jag är musiker och vill konstruera en metronom i VB6. Metronom är en takthållare i musiken och jag antar att timers skall användas för detta. Förklarar inte här hur en metronom fungerar utan hoppas på hjälp från någon som redan har kännedom. Det kanske redan finns en OCX att tillgå någonstans, i så fall är ett tips helt OK. Det finns en kontroll i VB som heter Timer, den gör en snutt kod Hej, Hej Om du testar de exempel som givits men finner att Vb's Timer inte är tight nog (jag har den erfarenheten som både programmerare och musiker) så kan jag rekommendera CCRP timern som ger bättre upplösning: Hej ett väldigt vanligt tempo(beat) ligger runt 100-110. > Stämmer det Ola skriver, testade Timern :s minvärde 56 ms Hej tack TT du lyfte bort ett dunkelt skynke MIDI (Musical Instrument Digital Interface) har (skall/bör ha) en upplösning på 1 ms. Och det är ändå en gammal sunkig teknologi från tidigt 80-tal. Skall man göra en metronome vill man asbolut ha denna exakthet, annars blir det ganska meningslöst... Den timer jag tipsat om CCRP: Hej igen Så här ser en metronom ut: Hej Hej Tyvärr Sven. Den går fel. Jag har gjort mätningar med din favoritklassmodul CStopWatch. Jag kan skicka över min testkod om du är intresserad. Hej > Jo jag är medveten att den slirar på några sekunder hit och dit. Oki på det TTMetronom i VB6
Hör av er, ni som kanske är både musiker och programmerare ..Sv: Metronom i VB6
med givna intervaller. Lägg en timer på ett formulär och klistra in detta:
/johan/
--------------------------
Option Explicit
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Beep
End SubSv: Metronom i VB6
VB:s timerkontroll borde fungera väl för detta ändamål. Lägg ut timerkontrollen på ett formulär, sätt Interval-propertyn till
Timer1.Interval = (BPM/60)*1000 ' Beats per minute?
Har för mig att man jobbar med BPM i musik, right? Om inte annat så anges timerkontrollens interval i millisekunder dock med en noggrannhet som är något lägre än så, men det ska inte vara några problem i din applikation.
Starta sedan timern :
Timer1.Enabled=true ' starta timern
Nu triggas eventet Timer1_Timer (tror det heter så) BPM gånger per minut.
Lycka till
/Per HultqvistSv: Metronom i VB6
Intressant projekt.Vill du ha både bild och ljud.
Kan du ange ett BMP som man har i mittenläge
som man kan bygga kring,eller min och max beat
så skall jag skruva ihop ett exempel.
mvh
SvenSv: Metronom i VB6
http://www.mvps.org/ccrp/controls/ccrptimer6.htm
.OlaSv: Metronom i VB6
Stämmer det Ola skriver, testade Timern :s minvärde 56 ms
18 beat/sek räcker nog inte. Låter konstigt.
Kan någon musikkunnig ange ett beat som är realistiskt ?
undrar
SvenSv: Metronom i VB6
Jämmfört med t ex hastig booogie som kan ligga på 160-180 beat.
Väldigt längsam ballad kan gå i 45 -60 beat.
Hjälper detta er?Sv: Metronom i VB6
> 18 beat/sek räcker nog inte. Låter konstigt.
> Kan någon musikkunnig ange ett beat som är realistiskt ?
Tja, säg en 120 slag i minuten kan väl vara ganska normalt. Detta blir ju bara 2 slag i sekunden, och det klarar ju timern av att prestera, tänker man då, men nu är det ju emellertid så att dessa slag måste ligga exakt rätt i tid. 120 slag i minuten blir 1 slag var 500:e millisekund. Man kanske skulle kunna acceptera en felmarginal här på 1 ms, men absolut inte mycket mer. Höjer du tempot till 121 slag i minuten så ska det ju vara ett slag var 496:e millisekund, så det är inte mycket att spela på. Och man hör skillnad mellan 120 och 121 bpm (eller i alla fall jag gör det). Dessutom om timern skulle ligga och variera mellan (säg) 119 och 121 bpm så skulle den ju vara värdelös som metronnom, för man använder ju metronom just för att slippa såna förändringar, för att det ska ligga exakt.Sv: Metronom i VB6
Tycker att det är ett intressant projekt, skippar Timerkontrollen
det blir API QueryPerformanceCounter mitt tips [QueryPerformanceCounter].
Någon som kan tipsa om en bild på en Metronom.
mvh
SvenSv: Metronom i VB6
http://www.amazon.com/exec/obidos/tg/detail/-/0764504487/qid=1036534708/sr=8-1/ref=sr_8_1/002-4758008-1829615?v=glance&n=507846
..använder multimedia-timers dvs en speciell klockkrets för MIDI som finns på ditt ljudkort och som är oberoende av systemklockan. Upplösning på 1 ms. (men man kan inte få så bra upplösning i VB ändå. Du kan få reda på att ett visst antal ms har fölupit men du kan inte säga att efter exakt 6 ms då ska jag göra det och det och det, eftersom du inte har den makten över systemet i VB. Man kan aldrig ta mer tid än vad man får. Detta gäller i synnerhet Visual Basic-program)
.OlaSv: Metronom i VB6
Det var väl ett djä... tjat om
>..använder multimedia-timers dvs en speciell klockkrets för MIDI
Du skriver 1 ms precis som om det var något enastående.Gammal skåpmat.
Sven som använder QueryPerformanceCounterSv: Metronom i VB6
http://www.midimaster.de/metronom.gif
För övrigt samma modell som jag har. Man skruvar upp den med fjädern nere till höger, och sen flyttar man den lilla vikten för att bestämma takten. Uppåt blir det långsammare och nedåt snabbare. Sen är det bara att puffa till den så den börjar pendla fram och tillbaka åt sidorna. Varje gång den passerar mitten är det "ett slag".Sv: Metronom i VB6
Guld TT
Jag kommer att göra en animation med ljudeffekt från en ResourceFile
Jag skall göra den i både VB 6 och Delphi får vi se hur det blir.
Ha det Du spårar inte ur ;-)
SvenSv: Metronom i VB6
Har lagt upp ett grundkoncept på Metronom i FilArean
Ta upp handsken och bygg vidare med animation,jag orkade inte.
Programarkivet:Metronom
/Sven Sv: Metronom i VB6
.OlaSv: Metronom i VB6
Jo jag är medveten att den slirar på några sekunder hit och dit.
Undrar om det är beroende på datorer.Timerkontrollen är int bra.
Märkte att det blir noggrannare med exefilen.
Hur som hels så tror jag man får införa en corrvariabel för kalibrering.
Ja skicka gärna din berömda CStopWatchlösning.
Jag skall "modda" med QueryPreformanCounter
Min lösning är ett grundkoncept med förhoppning att någon
tar sig an problemmet och gör det proffsigt.
Ha det
SvenSv: Metronom i VB6
Den slirar tyvärr lite för mycket för att kunna användas. Jag behövde inte använda något program för att mäta utan jag hörde tydligt att den gick lite fel. Men man får ju se det som en kul grej.
På en riktig metronom är det dock inte klickljudet som styr, utan istället är det när man ser pendeln passera mitten. Det skulle ju inte funka med ljud, för det överröstas ju snabbt när man börjar spela.Sv: Metronom i VB6
Man kan använda den när man sitter på testcykeln
och skall hålla takten.Men i allafall skall jag använda
en bättre Timer bara för att testa vilken precisision man kan uppnå.
/Sven