3 April

Wednesday, April 3rd, 2013 by Magnus

Idag analyserades Impulserna vi spelat in i förra veckan.

Anledningen till att vi analyserade de är för att vi skall ha en insikt hur inspelningarna blev och om de kan tänkas fungera och uppnå sökt effekt.

Vi använde audacity för att rita upp ett hanning fönster med FFT analys av några av inpsleningarna.

Nedan följer två av inspelningarna, vid 30 d.v.s. snett framför testpersonen, och vid nittio grader, rakt ut från höger öra.

Vi valde att namnge inspelningarna efter vinkel med början framifrån och hela varvet runt (360 grader) istället för att som man tydligen brukar göra i sådana här sammanhang, 180 grader för respektive öra, eftersom det blir mer logiskt ur spelsammanhang, då fft filtret inte skall agera på ett öra utan en riktningsvektor +- 90 grader.

Vi spelade in en ‘ren’ brus signal, d.v.s. vi försökte spela in ett brus som inte fick någon yttre påverkan innan det nådde mikrofonen, vi hoppades på att detta skulle få en jämn frekvensrespons, då kunde vi ha varit gelt säkra på impulsenrnas trovärdighet. Den inspelning vi gjorde utan påverkan fick dock vissa dalar och kurvor.

Vi kan tyvärr inte veta om desssa är från högtalaren vi använde, från mikrofonerna eller från rummet vi spelade in i. Vi gjorde ett försök at balansera denna inspelning med en equalizer för att få en baskurva att applicera på de andra impulserna, detta fungerade dock inte då det uppstod missjlud när samma eq-kurva applicerades på de andra impulserna.

Om man tittar på dessa två impulser ser man det mönster vi är ute efter, man kan se att topparna och dalarna varierar med vinkeln, både i dess frekvenser och i dess amplitud.

Förhoppningsvis räcker 12 inspelningar för att trovärdigt återge 360 grader.

 WorkbookFFTANALYSIS

Det som förvåmade oss mest med resultaten var hur mycket amplituden skiljde sig så for ljudet inte var framför lyssnaren, redan vid 30 grader märktes väldigt stor skillnad.

20 Mars

Wednesday, April 3rd, 2013 by Magnus

Idag satt jag (Magnus) Med lite unrealscript, enkel kod dock eftersom jag egentligen inte kan unrealscript, men vi behövde an klass som agerar som ljudkälla så att vi inte behöver programmera in alla dessa i max/msp. Optimalt vore att kunna instancera ljudkällor i max/msp beroende på information från UDK men det är inte säkert att Max/Msp’s ‘poly’ funktion är snabb nog eller kan instanceras på detta viiset, kanske med en java klass.

Jusst nu skickar klassen ut info om vart den befinner sig och vilket ljud den spelar upp, och så kollar den om det finns nåt mellan spelaren och ljudet, förhoppningsvis kan detta användas för att kontrollera volym och filtrering.

Jag implementerade även nya structs i Rob Hamiltons DLL binder för att kunna använda Unreal klassen med Max.

Jag och pontus skrev även en java klass för att tolka signalen från oscen beroende på nyckelord.

 

28 Mars

Thursday, March 28th, 2013 by Magnus

Idag har vi spelat in impulssvaren som vi skall basera FFT filtret på.

Inspelningarna gjordes med ett par speciella mikrofoner (Soundman OMK II) som placeras i öronen för att fånga upp det ljud som påverkats av ytterörat.

Vi gjorde inspelningarna med en speciell rigg där vi satte en högtalare, riggan höll högtalaren på ett jämt avstånd, vi valde 1 meter som mätavståndet vilket är något lågt för denna typen av inspelning, det vi sett i andra impulsmätninngar är 1 meter och uppåt, men brist på utrymme gjorde att vi inte kunde få ett jämt avstånd längre än 1 meter.

 

Högtalaren flyttades sedan runt en vår inspelningsperson, och vi spelade impulserna för varje vinkel.

Vi valde att göra 12 inspelningar per varv, och tre varv; ett under lyssnaren, ett över lyssnaren och ett i höjd med lyssnaren, vi mätte innan varje inspelning för att få ett jämt avstånd. Vi spelade även in ett impulssvar rakt ovanför och ett rakt under. Eftersom vi hade 2 OMK II mikrofoner kunde vi nöja oss med att spela in ett 7 (egentligen 6 men ändå) impulser för varje 360 grader och använda den andra mikrofonen som 180-n (n = mätvinkel).

Här är en bild på proceduren, han som sitter i stolen är Jakob Westberg.

21/3 – Post handledning

Thursday, March 21st, 2013 by potnus

Idag hade vi handledning dör vi diskuterade hur det gick på redovisningen och vad vi tar med oss från opponenterna samt examinatorn.
Vi känner att redovisningen gick helt ok men vi kunde ha förberett oss mer och haft mer bilder, vilket några även påpekade.

Vi har kommit fram till att vi ska skippa vår underfrågeställning och fokusera på huvudfrågeställningen till 100%
Detta gör att vi slipper göra diverse speltester för att bevisa att det gör skillnad i spel och kan lägga mer tid på att finjustera motorn och göra spelet bättre.
Vi har ju redan kandidatarbetet skrivet av Breigner och Göthner som en grund till att spelare faktiskt är positivt inställda till tekniken.

Vi har även satt får första deadline som är att innan månaden är slut ska vi ha gjort HRTF-mätningar och vi diskuterar just nu hur detta skulle kunna gå till väga.

21 Mars

Thursday, March 21st, 2013 by Magnus

Idag satt vi och funderade på hur vi kan lösa filtreringen.

FFT står för fast fourier transform och är en process med vilken man kan få fram en represantion av en vågform, bild, funktion, eller vad som helst.

En FFT transform, är en process med vilken man omvandlar data som existerar i tid till data som existerar i frekvensform, d.v.s. en samling frekvenser.

Varje frekvens har två dimensioner, reell och imaginär dessa namnen är helt godtyckliga och skulle kunnat heta t.e.x. X och Y.

I vilket fall som helst så betyder dessa Frekvens respektive fas.

När man plockat isär dessa kan man manipulera egenskaperna för vågformerna lite hur man vill.

I vårt skall vi göra ett filter, då multiplicerar vi den ena vågens  (impulsen) amplitud med den andra vågens, och sedan sätter man ihop vågen igen, från information i frekvens, till information i tid.

Detta ger dock hemska artefakter, dessa kan reduceras genom att öka antalet samples som ‘buffras’ till FFT filtret, men även vid 16284 samples så är ljudkvaliteten oacceptabel.

Dessutom så får man en fördröjning på filtret som är lika stor som buffern, eller som är genomsnittet av filtersignalen (impulsen) för buffern.

man kan lösa detta genom att använda ‘vectral’ noden i max/msp. Jag vet inte vad denna gör men den jämnar ut effekten över ett fixerat antal sampels, i detta fallet använder jag 256 sampels.

 

19/3 Tisdag

Tuesday, March 19th, 2013 by potnus

Vi har nu börjat förbereda oss inför examinationen av första delen som är i morgon 20/3
Vi sitter alltså och läser vårt arbete om och om igen för att utifrån det skriva något liknande ett manus för redovisningen.
Under tiden vi har suttit har vi kommit fram till att vi måste yxa en hel del saker från texten då vi var uppe i 40min från början och bara har 20min på oss.
Vi måste även försöka göra presentationen så lättförståelig som möjligt då det bara är examinatorn och opponenterna som har läst arbetet innan presentationen.
Så en hel del av förberedandet ligger på det.

Vi har även börjat läsa igenom den text vi ska opponera på för att kunna ställa frågor och ge vettig feedback till dem som har skrivit det.

Allt detta gör att det försvinner en hel del tid denna veckan från själva produktionen.

Torsdag 14/3

Monday, March 18th, 2013 by Magnus

Udkosc fungerar nu som den skall mycket tack vare Rob’s  (skaparen av UDKOSC) råd och instruktioner. Han hade nämnt i tidigare mail att han har tänkt implementera rotationsvektorer för spelaren, och det visade sig att han redan hade gjort det i den senaste uppdateringen, det var en trvlig överraskning och ljudmotorn kunde därför testas igår. Testet visade att max/msp patchen fungerade i stort sätt som den skulle. Nu skall bara fler Binaurala element implementeras. Om detta går någorlunda fort har jag tänkt att implementera ett någorlunda primitivt ‘Ambiosoniskt'(googla det) system för reverbet, bestående av en kollisionscheck mellan spelare och ljudkälla som kontrollerar ett filter samt volymjustering. Detta kommer att hjälpa avsevärt vid lokalisering av ljud i ljudmiljön, och skiljer sig från många moderna ljudmotorer (Exempelvis udk’s inbyggda skräp) och kommer att ge en mycket djupare inlevelse i ljudmiljön. Vi måste även tänka på redovisningen. Igår diskuterade vi lite om hur vi kommer att lägga upp den, och vi kommer att behöva börja skriva ner den imorgon. Det är tråkigt att det skall behöva ta så mycket tid när vi behöver så mycket som möjligt till spelet.

Robert hamilton

UDKOSC

Torsdag 7/3

Thursday, March 7th, 2013 by Magnus

Idag börjar jag arbetet på en binaural max/msp syntes.
Idag fokuserade jag på att skapa den delen av patchen som hanterar interaural timedifference. Jag har utgått ifrån den tidigare forskningen för att skapa patchen, exemppelvis för att använda de tider vi läst om, samt dubbelkolla resultaten.
Efter att ha programmerat en itd simulator, märker vi att att man med en överdriven itd effekt uppnår starkare lokaliseringskänsla i ljudet. Ett problem vi stöter på är att ljudet vid en neutral itd känns som att det befinner sig utanför huvudet. Vi märker i alla fall att en klar lokaliseringseffekt uppnås med hjälp av endast itd vilket glädjer oss. Vi börjar fundera på varför ljudet upplevs som inuti huvudet istället för en framför-eller bakom huvudet effekt. Vi tror att det kan ha att göra med att det vi använt för att testa effekten är en musikfil, och därför inte har några klara lokaliserings signaler som t.e.x. reverb som talar om för oss att ljdet befinner sig i en miljö. Därför testar vi även med ett ljudklipp av en internvju Pontus spelat in tidigare.
Vi stötte på problem eftersom delayet inte kunde återskapa den korta perioden som vi ville.
Vi löste detta genom att ställa ner programmets vektorstorlek eller tröskel så att vi kunde få fördröjningar så korta som 2 samples, eller 0,0004 sekunder. Det låter som väldigt lite, men när man lyssnar på ljudet hör man en klar skillnad i vart den uppfattade ljudkällan befinner sig. För att försäkra oss om att delayet fungerade som det skulle, spelade vi in klipp från max/msp och kollade resultatet i Audacity (se bild).
Att minska vectorstorleken gör att ljudkalkyleringarna blir mer komplicerade, det återstår att se hur mycket man kan pressa ner storleken när fler ljud och effekter skall beräknas samtidigt.

Tanken är att vi sedan skall applicera mer delay för båda öronen beroende på ljudkällans avstånd till spelaren för att på så sätt väga upp för ljudets hastighet.

BIld1Audacity

Bild2Audacity

Exempel

6/3 Onsdag – Design

Wednesday, March 6th, 2013 by potnus

För att göra en form av proof of concept på vår ljudmotor har vi även tänkt att göra ett mindre spel.
Vi har nu börjat skissa lite på hur spelet ska/kommer att se ut.
Dett gör vi för att dels veta vad vi jobbar mot och samt även så att vi tidigt kan börja bygga mindre banor som vi kan testa motorn på.

Vi har diskuterat lite om stil och tänker oss rätt enkla miljöer i någon form av “testing facility”-stil likt Portal.

Även Mirror’s edge använder vi som inspiration.

Vi har även börjat skissa på en kortare bakgrundshistoria till spelet, mest för att kunna göra banor som har någon mening i det hela
så att eventuella spelare inte bara går runt i spelet utan att se någon mening med det hela.

Det mesta kommer vara fokuserat runt ljud då det uppenbarligen handlar om att visa upp en ljudmotor.

Vi har även valt att låta spelet vara rätt sterilt rent grafiskt och kommer bygga banor av BSPs i UDK för att vid ett senare tillfälla i princip bara texturera.
Spelet kommer vara helt mörkt och man ska alltså navigera sig med hjälp av ljud. Men vi har även tänkt att lägga in andra funktioner som kan bidraga till spelupplevelsen.
Man ska kunna scanna av omgivningen med en speciell förmåga likt den Daredevil har.
Dardevil är en marvelkarraktär som är blind och navigerar sig med sin hörsel och t.ex när det regnar kan han “se” sin omgivning tack vare ljudet från vattendroppar som träffar mark och dyl.


Vid 00:54 och framåt kan man se det vi menar.

Vår karaktär inspireras av daredevil, man ska alltså kunna skjuta ut en puls som scannar av området snabbt.
Detta helt enkelt för att man inte ska fasta helt och hållet utan även kunna ta sig vidare igenom att se vad man har runt om sig.

1/3 Fredag – Delmoment 1 klart!

Friday, March 1st, 2013 by potnus

Vi har nu lämnat in arbete och är som vi nämnt tidigare riktigt nöjda.

Vi blev stressade för att möta deadline eftersom vi inte hade alla källor förtecknade i texten samt att vi formaterade om hela texten.

Tyvärr var vi tvungna att slopa ett av kapitlen vi börjat på då informationen inte var tillräckligt källförtecknad och färdigskriven, dock var det ett kapitel som  mest behandlade det praktiska som vi kommer att behöva tänka på under produktionstiden så kapitlet var inget som var nödvändigt för att texten skulle fungera,, men det hade varit roligt att få med.

20130307_145051