Producerea sunetului 3D in programare
Scris: 20 Feb 2014, 00:24
De cand am ascultat clipul asta:
https://www.youtube.com/watch?v=IUDTlvagjJA
Mi-am dorit o biblioteca software care sa faca 3d audio prin casti, adica sa poata pozitiona un sunet in toate cele trei dimensiuni, folosind doar castile.
In sfarsit a aparut un wrapper pentru o biblioteca mai complicata (OpenalSoft) care face asta:
http://camlorn.net/posts/camlorn_audio-01.html
Am instalat-o, am scris un mic program de test si pare sa mearga. Sunetul se aude la stanga, la dreapta, in spate, mai sus, mai jos. Am inca ceva probleme sa-l fac sa se auda in fata. Pun mai jos codul de test pe care l-am folosit. E in python, pentru ca biblioteca vine cu bindings de python. Pentru un simplu test n-am mai stat sa fac binding-uri pentru limbajul preferat de mine. Interfata nu e cea mai eficienta si poate nici codul optim, a fost scris pentru verificarea viabilitatii bibliotecii:
import camlorn_audio
import time
camlorn_audio.init_camlorn_audio()
s=camlorn_audio.Sound3D(filename=r"a.wav")
s.set_looping(True)
print(camlorn_audio.default_hrtf_location)
x=0
y=0
z=0
while True:
p=raw_input("enter position")
if p=="d":
x=x+1
elif p=="a":
x=x-1
elif p=="w":
z=z-1
elif p=="s":
z=z+1;
elif p=="r":
y=y+1
elif p=="q":
y=y-1
s.set_position(x,y,z)
s.play()
print(x,y,z)
time.sleep(0.11)
Cum ziceam, n-am reusit sa fac sunetul sa se auda in fata. Citind mai multe informatii despre tehnologia folosita de biblioteca (HRTF) am aflat ca sunt parametri specifici pentru fiecare persoana. Exista pe internet liste cu parametri pentru diverse persoane, eu am incercat sa introduc cateva, dar n-am avut rezultate satisfacatoare. Link-ul pe care l-am folosit este:
http://www.reddit.com/r/oculus/comments/1fzonq/ .
O sa mai incerc si altele. Aplicatiile bibliotecii ar putea fi in primul rand in jocuri audio, apoi in diverse aplicatii de "auditory display".
Cea mai recenta aplicatie este un add-on de NVDA care transmite prin 3d audio pozitia controlului focusat:
http://camlorn.net/posts/a-development- ... poken.html
https://www.youtube.com/watch?v=IUDTlvagjJA
Mi-am dorit o biblioteca software care sa faca 3d audio prin casti, adica sa poata pozitiona un sunet in toate cele trei dimensiuni, folosind doar castile.
In sfarsit a aparut un wrapper pentru o biblioteca mai complicata (OpenalSoft) care face asta:
http://camlorn.net/posts/camlorn_audio-01.html
Am instalat-o, am scris un mic program de test si pare sa mearga. Sunetul se aude la stanga, la dreapta, in spate, mai sus, mai jos. Am inca ceva probleme sa-l fac sa se auda in fata. Pun mai jos codul de test pe care l-am folosit. E in python, pentru ca biblioteca vine cu bindings de python. Pentru un simplu test n-am mai stat sa fac binding-uri pentru limbajul preferat de mine. Interfata nu e cea mai eficienta si poate nici codul optim, a fost scris pentru verificarea viabilitatii bibliotecii:
import camlorn_audio
import time
camlorn_audio.init_camlorn_audio()
s=camlorn_audio.Sound3D(filename=r"a.wav")
s.set_looping(True)
print(camlorn_audio.default_hrtf_location)
x=0
y=0
z=0
while True:
p=raw_input("enter position")
if p=="d":
x=x+1
elif p=="a":
x=x-1
elif p=="w":
z=z-1
elif p=="s":
z=z+1;
elif p=="r":
y=y+1
elif p=="q":
y=y-1
s.set_position(x,y,z)
s.play()
print(x,y,z)
time.sleep(0.11)
Cum ziceam, n-am reusit sa fac sunetul sa se auda in fata. Citind mai multe informatii despre tehnologia folosita de biblioteca (HRTF) am aflat ca sunt parametri specifici pentru fiecare persoana. Exista pe internet liste cu parametri pentru diverse persoane, eu am incercat sa introduc cateva, dar n-am avut rezultate satisfacatoare. Link-ul pe care l-am folosit este:
http://www.reddit.com/r/oculus/comments/1fzonq/ .
O sa mai incerc si altele. Aplicatiile bibliotecii ar putea fi in primul rand in jocuri audio, apoi in diverse aplicatii de "auditory display".
Cea mai recenta aplicatie este un add-on de NVDA care transmite prin 3d audio pozitia controlului focusat:
http://camlorn.net/posts/a-development- ... poken.html