Ejemplo n.º 1
0
print "Using", databaseFile, "database."
print "Gathering files..."
hrtfDatabase = bmaudio.HrtfDatabase(databaseFile)

r = 1.4
R = 0.075  # interaural distance
R = 0.088  # equivalent sphere
a0 = math.acos(R / r)
nBins = 1024 * 4
samplingRate = 44100
spectralRange = samplingRate / 2.0
c = 344
spectrumBins = nBins / 2 + 1
Ns = [72, 36, 24, 18, 12]

delays = bmaudio.azimuthDelaysFromHorizontalHrtf(hrtfDatabase)

w = 2 * math.pi * spectralRange / spectrumBins * numpy.arange(spectrumBins)
filters = dict([(N, numpy.zeros(spectrumBins, numpy.complex)) for N in Ns])
for N in Ns:
    for azimuth in xrange(0, 360, 360 / N):
        sinusoid = numpy.exp(1j * delays[azimuth] * w)
        filters[N] += sinusoid / N * sum(headDistortion.maxrePolarPattern(math.radians(azimuth - 90), 0))

plot = bmaudio.SpectrumDisplay()
plot.inDb()
plot.showPhase()
plot.ylim(-20, 2)
plot.flim(fmax=20000)
for N in Ns:
    plot.addSpectrumData(filters[N], 20050, "%i speakers" % N)
Ejemplo n.º 2
0
def hrtfDelaySimulation(hrtfDatabase, referenceAzimuthDegrees, speakers, polarPattern, ordersToShow) :
	delays = bmaudio.azimuthDelaysFromHorizontalHrtf(hrtfDatabase)
	return delayBasedDecodingSimulation(delays, referenceAzimuthDegrees, speakers, polarPattern, ordersToShow)