Avatar billede rebse Nybegynder
12. december 2001 - 11:08 Der er 21 kommentarer og
1 løsning

loop og add beat

Hej!
Uha, jeg sidder og roder med et loop.

På loopet kan brugeren adde nogle beats og ekstra instumenter.
Det går fint nok, bortset fra at beatet jeg adder;
ørst må starte hver gang loopet starter forfra...

er det mon noget med, at definere længden og..:
Unit of Measure(in frames) = (60/bpm)*fps
0/120*10=1

eller hva\'....
????
Avatar billede nikolajdu Nybegynder
12. december 2001 - 11:31 #1
eller hva´ selv.... Jeg forstår ikke helt hvad du mener i dit script.
Avatar billede rebse Nybegynder
12. december 2001 - 11:52 #2
var bare en lilel tanke..at definere længden af loopet og så tælle...Men bare glem scriptet

hva\' gør jeg?
Avatar billede rebse Nybegynder
12. december 2001 - 13:36 #3
uuuhm er der slet ingen der kan hjælpe?
Avatar billede nikolajdu Nybegynder
12. december 2001 - 13:37 #4
Jeg er sgu helt blank i dit problem. :(
Avatar billede lingoman Nybegynder
12. december 2001 - 13:39 #5
Er det fordi du gerne vil synkronisere forskellige lyde ?
Avatar billede rebse Nybegynder
12. december 2001 - 13:41 #6
ja!!
Avatar billede lingoman Nybegynder
12. december 2001 - 14:01 #7
Det kan godt lade sig gøre med lidt actionScript. Sagen er at man skal tage højde for den latenstid der opstår mellem sound.start() kommandoen og tidspunktet man faktisk hører lyden. Man kan undgå latenstiden ved at kickstarte lydmixeren med en lydfil uden lyd, og derefter starte, stoppe, starte lydene der skal mixes.

// get f5\'s audio engine to prebuffer the samples in memory
for (var i=1; i<max; i++){
  eval(\"sound\"+i).start();
}
// now stop them
for (var i=1; i<max; i++){
  eval(\"sound\"+i).stop();
}
// start them, since they\'re all prebuffered and everything\'
// in sync
for (var i=1; i<max; i++){
  eval(\"sound\"+i).start();
}

dette eksempel kan høres her med 12 flash sync. lyde
http://www.hyperphonic.com/noizeplay/mvm/mvm_launch.html


En anden meget avanceret flash lydmixer lavet af Dave Bronz

// playlist
var loopList = new Array();
loopList = [\"ding\",\"loop1\",\"loop4\",\"loop8\",\"loop6\",\"loop3\"];

// mixer
function mixer (tracks) {
        this.trackList = tracks;
        this.track = new Array();
        this.master = new Sound();
}

// mixer methods

mixer.prototype.Init = function () { for (i=0; i<this.trackList.length;
i++) {attachMovie(\"dummy\", \"Fader\"+i, 1000+i);this.track[i] = new
Sound(\"_root.Fader\"+i);this.track[i].attachSound(this.trackList[i].toString());}this.track[0].setVolume(0);};

mixer.prototype.Play = function () { this.startTime = getTimer();for (i=0;
i<this.trackList.length; i++)
{this.track[i].start(((getTimer()-this.startTime)/1000),
10000);}_root.sync=\"sync in \"+(getTimer()-this.startTime)/1000;};


// create mixer
aMix = new mixer(loopList);

//init tracks
aMix.Init();

//playit in sync
aMix.Play();

stop ();

Håber det kan bruges
mvh geo
Avatar billede rebse Nybegynder
12. december 2001 - 14:05 #8
yo!
det er ret avanceret at gennemskue uden eksemplet:
http://www.hyperphonic.com/noizeplay/mvm/mvm_launch.html

linket virker ikke herfra
Avatar billede lingoman Nybegynder
12. december 2001 - 14:17 #9
lydene som mixes i det første eksempel hedder

\"sound1\"
\"sound2\"
\"sound3\"
\"sound4\"
\"sound5\"
\"sound6\"
\"sound7\"
\"sound8\"
\"sound9\"
\"sound10\"
\"sound11\"
\"sound12\"

fordi  (max = 12)

Så bliver lydene loaded ind via soundX.start()
Standset med det samme via soundX.stop()
Genstartet i sync (muligt fordi de allerede er loaded) via  soundX.start()

linket med eksemplet virkede for i måned siden da jeg afprøvede men ser ikke ud til at være aktiv længere, men princippet er enkelt nok så man kan bruge det selv.

Det andet eksempel opnår synkronisering med 1/1000 sek nøjagtighed.
mvh geo
Avatar billede barklund Nybegynder
12. december 2001 - 14:52 #10
det skal lige nævnes, at de to prototype funktioner da vist ikke behøver at defineres som de gør, men lige så vel kan defineres inden i function mixer med

this.Init = function() {blabla};

de bruges jo kun det ene sted.

bare for kodens overskuelighed og redigerbarhed...
Avatar billede barklund Nybegynder
12. december 2001 - 14:56 #11
noget andet jeg kom til at tænke på, er at arrays kopieres by reference, så hvis man initer sit mixerObject som ovenfor, derefter ændrer loopList, så ændrer man også mixerObject\'ets trackList - eller det ville man i hvert fald gøre i et \"rigtigt\" programmeringssprog, så det mener jeg også, at Flash vil gøre.
Avatar billede lingoman Nybegynder
12. december 2001 - 22:12 #12
Fik du afprøvet metoderne ?
Avatar billede rebse Nybegynder
13. december 2001 - 10:03 #13
er i gang med det..
første gang jeg arbejder med lyd i flash på den måde, så det er liiidt krydret...!
Avatar billede rebse Nybegynder
13. december 2001 - 12:01 #14
hmm, det eneste jeg har arbejdet med lyd er load movie et par gange..
jeg simpelthen ikke forstå...
er der ikke en der gider lave et eksempel?

rebse
Avatar billede rebse Nybegynder
13. december 2001 - 12:11 #15
I mit hoved vil jeg måle mit hovedloop...f.eks. sige at det varer 6 frames med 18fps..
tælle med varibal, og så lade de beats man aktiverer; starte når hovedloop (variabel=1...
hmmm
Avatar billede lingoman Nybegynder
13. december 2001 - 16:30 #16
Send mig en fla med dine lydfiler og skriv hvornår de skal afspille i sync, så vil jeg kigge på det i nat.
geo@lingoman.dk
Avatar billede lingoman Nybegynder
14. december 2001 - 14:22 #17
Tak for din mail, rebse.
Jeg er lidt i tvivl om hvad du ønsker... vil du have at når man aktiverer en ny lyd, at den skal tilføjes til de andre lyde og starter forfra synkroniseret sammen ?
Avatar billede lingoman Nybegynder
14. december 2001 - 14:24 #18
Eller skal den spille videre sammen med de andre som om den var synkroniseret fra starten ?
Avatar billede rebse Nybegynder
14. december 2001 - 14:29 #19
Jam, beats\'ne skal hverenkelt falde ind når hovedloopet starter forfra....(i nyt loop) måske kan man tælle loppet med en variabel...
så hvert beat først starter nå variablen er nul, uanset hvornår brugeren aktiverer et beat...
eller...
du kender nok en smartere måde!!
Avatar billede lingoman Nybegynder
14. december 2001 - 14:40 #20
Vi kan godt add beat med det samme når brugeren aktiverer en lyd. Har du sørget for at alle lyde er synkroniseret hvis de bliver afspillet samtidigt ?
Avatar billede rebse Nybegynder
14. december 2001 - 14:51 #21
Hej linoman!
Nej, det er jo ret ligetil at add\'e beatet selv.

Der der skal ske er at der kører et hovedloop på siden 214748 gange (uendeligt),
brugen har så mulighed for at add\'e beats oven i hovedbeatet. beatet varer 11 sek.

De enkelte beats skal falde ordenligt ind på hovedbeatet og kan derfor først starte når hovedloopet starter et nyt loop....

(har sendt dig en ny fil, med det nye hovedloop)
Avatar billede rebse Nybegynder
16. januar 2003 - 11:14 #22
et år gammel... ha ha det var dengang

taxus limBomaan ; )
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester