Avatar billede soreno Praktikant
04. maj 2002 - 00:37 Der er 3 kommentarer og
1 løsning

SourceDataLine

se på følgende kode:

try
{
    AudioFormat outFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100, 16, 2, 4, 44100, false);
    DataLine.Info lineInfo = new DataLine.Info( SourceDataLine.class, outFormat, 14112);
    SourceDataLine sourceLine = (SourceDataLine)AudioSystem.getLine(lineInfo);
    sourceLine.open(outFormat, sourceLine.getBufferSize());
    sourceLine.start();

    sourceLine.write(beep, 0, beep.length);
   
    sourceLine.stop();
    sourceLine.close();
}
hvad skal beep indeholde for at lave en 440Hz tone ?
byte beep[] = { ??? };

koden er sammensat på baggrund af forskellige kilder på nette og det er ikke sikkert at det er sådan initialiseringen skal foregå ??
Avatar billede disky Nybegynder
04. maj 2002 - 09:20 #1
Den skal indeholde en sinus kurve som representerer en frekvens på 440 Hz.

Jeg kan se du anvender en samplingsfrekvens på 44.1 KHz, det vil sige en periode af sinus kurven fylder 44100/440 = 100.23 samples.

Sinus kurven kan du beregne via Java.

Baladen er at dataerne skal være OCM encodet (Puls kode moduleret)
Avatar billede soreno Praktikant
04. maj 2002 - 09:57 #2
excelent, nu kommer der ihvertfald lyd ud.
Men hvad gør man sådan ret praktisk når der eks skal bruges 100.23 samples - afrunder man bare og accepterer et præcisiontab ?
Avatar billede soreno Praktikant
04. maj 2002 - 10:04 #3
"Baladen er at dataerne skal være OCM encodet (Puls kode moduleret)" - hvad vil det sige, og har det noget at sige hvis det eneste jeg skal bruge, er muligheden for at spille toner på et par oktaver ?
Avatar billede disky Nybegynder
04. maj 2002 - 10:19 #4
korrekt
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
Kurser inden for grundlæggende programmering

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