login  Naam:   Wachtwoord: 
Registreer je!
 Forum

tijdsverschil

Offline stitjen - 24/03/2009 19:28
Avatar van stitjenNieuw lid Ik probeer een website te maken waar je zelf drum-rifs kunt maken. Dit doe ik door 3 arrays te maken (bas, snare en hihat), die loop ik af met een for-loop en kijk of hij moet spelen, dan zorg ik met de functie setTimeout dat het juiste geluid op het juiste moment afspeelt.

Opzig gaat alles goed zolang ik 'metronoom' geen te hoge waarde geef (=sneller) maar als hij te hoog gaat komt er (heb ik de indruk) een onregelmatigheid. Ik denk dat de oorzaak ligt dat de for-loop te veel tijd in beslag neemt.
Weet iemand hoe ik dit weg krijg?

  1. snelheid = 60/metronoom*1000;
  2. for(var i=0; i<max; i++){
  3. if(bas[i]==1){
  4. tijdPlay('kick', (i+1)*snelheid);
  5. }
  6. if(snare[i]==1){
  7. tijdPlay('snare', (i+1)*snelheid);
  8. }
  9. if(hihat[i]==1){
  10. tijdPlay('hihat', (i+1)*snelheid);
  11. }
  12. }


PS tijdPlay is een functie waar ik een geluid afspeel met vertraging.

4 antwoorden

Gesponsorde links
Offline Rik - 24/03/2009 19:43
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
stitjen schreef:
Ik denk dat de oorzaak ligt dat de for-loop te veel tijd in beslag neemt.
Ja, dat zal de oorzaak zijn.

Wat staat er precies in je tijdPlay functie? Als ik dit:
  1. alert('ervoor')
  2. setTimeout('test()', 1000);
  3. alert('erna')
  4. function test() {alert('test')}
Uitvoer krijg ik ervoor-erna-test. Dus je zou zeggen dat een timeout het script niet ophoudt.
Offline stitjen - 24/03/2009 19:49 (laatste wijziging 24/03/2009 19:49)
Avatar van stitjen Nieuw lid
  1. function tijdPlay(naam, tijd) {
  2. setTimeout("soundManager.play('"+ naam +"')", tijd);
  3. }


Het is ook niet echt een groot verschil maar het is er.
Kijk hier even: http://stienoo.be/noten/
Gewoon op de button klikken en dan zou je het moeten horen.
Offline vinTage - 24/03/2009 21:31 (laatste wijziging 24/03/2009 21:32)
Avatar van vinTage Nieuw lid Ik heb geen idee waardoor het "stottert" maar hier klinkt het voor geen meter en de maatvastheid trekt in de verste verte nergens op.
In je js code (die ik maar even heel vluchtig bekeek) maak je ook gebruik van een flash bestandje, dus eerst ga je via javascript naar flash en dan pas hoor je wat er moet gebeuren, dat zijn dus al sowieso 2 keer data verzenden/bestanden aanspreken....

Waarom maak je dat hele dingetje niet gewoon in flash ?
Dan kan je ook gewoon kick/snare/hh "notes" draggen droppen/evt quantizen etc etc

Je kan dan "redelijk" simpel zelf een sequencertje bouwen.
Ik denk dat dat met flash makkelijker is dan met js.
Offline stitjen - 25/03/2009 13:49
Avatar van stitjen Nieuw lid Eigelijk wou ik het oorspronkelijk helemaal in javascript maken maar in een eerder topic hadden ze mij gezegd om dat via dat flash bestand te doen. (gaat blijkbaar niet volledig in javascript?) Ik wil dus niet met flash leren werken (wat ik helemaal niet kan) maar met javascript en dat leek me een tof eerste project.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.189s