Voit valita kahdesta aiheesta (CD-soitin kohtuullisen helppo, äänianimaatio vähän vaativampi vaatii ohjelmointikokemusta jonkin verran)
Dokumentointi: kommentoi ohjelmasi riitävästi (perehdy javadoc dokumentointiohjeisiin). Selostukseksi riittää käyttöohje (osana applettia tai erillisenä dokumenttina).
signaali kuvaa äänen rakenteen karkeasti ottaen seuraavalla periaatteella. Ääni on aaltomuotoinen (sini) signaali, matalien äänten aallot ovat pitkiä, korkeiden lyhyitä. (Ihmisen kuuloalue on suunnilleen välillä (n.20 Hz - n. 15 000 Hz).
Aaltoliikkeen amplitudi (laajuus) kuvaa äänen volyymiä. Mitä suurempia arvoja (lähes 1 (tai -1) ) signaali saa, sitä voimakkaampi on ääni.
Tee ohjelma joka lukee levyltä ääninäytteen ja ohjaa sen avulla haluamaasi animaatiota. Esimerkiksi muutama kuva joita vaihtelet ruudussa äänen voimakkuuden mukaan. Äänen voimakkuuuden tiettynä hetkenä voi todeta vaikkapa jakamalla ääni esim 0,1 sekunnin pätkiin (800 näytettä) ja tutkimalla onko siinä tietyn tasopn ylittäviä näytteitä. Äänen synkronointi animaatioon ei ole aivan helppoa mutta mahdollista kuitenkin.
Voit kokeilla myös tehdä oman syntetisaattorisi. Aaltoliikettä on helppo tuottaa tallettamalla double-taulukkoon sopivan taajuista sinifunktiota. Oheisessa Ulaw-luokassa on metodit doubletoUlaw - jolla voidaan muuntaa double-signaalit ulaw-muotoon ja sitten soittaa siitä.
Tarvitset myös mukaan sun.audio.* luokan metodeja. JDK:n audioclip-luokka perustuu tähän luokkaan, mutta sitä ei ole dokumentoitu JDK-dokumentissa (sun.audio.* on kuitenkin mukana JDK-paketissa).
Ulaw-luokka, jolla
voi muuntaa äänidataa
Esimerkki audiodataa
käsittelevästä ohjelmasta (toimii applicationina paikallisesti)
Brief description
of sound formats
Documentation
of the sun.audio - package