Giddion Skrevet 5. juni 2008 Del Skrevet 5. juni 2008 Hei jeg holder på med en frekvensgenerator (til naboenes forferdelse), men den har en lei tendens til å lage støy ved overgangen fra en buffer til en annen. Jeg har ikke klart å finne feilen og greier ikke å legge det fra meg (til naboenes forferdelse). Så hvis noen kan hjelpe meg å finne feilen så hadde jeg (og naboene) blitt veldig glade. På forhånd takk for all hjelp. FreqGen.zip Lenke til kommentar
tresko Skrevet 9. juni 2008 Del Skrevet 9. juni 2008 Nå r jeg nettopp kommet fra byen og har veldig problemer med å lese kode.. Men,... uansett, når man swapper fra et buffer til et annet er det viktig at amplitude verdier samsvarer. Eller, mersom genererer man 400hz, dvs sin(2*PI*t/400) så må neste buffer starte på samme verdi for "t" som den avslutta, eller får du sånne "smell" som naboene ikke liker. Hmm.., kanskje jeg skal se igjennom kode imorgen, så kanskje du får bedre svar. Lenke til kommentar
Giddion Skrevet 9. juni 2008 Forfatter Del Skrevet 9. juni 2008 hehe det står respekt av å starte å feilsøke på andre sin kode så seint som du gjort og spesielt etter en tur på byen . Når det er sagt så trodde jeg at det ikke skulle skje i koden min så lenge man ikke skifter frekvens, men jeg kan jo ta feil . Jeg har ikke tatt hensyn til hvilke vinkel bølgen er i så når jeg skifter frekvens så vil det nok bli noen rare lyder. Lenke til kommentar
tresko Skrevet 9. juni 2008 Del Skrevet 9. juni 2008 Hehe, ja idag ser jeg ting litt tydeligere. Problemet er at du bruker ett statisk buffer med størrelse 50000. Dvs. setter du denne til 44000, som er avspillingsfrekvensen din, så vil det funke. Grunnen er at openAL sikkert fortsetter og spiller av hele bufferet til posisjon 50000 også blir det blankt. Dette lager diskontinuitet mellom buffer swap 2 og 1. Lenke til kommentar
Giddion Skrevet 9. juni 2008 Forfatter Del Skrevet 9. juni 2008 Jeg skjønner ikke helt forklaringen din, men det fungerte. Hvorfor blir det blankt? Det jeg ser at programmet fungerer er at den har en stor buffer som er delt i to og menst den spiller av en så genereres den andre og dette skal lage en jevn sinus. Jeg har testet etter posten din testet med ulike buffer og det fungerer fint så lenge jeg har en multiple av 4400. Så har jeg skjønt det hvis jeg har en buffer som er multiple av avspillings frekvensen? Takk for svar. Lenke til kommentar
tresko Skrevet 9. juni 2008 Del Skrevet 9. juni 2008 Vel, var bare noe jeg trodde, vet ikke helt om forklaring stemmer da jeg aldri har brukt OpenAL før. Men i gamle DOS-dager måtte vi på lavt nivå sette opp dma-transfers, og da måtte vi sette bufferene til et multiplum av avspillingsfrekvensen. Finnes nok en bedre og mer logisk forklaring til at det må bli sånn.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå