Java 3D-audiorajapinnan toteutus 3D-äänen renderöinnin näkökulmasta
|
|
- Topi Järvinen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Java 3D-audiorajapinnan toteutus 3D-äänen renderöinnin näkökulmasta Markus Kolsi HUT, Tietoliikenneohjelmistojen ja multimedian laboratorio Tiivistelmä Luonnolliselta kuulostavan audiovisuaalisen ympäristön luomiseen tarvitaan äänilähteen, ympäristön tilan sekä kuulijan mallinnusta. Java 3D:n sovellusrajapinta tarjoaa tähän korkean tason menetelmiä. Tarkastelun kohteena ovat äänimaiseman luomisen kannalta keskeisimmät käsitteet sekä Java 3D:n luokat ja metodit. Konkreettisena esimerkkinä on Dopplerin ilmiön mallintaminen Java 3D:llä. Tästä mallinnuksesta saatu tulos oli se, että 3D-ääniympäristön mallintaminen soveltuvasti Java 3D:llä vaatii tarkkuutta ja työtä sekä parametrien asettamista käsin. Dopplerin ilmiön lopputuloksen toimivuudesta on kuulijan vaikea saada täyttä varmuutta. 1 JOHDANTO Äänen fysikaaliset ominaisuudet, ääniympäristön ominaisuudet sekä kuulijan ominaisuudet tulee huomioida audiovisuaalisen ääniympäristön mallintamisessa eli auralisaatiossa. Avaruudessa oleva äänilähde voi olla pistemäinen, suunnattu tai kaikkialla samanlaisena kuuluva taustaääni. Ääniympäristö voi koostua osista, jotka ovat kaikuisia, eri tavoin ääntä heijastavia tai ääntä suodattavia. Kuulijan pään ominaisuudet vaikuttavat esimerkiksi siihen, miten suuntakuulolla havaitaan äänilähteen etäisyys. Java 3D:n audiorajapinta tarjoaa äänilähteen, ääniympäristön ja käyttäjän pään mallintamiseen korkean tason välineitä. Näillä välineillä on mahdollista simuloida muun muassa erilaisia fysikaalisia äänitapahtumia, kuten Dopplerin ilmiötä. Tässä paperissa perehdytään 3D-äänenkäsittelyn perusteiden jälkeen Java 3D:n äänenkäsittelyominaisuuksiin ensin yleisellä tasolla, sitten luokka- ja metoditasolla ja lopuksi läpikäydään Dopplerin ilmiön toteuttamisesta Java 3D:llä saatuja kokemuksia. 2 ÄÄNEN FYSIKAALISET OMINAISUUDET Ääni on pitkittäisinä aaltoliikkeinä eli ääniaaltoina väliaineessa etenevää kuultavissa olevaa painevärähtelyä (Rossing, 1981; Hypermedialaboratorio, 1998). Väliaine voi 1
2 olla kiinteää, nestemäistä tai kaasua. Ilmassa ääni etenee noin 340 m/s. Syntypisteestään aaltoliikkeenä etenevä ääni otetaan vastaan kuuloaistin avulla, joka aistii äänenpaineen vaihtelua. Painevärähdysten lukumäärä sekunnissa eli äänen taajuus, yksikkönä hertzi (Hz), määrää äänen korkeuden. Ihmisen kuultavissa oleva taajuusalue on Hz (Rossing, 1981). Taajuuden lisäksi äänellä on väri ja voimakkuus. Äänen värin määräävät ääniaaltojen muodot, jotka voivat sisältää yhden tai useampia taajuuskomponentteja (Hypermedialaboratorio, 1998). Äänen voimakkuus määräytyy staattisen ilmanpaineen ja äänenpaineen eron perusteella. Mitä suurempi ero, sitä voimakkaampi ääni. Ihmisen kuulon ominaisuuksista johtuen äänenpaine on logaritminen suure, jota kutsutaan desibeliksi (db). Kuuloaistimuksessa äänekkyyden kaksinkertaistuminen vastaa kymmenen desibelin lisäystä äänen voimakkuuteen. Ihmisen korva erottaa hiljaisimmillaan noin 1 db äänenvoimakkuuden ja voimakkaimmillaan noin 130 db äänen (Hypermedialaboratorio, 1998). 3 3D-ÄÄNENKÄSITTELYN PERUSTEITA Tässä 3D-äänenkäsittelyllä tarkoitetaan 3D-ääniympäristön keinotekoista synnyttämistä ja tämän ympäristön käsittelyä. 3D-ääniympäristön luomiseksi tarvitaan määritellä äänilähde, väliaine sekä äänen havainnoija (Savioja, 1999; Manninen, 2002). Äänen käyttöä datan esitystekniikkana kutsutaan auralisaatioksi. 3.1 Äänilähteen mallinnus Äänilähteen mallintamisella tarkoitetaan äänen liittämistä ympäristöön sekä antamalla sille ominaisuuksia kuten äänen suuntaavuus. Äänilähteen mallinnukseen kuuluu esimerkiksi akustisten soitinten fysikaalisten äänentoistoperiaatteiden mallinnusta. Itse ääni voi olla luonnollista tai synteettistä (Manninen, 2002). 3.2 Väliaineen eli akustisen tilan määrittely Konkreettisesti akustisen tilan määrittelyllä voidaan tarkoittaa sen huoneen mallintamista, jossa äänilähde on. Tällöin tulee mallintaa huoneen vaimennusominaisuudet, ilman absorptio ja kaikuominaisuudet. Äänen käyttäytyminen rajapinnoilla, kuten heijastukset ja diffraktio tulee myös huomioida. Akustisen tilan mallintamiseen on erilaisia laskennallisia malleja, joista eräs hyödyntää säteenseurantamenetelmää. Tässä mallissa tutkitaan huoneen impulssivastetta, josta näkyy suoran äänen, varhaisten heijastusten sekä jälkikaiunnan amplitudit (Savioja, 1999; Manninen, 2002). 2
3 3.3 Äänen havainnoijan mallintaminen Äänen havainnoijan eli äänen kuulijan mallintaminen tarkoittaa kuulijan fyysisten ominaisuuksien mallintamista. Käytännössä tämä tarkoittaa lähinnä pään kuulemiseen liittyvien ominaisuuksien mallintamista. Tätä tekniikkaa kutsutaan suuntakuuloksi (binaural hearing) ja siihen kuuluu korvien välisen etäisyyden, pään muodon ja materiaalin, aika- ja voimakkuuserojen sekä muiden kuulemiseen liittyvien asioiden mallintaminen (Manninen, 2002). Ihminen havaitsee korvaan saapuvien äänien aikaeron ja voi siitä päätellä äänilähteen sijainnin. Ääni vaimenee esteissä. Pää vaimentaa ääntä, joten voimakkuuseroista voidaan myös päätellä sijainti. Pää ja korvalehdet aiheuttavat suuntariippuvaa suodatusta ja muun kehon osalta etenkin olkapäät vaikuttavat äänen havainnointiin (Manninen, 2002). Usein suuntakuuloäänitykset tehdään niinsanotulla keinopäällä, joka on tehty täysikasvuisen aikuisen pään mittojen mukaan. Pään materiaalit ja muut ominaisuudet pyrkivät jäljittelemään ihmisen pään ominaisuuksia. Suuntaamattomat mikrofonit on sijoitettu korvakäytävän suulle (Maijala, 1999). 4 JAVA 3D:N AUDIORAJAPINTA Tässä luvussa käsitellään ensin yleisellä tasolla Javaa ja Java 3D:tä, sitten perehdytään tarkemmin Java 3D:n 3D-äänenkäsittelyominaisuuksiin ja äänimaiseman luomiseen Java 3D:llä liittyviin seikkoihin. Lopuksi tarkastelu siirretään Java 3D:n niihin luokkiin ja metodeihin, jotka ovat kaikkein oleellisimpia auralisoinnin kannalta. 4.1 Java ja Java 3D pähkinänkuoressa Java on Sun Microsystemsin 1990-luvun puolivälissä julkaisema olio-ohjelmointikieli. Javassa pakkaukset koostuvat luokista, joista alustetaan olioita. Kaikki toiminta Javassa on tarkoitettu oliokeskeiseksi. Olion toiminnallisuuksia suoritetaan metodeilla. Java 3D on kaksi pakkausta sisältävä lisäosa J2SE:iin (Java 2 Standard Edition) eli nykyisin käytössä olevaan Javan versioon. Java 3D sisältää luokkia, jotka soveltuvat 3D-grafiikan ja 3D-äänen käsittelyyn korkealla tasolla D-äänen toteuttaminen Java 3D:n luokilla Java 3D:n pakkaus nimeltä javax.media.j3d sisältää noin kymmenkunta luokkaa tai rajapintaa, jotka soveltuvat äänen käsittelyyn. Osaa luokista ja niiden metodeista käytetään 3D-ääniympäristön alustamiseen, osa on laitteistokohtaisten toimintojen suorittamiseen ja osa yleisiä äänenkäsittelyyn liittyviä tominnallisuuksia sisältäviä luokkia tai rajapintoja. 3
4 D-ääniympäristön alustaminen On mahdollista, että Java 3D -sovelluksella on käytettävinään useampia audiolaiteajureita äänen tuottamiseen. Tällöin sovelluksen tulee valita, mitä audiolaiteajuria käytetään äänen renderöintiin. Kun laiteajuri on valittu, sovellus voi lisäksi valita äänitoiston tyypin, josta renderöity ääni tuotetaan ulos. Toistolaite voi olla joko stereokuulokkeet, kaiutin tai kaiutinpari. Toistolaite on fyysisesti liitetty siihen porttiin, johon valittu laiteajuri tuottaa ääntä. Äänitoiston tyypin valinta vaikuttaa siihen, minkälainen äänikuva luodaan. Kun laite on alustettu, selaimen tai sovelluksen tulee rekisteröidä laite. Laiteajurin alustaminen vaaditaan siitä syystä, että Java 3D:n äänenkäsittelyyn liittyvät metodit saattavat olla laiteajuririippuvaisia. Näitä metodikutsuja voidaan siis suorittaa vasta laiteajurin alustamisen jälkeen (Sun, 2002) Äänityypin määrittely Java 3D mahdollistaa kolmen eri äänityypin määrittelyn, joille kullekin on omat luokkansa. Nämä äänityypit ovat pisteääni (PointSound), taustaääni (BackgroundSound) sekä kartioääni (ConeSound). Pisteäänellä tarkoitetaan pistemäistä äänilähdettä, joka sijaitsee avaruudessa ja josta ääniaallot kulkevat samalla tavoin kaikkiin suuntiin tästä avaruudessa sijaitsevasta pisteestä. Äänen amplitudi vaimenee sen mukaan, mikä on kuulijan ja äänilähteen välinen etäisyys. Taustaäänellä tarkoitetaan vaimenematonta ääntä, jolla ei ole avaruudellista sijaintia eikä suuntaa. Kartioäänellä tarkoitetaan sellaista äänilähdettä, joka on suunnattu tietyn avaruudessa olevan vektorin suuntaisesti. Kartioäänilähde vaimenee voimakkuuskertoimien ja suodattimien mukaisesti, siten, että vaimennus perustuu etäisyyden lisäksi äänilähteestä kuulijaan suunnatun vektorin ja kartioäänen suuntavektorien väliseen kulmaan (Sun, 2002) Fyysisen ympäristön määrittely Fyysisen ympäristön määrittelyyn kuuluvat erilaiset audiolaiteajurien ja sensoreiden alustukset ja niiden liittäminen määriteltävänä olevaan fyysiseen ympäristöön. Sensoreiden tarkoitus on kerätä informaatiota keinopäähän ja kehoon liittyen. Sensorit on indeksoitu nollasta eteenpäin ja ne liittyvät pään lisäksi molempiin käsiin (Sun, 2002) Käyttäjän pään määrittely Käyttäjän pään koordinaatiston origo sijaitsee vasemman ja oikean silmän puolivälissä. X-akseli lähtee origosta oikealle (takaraivon takaa katsottaessa), y-akseli lähtee ylöspäin ja z-akseli menee takaraivon taakse. Käyttäjän pään ominaisuuksien määrittelemiseen kuuluu silmien sijainnin ja korvien sijainnin koordinaattien määrittelemisen 4
5 lisäksi silmien korkeuden asettaminen maasta sekä käyttäjän pään origon ja näyttöruudun välisen etäisyyden määrittäminen (Sun, 2002). 4.3 Oleellisimmat luokat ja metodit javax.media.j3d-pakkauksessa Tässä kappaleessa kuvataan niitä Java 3D:n luokkia, jotka ovat oleellisimpia 3D-äänen renderöinnissä ja auralisoinnissa. Kun kappaleessa 4.2 kerrottiin Java 3D -auralisointiin liittyvät asiat yleisellä tasolla, mennään tässä kappaleessa luokka kerrallaan keskittyen luokkien metodeihin ja metodien argumentteihin. Erityisesti pyritään keskittymään niihin luokkiin ja niihin metodeihin, joita välttämättä tarvitaan audiolaiteajurien alustamiseen sekä ääniympäristön mallintamisen ja äänilähteen valintaan. Ehkä tärkeimpänä luokkana auralisoinnissa voidaan pitää AuralAttributes-luokkaa, josta muodostettua oliota tarvitaan Java 3D:ssä ääniympäristön ominaisuuksia mallinnettaessa. AurallAttributes määrittelee ympäristöllisiä ääni parametrejä, kuten kaikuja ja heijastuksia, joita käytetään äänen renderöinnissä AudioDevice3D ja AudioDevice -luokat Sekä AudioDevice3D että AudioDevice ovat niin sanottuja rajapintaluokkia (interface). AudioDevice3D:n metodit eivät ole tarkoitettu sovelluksen kutsuttaviksi, vaan niitä kutsuu Java 3D Sound Scheduler sen jälkeen, kun sovellus on valinnut Audio- Device3D:n, jossa Java 3D ääni renderöidään (Sun, 2002). AudioDevice3D sisältää kolmattakymmentä metodia, joilla voidaan mm. alustaa, käynnistää, lopettaa, tauottaa sekä mykistää ääni ns. sample:na laitteella. Samoin sample:n auraalisia parametreja voidaan asettaa. Esimerkiksi metodi setangularattenuation(int index, int filtertype, double[] angle, float [] attenuationscalefactor, float [] filtercutoff) asettaa äänen kulmallisen voimakkuusvaimennuksen määrittelemällä taulukot, jotka sisältävät kulma-arvot sekä vaimennuskertoimet ja suodattimen määrättyyn tyyppiin liittyvät taulukkoarvot. Vastaavasti metodi setposition(int index, Point3d position) asettaa määrätyn äänilähteen sijainnin. Metodit setreverbdelay(float reverbdelay) ja setvelocityscalefactor(float velocityscalefactor) puolestaan määrittävät kaikuun kuluvaa odotusaikaa sekä Dopplerin ilmiön soveltamiseen käytettävää nopeusskaalauskerrointa (Sun, 2002). AudioDevice-rajapintaluokka määrittelee auidolaitteen ja kapseloi sisäänsä audiolaitteen perusominaisuudet. Audiolaiteajurin valinta tapahtuu PhysicalEnvironmentluokan oliosta, jota kohti voi olla vain yksi audiolaite. Jokainen audiolaiteajuri täytyy 5
6 alustaa ennen kuin Java 3D Sound -metodeja kutsutaan, koska Sound-metodien toteutus on yleisessä tapauksessa laiteajuririippuvainen. Esimerkkejä AudioDevice-luokan metodeista ovat muun muassa void setangleoffsettospeaker(float angle), jolla asetetaan pään Z-akselin ja korvien välisestä keskipisteestä kuulijalle suunnatun vektorin välinen kulma radiaaneina sekä void setcentereartospeaker(float distance), jolla asetetaan kaiuttimen ja korvien välisen keskipisteen etäisyys (Sun, 2002) Soundscape -luokka Soundscape-luokka määrittelee ominaisuuksia ja arvoja, joilla voidaan kuvailla kuulijan ympäristön äänen käyttäytymistä. Näitä ominaisuuksia ovat maiseman kaikuvuus ja muut ympäristölliset ominaisuudet, jotka vaikuttavat äänen renderöintiin äänimaisemassa. Yhteen maisemaan voi liittyä useita erilaisia Soundscape-alueita. Esimerkiksi maiseman yhdessä osassa voi olla laaja avoin alue ja toisessa osassa esim. sankkaa metsää, jossa kaikuu vähemmän. Näin ollen ääni renderöidään eri lailla riippuen siitä, missä osassa maisemaa kuulija itse on. Se, minkä alueen sisällä ympäristössä oleva havainnoija on, määräytyy Java 3D API:n ViewPlatform-luokan oliolla. Luokka sisältää yhdeksän metodia, joilla mm. asetetaan äänimaiseman alueen rajoja sekä Soundscape:een liittyviä auraalisia ominaisuuksia. Esimerkiksi metodilla void setauralattributes(auralattributes attributes) asetetaan Soundscape-oliolle ne auraaliset ominaisuudet, jotka välittyvät tälle metodille argumenttina annettavassa oliossa (Sun, 2002) Sound-luokka Sound-luokka on ns. abstrakti luokka, joka määrittelee kaikille äänilähteille tyypillisiä ominaisuuksia. Luokan suoria alaluokkia ovat luokat BackgroundSound ja Point- Sound. Jokaiseen äänilähteeseen liittyvät viite äänidataan, aplitudin skaalauskerroin sekä muita äänen kuulumiseen ja toistettavuuteen liittyviä tietoja (Sun, 2002) Äänityyppiluokat: BackgroundSound, PointSound sekä ConeSound BackgroundSound ja PointSound luokat ovat abstraktin Sound-luokan suoria aliluokkia. Vastaavasti ConeSound on PointSound-luokan aliluokka. BackgroundSound-luokka ei sisällä äänen käsittelyyn liittyviä metodeja. PointSound-luokan kymmenellä metodilla mm. sijoitetaan äänilähde koordinaatistoon sekä asetetaan äänen vaimenemisominaisuuksia. Konstruktoreja on seitsemän, joista alla esimerkkinä konstruktoreista toinen: 6
7 Kuva 1: Kuvassa aproksimaatio kartioäänilähteen kulmavaimenemisesta. (Sun, 1999) public PointSound(MediaContainer sounddata, float initialgain, float posx, float posy, float posz). ConeSound-luokka määrittelee PointSound-olion, jonka äänilähde on suunnattu tiettyä avaruusvektoria pitkin. ConeSound-luokka sisältää vajaat 20 metodia, joilla käsitellään äänen vaimenemiseen liittyviä ominaisuuksia sekä asetetaan äänilähteen suunnan koordinaatit. Esimerkiksi metodi void setangularattenuation(float [] distance, float [] gain, float [] filter) asettaa kulmavaimennuksen, joka sisältää kulmaetäisyydet, kulmavaimenemisen ja alipäästösuodattimen taajuudet liukulukuarvoina eri taulukoissa, jotka ovat saman kokoisia (Sun, 2002) AuralAttributes-luokka AuralAttributes-luokka sisältää metodeja ja kenttiä, joilla määritellään auraaliset ominaisuudet, jotka välitetään Soundscape-oliolle. Ominaisuudet käsittävät ympäristöllisiä audio parametreja, jotka vaikuttavat äänen renderöintiin. Näihin ominaisuuksiin kuuluvat mm. voimakkuuskertoimet, äänen nopeuteen ilmassa vaikuttavat asiat ja parametrit, jotka kontrolloivat kaikua, etäisyyden taajuussuodatusta sekä nopeuteen perustuvaa Doppler-ilmiötä. Esimerkiksi kaikutyyppejä voidaan mallintaa esimerkiksi määrittelemällä äänen kaiun paluuaika kuulijalle sekä rajoittamalla jälkikaikujen lukumäärää. 7
8 Auralisaatiolla tarkoitetaan ääniympäristön mallintamista, jossa ääni on iteratiivisesti heijastuvaa siltä suljetun alueen pinnoilta, jossa kuulija on. Auralisaation komponentteihin kuuluu eriasteisia heijastuksia sekä kaikuja. Java 3D:n (J3D 1.3) yksinkertaisessa auralisaatio-mallissa on neljä parametriä, jotka aproksimoivat äänen heijastusta ja kaikuja tietyssä kuuntelutilassa (Sun, 2002). Nämä neljä parametriä ovat: 1. heijastuskerroin, joka kertoo heijastusten voimakkuusvaimenemisen kaikilla taajuuksilla 2. kaiun odotusaika, joka ilmaisee kuinka kauan äänen kaiulta kestää saavuttaa kuulija 3. kaikutilan rajat, joka aproksimoi sen alueen tilavuuden, jolla kuuntelija on 4. kaikujärjestys, jolla voidaan tarvittaessa rajoittaa äänen rekursiivisten heijastusten lukumäärää kaikutilassa kaikulaskujen aikana (Sun, 2002). AuralAttributes-luokka sisältää parisenkymmentä metodia, joilla hallitaan yllä mainittuja asioita. Esimerkkinä metodista on Doppler-ilmiön laskennassa käytettävä void setvelocityscalefactor(float velocityscalefactor), jolla voidaan myös liioitella Dopplerin ilmiötä (Sun, 2002) PhysicalEnvironment ja PhysicalBody -luokat PhysicalEnvironment-luokka sisältää metodeja fyysisen ympäristön määrittelyyn. Luokassa on reilu parikymmentä metodia, joilla mm. lisätään ja alustetaan audiolaiteajureita sekä asetetaan sensoreita päähän ja käsiin. Esimerkiksi metodi void setaudiodevice(audiodevice device) asettaa määritetyn AudioDevice-olion siksi laitteeksi, jonka kautta äänen renderöinti tälle PhysicalEnvironment-oliolle tapahtuu. Metodi void setheadindex(int index) puolestaan asettaa pään järjestysnumeron vastaamaan sensorin järjestysnumeroa. PhysicalBody-luokka sisältää käyttäjän pään määritelmät. Luokalla on kolme konstruktoria, joista oletuskonstruktori on argumentiton sisältäen ikään kuin tehdasparametrit käyttäjän päästä. Toinen konstruktoreista antaa mahdollisuudet määritellä koordinaatit vasemmalle ja oikealle silmälle. Kolmas konstruktori antaa silmien sijainnin lisäksi määritellä vasemman ja oikean korvan sijainnin: Physicalbody(Point3d lefteyeposition, Point3D righteyeposition, Point 3D leftearposition, Point3D rightearposition). Luokassa on 15 metodia, jotka kaikki liittyvät silmien ja korvien sijaintiin liittyvien tietojen käsittelyyn sekä käyttäjän pää -koordinaatiston muunnoksiin (Sun, 2002). 8
9 5 DOPPLERIN ILMIÖN TOTEUTTAMINEN JAVA 3D:N AU- DIORAJAPINTAA HYÖDYNTÄEN Dopplerin ilmiöllä äänen yhteydessä tarkoitetaan sitä, kun äänilähteen tai äänen havainnoijan ollessa liikkeessä, havaittu äänen taajuus muuttuu. Mikäli äänilähde ja havainnoija liikkuvat toisiaan kohti, havaittu taajuus kasvaa. Mikäli lähde ja havainnoija etääntyvät toisistaan, taajuus laskee. Asia voidaan ilmaista seuraavalla kaavalla: v±v f =f h l v±v l, jossa f on havaittu taajuus, f l on äänilähteen taajuus, v on äänen nopeus, v h on havaitsijan nopeus ja v l on lähteen nopeus. Java 3D:n audiorajapinta tarjoaa korkean tason menetelmiä Dopplerin ilmiön esittämiseen (Rossing, 1981). 5.1 Doppler-esimerkin tapahtumien kuvailu Doppler-esimerkissä pistemäinen äänilähde liikkuu suoraa pitkin XYZ-koordinaatistossa XY-tasossa äänen havainnoijan ollessa paikallaan. Käytettävä ääninäyte muistuttaa urkupillin ääntä. Liikkuessaan koordinaatistossa pistemäinen äänilähde soittaa ääninäytteen, jolloin äänen havainnoija huomaa hienoisen muutoksen äänen taajuudessa. Lisäksi havaitaan etäisyysvaimeneminen sekä äänen suunta, kun äänilähdettä liikutetaan syvyyssuunnassa. 5.2 Esimerkin toimintaympäristö ja muut vaatimukset Esimerkki vaatii toimiakseen J2SE:n sekä siihen liittyvän Java 3D:n asennettuna. Samoin 3D-äänen kuulemiseen tarvitaan sopivat kuulokkeet tai kaiuttimet ja koneeseen toimiva äänikortti. Esimerkkiä on testattu muun muassa Niksulan O2:lla, joilla on toimiva Java 3D -ympäristö. Käännös tapahtuu komennolla javac Doppler.java ja sovelluksen ajaminen komennolla java -green Doppler Ehdottoman tärkeää Niksulan O2:lla testattaessa on käyttää parametriä -green, koska ilman ns. green threadien käyttöä ohjelma kaatuu välittömästi ajon aikana. 5.3 Java 3D:n Dopplerin ilmiöön liittyvät metodit ja alustukset Tärkeimmät metodit Dopplerin ilmiön toteuttamisen kannalta Java 3D:ssä ovat AuralAttributes-luokan metodit setfrequencyscalefactor(float frequencyscalefactor) ja setvelocityscalefactor(float velocityscalefactor). frequencyscalefactor joka painottaa tai vaimentaa Doppler-ilmiötä VelocityScaleFactor on oltava muu kuin 0, koska 9
10 0 poistaa Doppler ilmiön käytöstä. Sopivia arvoja lienee 3 ja 3, jolloin molemmat ovat kolminkertaiset normaaliin fysikaaliseen Dopplerin-ilmiöön nähden, joten vaikutus on selvästi havaittavissa. Seuraavat auralisaatioon liittyvät alustukset tulee vähintään tehdä Java 3D:ssä Dopplerin ilmiön esittämiseksi. auraalisten ominaisuuksien asettaminen AuralAttributes dattributes = new AuralAttributes( ); /** * Asetetaan äänen taajuudesta johtuvan * Dopplerin ilmiön vaikutus kaksinkertaiseksi. * Nopeusskaalauskerroin 1 vastaa reaalimaailman * tilanneta. */ dattributes.setfrequencyscalefactor(2.0f); dattributes.setvelocityscalefactor(1.0f); SoundScape:n luominen Soundscape dscape = new Soundscape( ); dscape.setauralattributes(dattributes); sovelluksen tilarajojen asettaminen BoundingSphere dbounds = new BoundingSphere(new Point3d( ),500.0); dscape.setapplicationbounds( dbounds ); 6 Yhteenveto Java 3D tarjoaa monipuoliset välineet 3D-äänenkäsittelyyn. Äänenkäsittelyyn liittyvät luokat ja metodit ovat hyvin dokumentoituja, joskin niiden ymmärtämiseen ja soveltamiseen täytyy varata runsaasti aikaa. Äänilähteen, ääniympäristön ja kuulijan päähän liittyvät ominaisuudet ovat pitkälti parametrisoitu, joten halutut auraaliset ominaisuudet voidaan valita joiltain osin hyvinkin tarkkaan. Erityisesti erilaiset vaimenemiset, kaiut ja äänen suuntaavuuteen liittyvät arvot ovat tarkkaan valittavissa. Java 3D tarjoaa myös erikoisesti Dopplerin ilmiön esittämiseen liittyviä korkean tason metodeja. Ääniympäristön kaiku-, vaimenemis- ja suodatusominaisuuksien testaaminen onnistuu suhteellisen helposti ja yksinkertaisella koodilla. Erilaisia konkreettisia ääniympäristöjä, kuten kylpyhuonetta, autotallia ja vankityrmää kyetään mallintamaan äänen heijastus- ja kaikuparametrejä muuttamalla. Korvakuulokkeilla ääninäytteitä kuulemalla havaitaan selvät taajuusmuutokset sekä kaikuja. Dopplerin ilmiön simuloiminen osoittautui astetta vaikeammaksi kuin erilaisten akustisten tilojen yksinkertainen mallinnus. Huomioon tuli ottaa äänilähteen liikkuminen ja fyysisen tilan mallintaminen siten, että äänilähde liikkui järkevästi tilan sisällä. Samoin ongelmaksi muodostui erottaa itse akustisesta tilasta johtuvat heijastukset, 10
11 vaimenemiset ja suodatukset siitä äänen taajuuden muutoksesta, joka johtui puhtaasti Dopplerin-ilmiöstä. Dopplerin ilmiötä liioiteltaessa saatiin lopulta kuitenkin vakuuttavaa näyttöä siitä, että se toimii; äänessä kuitenkin esiintyi ajoittain säröjä, joiden syitä ei pystytty selvittämään. Teorian ymmärtämisen lisäksi 3D-äänimaiseman luominen Java 3D:llä vaatii riittävää ohjelmointitaitoa ja perinpohjaista tutustumista Java 3D API:iin 3D-ääniluokkien osalta. Helposti joku monista huomioon otettavista asioista ääniympäristön alustuksessa unohtuu, joten seurauksena on se, että mitään ääntä ei kuulu, vaikka koodi muuten näyttää toimivan moitteetta. Erityisesti Dopplerin ilmiötä testattaessa on varmistuttava siitä, että velocityscalefactor ei ole 0. Parametrien säätämistä joutuu kuitenkin tekemään käsin sekä yrityksen ja erehdyksen kautta, joten riittävää kärsivällisyyttä ja aikaa tarvitaan hiemankin monimutkaisemman 3D-ääniympäristön auralisointiin. Akustiikan perusteiden hallitsemisesta on apua. VIITTEET Hypermedialaboratorio Tampereen yliopisto Musiikkiteoriaa. Musiikkitutkimuksen laitos. [viitattu ]. Maijala Panu Tulevaisuuden audiovisuaalinen viihdepalvelu koteihin. Sähkö- ja tietoliikennetekniikan osasto, TKK. [viitattu ]. Manninen Tony Luentorunko osa 4: Kuuloaisti, äänenkäsittelytekniikat. Tony Manninen. [viitattu ]. Rossing Thomas D The Science Of Sound. Addison-Wesley. Savioja Lauri; Huopaniemi Jyri; Lokki Tapio; Väänänen Riitta Creating Interactive Virtual Acoustic Environments. Audio Engineering Society, Inc. Sun Microsystems (ed) Java 3D API Specification. Sun Microsystems. [viitattu ]. Sun Microsystems (ed) Java 3D API < [viitattu ]. Sun Microsystems. Java 3D API. 11
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä
Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
Lisätiedot2.1 Ääni aaltoliikkeenä
2. Ääni Äänen tutkimusta kutsutaan akustiikaksi. Akustiikassa tutkitaan äänen tuottamista, äänen ominaisuuksia, soittimia, musiikkia, puhetta, äänen etenemistä ja kuulemisen fysiologiaa. Ääni kuljettaa
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
LisätiedotOta tämä paperi mukaan, merkkaa siihen omat vastauksesi ja tarkista oikeat vastaukset klo 11:30 jälkeen osoitteesta
MAA5.2 Loppukoe 26.9.2012 Jussi Tyni Valitse 6 tehtävää Muista merkitä vastauspaperiin oma nimesi ja tee etusivulle pisteytysruudukko Kaikkiin tehtävien ratkaisuihin välivaiheet näkyviin! 1. Olkoon vektorit
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotKuulohavainnon perusteet
Kuulohavainnon ärsyke on ääni - mitä ääni on? Kuulohavainnon perusteet - Ääni on ilmanpaineen nopeaa vaihtelua: Tai veden tms. Markku Kilpeläinen Käyttäytymistieteiden laitos, Helsingin yliopisto Värähtelevä
Lisätiedot815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
LisätiedotTaulukot. Jukka Harju, Jukka Juslin 2006 1
Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotRYHMÄKERROIN ÄÄNILÄHDERYHMÄN SUUNTAAVUUDEN
ÄÄNILÄHDERYHMÄN SUUNTAAVUUDEN ARVIOINNISSA Seppo Uosukainen, Jukka Tanttari, Heikki Isomoisio, Esa Nousiainen, Ville Veijanen, Virpi Hankaniemi VTT PL, 44 VTT etunimi.sukunimi@vtt.fi Wärtsilä Finland Oy
LisätiedotMAA4 Abittikokeen vastaukset ja perusteluja 1. Määritä kuvassa olevien suorien s ja t yhtälöt. Suoran s yhtälö on = ja suoran t yhtälö on = + 2. Onko väittämä oikein vai väärin? 2.1 Suorat =5 +2 ja =5
LisätiedotVAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Lauri Karppi j82095. SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI.
VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA Oskari Uitto i78966 Lauri Karppi j82095 SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI Sivumäärä: 14 Jätetty tarkastettavaksi: 25.02.2008 Työn
LisätiedotRajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.
11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotKOLMIULOTTEISEN TILAN AKUSTIIKAN MALLINTAMINEN KAKSIULOTTEISIA AALTOJOHTOVERKKOJA KÄYTTÄEN
KOLMIULOTTEISEN TILAN AKUSTIIKAN MALLINTAMINEN KAKSIULOTTEISIA AALTOJOHTOVERKKOJA KÄYTTÄEN Antti Kelloniemi 1, Vesa Välimäki 2 1 Tietoliikenneohjelmistojen ja multimedian laboratorio, PL 5, 15 TKK, antti.kelloniemi@tkk.fi
LisätiedotKuvalähdemenetelmä. Paul Kemppi TKK, Tietoliikenneohjelmistojen ja Multimedian Laboratorio. pkemppi@cc.hut.fi. Tiivistelmä
Kuvalähdemenetelmä Paul Kemppi TKK, Tietoliikenneohjelmistojen ja Multimedian Laboratorio pkemppi@cc.hut.fi Tiivistelmä Tämä paperi käsittelee huoneakustiikan mallinnuksessa yleisesti käytetyn kuvalähdemenetelmän
LisätiedotYleistä. Digitaalisen äänenkäsittelyn perusteet. Tentit. Kurssin hyväksytty suoritus = Harjoitustyö 2(2) Harjoitustyö 1(2)
Yleistä Digitaalisen äänenkäsittelyn perusteet Jouni Smed jouni.smed@utu.fi syksy 2006 laajuus: 5 op. (3 ov.) esitiedot: Java-ohjelmoinnin perusteet luennot: keskiviikkoisin 10 12 12 salissa β perjantaisin
LisätiedotAkustiikka ja toiminta
Akustiikka ja toiminta Äänitiede on kutsumanimeltään akustiikka. Sana tulee Kreikan kielestä akoustos, joka tarkoittaa samaa kuin kuulla. Tutkiessamme värähtelyjä ja säteilyä, voimme todeta että värähtely
LisätiedotTapio Lokki, Sakari Tervo, Jukka Pätynen ja Antti Kuusinen Aalto-yliopisto, Mediatekniikan laitos PL 15500, 00076 AALTO etunimi.sukunimi@aalto.
MUSIIKKITALON ISON KONSERTTISALIN AKUSTIIKKA Tapio Lokki, Sakari Tervo, Jukka Pätynen ja Antti Kuusinen Aalto-yliopisto, Mediatekniikan laitos PL 1, 76 AALTO etunimi.sukunimi@aalto.fi Tiivistelmä Musiikkitalo
Lisätiedot9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa
9. Vektorit 9.1 Skalaarit ja vektorit Skalaari on koon tai määrän mitta. Tyypillinen esimerkki skalaarista on massa. Lukumäärä on toinen hyvä esimerkki skalaarista. Vektorilla on taas suuruus ja suunta.
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotTHE audio feature: MFCC. Mel Frequency Cepstral Coefficients
THE audio feature: MFCC Mel Frequency Cepstral Coefficients Ihmiskuulo MFCC- kertoimien tarkoituksena on mallintaa ihmiskorvan toimintaa yleisellä tasolla. Näin on todettu myös tapahtuvan, sillä MFCC:t
LisätiedotMikrofonien toimintaperiaatteet. Tampereen musiikkiakatemia Studioäänittäminen Klas Granqvist
Mikrofonien toimintaperiaatteet Tampereen musiikkiakatemia Studioäänittäminen Klas Granqvist Mikrofonien luokittelu Sähköinen toimintaperiaate Akustinen toimintaperiaate Suuntakuvio Herkkyys Taajuusvaste
LisätiedotÄäni, akustiikka Lähdemateriaali: Rossing. (1990). The science of sound. Luvut 2-4, 23.
Ääni, akustiikka Lähdemateriaali: Rossing. (1990). The science of sound. Luvut 2-4, 23. Sisältö: 1. Johdanto 2. Värähtelevät järjestelmät 3. Aallot 4. Resonanssi 5. Huoneakustiikka 1 Johdanto Sanaa akustiikka
LisätiedotT740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010
12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi
LisätiedotSAVONLINNASALI, KOY WANHA KASINO, KONSERTTISALIN AKUSTIIKKA. Yleistä. Konserttisali
INSINÖÖRITOIMISTO HEIKKI HELIMÄKI OY Akustiikan asiantuntija puh. 09-58933860, fax 09-58933861 1 SAVONLINNASALI, KOY WANHA KASINO, KONSERTTISALIN AKUSTIIKKA Yleistä Konserttisali Helsinki 19.5.2003 Konserttisalin
LisätiedotKuva 1. Mallinnettavan kuormaajan ohjaamo.
KUORMAAJAN OHJAAMON ÄÄNIKENTÄN MALLINNUS KYTKETYLLÄ ME- NETELMÄLLÄ Ari Saarinen, Seppo Uosukainen VTT, Äänenhallintajärjestelmät PL 1000, 0044 VTT Ari.Saarinen@vtt.fi, Seppo.Uosukainen@vtt.fi 1 JOHDANTO
LisätiedotOpintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
LisätiedotUltraäänen kuvausartefaktat. UÄ-kuvantamisen perusoletukset. Outi Pelkonen OYS, Radiologian Klinikka 29.4.2005
Ultraäänen kuvausartefaktat Outi Pelkonen OYS, Radiologian Klinikka 29.4.2005 kaikissa radiologisissa kuvissa on artefaktoja UÄ:ssä artefaktat ovat kaikuja, jotka näkyvät kuvassa, mutta eivät vastaa sijainniltaan
Lisätiedot3 Ääni ja kuulo. Ihmiskorva aistii paineen vaihteluita, joten yleensä äänestä puhuttaessa määritellään ääniaalto paineen vaihteluiden kautta.
3 Ääni ja kuulo 1 Mekaanisista aalloista ääni on ihmisen kannalta tärkein. Ääni on pitkittäistä aaltoliikettä, eli ilman (tai muun väliaineen) hiukkaset värähtelevät suuntaan joka on sama kuin aallon etenemissuunta.
Lisätiedot7. Näytölle tulostaminen 7.1
7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio
Lisätiedot7/20: Paketti kasassa ensimmäistä kertaa
Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007
Lisätiedot3.1.2013 LUT CS20A0650 Meluntorjunta juhani.kuronen@lut.fi 1. Tsunamin synty. 3.1.2013 LUT CS20A0650 Meluntorjunta juhani.kuronen@lut.
Akustiikan perussuureita, desibelit. 3.1.2013 LUT CS20A0650 Meluntorjunta juhani.kuronen@lut.fi 1 Tsunamin synty 3.1.2013 LUT CS20A0650 Meluntorjunta juhani.kuronen@lut.fi 2 1 Tasoaallon synty 3.1.2013
LisätiedotKuvalähdemenetelmä. Niko Lindgren HUT, Telecommunications Software and Multimedia Laboratory. nlindgre@cc.hut.fi. Tiivistelmä
Kuvalähdemenetelmä Niko Lindgren HUT, Telecommunications Software and Multimedia Laboratory nlindgre@cc.hut.fi Tiivistelmä Tässä seminaarityössä olen tutkinut kuvalähdemenetelmää, jota käytetään huoneakustiikan
LisätiedotLineaarialgebra MATH.1040 / voima
Lineaarialgebra MATH.1040 / voima 1 Seuraavaksi määrittelemme kaksi vektoreille määriteltyä tuloa; pistetulo ja. Määritelmät ja erilaiset tulojen ominaisuudet saattavat tuntua, sekavalta kokonaisuudelta.
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 8 1 Suunnattu derivaatta Aluksi tarkastelemme vektoreita, koska ymmärrys vektoreista helpottaa alla olevien asioiden omaksumista. Kun liikutaan tasossa eli avaruudessa
LisätiedotSisällys. 11. Rajapinnat. Johdanto. Johdanto
Sisällys 11. ajapinnat. bstrakti luokka vai rajapinta? ajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen avulla.
LisätiedotJWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari
JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti
LisätiedotHUONEAKUSTIIKAN MALLINNUS VIRTUAALISELLA AALTOKENT- TÄSYNTEESILLÄ 1 JOHDANTO 2 VIRTUAALISEN AALTOKENTTÄSYNTEESIN TEORIA
HUONEAKUSTIIKAN MALLINNUS VIRTUAALISELLA AALTOKENT- TÄSYNTEESILLÄ Samuel Siltanen ja Tapio Lokki Teknillinen korkeakoulu, Mediatekniikan laitos PL 50, 02015 TKK Samuel.Siltanen@tml.hut.fi 1 JOHDANTO Huoneakustiikan
Lisätiedot2.2 Ääni aaltoliikkeenä
2.1 Äänen synty Siirrymme tarkastelemaan akustiikkaa eli äänioppia. Ääni on ilman tai nesteen paineen vaihteluita (pitkittäistä aaltoliikettä). Kiinteissä materiaaleissa ääni voi edetä poikittaisena aaltoliikkeenä.
LisätiedotOhjelmistojen mallintamisen ja tietokantojen perusteiden yhteys
Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty
LisätiedotTyö tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
LisätiedotMitä tulisi huomioida ääntä vaimentavia kalusteita valittaessa?
Mitä tulisi huomioida ääntä vaimentavia kalusteita valittaessa? Kun seinät katoavat ja toimistotila avautuu, syntyy sellaisten työpisteiden tarve, joita voi kutsua tilaksi tilassa. Siirrettävillä väliseinillä
LisätiedotTenttikysymykset. + UML-kaavioiden mallintamistehtävät
Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotPong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana
Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä
Lisätiedothavainnollistaa Dopplerin ilmiötä ja interferenssin aiheuttamaa huojuntailmiötä
FYSP0 / K3 DOPPLERIN ILMIÖ Työn tavoitteita havainnollistaa Dopplerin ilmiötä ja interferenssin aiheuttamaa huojuntailmiötä harjoitella mittausarvojen poimimista Capstonen kuvaajalta sekä kerrata maksimiminimi
Lisätiedot4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T
SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen
LisätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
LisätiedotPong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana
Muilla kielillä: English Suomi Pong-peli, vaihe 2 Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana Laitetaan pallo liikkeelle Tehdään kentälle reunat Vaihdetaan kentän taustaväri Zoomataan
LisätiedotÄÄNTÄ VAHVISTAVAT OLOSUHDETEKIJÄT. Erkki Björk. Kuopion yliopisto PL 1627, 70211 Kuopion erkki.bjork@uku.fi 1 JOHDANTO
ÄÄNTÄ VAHVISTAVAT OLOSUHDETEKIJÄT Erkki Björk Kuopion yliopisto PL 1627, 7211 Kuopion erkki.bjork@uku.fi 1 JOHDANTO Melun vaimeneminen ulkoympäristössä riippuu sää- ja ympäristöolosuhteista. Tärkein ääntä
LisätiedotOrganization of (Simultaneous) Spectral Components
Organization of (Simultaneous) Spectral Components ihmiskuulo yrittää ryhmitellä ja yhdistää samasta fyysisestä lähteestä tulevat akustiset komponentit yhdistelyä tapahtuu sekä eri- että samanaikaisille
LisätiedotÄÄNEKKÄÄMMÄN KANTELEEN MALLINTAMINEN ELEMENTTIME- NETELMÄLLÄ
ÄÄNEKKÄÄMMÄN KANTELEEN MALLINTAMINEN ELEMENTTIME- NETELMÄLLÄ Henna Tahvanainen 1, Jyrki Pölkki 2, Henri Penttinen 1, Vesa Välimäki 1 1 Signaalinkäsittelyn ja akustiikan laitos Aalto-yliopiston sähkötekniikan
LisätiedotTL5503 DSK, laboraatiot (1.5 op) Suodatus 1 (ver 1.0) Jyrki Laitinen
TL5503 DSK, laboraatiot (1.5 op) Suodatus 1 (ver 1.0) Jyrki Laitinen TL5503 DSK, laboraatiot (1.5 op), K2005 1 Suorita oheisten ohjeiden mukaiset tehtävät Matlab-ohjelmistoa käyttäen. Kokoa erilliseen
Lisätiedot3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.
3 Suorat ja tasot Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3.1 Suora Havaitsimme skalaarikertolaskun tulkinnan yhteydessä, että jos on mikä tahansa nollasta
LisätiedotInteraktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
LisätiedotOliot viestivät metodeja kutsuen
6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotPuheen akustiikan perusteita Mitä puhe on? 2.luento. Äänet, resonanssi ja spektrit. Äänen tuotto ja eteneminen. Puhe äänenä
Puheen akustiikan perusteita Mitä puhe on? 2.luento Martti Vainio Äänet, resonanssi ja spektrit Fonetiikan laitos, Helsingin yliopisto Puheen akustiikan perusteita p.1/37 S-114.770 Kieli kommunikaatiossa...
LisätiedotMono- ja stereoääni Stereoääni
1 Mitä ääni on? Olet ehkä kuulut puhuttavan ääniaalloista, jotka etenevät ilmassa näkymättöminä. Ääniaallot käyttäytyvät meren aaltojen tapaan. On suurempia aaltoja, jotka ovat voimakkaampia kuin pienet
LisätiedotLuokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
LisätiedotVektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on
13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu
LisätiedotSisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki
Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.
LisätiedotÄänen eteneminen ja heijastuminen
Äänen ominaisuuksia Ääni on ilmamolekyylien tihentymiä ja harventumia. Aaltoliikettä ja värähtelyä. Värähtelevä kappale synnyttää ääntä. Pistemäinen äänilähde säteilee pallomaisesti ilman esteitä. Käytännössä
LisätiedotHarjoitustehtävät ja ratkaisut viikolle 48
Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
LisätiedotKojemeteorologia. Sami Haapanala syksy 2013. Fysiikan laitos, Ilmakehätieteiden osasto
Kojemeteorologia Sami Haapanala syksy 2013 Fysiikan laitos, Ilmakehätieteiden osasto Datan käsittely ja tallentaminen Käytännössä kaikkien mittalaitteiden ensisijainen signaali on analoginen Jotta tämä
LisätiedotLuento 15: Ääniaallot, osa 2
Luento 15: Ääniaallot, osa 2 Aaltojen interferenssi Doppler Laskettuja esimerkkejä Luennon sisältö Aaltojen interferenssi Doppler Laskettuja esimerkkejä Aaltojen interferenssi Samassa pisteessä vaikuttaa
Lisätiedot12. Monimuotoisuus 12.1
12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Myöhäinen ja aikainen sidonta. Parametrinvälitys
LisätiedotSGN-4200 Digitaalinen audio
SGN-4200 Digitaalinen audio Luennot, kevät 2013, periodi 4 Anssi Klapuri Tampereen teknillinen yliopisto Kurssin tavoite Johdanto 2! Tarjota tiedot audiosignaalinkäsittelyn perusteista perusoperaatiot,
LisätiedotREUNAEHTOJEN TOTEUTUSTAPOJA AALTOJOHTOVERKOSSA
Antti Kelloniemi, Lauri Savioja Teknillinen Korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio PL 54, 215 TKK antti.kelloniemi@hut.fi, lauri.savioja@hut.fi 1 JOHDANTO Aaltojohtoverkko (digital
LisätiedotRealtek HD Audiohallinta Käyttäjän opas Vistakäyttöjärjestelmälle
Käyttäjän opas Vistakäyttöjärjestelmälle 27. helmikuuta 2008 Tekijänoikeuden omistaa Realtek Semiconductor 2008 Sisällysluettelo Sisällysluettelo A. ALOITTAMINEN...4 B. ESITTELY...7 1. LIITÄNNÄT JA LAITTEET...8
Lisätiedot20 Kollektorivirta kun V 1 = 15V 10. 21 Transistorin virtavahvistus 10. 22 Transistorin ominaiskayrasto 10. 23 Toimintasuora ja -piste 10
Sisältö 1 Johda kytkennälle Theveninin ekvivalentti 2 2 Simuloinnin ja laskennan vertailu 4 3 V CE ja V BE simulointituloksista 4 4 DC Sweep kuva 4 5 R 2 arvon etsintä 5 6 Simuloitu V C arvo 5 7 Toimintapiste
LisätiedotTekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).
Tekijä Pitkä matematiikka 4 9.12.2016 212 Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4). Vastaus esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4) 213 Merkitään pistettä
LisätiedotOhjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka
LisätiedotAutomaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure
Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon
LisätiedotPong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi
Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten
Lisätiedot812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä
2016 IX Olioiden välisistä yhteyksistä Sisältö 1. Johdanto 2. Kytkentä 3. Koheesio 4. Näkyvyydestä 2 Johdanto n Ohjelmassa syntyy kytkentöjä olioiden välille Toivottuja ja epätoivottuja n Näkyvyys vaikuttaa
Lisätiedot1. Perusteita. 1.1. Äänen fysiikkaa. Ääniaalto. Aallonpituus ja amplitudi. Taajuus (frequency) Äänen nopeus
1. Perusteita 1. Äänen fysiikkaa 2. Psykoakustiikka 3. Äänen syntetisointi 4. Samplaus ja kvantisointi 5. Tiedostoformaatit 1.1. Äänen fysiikkaa ääni = väliaineessa etenevä mekaaninen värähtely (aaltoliike),
Lisätiedot2. Olio-ohjelmoinista lyhyesti 2.1
2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotMäärittelydokumentti
Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotSurround. Äänitys ja miksaus LFE-kanava 5.1. Mitä tarvitaan? 5 pääkaiutinta aktiivikaiuttimet passiivikaiuttimet + surround-vahvistin
5.1 Viisi pääkanavaa Surround Left (L), Center (C), Right (R), Left Surround (LS), Right Surround (RS) täysi taajuuskaista (20 Hz - 20 khz) Äänitys ja miksaus LFE-kanava Low Frequency Effects taajuuskaista
LisätiedotKESTOMAGNEETTI VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Jani Vitikka p87434 Hannu Tiitinen p87432. Dynaaminen kenttäteoria SATE2010
VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA Jani Vitikka p87434 Hannu Tiitinen p87432 Dynaaminen kenttäteoria SATE2010 KESTOMAGNEETTI Sivumäärä: 10 Jätetty tarkastettavaksi: 16.1.2008 Työn tarkastaja
LisätiedotSokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen
LisätiedotTv-äänisuunnittelu. Antti Silvennoinen Tel. +358 50 3501016 Email. antti.silvennoinen@saunalahti.fi
Antti Silvennoinen Tel. +358 50 3501016 Email. antti.silvennoinen@saunalahti.fi Päivän ohjelma: Käsitteen avaaminen Et, palaverit, suunnittelu Aikataulut Erilaiset tuotannot ja niiden resurssit Puhe vs.
LisätiedotPuhetilojen akustiikka. Henrik Möller Johtava akustiikkakonsultti DI, FISE AA
Puhetilojen akustiikka Henrik Möller Johtava akustiikkakonsultti DI, FISE AA Puheen ominaisuudet Äkilliset äänet ja soivat äänet Soinnilliset ja soinnittomat konsonantit (esim. lmn ja kpt) Vokaalit Normaali
LisätiedotJOHDATUS TEKOÄLYYN TEEMU ROOS
JOHDATUS TEKOÄLYYN TEEMU ROOS ROBOTIIKKA TEKOÄLYN GRAND CHALLENGE YHDISTÄÄ LÄHES KAIKKI TEKOÄLYN OSA-ALUEET: ROBOTIIKKA TEKOÄLYN GRAND CHALLENGE YHDISTÄÄ LÄHES KAIKKI TEKOÄLYN OSA-ALUEET: AKTUAATTORIT:
LisätiedotS09 04 Kohteiden tunnistaminen 3D datasta
AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen
Lisätiedot20. Javan omat luokat 20.1
20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotSolmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:
Frégier n lause Simo K. Kivelä Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä: Suorakulmaisen kolmion kaikki kärjet sijaitsevat paraabelilla y = x 2 ; suoran kulman
LisätiedotÄÄNENVAIMENTIMIEN MALLINNUSPOHJAINEN MONITAVOITTEINEN MUODONOPTIMOINTI 1 JOHDANTO. Tuomas Airaksinen 1, Erkki Heikkola 2
ÄÄNENVAIMENTIMIEN MALLINNUSPOHJAINEN MONITAVOITTEINEN MUODONOPTIMOINTI Tuomas Airaksinen 1, Erkki Heikkola 2 1 Jyväskylän yliopisto PL 35 (Agora), 40014 Jyväskylän yliopisto tuomas.a.airaksinen@jyu.fi
LisätiedotSisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang
Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)
LisätiedotVesisika. metsiemme työmyyrä. http://www.billybear4kids.com/animal/whose-toes/capybara.jpg
Vesisika metsiemme työmyyrä http://www.billybear4kids.com/animal/whose-toes/capybara.jpg Faktat Vesisika tykkää vedestä ja näyttää (ja kuulemma maistuu) hieman sialta. Käyttää myös nickiä kapybara. kapiÿva
Lisätiedot