aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/hrtf.c127
-rw-r--r--docs/hrtf.txt66
-rw-r--r--utils/CIAIR.def5860
-rw-r--r--utils/IRC_1005.def768
-rw-r--r--utils/MIT_KEMAR.def109
-rw-r--r--utils/makehrtf.c1383
6 files changed, 5390 insertions, 2923 deletions
diff --git a/Alc/hrtf.c b/Alc/hrtf.c
index 752ca4f8..4f0465de 100644
--- a/Alc/hrtf.c
+++ b/Alc/hrtf.c
@@ -40,12 +40,20 @@
#define MAX_IR_SIZE (512)
#define MOD_IR_SIZE (8)
+#define MIN_FD_COUNT (1)
+#define MAX_FD_COUNT (16)
+
+#define MIN_FD_DISTANCE (50)
+#define MAX_FD_DISTANCE (2500)
+
#define MIN_EV_COUNT (5)
#define MAX_EV_COUNT (128)
#define MIN_AZ_COUNT (1)
#define MAX_AZ_COUNT (128)
+#define MAX_HRIR_DELAY (HRTF_HISTORY_LENGTH-1)
+
struct HrtfEntry {
struct HrtfEntry *next;
struct Hrtf *handle;
@@ -54,8 +62,7 @@ struct HrtfEntry {
static const ALchar magicMarker00[8] = "MinPHR00";
static const ALchar magicMarker01[8] = "MinPHR01";
-/* FIXME: Set with the right number when finalized. */
-static const ALchar magicMarker02[18] = "MinPHRTEMPDONOTUSE";
+static const ALchar magicMarker02[8] = "MinPHR02";
/* First value for pass-through coefficients (remaining are 0), used for omni-
* directional sounds. */
@@ -411,7 +418,6 @@ static const ALubyte *Get_ALubytePtr(const ALubyte **data, size_t *len, size_t s
static struct Hrtf *LoadHrtf00(const ALubyte *data, size_t datalen, const char *filename)
{
- const ALubyte maxDelay = HRTF_HISTORY_LENGTH-1;
struct Hrtf *Hrtf = NULL;
ALboolean failed = AL_FALSE;
ALuint rate = 0;
@@ -537,9 +543,9 @@ static struct Hrtf *LoadHrtf00(const ALubyte *data, size_t datalen, const char *
for(i = 0;i < irCount;i++)
{
delays[i][0] = GetLE_ALubyte(&data, &datalen);
- if(delays[i][0] > maxDelay)
+ if(delays[i][0] > MAX_HRIR_DELAY)
{
- ERR("Invalid delays[%d]: %d (%d)\n", i, delays[i][0], maxDelay);
+ ERR("Invalid delays[%d]: %d (%d)\n", i, delays[i][0], MAX_HRIR_DELAY);
failed = AL_TRUE;
}
}
@@ -577,7 +583,6 @@ static struct Hrtf *LoadHrtf00(const ALubyte *data, size_t datalen, const char *
static struct Hrtf *LoadHrtf01(const ALubyte *data, size_t datalen, const char *filename)
{
- const ALubyte maxDelay = HRTF_HISTORY_LENGTH-1;
struct Hrtf *Hrtf = NULL;
ALboolean failed = AL_FALSE;
ALuint rate = 0;
@@ -686,9 +691,9 @@ static struct Hrtf *LoadHrtf01(const ALubyte *data, size_t datalen, const char *
for(i = 0;i < irCount;i++)
{
delays[i][0] = GetLE_ALubyte(&data, &datalen);
- if(delays[i][0] > maxDelay)
+ if(delays[i][0] > MAX_HRIR_DELAY)
{
- ERR("Invalid delays[%d]: %d (%d)\n", i, delays[i][0], maxDelay);
+ ERR("Invalid delays[%d]: %d (%d)\n", i, delays[i][0], MAX_HRIR_DELAY);
failed = AL_TRUE;
}
}
@@ -731,7 +736,6 @@ static struct Hrtf *LoadHrtf01(const ALubyte *data, size_t datalen, const char *
static struct Hrtf *LoadHrtf02(const ALubyte *data, size_t datalen, const char *filename)
{
- const ALubyte maxDelay = HRTF_HISTORY_LENGTH-1;
struct Hrtf *Hrtf = NULL;
ALboolean failed = AL_FALSE;
ALuint rate = 0;
@@ -739,6 +743,8 @@ static struct Hrtf *LoadHrtf02(const ALubyte *data, size_t datalen, const char *
ALubyte channelType;
ALushort irCount = 0;
ALushort irSize = 0;
+ ALubyte fdCount = 0;
+ ALushort distance = 0;
ALubyte evCount = 0;
const ALubyte *azCount = NULL;
ALushort *evOffset = NULL;
@@ -758,7 +764,7 @@ static struct Hrtf *LoadHrtf02(const ALubyte *data, size_t datalen, const char *
irSize = GetLE_ALubyte(&data, &datalen);
- evCount = GetLE_ALubyte(&data, &datalen);
+ fdCount = GetLE_ALubyte(&data, &datalen);
if(sampleType > SAMPLETYPE_S24)
{
@@ -777,42 +783,67 @@ static struct Hrtf *LoadHrtf02(const ALubyte *data, size_t datalen, const char *
irSize, MIN_IR_SIZE, MAX_IR_SIZE, MOD_IR_SIZE);
failed = AL_TRUE;
}
- if(evCount < MIN_EV_COUNT || evCount > MAX_EV_COUNT)
+ if(fdCount != 1)
{
- ERR("Unsupported elevation count: evCount=%d (%d to %d)\n",
- evCount, MIN_EV_COUNT, MAX_EV_COUNT);
+ ERR("Multiple field-depths not supported: fdCount=%d (%d to %d)\n",
+ evCount, MIN_FD_COUNT, MAX_FD_COUNT);
failed = AL_TRUE;
}
if(failed)
return NULL;
- if(datalen < evCount)
+ for(i = 0;i < fdCount;i++)
{
- ERR("Unexpected end of %s data (req %d, rem "SZFMT"\n", filename, evCount, datalen);
- return NULL;
- }
+ if(datalen < 3)
+ {
+ ERR("Unexpected end of %s data (req %d, rem "SZFMT"\n", filename, 3, datalen);
+ return NULL;
+ }
- azCount = Get_ALubytePtr(&data, &datalen, evCount);
+ distance = GetLE_ALushort(&data, &datalen);
+ if(distance < MIN_FD_DISTANCE || distance > MAX_FD_DISTANCE)
+ {
+ ERR("Unsupported field distance: distance=%d (%dmm to %dmm)\n",
+ distance, MIN_FD_DISTANCE, MAX_FD_DISTANCE);
+ failed = AL_TRUE;
+ }
- evOffset = malloc(sizeof(evOffset[0])*evCount);
- if(azCount == NULL || evOffset == NULL)
- {
- ERR("Out of memory.\n");
- failed = AL_TRUE;
- }
+ evCount = GetLE_ALubyte(&data, &datalen);
+ if(evCount < MIN_EV_COUNT || evCount > MAX_EV_COUNT)
+ {
+ ERR("Unsupported elevation count: evCount=%d (%d to %d)\n",
+ evCount, MIN_EV_COUNT, MAX_EV_COUNT);
+ failed = AL_TRUE;
+ }
+ if(failed)
+ return NULL;
- if(!failed)
- {
- for(i = 0;i < evCount;i++)
+ if(datalen < evCount)
{
- if(azCount[i] < MIN_AZ_COUNT || azCount[i] > MAX_AZ_COUNT)
+ ERR("Unexpected end of %s data (req %d, rem "SZFMT"\n", filename, evCount, datalen);
+ return NULL;
+ }
+
+ azCount = Get_ALubytePtr(&data, &datalen, evCount);
+ for(j = 0;j < evCount;j++)
+ {
+ if(azCount[j] < MIN_AZ_COUNT || azCount[j] > MAX_AZ_COUNT)
{
ERR("Unsupported azimuth count: azCount[%d]=%d (%d to %d)\n",
- i, azCount[i], MIN_AZ_COUNT, MAX_AZ_COUNT);
+ j, azCount[j], MIN_AZ_COUNT, MAX_AZ_COUNT);
failed = AL_TRUE;
}
}
}
+ if(failed)
+ return NULL;
+
+ evOffset = malloc(sizeof(evOffset[0])*evCount);
+ if(azCount == NULL || evOffset == NULL)
+ {
+ ERR("Out of memory.\n");
+ failed = AL_TRUE;
+ }
if(!failed)
{
@@ -846,7 +877,7 @@ static struct Hrtf *LoadHrtf02(const ALubyte *data, size_t datalen, const char *
if(!failed)
{
- if(channelType == CHANTYPE_LEFTONLY || channelType == CHANTYPE_LEFTRIGHT)
+ if(channelType == CHANTYPE_LEFTONLY)
{
if(sampleType == SAMPLETYPE_S16)
for(i = 0;i < irCount;i++)
@@ -860,42 +891,50 @@ static struct Hrtf *LoadHrtf02(const ALubyte *data, size_t datalen, const char *
for(j = 0;j < irSize;j++)
coeffs[i*irSize + j][0] = GetLE_ALint24(&data, &datalen) / 8388608.0f;
}
+
+ for(i = 0;i < irCount;i++)
+ {
+ delays[i][0] = GetLE_ALubyte(&data, &datalen);
+ if(delays[i][0] > MAX_HRIR_DELAY)
+ {
+ ERR("Invalid delays[%d][0]: %d (%d)\n", i, delays[i][0], MAX_HRIR_DELAY);
+ failed = AL_TRUE;
+ }
+ }
}
- if(channelType == CHANTYPE_LEFTRIGHT)
+ else if(channelType == CHANTYPE_LEFTRIGHT)
{
if(sampleType == SAMPLETYPE_S16)
for(i = 0;i < irCount;i++)
{
for(j = 0;j < irSize;j++)
+ {
+ coeffs[i*irSize + j][0] = GetLE_ALshort(&data, &datalen) / 32768.0f;
coeffs[i*irSize + j][1] = GetLE_ALshort(&data, &datalen) / 32768.0f;
+ }
}
else if(sampleType == SAMPLETYPE_S24)
for(i = 0;i < irCount;i++)
{
for(j = 0;j < irSize;j++)
+ {
+ coeffs[i*irSize + j][0] = GetLE_ALint24(&data, &datalen) / 8388608.0f;
coeffs[i*irSize + j][1] = GetLE_ALint24(&data, &datalen) / 8388608.0f;
+ }
}
- }
- if(channelType == CHANTYPE_LEFTONLY || channelType == CHANTYPE_LEFTRIGHT)
- {
+
for(i = 0;i < irCount;i++)
{
delays[i][0] = GetLE_ALubyte(&data, &datalen);
- if(delays[i][0] > maxDelay)
+ if(delays[i][0] > MAX_HRIR_DELAY)
{
- ERR("Invalid delays[%d][0]: %d (%d)\n", i, delays[i][0], maxDelay);
+ ERR("Invalid delays[%d][0]: %d (%d)\n", i, delays[i][0], MAX_HRIR_DELAY);
failed = AL_TRUE;
}
- }
- }
- if(channelType == CHANTYPE_LEFTRIGHT)
- {
- for(i = 0;i < irCount;i++)
- {
delays[i][1] = GetLE_ALubyte(&data, &datalen);
- if(delays[i][1] > maxDelay)
+ if(delays[i][1] > MAX_HRIR_DELAY)
{
- ERR("Invalid delays[%d][1]: %d (%d)\n", i, delays[i][1], maxDelay);
+ ERR("Invalid delays[%d][1]: %d (%d)\n", i, delays[i][1], MAX_HRIR_DELAY);
failed = AL_TRUE;
}
}
diff --git a/docs/hrtf.txt b/docs/hrtf.txt
index 37a329d2..ba8cd8fa 100644
--- a/docs/hrtf.txt
+++ b/docs/hrtf.txt
@@ -29,22 +29,31 @@ rates, for example.
The file format is specified below. It uses little-endian byte order.
==
-ALchar magic[8] = "MinPHR01";
+ALchar magic[8] = "MinPHR02";
ALuint sampleRate;
-
-ALubyte hrirSize; /* Can be 8 to 128 in steps of 8. */
-ALubyte evCount; /* Can be 5 to 128. */
-
-ALubyte azCount[evCount]; /* Each can be 1 to 128. */
-
-/* NOTE: hrirCount is the sum of all azCounts */
-ALshort coefficients[hrirCount][hrirSize];
-ALubyte delays[hrirCount]; /* Each can be 0 to 63. */
+ALubyte sampleType; /* Can be 0 (16-bit) or 1 (24-bit). */
+ALubyte channelType; /* Can be 0 (mono) or 1 (stereo). */
+ALubyte hrirSize; /* Can be 8 to 128 in steps of 8. */
+ALubyte fdCount; /* Can be 1 to 16. */
+
+struct {
+ ALushort distance; /* Can be 50mm to 2500mm. */
+ ALubyte evCount; /* Can be 5 to 128. */
+ ALubyte azCount[evCount]; /* Each can be 1 to 128. */
+} fields[fdCount];
+
+/* NOTE: ALtype can be ALshort (16-bit) or ALbyte[3] (24-bit) depending on
+ * sampleType,
+ * hrirCount is the sum of all azCounts.
+ * channels can be 1 (mono) or 2 (stereo) depending on channelType.
+ */
+ALtype coefficients[hrirCount][hrirSize][channels];
+ALubyte delays[hrirCount][channels]; /* Each can be 0 to 63. */
==
The data is described as thus:
-The file first starts with the 8-byte marker, "MinPHR01", to identify it as an
+The file first starts with the 8-byte marker, "MinPHR02", to identify it as an
HRTF data set. This is followed by an unsigned 32-bit integer, specifying the
sample rate the data set is designed for (OpenAL Soft will not use it if the
output device's playback rate doesn't match).
@@ -52,23 +61,24 @@ output device's playback rate doesn't match).
Afterward, an unsigned 8-bit integer specifies how many sample points (or
finite impulse response filter coefficients) make up each HRIR.
-The following unsigned 8-bit integer specifies the number of elevations used
-by the data set. The elevations start at the bottom (-90 degrees), and
-increment upwards. Following this is an array of unsigned 8-bit integers, one
-for each elevation which specifies the number of azimuths (and thus HRIRs) that
-make up each elevation. Azimuths start clockwise from the front, constructing
-a full circle for the left ear only. The right ear uses the same HRIRs but in
-reverse (ie, left = angle, right = 360-angle).
-
-The actual coefficients follow. Each coefficient is a signed 16-bit sample,
-with each HRIR being a consecutive number of sample points. The HRIRs must be
-minimum-phase. This allows the use of a smaller filter length, reducing
-computation. For reference, the built-in data set uses a 32-point filter while
+The following unsigned 8-bit integer specifies the number of fields used by the
+data set. Then for each field an unsigned 16-bit short specifies the distance
+for that field (in millimeters), followed by an 8-bit integer for the number of
+elevations. These elevations start at the bottom (-90 degrees), and increment
+upwards. Following this is an array of unsigned 8-bit integers, one for each
+elevation which specifies the number of azimuths (and thus HRIRs) that make up
+each elevation. Azimuths start clockwise from the front, constructing a full
+circle. Mono HRTFs use the same HRIRs for both ears by reversing the azimuth
+calculation (ie. left = angle, right = 360-angle).
+
+The actual coefficients follow. Each coefficient is a signed 16-bit or 24-bit
+sample. Stereo HRTFs interleave left/right ear coefficients. The HRIRs must
+be minimum-phase. This allows the use of a smaller filter length, reducing
+computation. For reference, the default data set uses a 32-point filter while
even the smallest data set provided by MIT used a 128-sample filter (a 4x
-reduction by applying minimum-phase reconstruction). Theoretically, one could
-further reduce the minimum-phase version down to a 16-point filter with only a
-small reduction in quality.
+reduction by applying minimum-phase reconstruction).
After the coefficients is an array of unsigned 8-bit delay values, one for
-each HRIR. This is the propagation delay (in samples) a signal must wait before
-being convolved with the corresponding minimum-phase HRIR filter.
+each HRIR (with stereo HRTFs interleaving left/right ear delays). This is the
+propagation delay (in samples) a signal must wait before being convolved with
+the corresponding minimum-phase HRIR filter.
diff --git a/utils/CIAIR.def b/utils/CIAIR.def
index 9589a694..4876dc50 100644
--- a/utils/CIAIR.def
+++ b/utils/CIAIR.def
@@ -1,9 +1,9 @@
# This is a makehrtf HRIR definition file. It is used to define the layout
# and source data to be processed into an OpenAL Soft compatible HRTF.
#
-# This definition is used to transform the left ear HRIRs from a data set
-# used in several papers and articles by Fumitada Itakura, Kazuya Takeda,
-# Mikio Ikeda, Shoji Kajita, and Takanori Nishino.
+# This definition is used to transform the left and right ear HRIRs from a
+# data set used in several papers and articles by Fumitada Itakura, Kazuya
+# Takeda, Mikio Ikeda, Shoji Kajita, and Takanori Nishino.
#
# The data (data02.tgz) can be obtained from The Database of Head Related
# Transfer Functions hosted by the Takeda Laboratory at Nagoya University:
@@ -17,1994 +17,3942 @@
rate = 44100
-points = 512
+# The CIAIR set is stereo because it provides both ear HRIRs.
+type = stereo
-# The CIAIR set is composed of a uniform number of azimuths for all but the
-# poles (-90 and 90 degree elevation).
-azimuths = 1, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 1
+points = 512
# No head radius was provided. Just use the average radius of 9 cm.
radius = 0.09
-# The distance between the source and the listener is not known for this set,
-# so 1.5 m is used.
+# The CIAIR set is composed of a single field with an unknown distance
+# between the source and the listener, so a guess of 1.5 meters is used.
distance = 1.5
+# This set has a uniform number of azimuths for all but the poles (-90 and 90
+# degree elevation).
+azimuths = 1, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 1
+
# The CIAIR source azimuth is counter-clockwise, so it needs to be flipped.
# The extension of the source data may be misleading, they're ASCII text
-# lists of floating point values (one per line).
-
-[ 9, 0 ] = ascii (fp) : "./hrtfs/elev-45/L-45e000a.dat"
-[ 9, 1 ] = ascii (fp) : "./hrtfs/elev-45/L-45e355a.dat"
-[ 9, 2 ] = ascii (fp) : "./hrtfs/elev-45/L-45e350a.dat"
-[ 9, 3 ] = ascii (fp) : "./hrtfs/elev-45/L-45e345a.dat"
-[ 9, 4 ] = ascii (fp) : "./hrtfs/elev-45/L-45e340a.dat"
-[ 9, 5 ] = ascii (fp) : "./hrtfs/elev-45/L-45e335a.dat"
-[ 9, 6 ] = ascii (fp) : "./hrtfs/elev-45/L-45e330a.dat"
-[ 9, 7 ] = ascii (fp) : "./hrtfs/elev-45/L-45e325a.dat"
-[ 9, 8 ] = ascii (fp) : "./hrtfs/elev-45/L-45e320a.dat"
-[ 9, 9 ] = ascii (fp) : "./hrtfs/elev-45/L-45e315a.dat"
-[ 9, 10 ] = ascii (fp) : "./hrtfs/elev-45/L-45e310a.dat"
-[ 9, 11 ] = ascii (fp) : "./hrtfs/elev-45/L-45e305a.dat"
-[ 9, 12 ] = ascii (fp) : "./hrtfs/elev-45/L-45e300a.dat"
-[ 9, 13 ] = ascii (fp) : "./hrtfs/elev-45/L-45e295a.dat"
-[ 9, 14 ] = ascii (fp) : "./hrtfs/elev-45/L-45e290a.dat"
-[ 9, 15 ] = ascii (fp) : "./hrtfs/elev-45/L-45e285a.dat"
-[ 9, 16 ] = ascii (fp) : "./hrtfs/elev-45/L-45e280a.dat"
-[ 9, 17 ] = ascii (fp) : "./hrtfs/elev-45/L-45e275a.dat"
-[ 9, 18 ] = ascii (fp) : "./hrtfs/elev-45/L-45e270a.dat"
-[ 9, 19 ] = ascii (fp) : "./hrtfs/elev-45/L-45e265a.dat"
-[ 9, 20 ] = ascii (fp) : "./hrtfs/elev-45/L-45e260a.dat"
-[ 9, 21 ] = ascii (fp) : "./hrtfs/elev-45/L-45e255a.dat"
-[ 9, 22 ] = ascii (fp) : "./hrtfs/elev-45/L-45e250a.dat"
-[ 9, 23 ] = ascii (fp) : "./hrtfs/elev-45/L-45e245a.dat"
-[ 9, 24 ] = ascii (fp) : "./hrtfs/elev-45/L-45e240a.dat"
-[ 9, 25 ] = ascii (fp) : "./hrtfs/elev-45/L-45e235a.dat"
-[ 9, 26 ] = ascii (fp) : "./hrtfs/elev-45/L-45e230a.dat"
-[ 9, 27 ] = ascii (fp) : "./hrtfs/elev-45/L-45e225a.dat"
-[ 9, 28 ] = ascii (fp) : "./hrtfs/elev-45/L-45e220a.dat"
-[ 9, 29 ] = ascii (fp) : "./hrtfs/elev-45/L-45e215a.dat"
-[ 9, 30 ] = ascii (fp) : "./hrtfs/elev-45/L-45e210a.dat"
-[ 9, 31 ] = ascii (fp) : "./hrtfs/elev-45/L-45e205a.dat"
-[ 9, 32 ] = ascii (fp) : "./hrtfs/elev-45/L-45e200a.dat"
-[ 9, 33 ] = ascii (fp) : "./hrtfs/elev-45/L-45e195a.dat"
-[ 9, 34 ] = ascii (fp) : "./hrtfs/elev-45/L-45e190a.dat"
-[ 9, 35 ] = ascii (fp) : "./hrtfs/elev-45/L-45e185a.dat"
-[ 9, 36 ] = ascii (fp) : "./hrtfs/elev-45/L-45e180a.dat"
-[ 9, 37 ] = ascii (fp) : "./hrtfs/elev-45/L-45e175a.dat"
-[ 9, 38 ] = ascii (fp) : "./hrtfs/elev-45/L-45e170a.dat"
-[ 9, 39 ] = ascii (fp) : "./hrtfs/elev-45/L-45e165a.dat"
-[ 9, 40 ] = ascii (fp) : "./hrtfs/elev-45/L-45e160a.dat"
-[ 9, 41 ] = ascii (fp) : "./hrtfs/elev-45/L-45e155a.dat"
-[ 9, 42 ] = ascii (fp) : "./hrtfs/elev-45/L-45e150a.dat"
-[ 9, 43 ] = ascii (fp) : "./hrtfs/elev-45/L-45e145a.dat"
-[ 9, 44 ] = ascii (fp) : "./hrtfs/elev-45/L-45e140a.dat"
-[ 9, 45 ] = ascii (fp) : "./hrtfs/elev-45/L-45e135a.dat"
-[ 9, 46 ] = ascii (fp) : "./hrtfs/elev-45/L-45e130a.dat"
-[ 9, 47 ] = ascii (fp) : "./hrtfs/elev-45/L-45e125a.dat"
-[ 9, 48 ] = ascii (fp) : "./hrtfs/elev-45/L-45e120a.dat"
-[ 9, 49 ] = ascii (fp) : "./hrtfs/elev-45/L-45e115a.dat"
-[ 9, 50 ] = ascii (fp) : "./hrtfs/elev-45/L-45e110a.dat"
-[ 9, 51 ] = ascii (fp) : "./hrtfs/elev-45/L-45e105a.dat"
-[ 9, 52 ] = ascii (fp) : "./hrtfs/elev-45/L-45e100a.dat"
-[ 9, 53 ] = ascii (fp) : "./hrtfs/elev-45/L-45e095a.dat"
-[ 9, 54 ] = ascii (fp) : "./hrtfs/elev-45/L-45e090a.dat"
-[ 9, 55 ] = ascii (fp) : "./hrtfs/elev-45/L-45e085a.dat"
-[ 9, 56 ] = ascii (fp) : "./hrtfs/elev-45/L-45e080a.dat"
-[ 9, 57 ] = ascii (fp) : "./hrtfs/elev-45/L-45e075a.dat"
-[ 9, 58 ] = ascii (fp) : "./hrtfs/elev-45/L-45e070a.dat"
-[ 9, 59 ] = ascii (fp) : "./hrtfs/elev-45/L-45e065a.dat"
-[ 9, 60 ] = ascii (fp) : "./hrtfs/elev-45/L-45e060a.dat"
-[ 9, 61 ] = ascii (fp) : "./hrtfs/elev-45/L-45e055a.dat"
-[ 9, 62 ] = ascii (fp) : "./hrtfs/elev-45/L-45e050a.dat"
-[ 9, 63 ] = ascii (fp) : "./hrtfs/elev-45/L-45e045a.dat"
-[ 9, 64 ] = ascii (fp) : "./hrtfs/elev-45/L-45e040a.dat"
-[ 9, 65 ] = ascii (fp) : "./hrtfs/elev-45/L-45e035a.dat"
-[ 9, 66 ] = ascii (fp) : "./hrtfs/elev-45/L-45e030a.dat"
-[ 9, 67 ] = ascii (fp) : "./hrtfs/elev-45/L-45e025a.dat"
-[ 9, 68 ] = ascii (fp) : "./hrtfs/elev-45/L-45e020a.dat"
-[ 9, 69 ] = ascii (fp) : "./hrtfs/elev-45/L-45e015a.dat"
-[ 9, 70 ] = ascii (fp) : "./hrtfs/elev-45/L-45e010a.dat"
-[ 9, 71 ] = ascii (fp) : "./hrtfs/elev-45/L-45e005a.dat"
+# lists of floating point values (one per line). Left and right ear HRIRs
+# (from the respective files) are used to create a stereo HRTF.
+[ 9, 0 ] = ascii (fp) : "./hrtfs/elev-45/L-45e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e000a.dat right
+[ 9, 1 ] = ascii (fp) : "./hrtfs/elev-45/L-45e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e355a.dat right
+[ 9, 2 ] = ascii (fp) : "./hrtfs/elev-45/L-45e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e350a.dat right
+[ 9, 3 ] = ascii (fp) : "./hrtfs/elev-45/L-45e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e345a.dat right
+[ 9, 4 ] = ascii (fp) : "./hrtfs/elev-45/L-45e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e340a.dat right
+[ 9, 5 ] = ascii (fp) : "./hrtfs/elev-45/L-45e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e335a.dat right
+[ 9, 6 ] = ascii (fp) : "./hrtfs/elev-45/L-45e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e330a.dat right
+[ 9, 7 ] = ascii (fp) : "./hrtfs/elev-45/L-45e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e325a.dat right
+[ 9, 8 ] = ascii (fp) : "./hrtfs/elev-45/L-45e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e320a.dat right
+[ 9, 9 ] = ascii (fp) : "./hrtfs/elev-45/L-45e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e315a.dat right
+[ 9, 10 ] = ascii (fp) : "./hrtfs/elev-45/L-45e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e310a.dat right
+[ 9, 11 ] = ascii (fp) : "./hrtfs/elev-45/L-45e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e305a.dat right
+[ 9, 12 ] = ascii (fp) : "./hrtfs/elev-45/L-45e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e300a.dat right
+[ 9, 13 ] = ascii (fp) : "./hrtfs/elev-45/L-45e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e295a.dat right
+[ 9, 14 ] = ascii (fp) : "./hrtfs/elev-45/L-45e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e290a.dat right
+[ 9, 15 ] = ascii (fp) : "./hrtfs/elev-45/L-45e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e285a.dat right
+[ 9, 16 ] = ascii (fp) : "./hrtfs/elev-45/L-45e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e280a.dat right
+[ 9, 17 ] = ascii (fp) : "./hrtfs/elev-45/L-45e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e275a.dat right
+[ 9, 18 ] = ascii (fp) : "./hrtfs/elev-45/L-45e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e270a.dat right
+[ 9, 19 ] = ascii (fp) : "./hrtfs/elev-45/L-45e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e265a.dat right
+[ 9, 20 ] = ascii (fp) : "./hrtfs/elev-45/L-45e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e260a.dat right
+[ 9, 21 ] = ascii (fp) : "./hrtfs/elev-45/L-45e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e255a.dat right
+[ 9, 22 ] = ascii (fp) : "./hrtfs/elev-45/L-45e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e250a.dat right
+[ 9, 23 ] = ascii (fp) : "./hrtfs/elev-45/L-45e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e245a.dat right
+[ 9, 24 ] = ascii (fp) : "./hrtfs/elev-45/L-45e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e240a.dat right
+[ 9, 25 ] = ascii (fp) : "./hrtfs/elev-45/L-45e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e235a.dat right
+[ 9, 26 ] = ascii (fp) : "./hrtfs/elev-45/L-45e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e230a.dat right
+[ 9, 27 ] = ascii (fp) : "./hrtfs/elev-45/L-45e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e225a.dat right
+[ 9, 28 ] = ascii (fp) : "./hrtfs/elev-45/L-45e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e220a.dat right
+[ 9, 29 ] = ascii (fp) : "./hrtfs/elev-45/L-45e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e215a.dat right
+[ 9, 30 ] = ascii (fp) : "./hrtfs/elev-45/L-45e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e210a.dat right
+[ 9, 31 ] = ascii (fp) : "./hrtfs/elev-45/L-45e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e205a.dat right
+[ 9, 32 ] = ascii (fp) : "./hrtfs/elev-45/L-45e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e200a.dat right
+[ 9, 33 ] = ascii (fp) : "./hrtfs/elev-45/L-45e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e195a.dat right
+[ 9, 34 ] = ascii (fp) : "./hrtfs/elev-45/L-45e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e190a.dat right
+[ 9, 35 ] = ascii (fp) : "./hrtfs/elev-45/L-45e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e185a.dat right
+[ 9, 36 ] = ascii (fp) : "./hrtfs/elev-45/L-45e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e180a.dat right
+[ 9, 37 ] = ascii (fp) : "./hrtfs/elev-45/L-45e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e175a.dat right
+[ 9, 38 ] = ascii (fp) : "./hrtfs/elev-45/L-45e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e170a.dat right
+[ 9, 39 ] = ascii (fp) : "./hrtfs/elev-45/L-45e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e165a.dat right
+[ 9, 40 ] = ascii (fp) : "./hrtfs/elev-45/L-45e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e160a.dat right
+[ 9, 41 ] = ascii (fp) : "./hrtfs/elev-45/L-45e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e155a.dat right
+[ 9, 42 ] = ascii (fp) : "./hrtfs/elev-45/L-45e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e150a.dat right
+[ 9, 43 ] = ascii (fp) : "./hrtfs/elev-45/L-45e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e145a.dat right
+[ 9, 44 ] = ascii (fp) : "./hrtfs/elev-45/L-45e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e140a.dat right
+[ 9, 45 ] = ascii (fp) : "./hrtfs/elev-45/L-45e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e135a.dat right
+[ 9, 46 ] = ascii (fp) : "./hrtfs/elev-45/L-45e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e130a.dat right
+[ 9, 47 ] = ascii (fp) : "./hrtfs/elev-45/L-45e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e125a.dat right
+[ 9, 48 ] = ascii (fp) : "./hrtfs/elev-45/L-45e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e120a.dat right
+[ 9, 49 ] = ascii (fp) : "./hrtfs/elev-45/L-45e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e115a.dat right
+[ 9, 50 ] = ascii (fp) : "./hrtfs/elev-45/L-45e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e110a.dat right
+[ 9, 51 ] = ascii (fp) : "./hrtfs/elev-45/L-45e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e105a.dat right
+[ 9, 52 ] = ascii (fp) : "./hrtfs/elev-45/L-45e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e100a.dat right
+[ 9, 53 ] = ascii (fp) : "./hrtfs/elev-45/L-45e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e095a.dat right
+[ 9, 54 ] = ascii (fp) : "./hrtfs/elev-45/L-45e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e090a.dat right
+[ 9, 55 ] = ascii (fp) : "./hrtfs/elev-45/L-45e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e085a.dat right
+[ 9, 56 ] = ascii (fp) : "./hrtfs/elev-45/L-45e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e080a.dat right
+[ 9, 57 ] = ascii (fp) : "./hrtfs/elev-45/L-45e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e075a.dat right
+[ 9, 58 ] = ascii (fp) : "./hrtfs/elev-45/L-45e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e070a.dat right
+[ 9, 59 ] = ascii (fp) : "./hrtfs/elev-45/L-45e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e065a.dat right
+[ 9, 60 ] = ascii (fp) : "./hrtfs/elev-45/L-45e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e060a.dat right
+[ 9, 61 ] = ascii (fp) : "./hrtfs/elev-45/L-45e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e055a.dat right
+[ 9, 62 ] = ascii (fp) : "./hrtfs/elev-45/L-45e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e050a.dat right
+[ 9, 63 ] = ascii (fp) : "./hrtfs/elev-45/L-45e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e045a.dat right
+[ 9, 64 ] = ascii (fp) : "./hrtfs/elev-45/L-45e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e040a.dat right
+[ 9, 65 ] = ascii (fp) : "./hrtfs/elev-45/L-45e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e035a.dat right
+[ 9, 66 ] = ascii (fp) : "./hrtfs/elev-45/L-45e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e030a.dat right
+[ 9, 67 ] = ascii (fp) : "./hrtfs/elev-45/L-45e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e025a.dat right
+[ 9, 68 ] = ascii (fp) : "./hrtfs/elev-45/L-45e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e020a.dat right
+[ 9, 69 ] = ascii (fp) : "./hrtfs/elev-45/L-45e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e015a.dat right
+[ 9, 70 ] = ascii (fp) : "./hrtfs/elev-45/L-45e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e010a.dat right
+[ 9, 71 ] = ascii (fp) : "./hrtfs/elev-45/L-45e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-45/R-45e005a.dat right
-[ 10, 0 ] = ascii (fp) : "./hrtfs/elev-40/L-40e000a.dat"
-[ 10, 1 ] = ascii (fp) : "./hrtfs/elev-40/L-40e355a.dat"
-[ 10, 2 ] = ascii (fp) : "./hrtfs/elev-40/L-40e350a.dat"
-[ 10, 3 ] = ascii (fp) : "./hrtfs/elev-40/L-40e345a.dat"
-[ 10, 4 ] = ascii (fp) : "./hrtfs/elev-40/L-40e340a.dat"
-[ 10, 5 ] = ascii (fp) : "./hrtfs/elev-40/L-40e335a.dat"
-[ 10, 6 ] = ascii (fp) : "./hrtfs/elev-40/L-40e330a.dat"
-[ 10, 7 ] = ascii (fp) : "./hrtfs/elev-40/L-40e325a.dat"
-[ 10, 8 ] = ascii (fp) : "./hrtfs/elev-40/L-40e320a.dat"
-[ 10, 9 ] = ascii (fp) : "./hrtfs/elev-40/L-40e315a.dat"
-[ 10, 10 ] = ascii (fp) : "./hrtfs/elev-40/L-40e310a.dat"
-[ 10, 11 ] = ascii (fp) : "./hrtfs/elev-40/L-40e305a.dat"
-[ 10, 12 ] = ascii (fp) : "./hrtfs/elev-40/L-40e300a.dat"
-[ 10, 13 ] = ascii (fp) : "./hrtfs/elev-40/L-40e295a.dat"
-[ 10, 14 ] = ascii (fp) : "./hrtfs/elev-40/L-40e290a.dat"
-[ 10, 15 ] = ascii (fp) : "./hrtfs/elev-40/L-40e285a.dat"
-[ 10, 16 ] = ascii (fp) : "./hrtfs/elev-40/L-40e280a.dat"
-[ 10, 17 ] = ascii (fp) : "./hrtfs/elev-40/L-40e275a.dat"
-[ 10, 18 ] = ascii (fp) : "./hrtfs/elev-40/L-40e270a.dat"
-[ 10, 19 ] = ascii (fp) : "./hrtfs/elev-40/L-40e265a.dat"
-[ 10, 20 ] = ascii (fp) : "./hrtfs/elev-40/L-40e260a.dat"
-[ 10, 21 ] = ascii (fp) : "./hrtfs/elev-40/L-40e255a.dat"
-[ 10, 22 ] = ascii (fp) : "./hrtfs/elev-40/L-40e250a.dat"
-[ 10, 23 ] = ascii (fp) : "./hrtfs/elev-40/L-40e245a.dat"
-[ 10, 24 ] = ascii (fp) : "./hrtfs/elev-40/L-40e240a.dat"
-[ 10, 25 ] = ascii (fp) : "./hrtfs/elev-40/L-40e235a.dat"
-[ 10, 26 ] = ascii (fp) : "./hrtfs/elev-40/L-40e230a.dat"
-[ 10, 27 ] = ascii (fp) : "./hrtfs/elev-40/L-40e225a.dat"
-[ 10, 28 ] = ascii (fp) : "./hrtfs/elev-40/L-40e220a.dat"
-[ 10, 29 ] = ascii (fp) : "./hrtfs/elev-40/L-40e215a.dat"
-[ 10, 30 ] = ascii (fp) : "./hrtfs/elev-40/L-40e210a.dat"
-[ 10, 31 ] = ascii (fp) : "./hrtfs/elev-40/L-40e205a.dat"
-[ 10, 32 ] = ascii (fp) : "./hrtfs/elev-40/L-40e200a.dat"
-[ 10, 33 ] = ascii (fp) : "./hrtfs/elev-40/L-40e195a.dat"
-[ 10, 34 ] = ascii (fp) : "./hrtfs/elev-40/L-40e190a.dat"
-[ 10, 35 ] = ascii (fp) : "./hrtfs/elev-40/L-40e185a.dat"
-[ 10, 36 ] = ascii (fp) : "./hrtfs/elev-40/L-40e180a.dat"
-[ 10, 37 ] = ascii (fp) : "./hrtfs/elev-40/L-40e175a.dat"
-[ 10, 38 ] = ascii (fp) : "./hrtfs/elev-40/L-40e170a.dat"
-[ 10, 39 ] = ascii (fp) : "./hrtfs/elev-40/L-40e165a.dat"
-[ 10, 40 ] = ascii (fp) : "./hrtfs/elev-40/L-40e160a.dat"
-[ 10, 41 ] = ascii (fp) : "./hrtfs/elev-40/L-40e155a.dat"
-[ 10, 42 ] = ascii (fp) : "./hrtfs/elev-40/L-40e150a.dat"
-[ 10, 43 ] = ascii (fp) : "./hrtfs/elev-40/L-40e145a.dat"
-[ 10, 44 ] = ascii (fp) : "./hrtfs/elev-40/L-40e140a.dat"
-[ 10, 45 ] = ascii (fp) : "./hrtfs/elev-40/L-40e135a.dat"
-[ 10, 46 ] = ascii (fp) : "./hrtfs/elev-40/L-40e130a.dat"
-[ 10, 47 ] = ascii (fp) : "./hrtfs/elev-40/L-40e125a.dat"
-[ 10, 48 ] = ascii (fp) : "./hrtfs/elev-40/L-40e120a.dat"
-[ 10, 49 ] = ascii (fp) : "./hrtfs/elev-40/L-40e115a.dat"
-[ 10, 50 ] = ascii (fp) : "./hrtfs/elev-40/L-40e110a.dat"
-[ 10, 51 ] = ascii (fp) : "./hrtfs/elev-40/L-40e105a.dat"
-[ 10, 52 ] = ascii (fp) : "./hrtfs/elev-40/L-40e100a.dat"
-[ 10, 53 ] = ascii (fp) : "./hrtfs/elev-40/L-40e095a.dat"
-[ 10, 54 ] = ascii (fp) : "./hrtfs/elev-40/L-40e090a.dat"
-[ 10, 55 ] = ascii (fp) : "./hrtfs/elev-40/L-40e085a.dat"
-[ 10, 56 ] = ascii (fp) : "./hrtfs/elev-40/L-40e080a.dat"
-[ 10, 57 ] = ascii (fp) : "./hrtfs/elev-40/L-40e075a.dat"
-[ 10, 58 ] = ascii (fp) : "./hrtfs/elev-40/L-40e070a.dat"
-[ 10, 59 ] = ascii (fp) : "./hrtfs/elev-40/L-40e065a.dat"
-[ 10, 60 ] = ascii (fp) : "./hrtfs/elev-40/L-40e060a.dat"
-[ 10, 61 ] = ascii (fp) : "./hrtfs/elev-40/L-40e055a.dat"
-[ 10, 62 ] = ascii (fp) : "./hrtfs/elev-40/L-40e050a.dat"
-[ 10, 63 ] = ascii (fp) : "./hrtfs/elev-40/L-40e045a.dat"
-[ 10, 64 ] = ascii (fp) : "./hrtfs/elev-40/L-40e040a.dat"
-[ 10, 65 ] = ascii (fp) : "./hrtfs/elev-40/L-40e035a.dat"
-[ 10, 66 ] = ascii (fp) : "./hrtfs/elev-40/L-40e030a.dat"
-[ 10, 67 ] = ascii (fp) : "./hrtfs/elev-40/L-40e025a.dat"
-[ 10, 68 ] = ascii (fp) : "./hrtfs/elev-40/L-40e020a.dat"
-[ 10, 69 ] = ascii (fp) : "./hrtfs/elev-40/L-40e015a.dat"
-[ 10, 70 ] = ascii (fp) : "./hrtfs/elev-40/L-40e010a.dat"
-[ 10, 71 ] = ascii (fp) : "./hrtfs/elev-40/L-40e005a.dat"
+[ 10, 0 ] = ascii (fp) : "./hrtfs/elev-40/L-40e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e000a.dat right
+[ 10, 1 ] = ascii (fp) : "./hrtfs/elev-40/L-40e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e355a.dat right
+[ 10, 2 ] = ascii (fp) : "./hrtfs/elev-40/L-40e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e350a.dat right
+[ 10, 3 ] = ascii (fp) : "./hrtfs/elev-40/L-40e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e345a.dat right
+[ 10, 4 ] = ascii (fp) : "./hrtfs/elev-40/L-40e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e340a.dat right
+[ 10, 5 ] = ascii (fp) : "./hrtfs/elev-40/L-40e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e335a.dat right
+[ 10, 6 ] = ascii (fp) : "./hrtfs/elev-40/L-40e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e330a.dat right
+[ 10, 7 ] = ascii (fp) : "./hrtfs/elev-40/L-40e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e325a.dat right
+[ 10, 8 ] = ascii (fp) : "./hrtfs/elev-40/L-40e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e320a.dat right
+[ 10, 9 ] = ascii (fp) : "./hrtfs/elev-40/L-40e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e315a.dat right
+[ 10, 10 ] = ascii (fp) : "./hrtfs/elev-40/L-40e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e310a.dat right
+[ 10, 11 ] = ascii (fp) : "./hrtfs/elev-40/L-40e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e305a.dat right
+[ 10, 12 ] = ascii (fp) : "./hrtfs/elev-40/L-40e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e300a.dat right
+[ 10, 13 ] = ascii (fp) : "./hrtfs/elev-40/L-40e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e295a.dat right
+[ 10, 14 ] = ascii (fp) : "./hrtfs/elev-40/L-40e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e290a.dat right
+[ 10, 15 ] = ascii (fp) : "./hrtfs/elev-40/L-40e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e285a.dat right
+[ 10, 16 ] = ascii (fp) : "./hrtfs/elev-40/L-40e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e280a.dat right
+[ 10, 17 ] = ascii (fp) : "./hrtfs/elev-40/L-40e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e275a.dat right
+[ 10, 18 ] = ascii (fp) : "./hrtfs/elev-40/L-40e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e270a.dat right
+[ 10, 19 ] = ascii (fp) : "./hrtfs/elev-40/L-40e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e265a.dat right
+[ 10, 20 ] = ascii (fp) : "./hrtfs/elev-40/L-40e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e260a.dat right
+[ 10, 21 ] = ascii (fp) : "./hrtfs/elev-40/L-40e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e255a.dat right
+[ 10, 22 ] = ascii (fp) : "./hrtfs/elev-40/L-40e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e250a.dat right
+[ 10, 23 ] = ascii (fp) : "./hrtfs/elev-40/L-40e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e245a.dat right
+[ 10, 24 ] = ascii (fp) : "./hrtfs/elev-40/L-40e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e240a.dat right
+[ 10, 25 ] = ascii (fp) : "./hrtfs/elev-40/L-40e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e235a.dat right
+[ 10, 26 ] = ascii (fp) : "./hrtfs/elev-40/L-40e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e230a.dat right
+[ 10, 27 ] = ascii (fp) : "./hrtfs/elev-40/L-40e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e225a.dat right
+[ 10, 28 ] = ascii (fp) : "./hrtfs/elev-40/L-40e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e220a.dat right
+[ 10, 29 ] = ascii (fp) : "./hrtfs/elev-40/L-40e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e215a.dat right
+[ 10, 30 ] = ascii (fp) : "./hrtfs/elev-40/L-40e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e210a.dat right
+[ 10, 31 ] = ascii (fp) : "./hrtfs/elev-40/L-40e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e205a.dat right
+[ 10, 32 ] = ascii (fp) : "./hrtfs/elev-40/L-40e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e200a.dat right
+[ 10, 33 ] = ascii (fp) : "./hrtfs/elev-40/L-40e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e195a.dat right
+[ 10, 34 ] = ascii (fp) : "./hrtfs/elev-40/L-40e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e190a.dat right
+[ 10, 35 ] = ascii (fp) : "./hrtfs/elev-40/L-40e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e185a.dat right
+[ 10, 36 ] = ascii (fp) : "./hrtfs/elev-40/L-40e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e180a.dat right
+[ 10, 37 ] = ascii (fp) : "./hrtfs/elev-40/L-40e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e175a.dat right
+[ 10, 38 ] = ascii (fp) : "./hrtfs/elev-40/L-40e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e170a.dat right
+[ 10, 39 ] = ascii (fp) : "./hrtfs/elev-40/L-40e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e165a.dat right
+[ 10, 40 ] = ascii (fp) : "./hrtfs/elev-40/L-40e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e160a.dat right
+[ 10, 41 ] = ascii (fp) : "./hrtfs/elev-40/L-40e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e155a.dat right
+[ 10, 42 ] = ascii (fp) : "./hrtfs/elev-40/L-40e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e150a.dat right
+[ 10, 43 ] = ascii (fp) : "./hrtfs/elev-40/L-40e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e145a.dat right
+[ 10, 44 ] = ascii (fp) : "./hrtfs/elev-40/L-40e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e140a.dat right
+[ 10, 45 ] = ascii (fp) : "./hrtfs/elev-40/L-40e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e135a.dat right
+[ 10, 46 ] = ascii (fp) : "./hrtfs/elev-40/L-40e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e130a.dat right
+[ 10, 47 ] = ascii (fp) : "./hrtfs/elev-40/L-40e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e125a.dat right
+[ 10, 48 ] = ascii (fp) : "./hrtfs/elev-40/L-40e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e120a.dat right
+[ 10, 49 ] = ascii (fp) : "./hrtfs/elev-40/L-40e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e115a.dat right
+[ 10, 50 ] = ascii (fp) : "./hrtfs/elev-40/L-40e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e110a.dat right
+[ 10, 51 ] = ascii (fp) : "./hrtfs/elev-40/L-40e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e105a.dat right
+[ 10, 52 ] = ascii (fp) : "./hrtfs/elev-40/L-40e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e100a.dat right
+[ 10, 53 ] = ascii (fp) : "./hrtfs/elev-40/L-40e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e095a.dat right
+[ 10, 54 ] = ascii (fp) : "./hrtfs/elev-40/L-40e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e090a.dat right
+[ 10, 55 ] = ascii (fp) : "./hrtfs/elev-40/L-40e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e085a.dat right
+[ 10, 56 ] = ascii (fp) : "./hrtfs/elev-40/L-40e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e080a.dat right
+[ 10, 57 ] = ascii (fp) : "./hrtfs/elev-40/L-40e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e075a.dat right
+[ 10, 58 ] = ascii (fp) : "./hrtfs/elev-40/L-40e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e070a.dat right
+[ 10, 59 ] = ascii (fp) : "./hrtfs/elev-40/L-40e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e065a.dat right
+[ 10, 60 ] = ascii (fp) : "./hrtfs/elev-40/L-40e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e060a.dat right
+[ 10, 61 ] = ascii (fp) : "./hrtfs/elev-40/L-40e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e055a.dat right
+[ 10, 62 ] = ascii (fp) : "./hrtfs/elev-40/L-40e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e050a.dat right
+[ 10, 63 ] = ascii (fp) : "./hrtfs/elev-40/L-40e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e045a.dat right
+[ 10, 64 ] = ascii (fp) : "./hrtfs/elev-40/L-40e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e040a.dat right
+[ 10, 65 ] = ascii (fp) : "./hrtfs/elev-40/L-40e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e035a.dat right
+[ 10, 66 ] = ascii (fp) : "./hrtfs/elev-40/L-40e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e030a.dat right
+[ 10, 67 ] = ascii (fp) : "./hrtfs/elev-40/L-40e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e025a.dat right
+[ 10, 68 ] = ascii (fp) : "./hrtfs/elev-40/L-40e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e020a.dat right
+[ 10, 69 ] = ascii (fp) : "./hrtfs/elev-40/L-40e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e015a.dat right
+[ 10, 70 ] = ascii (fp) : "./hrtfs/elev-40/L-40e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e010a.dat right
+[ 10, 71 ] = ascii (fp) : "./hrtfs/elev-40/L-40e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-40/R-40e005a.dat right
-[ 11, 0 ] = ascii (fp) : "./hrtfs/elev-35/L-35e000a.dat"
-[ 11, 1 ] = ascii (fp) : "./hrtfs/elev-35/L-35e355a.dat"
-[ 11, 2 ] = ascii (fp) : "./hrtfs/elev-35/L-35e350a.dat"
-[ 11, 3 ] = ascii (fp) : "./hrtfs/elev-35/L-35e345a.dat"
-[ 11, 4 ] = ascii (fp) : "./hrtfs/elev-35/L-35e340a.dat"
-[ 11, 5 ] = ascii (fp) : "./hrtfs/elev-35/L-35e335a.dat"
-[ 11, 6 ] = ascii (fp) : "./hrtfs/elev-35/L-35e330a.dat"
-[ 11, 7 ] = ascii (fp) : "./hrtfs/elev-35/L-35e325a.dat"
-[ 11, 8 ] = ascii (fp) : "./hrtfs/elev-35/L-35e320a.dat"
-[ 11, 9 ] = ascii (fp) : "./hrtfs/elev-35/L-35e315a.dat"
-[ 11, 10 ] = ascii (fp) : "./hrtfs/elev-35/L-35e310a.dat"
-[ 11, 11 ] = ascii (fp) : "./hrtfs/elev-35/L-35e305a.dat"
-[ 11, 12 ] = ascii (fp) : "./hrtfs/elev-35/L-35e300a.dat"
-[ 11, 13 ] = ascii (fp) : "./hrtfs/elev-35/L-35e295a.dat"
-[ 11, 14 ] = ascii (fp) : "./hrtfs/elev-35/L-35e290a.dat"
-[ 11, 15 ] = ascii (fp) : "./hrtfs/elev-35/L-35e285a.dat"
-[ 11, 16 ] = ascii (fp) : "./hrtfs/elev-35/L-35e280a.dat"
-[ 11, 17 ] = ascii (fp) : "./hrtfs/elev-35/L-35e275a.dat"
-[ 11, 18 ] = ascii (fp) : "./hrtfs/elev-35/L-35e270a.dat"
-[ 11, 19 ] = ascii (fp) : "./hrtfs/elev-35/L-35e265a.dat"
-[ 11, 20 ] = ascii (fp) : "./hrtfs/elev-35/L-35e260a.dat"
-[ 11, 21 ] = ascii (fp) : "./hrtfs/elev-35/L-35e255a.dat"
-[ 11, 22 ] = ascii (fp) : "./hrtfs/elev-35/L-35e250a.dat"
-[ 11, 23 ] = ascii (fp) : "./hrtfs/elev-35/L-35e245a.dat"
-[ 11, 24 ] = ascii (fp) : "./hrtfs/elev-35/L-35e240a.dat"
-[ 11, 25 ] = ascii (fp) : "./hrtfs/elev-35/L-35e235a.dat"
-[ 11, 26 ] = ascii (fp) : "./hrtfs/elev-35/L-35e230a.dat"
-[ 11, 27 ] = ascii (fp) : "./hrtfs/elev-35/L-35e225a.dat"
-[ 11, 28 ] = ascii (fp) : "./hrtfs/elev-35/L-35e220a.dat"
-[ 11, 29 ] = ascii (fp) : "./hrtfs/elev-35/L-35e215a.dat"
-[ 11, 30 ] = ascii (fp) : "./hrtfs/elev-35/L-35e210a.dat"
-[ 11, 31 ] = ascii (fp) : "./hrtfs/elev-35/L-35e205a.dat"
-[ 11, 32 ] = ascii (fp) : "./hrtfs/elev-35/L-35e200a.dat"
-[ 11, 33 ] = ascii (fp) : "./hrtfs/elev-35/L-35e195a.dat"
-[ 11, 34 ] = ascii (fp) : "./hrtfs/elev-35/L-35e190a.dat"
-[ 11, 35 ] = ascii (fp) : "./hrtfs/elev-35/L-35e185a.dat"
-[ 11, 36 ] = ascii (fp) : "./hrtfs/elev-35/L-35e180a.dat"
-[ 11, 37 ] = ascii (fp) : "./hrtfs/elev-35/L-35e175a.dat"
-[ 11, 38 ] = ascii (fp) : "./hrtfs/elev-35/L-35e170a.dat"
-[ 11, 39 ] = ascii (fp) : "./hrtfs/elev-35/L-35e165a.dat"
-[ 11, 40 ] = ascii (fp) : "./hrtfs/elev-35/L-35e160a.dat"
-[ 11, 41 ] = ascii (fp) : "./hrtfs/elev-35/L-35e155a.dat"
-[ 11, 42 ] = ascii (fp) : "./hrtfs/elev-35/L-35e150a.dat"
-[ 11, 43 ] = ascii (fp) : "./hrtfs/elev-35/L-35e145a.dat"
-[ 11, 44 ] = ascii (fp) : "./hrtfs/elev-35/L-35e140a.dat"
-[ 11, 45 ] = ascii (fp) : "./hrtfs/elev-35/L-35e135a.dat"
-[ 11, 46 ] = ascii (fp) : "./hrtfs/elev-35/L-35e130a.dat"
-[ 11, 47 ] = ascii (fp) : "./hrtfs/elev-35/L-35e125a.dat"
-[ 11, 48 ] = ascii (fp) : "./hrtfs/elev-35/L-35e120a.dat"
-[ 11, 49 ] = ascii (fp) : "./hrtfs/elev-35/L-35e115a.dat"
-[ 11, 50 ] = ascii (fp) : "./hrtfs/elev-35/L-35e110a.dat"
-[ 11, 51 ] = ascii (fp) : "./hrtfs/elev-35/L-35e105a.dat"
-[ 11, 52 ] = ascii (fp) : "./hrtfs/elev-35/L-35e100a.dat"
-[ 11, 53 ] = ascii (fp) : "./hrtfs/elev-35/L-35e095a.dat"
-[ 11, 54 ] = ascii (fp) : "./hrtfs/elev-35/L-35e090a.dat"
-[ 11, 55 ] = ascii (fp) : "./hrtfs/elev-35/L-35e085a.dat"
-[ 11, 56 ] = ascii (fp) : "./hrtfs/elev-35/L-35e080a.dat"
-[ 11, 57 ] = ascii (fp) : "./hrtfs/elev-35/L-35e075a.dat"
-[ 11, 58 ] = ascii (fp) : "./hrtfs/elev-35/L-35e070a.dat"
-[ 11, 59 ] = ascii (fp) : "./hrtfs/elev-35/L-35e065a.dat"
-[ 11, 60 ] = ascii (fp) : "./hrtfs/elev-35/L-35e060a.dat"
-[ 11, 61 ] = ascii (fp) : "./hrtfs/elev-35/L-35e055a.dat"
-[ 11, 62 ] = ascii (fp) : "./hrtfs/elev-35/L-35e050a.dat"
-[ 11, 63 ] = ascii (fp) : "./hrtfs/elev-35/L-35e045a.dat"
-[ 11, 64 ] = ascii (fp) : "./hrtfs/elev-35/L-35e040a.dat"
-[ 11, 65 ] = ascii (fp) : "./hrtfs/elev-35/L-35e035a.dat"
-[ 11, 66 ] = ascii (fp) : "./hrtfs/elev-35/L-35e030a.dat"
-[ 11, 67 ] = ascii (fp) : "./hrtfs/elev-35/L-35e025a.dat"
-[ 11, 68 ] = ascii (fp) : "./hrtfs/elev-35/L-35e020a.dat"
-[ 11, 69 ] = ascii (fp) : "./hrtfs/elev-35/L-35e015a.dat"
-[ 11, 70 ] = ascii (fp) : "./hrtfs/elev-35/L-35e010a.dat"
-[ 11, 71 ] = ascii (fp) : "./hrtfs/elev-35/L-35e005a.dat"
+[ 11, 0 ] = ascii (fp) : "./hrtfs/elev-35/L-35e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e000a.dat right
+[ 11, 1 ] = ascii (fp) : "./hrtfs/elev-35/L-35e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e355a.dat right
+[ 11, 2 ] = ascii (fp) : "./hrtfs/elev-35/L-35e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e350a.dat right
+[ 11, 3 ] = ascii (fp) : "./hrtfs/elev-35/L-35e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e345a.dat right
+[ 11, 4 ] = ascii (fp) : "./hrtfs/elev-35/L-35e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e340a.dat right
+[ 11, 5 ] = ascii (fp) : "./hrtfs/elev-35/L-35e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e335a.dat right
+[ 11, 6 ] = ascii (fp) : "./hrtfs/elev-35/L-35e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e330a.dat right
+[ 11, 7 ] = ascii (fp) : "./hrtfs/elev-35/L-35e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e325a.dat right
+[ 11, 8 ] = ascii (fp) : "./hrtfs/elev-35/L-35e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e320a.dat right
+[ 11, 9 ] = ascii (fp) : "./hrtfs/elev-35/L-35e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e315a.dat right
+[ 11, 10 ] = ascii (fp) : "./hrtfs/elev-35/L-35e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e310a.dat right
+[ 11, 11 ] = ascii (fp) : "./hrtfs/elev-35/L-35e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e305a.dat right
+[ 11, 12 ] = ascii (fp) : "./hrtfs/elev-35/L-35e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e300a.dat right
+[ 11, 13 ] = ascii (fp) : "./hrtfs/elev-35/L-35e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e295a.dat right
+[ 11, 14 ] = ascii (fp) : "./hrtfs/elev-35/L-35e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e290a.dat right
+[ 11, 15 ] = ascii (fp) : "./hrtfs/elev-35/L-35e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e285a.dat right
+[ 11, 16 ] = ascii (fp) : "./hrtfs/elev-35/L-35e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e280a.dat right
+[ 11, 17 ] = ascii (fp) : "./hrtfs/elev-35/L-35e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e275a.dat right
+[ 11, 18 ] = ascii (fp) : "./hrtfs/elev-35/L-35e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e270a.dat right
+[ 11, 19 ] = ascii (fp) : "./hrtfs/elev-35/L-35e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e265a.dat right
+[ 11, 20 ] = ascii (fp) : "./hrtfs/elev-35/L-35e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e260a.dat right
+[ 11, 21 ] = ascii (fp) : "./hrtfs/elev-35/L-35e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e255a.dat right
+[ 11, 22 ] = ascii (fp) : "./hrtfs/elev-35/L-35e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e250a.dat right
+[ 11, 23 ] = ascii (fp) : "./hrtfs/elev-35/L-35e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e245a.dat right
+[ 11, 24 ] = ascii (fp) : "./hrtfs/elev-35/L-35e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e240a.dat right
+[ 11, 25 ] = ascii (fp) : "./hrtfs/elev-35/L-35e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e235a.dat right
+[ 11, 26 ] = ascii (fp) : "./hrtfs/elev-35/L-35e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e230a.dat right
+[ 11, 27 ] = ascii (fp) : "./hrtfs/elev-35/L-35e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e225a.dat right
+[ 11, 28 ] = ascii (fp) : "./hrtfs/elev-35/L-35e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e220a.dat right
+[ 11, 29 ] = ascii (fp) : "./hrtfs/elev-35/L-35e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e215a.dat right
+[ 11, 30 ] = ascii (fp) : "./hrtfs/elev-35/L-35e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e210a.dat right
+[ 11, 31 ] = ascii (fp) : "./hrtfs/elev-35/L-35e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e205a.dat right
+[ 11, 32 ] = ascii (fp) : "./hrtfs/elev-35/L-35e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e200a.dat right
+[ 11, 33 ] = ascii (fp) : "./hrtfs/elev-35/L-35e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e195a.dat right
+[ 11, 34 ] = ascii (fp) : "./hrtfs/elev-35/L-35e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e190a.dat right
+[ 11, 35 ] = ascii (fp) : "./hrtfs/elev-35/L-35e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e185a.dat right
+[ 11, 36 ] = ascii (fp) : "./hrtfs/elev-35/L-35e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e180a.dat right
+[ 11, 37 ] = ascii (fp) : "./hrtfs/elev-35/L-35e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e175a.dat right
+[ 11, 38 ] = ascii (fp) : "./hrtfs/elev-35/L-35e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e170a.dat right
+[ 11, 39 ] = ascii (fp) : "./hrtfs/elev-35/L-35e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e165a.dat right
+[ 11, 40 ] = ascii (fp) : "./hrtfs/elev-35/L-35e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e160a.dat right
+[ 11, 41 ] = ascii (fp) : "./hrtfs/elev-35/L-35e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e155a.dat right
+[ 11, 42 ] = ascii (fp) : "./hrtfs/elev-35/L-35e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e150a.dat right
+[ 11, 43 ] = ascii (fp) : "./hrtfs/elev-35/L-35e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e145a.dat right
+[ 11, 44 ] = ascii (fp) : "./hrtfs/elev-35/L-35e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e140a.dat right
+[ 11, 45 ] = ascii (fp) : "./hrtfs/elev-35/L-35e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e135a.dat right
+[ 11, 46 ] = ascii (fp) : "./hrtfs/elev-35/L-35e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e130a.dat right
+[ 11, 47 ] = ascii (fp) : "./hrtfs/elev-35/L-35e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e125a.dat right
+[ 11, 48 ] = ascii (fp) : "./hrtfs/elev-35/L-35e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e120a.dat right
+[ 11, 49 ] = ascii (fp) : "./hrtfs/elev-35/L-35e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e115a.dat right
+[ 11, 50 ] = ascii (fp) : "./hrtfs/elev-35/L-35e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e110a.dat right
+[ 11, 51 ] = ascii (fp) : "./hrtfs/elev-35/L-35e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e105a.dat right
+[ 11, 52 ] = ascii (fp) : "./hrtfs/elev-35/L-35e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e100a.dat right
+[ 11, 53 ] = ascii (fp) : "./hrtfs/elev-35/L-35e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e095a.dat right
+[ 11, 54 ] = ascii (fp) : "./hrtfs/elev-35/L-35e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e090a.dat right
+[ 11, 55 ] = ascii (fp) : "./hrtfs/elev-35/L-35e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e085a.dat right
+[ 11, 56 ] = ascii (fp) : "./hrtfs/elev-35/L-35e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e080a.dat right
+[ 11, 57 ] = ascii (fp) : "./hrtfs/elev-35/L-35e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e075a.dat right
+[ 11, 58 ] = ascii (fp) : "./hrtfs/elev-35/L-35e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e070a.dat right
+[ 11, 59 ] = ascii (fp) : "./hrtfs/elev-35/L-35e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e065a.dat right
+[ 11, 60 ] = ascii (fp) : "./hrtfs/elev-35/L-35e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e060a.dat right
+[ 11, 61 ] = ascii (fp) : "./hrtfs/elev-35/L-35e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e055a.dat right
+[ 11, 62 ] = ascii (fp) : "./hrtfs/elev-35/L-35e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e050a.dat right
+[ 11, 63 ] = ascii (fp) : "./hrtfs/elev-35/L-35e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e045a.dat right
+[ 11, 64 ] = ascii (fp) : "./hrtfs/elev-35/L-35e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e040a.dat right
+[ 11, 65 ] = ascii (fp) : "./hrtfs/elev-35/L-35e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e035a.dat right
+[ 11, 66 ] = ascii (fp) : "./hrtfs/elev-35/L-35e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e030a.dat right
+[ 11, 67 ] = ascii (fp) : "./hrtfs/elev-35/L-35e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e025a.dat right
+[ 11, 68 ] = ascii (fp) : "./hrtfs/elev-35/L-35e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e020a.dat right
+[ 11, 69 ] = ascii (fp) : "./hrtfs/elev-35/L-35e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e015a.dat right
+[ 11, 70 ] = ascii (fp) : "./hrtfs/elev-35/L-35e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e010a.dat right
+[ 11, 71 ] = ascii (fp) : "./hrtfs/elev-35/L-35e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-35/R-35e005a.dat right
-[ 12, 0 ] = ascii (fp) : "./hrtfs/elev-30/L-30e000a.dat"
-[ 12, 1 ] = ascii (fp) : "./hrtfs/elev-30/L-30e355a.dat"
-[ 12, 2 ] = ascii (fp) : "./hrtfs/elev-30/L-30e350a.dat"
-[ 12, 3 ] = ascii (fp) : "./hrtfs/elev-30/L-30e345a.dat"
-[ 12, 4 ] = ascii (fp) : "./hrtfs/elev-30/L-30e340a.dat"
-[ 12, 5 ] = ascii (fp) : "./hrtfs/elev-30/L-30e335a.dat"
-[ 12, 6 ] = ascii (fp) : "./hrtfs/elev-30/L-30e330a.dat"
-[ 12, 7 ] = ascii (fp) : "./hrtfs/elev-30/L-30e325a.dat"
-[ 12, 8 ] = ascii (fp) : "./hrtfs/elev-30/L-30e320a.dat"
-[ 12, 9 ] = ascii (fp) : "./hrtfs/elev-30/L-30e315a.dat"
-[ 12, 10 ] = ascii (fp) : "./hrtfs/elev-30/L-30e310a.dat"
-[ 12, 11 ] = ascii (fp) : "./hrtfs/elev-30/L-30e305a.dat"
-[ 12, 12 ] = ascii (fp) : "./hrtfs/elev-30/L-30e300a.dat"
-[ 12, 13 ] = ascii (fp) : "./hrtfs/elev-30/L-30e295a.dat"
-[ 12, 14 ] = ascii (fp) : "./hrtfs/elev-30/L-30e290a.dat"
-[ 12, 15 ] = ascii (fp) : "./hrtfs/elev-30/L-30e285a.dat"
-[ 12, 16 ] = ascii (fp) : "./hrtfs/elev-30/L-30e280a.dat"
-[ 12, 17 ] = ascii (fp) : "./hrtfs/elev-30/L-30e275a.dat"
-[ 12, 18 ] = ascii (fp) : "./hrtfs/elev-30/L-30e270a.dat"
-[ 12, 19 ] = ascii (fp) : "./hrtfs/elev-30/L-30e265a.dat"
-[ 12, 20 ] = ascii (fp) : "./hrtfs/elev-30/L-30e260a.dat"
-[ 12, 21 ] = ascii (fp) : "./hrtfs/elev-30/L-30e255a.dat"
-[ 12, 22 ] = ascii (fp) : "./hrtfs/elev-30/L-30e250a.dat"
-[ 12, 23 ] = ascii (fp) : "./hrtfs/elev-30/L-30e245a.dat"
-[ 12, 24 ] = ascii (fp) : "./hrtfs/elev-30/L-30e240a.dat"
-[ 12, 25 ] = ascii (fp) : "./hrtfs/elev-30/L-30e235a.dat"
-[ 12, 26 ] = ascii (fp) : "./hrtfs/elev-30/L-30e230a.dat"
-[ 12, 27 ] = ascii (fp) : "./hrtfs/elev-30/L-30e225a.dat"
-[ 12, 28 ] = ascii (fp) : "./hrtfs/elev-30/L-30e220a.dat"
-[ 12, 29 ] = ascii (fp) : "./hrtfs/elev-30/L-30e215a.dat"
-[ 12, 30 ] = ascii (fp) : "./hrtfs/elev-30/L-30e210a.dat"
-[ 12, 31 ] = ascii (fp) : "./hrtfs/elev-30/L-30e205a.dat"
-[ 12, 32 ] = ascii (fp) : "./hrtfs/elev-30/L-30e200a.dat"
-[ 12, 33 ] = ascii (fp) : "./hrtfs/elev-30/L-30e195a.dat"
-[ 12, 34 ] = ascii (fp) : "./hrtfs/elev-30/L-30e190a.dat"
-[ 12, 35 ] = ascii (fp) : "./hrtfs/elev-30/L-30e185a.dat"
-[ 12, 36 ] = ascii (fp) : "./hrtfs/elev-30/L-30e180a.dat"
-[ 12, 37 ] = ascii (fp) : "./hrtfs/elev-30/L-30e175a.dat"
-[ 12, 38 ] = ascii (fp) : "./hrtfs/elev-30/L-30e170a.dat"
-[ 12, 39 ] = ascii (fp) : "./hrtfs/elev-30/L-30e165a.dat"
-[ 12, 40 ] = ascii (fp) : "./hrtfs/elev-30/L-30e160a.dat"
-[ 12, 41 ] = ascii (fp) : "./hrtfs/elev-30/L-30e155a.dat"
-[ 12, 42 ] = ascii (fp) : "./hrtfs/elev-30/L-30e150a.dat"
-[ 12, 43 ] = ascii (fp) : "./hrtfs/elev-30/L-30e145a.dat"
-[ 12, 44 ] = ascii (fp) : "./hrtfs/elev-30/L-30e140a.dat"
-[ 12, 45 ] = ascii (fp) : "./hrtfs/elev-30/L-30e135a.dat"
-[ 12, 46 ] = ascii (fp) : "./hrtfs/elev-30/L-30e130a.dat"
-[ 12, 47 ] = ascii (fp) : "./hrtfs/elev-30/L-30e125a.dat"
-[ 12, 48 ] = ascii (fp) : "./hrtfs/elev-30/L-30e120a.dat"
-[ 12, 49 ] = ascii (fp) : "./hrtfs/elev-30/L-30e115a.dat"
-[ 12, 50 ] = ascii (fp) : "./hrtfs/elev-30/L-30e110a.dat"
-[ 12, 51 ] = ascii (fp) : "./hrtfs/elev-30/L-30e105a.dat"
-[ 12, 52 ] = ascii (fp) : "./hrtfs/elev-30/L-30e100a.dat"
-[ 12, 53 ] = ascii (fp) : "./hrtfs/elev-30/L-30e095a.dat"
-[ 12, 54 ] = ascii (fp) : "./hrtfs/elev-30/L-30e090a.dat"
-[ 12, 55 ] = ascii (fp) : "./hrtfs/elev-30/L-30e085a.dat"
-[ 12, 56 ] = ascii (fp) : "./hrtfs/elev-30/L-30e080a.dat"
-[ 12, 57 ] = ascii (fp) : "./hrtfs/elev-30/L-30e075a.dat"
-[ 12, 58 ] = ascii (fp) : "./hrtfs/elev-30/L-30e070a.dat"
-[ 12, 59 ] = ascii (fp) : "./hrtfs/elev-30/L-30e065a.dat"
-[ 12, 60 ] = ascii (fp) : "./hrtfs/elev-30/L-30e060a.dat"
-[ 12, 61 ] = ascii (fp) : "./hrtfs/elev-30/L-30e055a.dat"
-[ 12, 62 ] = ascii (fp) : "./hrtfs/elev-30/L-30e050a.dat"
-[ 12, 63 ] = ascii (fp) : "./hrtfs/elev-30/L-30e045a.dat"
-[ 12, 64 ] = ascii (fp) : "./hrtfs/elev-30/L-30e040a.dat"
-[ 12, 65 ] = ascii (fp) : "./hrtfs/elev-30/L-30e035a.dat"
-[ 12, 66 ] = ascii (fp) : "./hrtfs/elev-30/L-30e030a.dat"
-[ 12, 67 ] = ascii (fp) : "./hrtfs/elev-30/L-30e025a.dat"
-[ 12, 68 ] = ascii (fp) : "./hrtfs/elev-30/L-30e020a.dat"
-[ 12, 69 ] = ascii (fp) : "./hrtfs/elev-30/L-30e015a.dat"
-[ 12, 70 ] = ascii (fp) : "./hrtfs/elev-30/L-30e010a.dat"
-[ 12, 71 ] = ascii (fp) : "./hrtfs/elev-30/L-30e005a.dat"
+[ 12, 0 ] = ascii (fp) : "./hrtfs/elev-30/L-30e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e000a.dat right
+[ 12, 1 ] = ascii (fp) : "./hrtfs/elev-30/L-30e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e355a.dat right
+[ 12, 2 ] = ascii (fp) : "./hrtfs/elev-30/L-30e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e350a.dat right
+[ 12, 3 ] = ascii (fp) : "./hrtfs/elev-30/L-30e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e345a.dat right
+[ 12, 4 ] = ascii (fp) : "./hrtfs/elev-30/L-30e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e340a.dat right
+[ 12, 5 ] = ascii (fp) : "./hrtfs/elev-30/L-30e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e335a.dat right
+[ 12, 6 ] = ascii (fp) : "./hrtfs/elev-30/L-30e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e330a.dat right
+[ 12, 7 ] = ascii (fp) : "./hrtfs/elev-30/L-30e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e325a.dat right
+[ 12, 8 ] = ascii (fp) : "./hrtfs/elev-30/L-30e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e320a.dat right
+[ 12, 9 ] = ascii (fp) : "./hrtfs/elev-30/L-30e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e315a.dat right
+[ 12, 10 ] = ascii (fp) : "./hrtfs/elev-30/L-30e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e310a.dat right
+[ 12, 11 ] = ascii (fp) : "./hrtfs/elev-30/L-30e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e305a.dat right
+[ 12, 12 ] = ascii (fp) : "./hrtfs/elev-30/L-30e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e300a.dat right
+[ 12, 13 ] = ascii (fp) : "./hrtfs/elev-30/L-30e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e295a.dat right
+[ 12, 14 ] = ascii (fp) : "./hrtfs/elev-30/L-30e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e290a.dat right
+[ 12, 15 ] = ascii (fp) : "./hrtfs/elev-30/L-30e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e285a.dat right
+[ 12, 16 ] = ascii (fp) : "./hrtfs/elev-30/L-30e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e280a.dat right
+[ 12, 17 ] = ascii (fp) : "./hrtfs/elev-30/L-30e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e275a.dat right
+[ 12, 18 ] = ascii (fp) : "./hrtfs/elev-30/L-30e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e270a.dat right
+[ 12, 19 ] = ascii (fp) : "./hrtfs/elev-30/L-30e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e265a.dat right
+[ 12, 20 ] = ascii (fp) : "./hrtfs/elev-30/L-30e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e260a.dat right
+[ 12, 21 ] = ascii (fp) : "./hrtfs/elev-30/L-30e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e255a.dat right
+[ 12, 22 ] = ascii (fp) : "./hrtfs/elev-30/L-30e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e250a.dat right
+[ 12, 23 ] = ascii (fp) : "./hrtfs/elev-30/L-30e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e245a.dat right
+[ 12, 24 ] = ascii (fp) : "./hrtfs/elev-30/L-30e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e240a.dat right
+[ 12, 25 ] = ascii (fp) : "./hrtfs/elev-30/L-30e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e235a.dat right
+[ 12, 26 ] = ascii (fp) : "./hrtfs/elev-30/L-30e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e230a.dat right
+[ 12, 27 ] = ascii (fp) : "./hrtfs/elev-30/L-30e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e225a.dat right
+[ 12, 28 ] = ascii (fp) : "./hrtfs/elev-30/L-30e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e220a.dat right
+[ 12, 29 ] = ascii (fp) : "./hrtfs/elev-30/L-30e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e215a.dat right
+[ 12, 30 ] = ascii (fp) : "./hrtfs/elev-30/L-30e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e210a.dat right
+[ 12, 31 ] = ascii (fp) : "./hrtfs/elev-30/L-30e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e205a.dat right
+[ 12, 32 ] = ascii (fp) : "./hrtfs/elev-30/L-30e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e200a.dat right
+[ 12, 33 ] = ascii (fp) : "./hrtfs/elev-30/L-30e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e195a.dat right
+[ 12, 34 ] = ascii (fp) : "./hrtfs/elev-30/L-30e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e190a.dat right
+[ 12, 35 ] = ascii (fp) : "./hrtfs/elev-30/L-30e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e185a.dat right
+[ 12, 36 ] = ascii (fp) : "./hrtfs/elev-30/L-30e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e180a.dat right
+[ 12, 37 ] = ascii (fp) : "./hrtfs/elev-30/L-30e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e175a.dat right
+[ 12, 38 ] = ascii (fp) : "./hrtfs/elev-30/L-30e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e170a.dat right
+[ 12, 39 ] = ascii (fp) : "./hrtfs/elev-30/L-30e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e165a.dat right
+[ 12, 40 ] = ascii (fp) : "./hrtfs/elev-30/L-30e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e160a.dat right
+[ 12, 41 ] = ascii (fp) : "./hrtfs/elev-30/L-30e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e155a.dat right
+[ 12, 42 ] = ascii (fp) : "./hrtfs/elev-30/L-30e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e150a.dat right
+[ 12, 43 ] = ascii (fp) : "./hrtfs/elev-30/L-30e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e145a.dat right
+[ 12, 44 ] = ascii (fp) : "./hrtfs/elev-30/L-30e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e140a.dat right
+[ 12, 45 ] = ascii (fp) : "./hrtfs/elev-30/L-30e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e135a.dat right
+[ 12, 46 ] = ascii (fp) : "./hrtfs/elev-30/L-30e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e130a.dat right
+[ 12, 47 ] = ascii (fp) : "./hrtfs/elev-30/L-30e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e125a.dat right
+[ 12, 48 ] = ascii (fp) : "./hrtfs/elev-30/L-30e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e120a.dat right
+[ 12, 49 ] = ascii (fp) : "./hrtfs/elev-30/L-30e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e115a.dat right
+[ 12, 50 ] = ascii (fp) : "./hrtfs/elev-30/L-30e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e110a.dat right
+[ 12, 51 ] = ascii (fp) : "./hrtfs/elev-30/L-30e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e105a.dat right
+[ 12, 52 ] = ascii (fp) : "./hrtfs/elev-30/L-30e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e100a.dat right
+[ 12, 53 ] = ascii (fp) : "./hrtfs/elev-30/L-30e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e095a.dat right
+[ 12, 54 ] = ascii (fp) : "./hrtfs/elev-30/L-30e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e090a.dat right
+[ 12, 55 ] = ascii (fp) : "./hrtfs/elev-30/L-30e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e085a.dat right
+[ 12, 56 ] = ascii (fp) : "./hrtfs/elev-30/L-30e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e080a.dat right
+[ 12, 57 ] = ascii (fp) : "./hrtfs/elev-30/L-30e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e075a.dat right
+[ 12, 58 ] = ascii (fp) : "./hrtfs/elev-30/L-30e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e070a.dat right
+[ 12, 59 ] = ascii (fp) : "./hrtfs/elev-30/L-30e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e065a.dat right
+[ 12, 60 ] = ascii (fp) : "./hrtfs/elev-30/L-30e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e060a.dat right
+[ 12, 61 ] = ascii (fp) : "./hrtfs/elev-30/L-30e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e055a.dat right
+[ 12, 62 ] = ascii (fp) : "./hrtfs/elev-30/L-30e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e050a.dat right
+[ 12, 63 ] = ascii (fp) : "./hrtfs/elev-30/L-30e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e045a.dat right
+[ 12, 64 ] = ascii (fp) : "./hrtfs/elev-30/L-30e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e040a.dat right
+[ 12, 65 ] = ascii (fp) : "./hrtfs/elev-30/L-30e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e035a.dat right
+[ 12, 66 ] = ascii (fp) : "./hrtfs/elev-30/L-30e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e030a.dat right
+[ 12, 67 ] = ascii (fp) : "./hrtfs/elev-30/L-30e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e025a.dat right
+[ 12, 68 ] = ascii (fp) : "./hrtfs/elev-30/L-30e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e020a.dat right
+[ 12, 69 ] = ascii (fp) : "./hrtfs/elev-30/L-30e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e015a.dat right
+[ 12, 70 ] = ascii (fp) : "./hrtfs/elev-30/L-30e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e010a.dat right
+[ 12, 71 ] = ascii (fp) : "./hrtfs/elev-30/L-30e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-30/R-30e005a.dat right
-[ 13, 0 ] = ascii (fp) : "./hrtfs/elev-25/L-25e000a.dat"
-[ 13, 1 ] = ascii (fp) : "./hrtfs/elev-25/L-25e355a.dat"
-[ 13, 2 ] = ascii (fp) : "./hrtfs/elev-25/L-25e350a.dat"
-[ 13, 3 ] = ascii (fp) : "./hrtfs/elev-25/L-25e345a.dat"
-[ 13, 4 ] = ascii (fp) : "./hrtfs/elev-25/L-25e340a.dat"
-[ 13, 5 ] = ascii (fp) : "./hrtfs/elev-25/L-25e335a.dat"
-[ 13, 6 ] = ascii (fp) : "./hrtfs/elev-25/L-25e330a.dat"
-[ 13, 7 ] = ascii (fp) : "./hrtfs/elev-25/L-25e325a.dat"
-[ 13, 8 ] = ascii (fp) : "./hrtfs/elev-25/L-25e320a.dat"
-[ 13, 9 ] = ascii (fp) : "./hrtfs/elev-25/L-25e315a.dat"
-[ 13, 10 ] = ascii (fp) : "./hrtfs/elev-25/L-25e310a.dat"
-[ 13, 11 ] = ascii (fp) : "./hrtfs/elev-25/L-25e305a.dat"
-[ 13, 12 ] = ascii (fp) : "./hrtfs/elev-25/L-25e300a.dat"
-[ 13, 13 ] = ascii (fp) : "./hrtfs/elev-25/L-25e295a.dat"
-[ 13, 14 ] = ascii (fp) : "./hrtfs/elev-25/L-25e290a.dat"
-[ 13, 15 ] = ascii (fp) : "./hrtfs/elev-25/L-25e285a.dat"
-[ 13, 16 ] = ascii (fp) : "./hrtfs/elev-25/L-25e280a.dat"
-[ 13, 17 ] = ascii (fp) : "./hrtfs/elev-25/L-25e275a.dat"
-[ 13, 18 ] = ascii (fp) : "./hrtfs/elev-25/L-25e270a.dat"
-[ 13, 19 ] = ascii (fp) : "./hrtfs/elev-25/L-25e265a.dat"
-[ 13, 20 ] = ascii (fp) : "./hrtfs/elev-25/L-25e260a.dat"
-[ 13, 21 ] = ascii (fp) : "./hrtfs/elev-25/L-25e255a.dat"
-[ 13, 22 ] = ascii (fp) : "./hrtfs/elev-25/L-25e250a.dat"
-[ 13, 23 ] = ascii (fp) : "./hrtfs/elev-25/L-25e245a.dat"
-[ 13, 24 ] = ascii (fp) : "./hrtfs/elev-25/L-25e240a.dat"
-[ 13, 25 ] = ascii (fp) : "./hrtfs/elev-25/L-25e235a.dat"
-[ 13, 26 ] = ascii (fp) : "./hrtfs/elev-25/L-25e230a.dat"
-[ 13, 27 ] = ascii (fp) : "./hrtfs/elev-25/L-25e225a.dat"
-[ 13, 28 ] = ascii (fp) : "./hrtfs/elev-25/L-25e220a.dat"
-[ 13, 29 ] = ascii (fp) : "./hrtfs/elev-25/L-25e215a.dat"
-[ 13, 30 ] = ascii (fp) : "./hrtfs/elev-25/L-25e210a.dat"
-[ 13, 31 ] = ascii (fp) : "./hrtfs/elev-25/L-25e205a.dat"
-[ 13, 32 ] = ascii (fp) : "./hrtfs/elev-25/L-25e200a.dat"
-[ 13, 33 ] = ascii (fp) : "./hrtfs/elev-25/L-25e195a.dat"
-[ 13, 34 ] = ascii (fp) : "./hrtfs/elev-25/L-25e190a.dat"
-[ 13, 35 ] = ascii (fp) : "./hrtfs/elev-25/L-25e185a.dat"
-[ 13, 36 ] = ascii (fp) : "./hrtfs/elev-25/L-25e180a.dat"
-[ 13, 37 ] = ascii (fp) : "./hrtfs/elev-25/L-25e175a.dat"
-[ 13, 38 ] = ascii (fp) : "./hrtfs/elev-25/L-25e170a.dat"
-[ 13, 39 ] = ascii (fp) : "./hrtfs/elev-25/L-25e165a.dat"
-[ 13, 40 ] = ascii (fp) : "./hrtfs/elev-25/L-25e160a.dat"
-[ 13, 41 ] = ascii (fp) : "./hrtfs/elev-25/L-25e155a.dat"
-[ 13, 42 ] = ascii (fp) : "./hrtfs/elev-25/L-25e150a.dat"
-[ 13, 43 ] = ascii (fp) : "./hrtfs/elev-25/L-25e145a.dat"
-[ 13, 44 ] = ascii (fp) : "./hrtfs/elev-25/L-25e140a.dat"
-[ 13, 45 ] = ascii (fp) : "./hrtfs/elev-25/L-25e135a.dat"
-[ 13, 46 ] = ascii (fp) : "./hrtfs/elev-25/L-25e130a.dat"
-[ 13, 47 ] = ascii (fp) : "./hrtfs/elev-25/L-25e125a.dat"
-[ 13, 48 ] = ascii (fp) : "./hrtfs/elev-25/L-25e120a.dat"
-[ 13, 49 ] = ascii (fp) : "./hrtfs/elev-25/L-25e115a.dat"
-[ 13, 50 ] = ascii (fp) : "./hrtfs/elev-25/L-25e110a.dat"
-[ 13, 51 ] = ascii (fp) : "./hrtfs/elev-25/L-25e105a.dat"
-[ 13, 52 ] = ascii (fp) : "./hrtfs/elev-25/L-25e100a.dat"
-[ 13, 53 ] = ascii (fp) : "./hrtfs/elev-25/L-25e095a.dat"
-[ 13, 54 ] = ascii (fp) : "./hrtfs/elev-25/L-25e090a.dat"
-[ 13, 55 ] = ascii (fp) : "./hrtfs/elev-25/L-25e085a.dat"
-[ 13, 56 ] = ascii (fp) : "./hrtfs/elev-25/L-25e080a.dat"
-[ 13, 57 ] = ascii (fp) : "./hrtfs/elev-25/L-25e075a.dat"
-[ 13, 58 ] = ascii (fp) : "./hrtfs/elev-25/L-25e070a.dat"
-[ 13, 59 ] = ascii (fp) : "./hrtfs/elev-25/L-25e065a.dat"
-[ 13, 60 ] = ascii (fp) : "./hrtfs/elev-25/L-25e060a.dat"
-[ 13, 61 ] = ascii (fp) : "./hrtfs/elev-25/L-25e055a.dat"
-[ 13, 62 ] = ascii (fp) : "./hrtfs/elev-25/L-25e050a.dat"
-[ 13, 63 ] = ascii (fp) : "./hrtfs/elev-25/L-25e045a.dat"
-[ 13, 64 ] = ascii (fp) : "./hrtfs/elev-25/L-25e040a.dat"
-[ 13, 65 ] = ascii (fp) : "./hrtfs/elev-25/L-25e035a.dat"
-[ 13, 66 ] = ascii (fp) : "./hrtfs/elev-25/L-25e030a.dat"
-[ 13, 67 ] = ascii (fp) : "./hrtfs/elev-25/L-25e025a.dat"
-[ 13, 68 ] = ascii (fp) : "./hrtfs/elev-25/L-25e020a.dat"
-[ 13, 69 ] = ascii (fp) : "./hrtfs/elev-25/L-25e015a.dat"
-[ 13, 70 ] = ascii (fp) : "./hrtfs/elev-25/L-25e010a.dat"
-[ 13, 71 ] = ascii (fp) : "./hrtfs/elev-25/L-25e005a.dat"
+[ 13, 0 ] = ascii (fp) : "./hrtfs/elev-25/L-25e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e000a.dat right
+[ 13, 1 ] = ascii (fp) : "./hrtfs/elev-25/L-25e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e355a.dat right
+[ 13, 2 ] = ascii (fp) : "./hrtfs/elev-25/L-25e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e350a.dat right
+[ 13, 3 ] = ascii (fp) : "./hrtfs/elev-25/L-25e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e345a.dat right
+[ 13, 4 ] = ascii (fp) : "./hrtfs/elev-25/L-25e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e340a.dat right
+[ 13, 5 ] = ascii (fp) : "./hrtfs/elev-25/L-25e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e335a.dat right
+[ 13, 6 ] = ascii (fp) : "./hrtfs/elev-25/L-25e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e330a.dat right
+[ 13, 7 ] = ascii (fp) : "./hrtfs/elev-25/L-25e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e325a.dat right
+[ 13, 8 ] = ascii (fp) : "./hrtfs/elev-25/L-25e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e320a.dat right
+[ 13, 9 ] = ascii (fp) : "./hrtfs/elev-25/L-25e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e315a.dat right
+[ 13, 10 ] = ascii (fp) : "./hrtfs/elev-25/L-25e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e310a.dat right
+[ 13, 11 ] = ascii (fp) : "./hrtfs/elev-25/L-25e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e305a.dat right
+[ 13, 12 ] = ascii (fp) : "./hrtfs/elev-25/L-25e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e300a.dat right
+[ 13, 13 ] = ascii (fp) : "./hrtfs/elev-25/L-25e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e295a.dat right
+[ 13, 14 ] = ascii (fp) : "./hrtfs/elev-25/L-25e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e290a.dat right
+[ 13, 15 ] = ascii (fp) : "./hrtfs/elev-25/L-25e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e285a.dat right
+[ 13, 16 ] = ascii (fp) : "./hrtfs/elev-25/L-25e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e280a.dat right
+[ 13, 17 ] = ascii (fp) : "./hrtfs/elev-25/L-25e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e275a.dat right
+[ 13, 18 ] = ascii (fp) : "./hrtfs/elev-25/L-25e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e270a.dat right
+[ 13, 19 ] = ascii (fp) : "./hrtfs/elev-25/L-25e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e265a.dat right
+[ 13, 20 ] = ascii (fp) : "./hrtfs/elev-25/L-25e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e260a.dat right
+[ 13, 21 ] = ascii (fp) : "./hrtfs/elev-25/L-25e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e255a.dat right
+[ 13, 22 ] = ascii (fp) : "./hrtfs/elev-25/L-25e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e250a.dat right
+[ 13, 23 ] = ascii (fp) : "./hrtfs/elev-25/L-25e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e245a.dat right
+[ 13, 24 ] = ascii (fp) : "./hrtfs/elev-25/L-25e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e240a.dat right
+[ 13, 25 ] = ascii (fp) : "./hrtfs/elev-25/L-25e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e235a.dat right
+[ 13, 26 ] = ascii (fp) : "./hrtfs/elev-25/L-25e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e230a.dat right
+[ 13, 27 ] = ascii (fp) : "./hrtfs/elev-25/L-25e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e225a.dat right
+[ 13, 28 ] = ascii (fp) : "./hrtfs/elev-25/L-25e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e220a.dat right
+[ 13, 29 ] = ascii (fp) : "./hrtfs/elev-25/L-25e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e215a.dat right
+[ 13, 30 ] = ascii (fp) : "./hrtfs/elev-25/L-25e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e210a.dat right
+[ 13, 31 ] = ascii (fp) : "./hrtfs/elev-25/L-25e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e205a.dat right
+[ 13, 32 ] = ascii (fp) : "./hrtfs/elev-25/L-25e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e200a.dat right
+[ 13, 33 ] = ascii (fp) : "./hrtfs/elev-25/L-25e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e195a.dat right
+[ 13, 34 ] = ascii (fp) : "./hrtfs/elev-25/L-25e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e190a.dat right
+[ 13, 35 ] = ascii (fp) : "./hrtfs/elev-25/L-25e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e185a.dat right
+[ 13, 36 ] = ascii (fp) : "./hrtfs/elev-25/L-25e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e180a.dat right
+[ 13, 37 ] = ascii (fp) : "./hrtfs/elev-25/L-25e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e175a.dat right
+[ 13, 38 ] = ascii (fp) : "./hrtfs/elev-25/L-25e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e170a.dat right
+[ 13, 39 ] = ascii (fp) : "./hrtfs/elev-25/L-25e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e165a.dat right
+[ 13, 40 ] = ascii (fp) : "./hrtfs/elev-25/L-25e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e160a.dat right
+[ 13, 41 ] = ascii (fp) : "./hrtfs/elev-25/L-25e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e155a.dat right
+[ 13, 42 ] = ascii (fp) : "./hrtfs/elev-25/L-25e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e150a.dat right
+[ 13, 43 ] = ascii (fp) : "./hrtfs/elev-25/L-25e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e145a.dat right
+[ 13, 44 ] = ascii (fp) : "./hrtfs/elev-25/L-25e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e140a.dat right
+[ 13, 45 ] = ascii (fp) : "./hrtfs/elev-25/L-25e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e135a.dat right
+[ 13, 46 ] = ascii (fp) : "./hrtfs/elev-25/L-25e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e130a.dat right
+[ 13, 47 ] = ascii (fp) : "./hrtfs/elev-25/L-25e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e125a.dat right
+[ 13, 48 ] = ascii (fp) : "./hrtfs/elev-25/L-25e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e120a.dat right
+[ 13, 49 ] = ascii (fp) : "./hrtfs/elev-25/L-25e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e115a.dat right
+[ 13, 50 ] = ascii (fp) : "./hrtfs/elev-25/L-25e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e110a.dat right
+[ 13, 51 ] = ascii (fp) : "./hrtfs/elev-25/L-25e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e105a.dat right
+[ 13, 52 ] = ascii (fp) : "./hrtfs/elev-25/L-25e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e100a.dat right
+[ 13, 53 ] = ascii (fp) : "./hrtfs/elev-25/L-25e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e095a.dat right
+[ 13, 54 ] = ascii (fp) : "./hrtfs/elev-25/L-25e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e090a.dat right
+[ 13, 55 ] = ascii (fp) : "./hrtfs/elev-25/L-25e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e085a.dat right
+[ 13, 56 ] = ascii (fp) : "./hrtfs/elev-25/L-25e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e080a.dat right
+[ 13, 57 ] = ascii (fp) : "./hrtfs/elev-25/L-25e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e075a.dat right
+[ 13, 58 ] = ascii (fp) : "./hrtfs/elev-25/L-25e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e070a.dat right
+[ 13, 59 ] = ascii (fp) : "./hrtfs/elev-25/L-25e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e065a.dat right
+[ 13, 60 ] = ascii (fp) : "./hrtfs/elev-25/L-25e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e060a.dat right
+[ 13, 61 ] = ascii (fp) : "./hrtfs/elev-25/L-25e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e055a.dat right
+[ 13, 62 ] = ascii (fp) : "./hrtfs/elev-25/L-25e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e050a.dat right
+[ 13, 63 ] = ascii (fp) : "./hrtfs/elev-25/L-25e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e045a.dat right
+[ 13, 64 ] = ascii (fp) : "./hrtfs/elev-25/L-25e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e040a.dat right
+[ 13, 65 ] = ascii (fp) : "./hrtfs/elev-25/L-25e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e035a.dat right
+[ 13, 66 ] = ascii (fp) : "./hrtfs/elev-25/L-25e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e030a.dat right
+[ 13, 67 ] = ascii (fp) : "./hrtfs/elev-25/L-25e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e025a.dat right
+[ 13, 68 ] = ascii (fp) : "./hrtfs/elev-25/L-25e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e020a.dat right
+[ 13, 69 ] = ascii (fp) : "./hrtfs/elev-25/L-25e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e015a.dat right
+[ 13, 70 ] = ascii (fp) : "./hrtfs/elev-25/L-25e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e010a.dat right
+[ 13, 71 ] = ascii (fp) : "./hrtfs/elev-25/L-25e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-25/R-25e005a.dat right
-[ 14, 0 ] = ascii (fp) : "./hrtfs/elev-20/L-20e000a.dat"
-[ 14, 1 ] = ascii (fp) : "./hrtfs/elev-20/L-20e355a.dat"
-[ 14, 2 ] = ascii (fp) : "./hrtfs/elev-20/L-20e350a.dat"
-[ 14, 3 ] = ascii (fp) : "./hrtfs/elev-20/L-20e345a.dat"
-[ 14, 4 ] = ascii (fp) : "./hrtfs/elev-20/L-20e340a.dat"
-[ 14, 5 ] = ascii (fp) : "./hrtfs/elev-20/L-20e335a.dat"
-[ 14, 6 ] = ascii (fp) : "./hrtfs/elev-20/L-20e330a.dat"
-[ 14, 7 ] = ascii (fp) : "./hrtfs/elev-20/L-20e325a.dat"
-[ 14, 8 ] = ascii (fp) : "./hrtfs/elev-20/L-20e320a.dat"
-[ 14, 9 ] = ascii (fp) : "./hrtfs/elev-20/L-20e315a.dat"
-[ 14, 10 ] = ascii (fp) : "./hrtfs/elev-20/L-20e310a.dat"
-[ 14, 11 ] = ascii (fp) : "./hrtfs/elev-20/L-20e305a.dat"
-[ 14, 12 ] = ascii (fp) : "./hrtfs/elev-20/L-20e300a.dat"
-[ 14, 13 ] = ascii (fp) : "./hrtfs/elev-20/L-20e295a.dat"
-[ 14, 14 ] = ascii (fp) : "./hrtfs/elev-20/L-20e290a.dat"
-[ 14, 15 ] = ascii (fp) : "./hrtfs/elev-20/L-20e285a.dat"
-[ 14, 16 ] = ascii (fp) : "./hrtfs/elev-20/L-20e280a.dat"
-[ 14, 17 ] = ascii (fp) : "./hrtfs/elev-20/L-20e275a.dat"
-[ 14, 18 ] = ascii (fp) : "./hrtfs/elev-20/L-20e270a.dat"
-[ 14, 19 ] = ascii (fp) : "./hrtfs/elev-20/L-20e265a.dat"
-[ 14, 20 ] = ascii (fp) : "./hrtfs/elev-20/L-20e260a.dat"
-[ 14, 21 ] = ascii (fp) : "./hrtfs/elev-20/L-20e255a.dat"
-[ 14, 22 ] = ascii (fp) : "./hrtfs/elev-20/L-20e250a.dat"
-[ 14, 23 ] = ascii (fp) : "./hrtfs/elev-20/L-20e245a.dat"
-[ 14, 24 ] = ascii (fp) : "./hrtfs/elev-20/L-20e240a.dat"
-[ 14, 25 ] = ascii (fp) : "./hrtfs/elev-20/L-20e235a.dat"
-[ 14, 26 ] = ascii (fp) : "./hrtfs/elev-20/L-20e230a.dat"
-[ 14, 27 ] = ascii (fp) : "./hrtfs/elev-20/L-20e225a.dat"
-[ 14, 28 ] = ascii (fp) : "./hrtfs/elev-20/L-20e220a.dat"
-[ 14, 29 ] = ascii (fp) : "./hrtfs/elev-20/L-20e215a.dat"
-[ 14, 30 ] = ascii (fp) : "./hrtfs/elev-20/L-20e210a.dat"
-[ 14, 31 ] = ascii (fp) : "./hrtfs/elev-20/L-20e205a.dat"
-[ 14, 32 ] = ascii (fp) : "./hrtfs/elev-20/L-20e200a.dat"
-[ 14, 33 ] = ascii (fp) : "./hrtfs/elev-20/L-20e195a.dat"
-[ 14, 34 ] = ascii (fp) : "./hrtfs/elev-20/L-20e190a.dat"
-[ 14, 35 ] = ascii (fp) : "./hrtfs/elev-20/L-20e185a.dat"
-[ 14, 36 ] = ascii (fp) : "./hrtfs/elev-20/L-20e180a.dat"
-[ 14, 37 ] = ascii (fp) : "./hrtfs/elev-20/L-20e175a.dat"
-[ 14, 38 ] = ascii (fp) : "./hrtfs/elev-20/L-20e170a.dat"
-[ 14, 39 ] = ascii (fp) : "./hrtfs/elev-20/L-20e165a.dat"
-[ 14, 40 ] = ascii (fp) : "./hrtfs/elev-20/L-20e160a.dat"
-[ 14, 41 ] = ascii (fp) : "./hrtfs/elev-20/L-20e155a.dat"
-[ 14, 42 ] = ascii (fp) : "./hrtfs/elev-20/L-20e150a.dat"
-[ 14, 43 ] = ascii (fp) : "./hrtfs/elev-20/L-20e145a.dat"
-[ 14, 44 ] = ascii (fp) : "./hrtfs/elev-20/L-20e140a.dat"
-[ 14, 45 ] = ascii (fp) : "./hrtfs/elev-20/L-20e135a.dat"
-[ 14, 46 ] = ascii (fp) : "./hrtfs/elev-20/L-20e130a.dat"
-[ 14, 47 ] = ascii (fp) : "./hrtfs/elev-20/L-20e125a.dat"
-[ 14, 48 ] = ascii (fp) : "./hrtfs/elev-20/L-20e120a.dat"
-[ 14, 49 ] = ascii (fp) : "./hrtfs/elev-20/L-20e115a.dat"
-[ 14, 50 ] = ascii (fp) : "./hrtfs/elev-20/L-20e110a.dat"
-[ 14, 51 ] = ascii (fp) : "./hrtfs/elev-20/L-20e105a.dat"
-[ 14, 52 ] = ascii (fp) : "./hrtfs/elev-20/L-20e100a.dat"
-[ 14, 53 ] = ascii (fp) : "./hrtfs/elev-20/L-20e095a.dat"
-[ 14, 54 ] = ascii (fp) : "./hrtfs/elev-20/L-20e090a.dat"
-[ 14, 55 ] = ascii (fp) : "./hrtfs/elev-20/L-20e085a.dat"
-[ 14, 56 ] = ascii (fp) : "./hrtfs/elev-20/L-20e080a.dat"
-[ 14, 57 ] = ascii (fp) : "./hrtfs/elev-20/L-20e075a.dat"
-[ 14, 58 ] = ascii (fp) : "./hrtfs/elev-20/L-20e070a.dat"
-[ 14, 59 ] = ascii (fp) : "./hrtfs/elev-20/L-20e065a.dat"
-[ 14, 60 ] = ascii (fp) : "./hrtfs/elev-20/L-20e060a.dat"
-[ 14, 61 ] = ascii (fp) : "./hrtfs/elev-20/L-20e055a.dat"
-[ 14, 62 ] = ascii (fp) : "./hrtfs/elev-20/L-20e050a.dat"
-[ 14, 63 ] = ascii (fp) : "./hrtfs/elev-20/L-20e045a.dat"
-[ 14, 64 ] = ascii (fp) : "./hrtfs/elev-20/L-20e040a.dat"
-[ 14, 65 ] = ascii (fp) : "./hrtfs/elev-20/L-20e035a.dat"
-[ 14, 66 ] = ascii (fp) : "./hrtfs/elev-20/L-20e030a.dat"
-[ 14, 67 ] = ascii (fp) : "./hrtfs/elev-20/L-20e025a.dat"
-[ 14, 68 ] = ascii (fp) : "./hrtfs/elev-20/L-20e020a.dat"
-[ 14, 69 ] = ascii (fp) : "./hrtfs/elev-20/L-20e015a.dat"
-[ 14, 70 ] = ascii (fp) : "./hrtfs/elev-20/L-20e010a.dat"
-[ 14, 71 ] = ascii (fp) : "./hrtfs/elev-20/L-20e005a.dat"
+[ 14, 0 ] = ascii (fp) : "./hrtfs/elev-20/L-20e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e000a.dat right
+[ 14, 1 ] = ascii (fp) : "./hrtfs/elev-20/L-20e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e355a.dat right
+[ 14, 2 ] = ascii (fp) : "./hrtfs/elev-20/L-20e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e350a.dat right
+[ 14, 3 ] = ascii (fp) : "./hrtfs/elev-20/L-20e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e345a.dat right
+[ 14, 4 ] = ascii (fp) : "./hrtfs/elev-20/L-20e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e340a.dat right
+[ 14, 5 ] = ascii (fp) : "./hrtfs/elev-20/L-20e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e335a.dat right
+[ 14, 6 ] = ascii (fp) : "./hrtfs/elev-20/L-20e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e330a.dat right
+[ 14, 7 ] = ascii (fp) : "./hrtfs/elev-20/L-20e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e325a.dat right
+[ 14, 8 ] = ascii (fp) : "./hrtfs/elev-20/L-20e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e320a.dat right
+[ 14, 9 ] = ascii (fp) : "./hrtfs/elev-20/L-20e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e315a.dat right
+[ 14, 10 ] = ascii (fp) : "./hrtfs/elev-20/L-20e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e310a.dat right
+[ 14, 11 ] = ascii (fp) : "./hrtfs/elev-20/L-20e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e305a.dat right
+[ 14, 12 ] = ascii (fp) : "./hrtfs/elev-20/L-20e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e300a.dat right
+[ 14, 13 ] = ascii (fp) : "./hrtfs/elev-20/L-20e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e295a.dat right
+[ 14, 14 ] = ascii (fp) : "./hrtfs/elev-20/L-20e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e290a.dat right
+[ 14, 15 ] = ascii (fp) : "./hrtfs/elev-20/L-20e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e285a.dat right
+[ 14, 16 ] = ascii (fp) : "./hrtfs/elev-20/L-20e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e280a.dat right
+[ 14, 17 ] = ascii (fp) : "./hrtfs/elev-20/L-20e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e275a.dat right
+[ 14, 18 ] = ascii (fp) : "./hrtfs/elev-20/L-20e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e270a.dat right
+[ 14, 19 ] = ascii (fp) : "./hrtfs/elev-20/L-20e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e265a.dat right
+[ 14, 20 ] = ascii (fp) : "./hrtfs/elev-20/L-20e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e260a.dat right
+[ 14, 21 ] = ascii (fp) : "./hrtfs/elev-20/L-20e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e255a.dat right
+[ 14, 22 ] = ascii (fp) : "./hrtfs/elev-20/L-20e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e250a.dat right
+[ 14, 23 ] = ascii (fp) : "./hrtfs/elev-20/L-20e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e245a.dat right
+[ 14, 24 ] = ascii (fp) : "./hrtfs/elev-20/L-20e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e240a.dat right
+[ 14, 25 ] = ascii (fp) : "./hrtfs/elev-20/L-20e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e235a.dat right
+[ 14, 26 ] = ascii (fp) : "./hrtfs/elev-20/L-20e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e230a.dat right
+[ 14, 27 ] = ascii (fp) : "./hrtfs/elev-20/L-20e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e225a.dat right
+[ 14, 28 ] = ascii (fp) : "./hrtfs/elev-20/L-20e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e220a.dat right
+[ 14, 29 ] = ascii (fp) : "./hrtfs/elev-20/L-20e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e215a.dat right
+[ 14, 30 ] = ascii (fp) : "./hrtfs/elev-20/L-20e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e210a.dat right
+[ 14, 31 ] = ascii (fp) : "./hrtfs/elev-20/L-20e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e205a.dat right
+[ 14, 32 ] = ascii (fp) : "./hrtfs/elev-20/L-20e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e200a.dat right
+[ 14, 33 ] = ascii (fp) : "./hrtfs/elev-20/L-20e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e195a.dat right
+[ 14, 34 ] = ascii (fp) : "./hrtfs/elev-20/L-20e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e190a.dat right
+[ 14, 35 ] = ascii (fp) : "./hrtfs/elev-20/L-20e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e185a.dat right
+[ 14, 36 ] = ascii (fp) : "./hrtfs/elev-20/L-20e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e180a.dat right
+[ 14, 37 ] = ascii (fp) : "./hrtfs/elev-20/L-20e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e175a.dat right
+[ 14, 38 ] = ascii (fp) : "./hrtfs/elev-20/L-20e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e170a.dat right
+[ 14, 39 ] = ascii (fp) : "./hrtfs/elev-20/L-20e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e165a.dat right
+[ 14, 40 ] = ascii (fp) : "./hrtfs/elev-20/L-20e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e160a.dat right
+[ 14, 41 ] = ascii (fp) : "./hrtfs/elev-20/L-20e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e155a.dat right
+[ 14, 42 ] = ascii (fp) : "./hrtfs/elev-20/L-20e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e150a.dat right
+[ 14, 43 ] = ascii (fp) : "./hrtfs/elev-20/L-20e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e145a.dat right
+[ 14, 44 ] = ascii (fp) : "./hrtfs/elev-20/L-20e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e140a.dat right
+[ 14, 45 ] = ascii (fp) : "./hrtfs/elev-20/L-20e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e135a.dat right
+[ 14, 46 ] = ascii (fp) : "./hrtfs/elev-20/L-20e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e130a.dat right
+[ 14, 47 ] = ascii (fp) : "./hrtfs/elev-20/L-20e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e125a.dat right
+[ 14, 48 ] = ascii (fp) : "./hrtfs/elev-20/L-20e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e120a.dat right
+[ 14, 49 ] = ascii (fp) : "./hrtfs/elev-20/L-20e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e115a.dat right
+[ 14, 50 ] = ascii (fp) : "./hrtfs/elev-20/L-20e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e110a.dat right
+[ 14, 51 ] = ascii (fp) : "./hrtfs/elev-20/L-20e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e105a.dat right
+[ 14, 52 ] = ascii (fp) : "./hrtfs/elev-20/L-20e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e100a.dat right
+[ 14, 53 ] = ascii (fp) : "./hrtfs/elev-20/L-20e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e095a.dat right
+[ 14, 54 ] = ascii (fp) : "./hrtfs/elev-20/L-20e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e090a.dat right
+[ 14, 55 ] = ascii (fp) : "./hrtfs/elev-20/L-20e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e085a.dat right
+[ 14, 56 ] = ascii (fp) : "./hrtfs/elev-20/L-20e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e080a.dat right
+[ 14, 57 ] = ascii (fp) : "./hrtfs/elev-20/L-20e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e075a.dat right
+[ 14, 58 ] = ascii (fp) : "./hrtfs/elev-20/L-20e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e070a.dat right
+[ 14, 59 ] = ascii (fp) : "./hrtfs/elev-20/L-20e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e065a.dat right
+[ 14, 60 ] = ascii (fp) : "./hrtfs/elev-20/L-20e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e060a.dat right
+[ 14, 61 ] = ascii (fp) : "./hrtfs/elev-20/L-20e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e055a.dat right
+[ 14, 62 ] = ascii (fp) : "./hrtfs/elev-20/L-20e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e050a.dat right
+[ 14, 63 ] = ascii (fp) : "./hrtfs/elev-20/L-20e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e045a.dat right
+[ 14, 64 ] = ascii (fp) : "./hrtfs/elev-20/L-20e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e040a.dat right
+[ 14, 65 ] = ascii (fp) : "./hrtfs/elev-20/L-20e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e035a.dat right
+[ 14, 66 ] = ascii (fp) : "./hrtfs/elev-20/L-20e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e030a.dat right
+[ 14, 67 ] = ascii (fp) : "./hrtfs/elev-20/L-20e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e025a.dat right
+[ 14, 68 ] = ascii (fp) : "./hrtfs/elev-20/L-20e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e020a.dat right
+[ 14, 69 ] = ascii (fp) : "./hrtfs/elev-20/L-20e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e015a.dat right
+[ 14, 70 ] = ascii (fp) : "./hrtfs/elev-20/L-20e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e010a.dat right
+[ 14, 71 ] = ascii (fp) : "./hrtfs/elev-20/L-20e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-20/R-20e005a.dat right
-[ 15, 0 ] = ascii (fp) : "./hrtfs/elev-15/L-15e000a.dat"
-[ 15, 1 ] = ascii (fp) : "./hrtfs/elev-15/L-15e355a.dat"
-[ 15, 2 ] = ascii (fp) : "./hrtfs/elev-15/L-15e350a.dat"
-[ 15, 3 ] = ascii (fp) : "./hrtfs/elev-15/L-15e345a.dat"
-[ 15, 4 ] = ascii (fp) : "./hrtfs/elev-15/L-15e340a.dat"
-[ 15, 5 ] = ascii (fp) : "./hrtfs/elev-15/L-15e335a.dat"
-[ 15, 6 ] = ascii (fp) : "./hrtfs/elev-15/L-15e330a.dat"
-[ 15, 7 ] = ascii (fp) : "./hrtfs/elev-15/L-15e325a.dat"
-[ 15, 8 ] = ascii (fp) : "./hrtfs/elev-15/L-15e320a.dat"
-[ 15, 9 ] = ascii (fp) : "./hrtfs/elev-15/L-15e315a.dat"
-[ 15, 10 ] = ascii (fp) : "./hrtfs/elev-15/L-15e310a.dat"
-[ 15, 11 ] = ascii (fp) : "./hrtfs/elev-15/L-15e305a.dat"
-[ 15, 12 ] = ascii (fp) : "./hrtfs/elev-15/L-15e300a.dat"
-[ 15, 13 ] = ascii (fp) : "./hrtfs/elev-15/L-15e295a.dat"
-[ 15, 14 ] = ascii (fp) : "./hrtfs/elev-15/L-15e290a.dat"
-[ 15, 15 ] = ascii (fp) : "./hrtfs/elev-15/L-15e285a.dat"
-[ 15, 16 ] = ascii (fp) : "./hrtfs/elev-15/L-15e280a.dat"
-[ 15, 17 ] = ascii (fp) : "./hrtfs/elev-15/L-15e275a.dat"
-[ 15, 18 ] = ascii (fp) : "./hrtfs/elev-15/L-15e270a.dat"
-[ 15, 19 ] = ascii (fp) : "./hrtfs/elev-15/L-15e265a.dat"
-[ 15, 20 ] = ascii (fp) : "./hrtfs/elev-15/L-15e260a.dat"
-[ 15, 21 ] = ascii (fp) : "./hrtfs/elev-15/L-15e255a.dat"
-[ 15, 22 ] = ascii (fp) : "./hrtfs/elev-15/L-15e250a.dat"
-[ 15, 23 ] = ascii (fp) : "./hrtfs/elev-15/L-15e245a.dat"
-[ 15, 24 ] = ascii (fp) : "./hrtfs/elev-15/L-15e240a.dat"
-[ 15, 25 ] = ascii (fp) : "./hrtfs/elev-15/L-15e235a.dat"
-[ 15, 26 ] = ascii (fp) : "./hrtfs/elev-15/L-15e230a.dat"
-[ 15, 27 ] = ascii (fp) : "./hrtfs/elev-15/L-15e225a.dat"
-[ 15, 28 ] = ascii (fp) : "./hrtfs/elev-15/L-15e220a.dat"
-[ 15, 29 ] = ascii (fp) : "./hrtfs/elev-15/L-15e215a.dat"
-[ 15, 30 ] = ascii (fp) : "./hrtfs/elev-15/L-15e210a.dat"
-[ 15, 31 ] = ascii (fp) : "./hrtfs/elev-15/L-15e205a.dat"
-[ 15, 32 ] = ascii (fp) : "./hrtfs/elev-15/L-15e200a.dat"
-[ 15, 33 ] = ascii (fp) : "./hrtfs/elev-15/L-15e195a.dat"
-[ 15, 34 ] = ascii (fp) : "./hrtfs/elev-15/L-15e190a.dat"
-[ 15, 35 ] = ascii (fp) : "./hrtfs/elev-15/L-15e185a.dat"
-[ 15, 36 ] = ascii (fp) : "./hrtfs/elev-15/L-15e180a.dat"
-[ 15, 37 ] = ascii (fp) : "./hrtfs/elev-15/L-15e175a.dat"
-[ 15, 38 ] = ascii (fp) : "./hrtfs/elev-15/L-15e170a.dat"
-[ 15, 39 ] = ascii (fp) : "./hrtfs/elev-15/L-15e165a.dat"
-[ 15, 40 ] = ascii (fp) : "./hrtfs/elev-15/L-15e160a.dat"
-[ 15, 41 ] = ascii (fp) : "./hrtfs/elev-15/L-15e155a.dat"
-[ 15, 42 ] = ascii (fp) : "./hrtfs/elev-15/L-15e150a.dat"
-[ 15, 43 ] = ascii (fp) : "./hrtfs/elev-15/L-15e145a.dat"
-[ 15, 44 ] = ascii (fp) : "./hrtfs/elev-15/L-15e140a.dat"
-[ 15, 45 ] = ascii (fp) : "./hrtfs/elev-15/L-15e135a.dat"
-[ 15, 46 ] = ascii (fp) : "./hrtfs/elev-15/L-15e130a.dat"
-[ 15, 47 ] = ascii (fp) : "./hrtfs/elev-15/L-15e125a.dat"
-[ 15, 48 ] = ascii (fp) : "./hrtfs/elev-15/L-15e120a.dat"
-[ 15, 49 ] = ascii (fp) : "./hrtfs/elev-15/L-15e115a.dat"
-[ 15, 50 ] = ascii (fp) : "./hrtfs/elev-15/L-15e110a.dat"
-[ 15, 51 ] = ascii (fp) : "./hrtfs/elev-15/L-15e105a.dat"
-[ 15, 52 ] = ascii (fp) : "./hrtfs/elev-15/L-15e100a.dat"
-[ 15, 53 ] = ascii (fp) : "./hrtfs/elev-15/L-15e095a.dat"
-[ 15, 54 ] = ascii (fp) : "./hrtfs/elev-15/L-15e090a.dat"
-[ 15, 55 ] = ascii (fp) : "./hrtfs/elev-15/L-15e085a.dat"
-[ 15, 56 ] = ascii (fp) : "./hrtfs/elev-15/L-15e080a.dat"
-[ 15, 57 ] = ascii (fp) : "./hrtfs/elev-15/L-15e075a.dat"
-[ 15, 58 ] = ascii (fp) : "./hrtfs/elev-15/L-15e070a.dat"
-[ 15, 59 ] = ascii (fp) : "./hrtfs/elev-15/L-15e065a.dat"
-[ 15, 60 ] = ascii (fp) : "./hrtfs/elev-15/L-15e060a.dat"
-[ 15, 61 ] = ascii (fp) : "./hrtfs/elev-15/L-15e055a.dat"
-[ 15, 62 ] = ascii (fp) : "./hrtfs/elev-15/L-15e050a.dat"
-[ 15, 63 ] = ascii (fp) : "./hrtfs/elev-15/L-15e045a.dat"
-[ 15, 64 ] = ascii (fp) : "./hrtfs/elev-15/L-15e040a.dat"
-[ 15, 65 ] = ascii (fp) : "./hrtfs/elev-15/L-15e035a.dat"
-[ 15, 66 ] = ascii (fp) : "./hrtfs/elev-15/L-15e030a.dat"
-[ 15, 67 ] = ascii (fp) : "./hrtfs/elev-15/L-15e025a.dat"
-[ 15, 68 ] = ascii (fp) : "./hrtfs/elev-15/L-15e020a.dat"
-[ 15, 69 ] = ascii (fp) : "./hrtfs/elev-15/L-15e015a.dat"
-[ 15, 70 ] = ascii (fp) : "./hrtfs/elev-15/L-15e010a.dat"
-[ 15, 71 ] = ascii (fp) : "./hrtfs/elev-15/L-15e005a.dat"
+[ 15, 0 ] = ascii (fp) : "./hrtfs/elev-15/L-15e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e000a.dat right
+[ 15, 1 ] = ascii (fp) : "./hrtfs/elev-15/L-15e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e355a.dat right
+[ 15, 2 ] = ascii (fp) : "./hrtfs/elev-15/L-15e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e350a.dat right
+[ 15, 3 ] = ascii (fp) : "./hrtfs/elev-15/L-15e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e345a.dat right
+[ 15, 4 ] = ascii (fp) : "./hrtfs/elev-15/L-15e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e340a.dat right
+[ 15, 5 ] = ascii (fp) : "./hrtfs/elev-15/L-15e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e335a.dat right
+[ 15, 6 ] = ascii (fp) : "./hrtfs/elev-15/L-15e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e330a.dat right
+[ 15, 7 ] = ascii (fp) : "./hrtfs/elev-15/L-15e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e325a.dat right
+[ 15, 8 ] = ascii (fp) : "./hrtfs/elev-15/L-15e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e320a.dat right
+[ 15, 9 ] = ascii (fp) : "./hrtfs/elev-15/L-15e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e315a.dat right
+[ 15, 10 ] = ascii (fp) : "./hrtfs/elev-15/L-15e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e310a.dat right
+[ 15, 11 ] = ascii (fp) : "./hrtfs/elev-15/L-15e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e305a.dat right
+[ 15, 12 ] = ascii (fp) : "./hrtfs/elev-15/L-15e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e300a.dat right
+[ 15, 13 ] = ascii (fp) : "./hrtfs/elev-15/L-15e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e295a.dat right
+[ 15, 14 ] = ascii (fp) : "./hrtfs/elev-15/L-15e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e290a.dat right
+[ 15, 15 ] = ascii (fp) : "./hrtfs/elev-15/L-15e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e285a.dat right
+[ 15, 16 ] = ascii (fp) : "./hrtfs/elev-15/L-15e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e280a.dat right
+[ 15, 17 ] = ascii (fp) : "./hrtfs/elev-15/L-15e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e275a.dat right
+[ 15, 18 ] = ascii (fp) : "./hrtfs/elev-15/L-15e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e270a.dat right
+[ 15, 19 ] = ascii (fp) : "./hrtfs/elev-15/L-15e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e265a.dat right
+[ 15, 20 ] = ascii (fp) : "./hrtfs/elev-15/L-15e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e260a.dat right
+[ 15, 21 ] = ascii (fp) : "./hrtfs/elev-15/L-15e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e255a.dat right
+[ 15, 22 ] = ascii (fp) : "./hrtfs/elev-15/L-15e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e250a.dat right
+[ 15, 23 ] = ascii (fp) : "./hrtfs/elev-15/L-15e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e245a.dat right
+[ 15, 24 ] = ascii (fp) : "./hrtfs/elev-15/L-15e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e240a.dat right
+[ 15, 25 ] = ascii (fp) : "./hrtfs/elev-15/L-15e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e235a.dat right
+[ 15, 26 ] = ascii (fp) : "./hrtfs/elev-15/L-15e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e230a.dat right
+[ 15, 27 ] = ascii (fp) : "./hrtfs/elev-15/L-15e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e225a.dat right
+[ 15, 28 ] = ascii (fp) : "./hrtfs/elev-15/L-15e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e220a.dat right
+[ 15, 29 ] = ascii (fp) : "./hrtfs/elev-15/L-15e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e215a.dat right
+[ 15, 30 ] = ascii (fp) : "./hrtfs/elev-15/L-15e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e210a.dat right
+[ 15, 31 ] = ascii (fp) : "./hrtfs/elev-15/L-15e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e205a.dat right
+[ 15, 32 ] = ascii (fp) : "./hrtfs/elev-15/L-15e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e200a.dat right
+[ 15, 33 ] = ascii (fp) : "./hrtfs/elev-15/L-15e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e195a.dat right
+[ 15, 34 ] = ascii (fp) : "./hrtfs/elev-15/L-15e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e190a.dat right
+[ 15, 35 ] = ascii (fp) : "./hrtfs/elev-15/L-15e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e185a.dat right
+[ 15, 36 ] = ascii (fp) : "./hrtfs/elev-15/L-15e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e180a.dat right
+[ 15, 37 ] = ascii (fp) : "./hrtfs/elev-15/L-15e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e175a.dat right
+[ 15, 38 ] = ascii (fp) : "./hrtfs/elev-15/L-15e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e170a.dat right
+[ 15, 39 ] = ascii (fp) : "./hrtfs/elev-15/L-15e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e165a.dat right
+[ 15, 40 ] = ascii (fp) : "./hrtfs/elev-15/L-15e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e160a.dat right
+[ 15, 41 ] = ascii (fp) : "./hrtfs/elev-15/L-15e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e155a.dat right
+[ 15, 42 ] = ascii (fp) : "./hrtfs/elev-15/L-15e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e150a.dat right
+[ 15, 43 ] = ascii (fp) : "./hrtfs/elev-15/L-15e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e145a.dat right
+[ 15, 44 ] = ascii (fp) : "./hrtfs/elev-15/L-15e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e140a.dat right
+[ 15, 45 ] = ascii (fp) : "./hrtfs/elev-15/L-15e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e135a.dat right
+[ 15, 46 ] = ascii (fp) : "./hrtfs/elev-15/L-15e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e130a.dat right
+[ 15, 47 ] = ascii (fp) : "./hrtfs/elev-15/L-15e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e125a.dat right
+[ 15, 48 ] = ascii (fp) : "./hrtfs/elev-15/L-15e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e120a.dat right
+[ 15, 49 ] = ascii (fp) : "./hrtfs/elev-15/L-15e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e115a.dat right
+[ 15, 50 ] = ascii (fp) : "./hrtfs/elev-15/L-15e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e110a.dat right
+[ 15, 51 ] = ascii (fp) : "./hrtfs/elev-15/L-15e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e105a.dat right
+[ 15, 52 ] = ascii (fp) : "./hrtfs/elev-15/L-15e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e100a.dat right
+[ 15, 53 ] = ascii (fp) : "./hrtfs/elev-15/L-15e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e095a.dat right
+[ 15, 54 ] = ascii (fp) : "./hrtfs/elev-15/L-15e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e090a.dat right
+[ 15, 55 ] = ascii (fp) : "./hrtfs/elev-15/L-15e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e085a.dat right
+[ 15, 56 ] = ascii (fp) : "./hrtfs/elev-15/L-15e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e080a.dat right
+[ 15, 57 ] = ascii (fp) : "./hrtfs/elev-15/L-15e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e075a.dat right
+[ 15, 58 ] = ascii (fp) : "./hrtfs/elev-15/L-15e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e070a.dat right
+[ 15, 59 ] = ascii (fp) : "./hrtfs/elev-15/L-15e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e065a.dat right
+[ 15, 60 ] = ascii (fp) : "./hrtfs/elev-15/L-15e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e060a.dat right
+[ 15, 61 ] = ascii (fp) : "./hrtfs/elev-15/L-15e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e055a.dat right
+[ 15, 62 ] = ascii (fp) : "./hrtfs/elev-15/L-15e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e050a.dat right
+[ 15, 63 ] = ascii (fp) : "./hrtfs/elev-15/L-15e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e045a.dat right
+[ 15, 64 ] = ascii (fp) : "./hrtfs/elev-15/L-15e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e040a.dat right
+[ 15, 65 ] = ascii (fp) : "./hrtfs/elev-15/L-15e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e035a.dat right
+[ 15, 66 ] = ascii (fp) : "./hrtfs/elev-15/L-15e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e030a.dat right
+[ 15, 67 ] = ascii (fp) : "./hrtfs/elev-15/L-15e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e025a.dat right
+[ 15, 68 ] = ascii (fp) : "./hrtfs/elev-15/L-15e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e020a.dat right
+[ 15, 69 ] = ascii (fp) : "./hrtfs/elev-15/L-15e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e015a.dat right
+[ 15, 70 ] = ascii (fp) : "./hrtfs/elev-15/L-15e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e010a.dat right
+[ 15, 71 ] = ascii (fp) : "./hrtfs/elev-15/L-15e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-15/R-15e005a.dat right
-[ 16, 0 ] = ascii (fp) : "./hrtfs/elev-10/L-10e000a.dat"
-[ 16, 1 ] = ascii (fp) : "./hrtfs/elev-10/L-10e355a.dat"
-[ 16, 2 ] = ascii (fp) : "./hrtfs/elev-10/L-10e350a.dat"
-[ 16, 3 ] = ascii (fp) : "./hrtfs/elev-10/L-10e345a.dat"
-[ 16, 4 ] = ascii (fp) : "./hrtfs/elev-10/L-10e340a.dat"
-[ 16, 5 ] = ascii (fp) : "./hrtfs/elev-10/L-10e335a.dat"
-[ 16, 6 ] = ascii (fp) : "./hrtfs/elev-10/L-10e330a.dat"
-[ 16, 7 ] = ascii (fp) : "./hrtfs/elev-10/L-10e325a.dat"
-[ 16, 8 ] = ascii (fp) : "./hrtfs/elev-10/L-10e320a.dat"
-[ 16, 9 ] = ascii (fp) : "./hrtfs/elev-10/L-10e315a.dat"
-[ 16, 10 ] = ascii (fp) : "./hrtfs/elev-10/L-10e310a.dat"
-[ 16, 11 ] = ascii (fp) : "./hrtfs/elev-10/L-10e305a.dat"
-[ 16, 12 ] = ascii (fp) : "./hrtfs/elev-10/L-10e300a.dat"
-[ 16, 13 ] = ascii (fp) : "./hrtfs/elev-10/L-10e295a.dat"
-[ 16, 14 ] = ascii (fp) : "./hrtfs/elev-10/L-10e290a.dat"
-[ 16, 15 ] = ascii (fp) : "./hrtfs/elev-10/L-10e285a.dat"
-[ 16, 16 ] = ascii (fp) : "./hrtfs/elev-10/L-10e280a.dat"
-[ 16, 17 ] = ascii (fp) : "./hrtfs/elev-10/L-10e275a.dat"
-[ 16, 18 ] = ascii (fp) : "./hrtfs/elev-10/L-10e270a.dat"
-[ 16, 19 ] = ascii (fp) : "./hrtfs/elev-10/L-10e265a.dat"
-[ 16, 20 ] = ascii (fp) : "./hrtfs/elev-10/L-10e260a.dat"
-[ 16, 21 ] = ascii (fp) : "./hrtfs/elev-10/L-10e255a.dat"
-[ 16, 22 ] = ascii (fp) : "./hrtfs/elev-10/L-10e250a.dat"
-[ 16, 23 ] = ascii (fp) : "./hrtfs/elev-10/L-10e245a.dat"
-[ 16, 24 ] = ascii (fp) : "./hrtfs/elev-10/L-10e240a.dat"
-[ 16, 25 ] = ascii (fp) : "./hrtfs/elev-10/L-10e235a.dat"
-[ 16, 26 ] = ascii (fp) : "./hrtfs/elev-10/L-10e230a.dat"
-[ 16, 27 ] = ascii (fp) : "./hrtfs/elev-10/L-10e225a.dat"
-[ 16, 28 ] = ascii (fp) : "./hrtfs/elev-10/L-10e220a.dat"
-[ 16, 29 ] = ascii (fp) : "./hrtfs/elev-10/L-10e215a.dat"
-[ 16, 30 ] = ascii (fp) : "./hrtfs/elev-10/L-10e210a.dat"
-[ 16, 31 ] = ascii (fp) : "./hrtfs/elev-10/L-10e205a.dat"
-[ 16, 32 ] = ascii (fp) : "./hrtfs/elev-10/L-10e200a.dat"
-[ 16, 33 ] = ascii (fp) : "./hrtfs/elev-10/L-10e195a.dat"
-[ 16, 34 ] = ascii (fp) : "./hrtfs/elev-10/L-10e190a.dat"
-[ 16, 35 ] = ascii (fp) : "./hrtfs/elev-10/L-10e185a.dat"
-[ 16, 36 ] = ascii (fp) : "./hrtfs/elev-10/L-10e180a.dat"
-[ 16, 37 ] = ascii (fp) : "./hrtfs/elev-10/L-10e175a.dat"
-[ 16, 38 ] = ascii (fp) : "./hrtfs/elev-10/L-10e170a.dat"
-[ 16, 39 ] = ascii (fp) : "./hrtfs/elev-10/L-10e165a.dat"
-[ 16, 40 ] = ascii (fp) : "./hrtfs/elev-10/L-10e160a.dat"
-[ 16, 41 ] = ascii (fp) : "./hrtfs/elev-10/L-10e155a.dat"
-[ 16, 42 ] = ascii (fp) : "./hrtfs/elev-10/L-10e150a.dat"
-[ 16, 43 ] = ascii (fp) : "./hrtfs/elev-10/L-10e145a.dat"
-[ 16, 44 ] = ascii (fp) : "./hrtfs/elev-10/L-10e140a.dat"
-[ 16, 45 ] = ascii (fp) : "./hrtfs/elev-10/L-10e135a.dat"
-[ 16, 46 ] = ascii (fp) : "./hrtfs/elev-10/L-10e130a.dat"
-[ 16, 47 ] = ascii (fp) : "./hrtfs/elev-10/L-10e125a.dat"
-[ 16, 48 ] = ascii (fp) : "./hrtfs/elev-10/L-10e120a.dat"
-[ 16, 49 ] = ascii (fp) : "./hrtfs/elev-10/L-10e115a.dat"
-[ 16, 50 ] = ascii (fp) : "./hrtfs/elev-10/L-10e110a.dat"
-[ 16, 51 ] = ascii (fp) : "./hrtfs/elev-10/L-10e105a.dat"
-[ 16, 52 ] = ascii (fp) : "./hrtfs/elev-10/L-10e100a.dat"
-[ 16, 53 ] = ascii (fp) : "./hrtfs/elev-10/L-10e095a.dat"
-[ 16, 54 ] = ascii (fp) : "./hrtfs/elev-10/L-10e090a.dat"
-[ 16, 55 ] = ascii (fp) : "./hrtfs/elev-10/L-10e085a.dat"
-[ 16, 56 ] = ascii (fp) : "./hrtfs/elev-10/L-10e080a.dat"
-[ 16, 57 ] = ascii (fp) : "./hrtfs/elev-10/L-10e075a.dat"
-[ 16, 58 ] = ascii (fp) : "./hrtfs/elev-10/L-10e070a.dat"
-[ 16, 59 ] = ascii (fp) : "./hrtfs/elev-10/L-10e065a.dat"
-[ 16, 60 ] = ascii (fp) : "./hrtfs/elev-10/L-10e060a.dat"
-[ 16, 61 ] = ascii (fp) : "./hrtfs/elev-10/L-10e055a.dat"
-[ 16, 62 ] = ascii (fp) : "./hrtfs/elev-10/L-10e050a.dat"
-[ 16, 63 ] = ascii (fp) : "./hrtfs/elev-10/L-10e045a.dat"
-[ 16, 64 ] = ascii (fp) : "./hrtfs/elev-10/L-10e040a.dat"
-[ 16, 65 ] = ascii (fp) : "./hrtfs/elev-10/L-10e035a.dat"
-[ 16, 66 ] = ascii (fp) : "./hrtfs/elev-10/L-10e030a.dat"
-[ 16, 67 ] = ascii (fp) : "./hrtfs/elev-10/L-10e025a.dat"
-[ 16, 68 ] = ascii (fp) : "./hrtfs/elev-10/L-10e020a.dat"
-[ 16, 69 ] = ascii (fp) : "./hrtfs/elev-10/L-10e015a.dat"
-[ 16, 70 ] = ascii (fp) : "./hrtfs/elev-10/L-10e010a.dat"
-[ 16, 71 ] = ascii (fp) : "./hrtfs/elev-10/L-10e005a.dat"
+[ 16, 0 ] = ascii (fp) : "./hrtfs/elev-10/L-10e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e000a.dat right
+[ 16, 1 ] = ascii (fp) : "./hrtfs/elev-10/L-10e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e355a.dat right
+[ 16, 2 ] = ascii (fp) : "./hrtfs/elev-10/L-10e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e350a.dat right
+[ 16, 3 ] = ascii (fp) : "./hrtfs/elev-10/L-10e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e345a.dat right
+[ 16, 4 ] = ascii (fp) : "./hrtfs/elev-10/L-10e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e340a.dat right
+[ 16, 5 ] = ascii (fp) : "./hrtfs/elev-10/L-10e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e335a.dat right
+[ 16, 6 ] = ascii (fp) : "./hrtfs/elev-10/L-10e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e330a.dat right
+[ 16, 7 ] = ascii (fp) : "./hrtfs/elev-10/L-10e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e325a.dat right
+[ 16, 8 ] = ascii (fp) : "./hrtfs/elev-10/L-10e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e320a.dat right
+[ 16, 9 ] = ascii (fp) : "./hrtfs/elev-10/L-10e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e315a.dat right
+[ 16, 10 ] = ascii (fp) : "./hrtfs/elev-10/L-10e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e310a.dat right
+[ 16, 11 ] = ascii (fp) : "./hrtfs/elev-10/L-10e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e305a.dat right
+[ 16, 12 ] = ascii (fp) : "./hrtfs/elev-10/L-10e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e300a.dat right
+[ 16, 13 ] = ascii (fp) : "./hrtfs/elev-10/L-10e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e295a.dat right
+[ 16, 14 ] = ascii (fp) : "./hrtfs/elev-10/L-10e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e290a.dat right
+[ 16, 15 ] = ascii (fp) : "./hrtfs/elev-10/L-10e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e285a.dat right
+[ 16, 16 ] = ascii (fp) : "./hrtfs/elev-10/L-10e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e280a.dat right
+[ 16, 17 ] = ascii (fp) : "./hrtfs/elev-10/L-10e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e275a.dat right
+[ 16, 18 ] = ascii (fp) : "./hrtfs/elev-10/L-10e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e270a.dat right
+[ 16, 19 ] = ascii (fp) : "./hrtfs/elev-10/L-10e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e265a.dat right
+[ 16, 20 ] = ascii (fp) : "./hrtfs/elev-10/L-10e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e260a.dat right
+[ 16, 21 ] = ascii (fp) : "./hrtfs/elev-10/L-10e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e255a.dat right
+[ 16, 22 ] = ascii (fp) : "./hrtfs/elev-10/L-10e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e250a.dat right
+[ 16, 23 ] = ascii (fp) : "./hrtfs/elev-10/L-10e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e245a.dat right
+[ 16, 24 ] = ascii (fp) : "./hrtfs/elev-10/L-10e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e240a.dat right
+[ 16, 25 ] = ascii (fp) : "./hrtfs/elev-10/L-10e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e235a.dat right
+[ 16, 26 ] = ascii (fp) : "./hrtfs/elev-10/L-10e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e230a.dat right
+[ 16, 27 ] = ascii (fp) : "./hrtfs/elev-10/L-10e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e225a.dat right
+[ 16, 28 ] = ascii (fp) : "./hrtfs/elev-10/L-10e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e220a.dat right
+[ 16, 29 ] = ascii (fp) : "./hrtfs/elev-10/L-10e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e215a.dat right
+[ 16, 30 ] = ascii (fp) : "./hrtfs/elev-10/L-10e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e210a.dat right
+[ 16, 31 ] = ascii (fp) : "./hrtfs/elev-10/L-10e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e205a.dat right
+[ 16, 32 ] = ascii (fp) : "./hrtfs/elev-10/L-10e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e200a.dat right
+[ 16, 33 ] = ascii (fp) : "./hrtfs/elev-10/L-10e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e195a.dat right
+[ 16, 34 ] = ascii (fp) : "./hrtfs/elev-10/L-10e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e190a.dat right
+[ 16, 35 ] = ascii (fp) : "./hrtfs/elev-10/L-10e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e185a.dat right
+[ 16, 36 ] = ascii (fp) : "./hrtfs/elev-10/L-10e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e180a.dat right
+[ 16, 37 ] = ascii (fp) : "./hrtfs/elev-10/L-10e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e175a.dat right
+[ 16, 38 ] = ascii (fp) : "./hrtfs/elev-10/L-10e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e170a.dat right
+[ 16, 39 ] = ascii (fp) : "./hrtfs/elev-10/L-10e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e165a.dat right
+[ 16, 40 ] = ascii (fp) : "./hrtfs/elev-10/L-10e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e160a.dat right
+[ 16, 41 ] = ascii (fp) : "./hrtfs/elev-10/L-10e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e155a.dat right
+[ 16, 42 ] = ascii (fp) : "./hrtfs/elev-10/L-10e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e150a.dat right
+[ 16, 43 ] = ascii (fp) : "./hrtfs/elev-10/L-10e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e145a.dat right
+[ 16, 44 ] = ascii (fp) : "./hrtfs/elev-10/L-10e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e140a.dat right
+[ 16, 45 ] = ascii (fp) : "./hrtfs/elev-10/L-10e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e135a.dat right
+[ 16, 46 ] = ascii (fp) : "./hrtfs/elev-10/L-10e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e130a.dat right
+[ 16, 47 ] = ascii (fp) : "./hrtfs/elev-10/L-10e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e125a.dat right
+[ 16, 48 ] = ascii (fp) : "./hrtfs/elev-10/L-10e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e120a.dat right
+[ 16, 49 ] = ascii (fp) : "./hrtfs/elev-10/L-10e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e115a.dat right
+[ 16, 50 ] = ascii (fp) : "./hrtfs/elev-10/L-10e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e110a.dat right
+[ 16, 51 ] = ascii (fp) : "./hrtfs/elev-10/L-10e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e105a.dat right
+[ 16, 52 ] = ascii (fp) : "./hrtfs/elev-10/L-10e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e100a.dat right
+[ 16, 53 ] = ascii (fp) : "./hrtfs/elev-10/L-10e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e095a.dat right
+[ 16, 54 ] = ascii (fp) : "./hrtfs/elev-10/L-10e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e090a.dat right
+[ 16, 55 ] = ascii (fp) : "./hrtfs/elev-10/L-10e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e085a.dat right
+[ 16, 56 ] = ascii (fp) : "./hrtfs/elev-10/L-10e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e080a.dat right
+[ 16, 57 ] = ascii (fp) : "./hrtfs/elev-10/L-10e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e075a.dat right
+[ 16, 58 ] = ascii (fp) : "./hrtfs/elev-10/L-10e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e070a.dat right
+[ 16, 59 ] = ascii (fp) : "./hrtfs/elev-10/L-10e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e065a.dat right
+[ 16, 60 ] = ascii (fp) : "./hrtfs/elev-10/L-10e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e060a.dat right
+[ 16, 61 ] = ascii (fp) : "./hrtfs/elev-10/L-10e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e055a.dat right
+[ 16, 62 ] = ascii (fp) : "./hrtfs/elev-10/L-10e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e050a.dat right
+[ 16, 63 ] = ascii (fp) : "./hrtfs/elev-10/L-10e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e045a.dat right
+[ 16, 64 ] = ascii (fp) : "./hrtfs/elev-10/L-10e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e040a.dat right
+[ 16, 65 ] = ascii (fp) : "./hrtfs/elev-10/L-10e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e035a.dat right
+[ 16, 66 ] = ascii (fp) : "./hrtfs/elev-10/L-10e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e030a.dat right
+[ 16, 67 ] = ascii (fp) : "./hrtfs/elev-10/L-10e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e025a.dat right
+[ 16, 68 ] = ascii (fp) : "./hrtfs/elev-10/L-10e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e020a.dat right
+[ 16, 69 ] = ascii (fp) : "./hrtfs/elev-10/L-10e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e015a.dat right
+[ 16, 70 ] = ascii (fp) : "./hrtfs/elev-10/L-10e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e010a.dat right
+[ 16, 71 ] = ascii (fp) : "./hrtfs/elev-10/L-10e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-10/R-10e005a.dat right
-[ 17, 0 ] = ascii (fp) : "./hrtfs/elev-5/L-5e000a.dat"
-[ 17, 1 ] = ascii (fp) : "./hrtfs/elev-5/L-5e355a.dat"
-[ 17, 2 ] = ascii (fp) : "./hrtfs/elev-5/L-5e350a.dat"
-[ 17, 3 ] = ascii (fp) : "./hrtfs/elev-5/L-5e345a.dat"
-[ 17, 4 ] = ascii (fp) : "./hrtfs/elev-5/L-5e340a.dat"
-[ 17, 5 ] = ascii (fp) : "./hrtfs/elev-5/L-5e335a.dat"
-[ 17, 6 ] = ascii (fp) : "./hrtfs/elev-5/L-5e330a.dat"
-[ 17, 7 ] = ascii (fp) : "./hrtfs/elev-5/L-5e325a.dat"
-[ 17, 8 ] = ascii (fp) : "./hrtfs/elev-5/L-5e320a.dat"
-[ 17, 9 ] = ascii (fp) : "./hrtfs/elev-5/L-5e315a.dat"
-[ 17, 10 ] = ascii (fp) : "./hrtfs/elev-5/L-5e310a.dat"
-[ 17, 11 ] = ascii (fp) : "./hrtfs/elev-5/L-5e305a.dat"
-[ 17, 12 ] = ascii (fp) : "./hrtfs/elev-5/L-5e300a.dat"
-[ 17, 13 ] = ascii (fp) : "./hrtfs/elev-5/L-5e295a.dat"
-[ 17, 14 ] = ascii (fp) : "./hrtfs/elev-5/L-5e290a.dat"
-[ 17, 15 ] = ascii (fp) : "./hrtfs/elev-5/L-5e285a.dat"
-[ 17, 16 ] = ascii (fp) : "./hrtfs/elev-5/L-5e280a.dat"
-[ 17, 17 ] = ascii (fp) : "./hrtfs/elev-5/L-5e275a.dat"
-[ 17, 18 ] = ascii (fp) : "./hrtfs/elev-5/L-5e270a.dat"
-[ 17, 19 ] = ascii (fp) : "./hrtfs/elev-5/L-5e265a.dat"
-[ 17, 20 ] = ascii (fp) : "./hrtfs/elev-5/L-5e260a.dat"
-[ 17, 21 ] = ascii (fp) : "./hrtfs/elev-5/L-5e255a.dat"
-[ 17, 22 ] = ascii (fp) : "./hrtfs/elev-5/L-5e250a.dat"
-[ 17, 23 ] = ascii (fp) : "./hrtfs/elev-5/L-5e245a.dat"
-[ 17, 24 ] = ascii (fp) : "./hrtfs/elev-5/L-5e240a.dat"
-[ 17, 25 ] = ascii (fp) : "./hrtfs/elev-5/L-5e235a.dat"
-[ 17, 26 ] = ascii (fp) : "./hrtfs/elev-5/L-5e230a.dat"
-[ 17, 27 ] = ascii (fp) : "./hrtfs/elev-5/L-5e225a.dat"
-[ 17, 28 ] = ascii (fp) : "./hrtfs/elev-5/L-5e220a.dat"
-[ 17, 29 ] = ascii (fp) : "./hrtfs/elev-5/L-5e215a.dat"
-[ 17, 30 ] = ascii (fp) : "./hrtfs/elev-5/L-5e210a.dat"
-[ 17, 31 ] = ascii (fp) : "./hrtfs/elev-5/L-5e205a.dat"
-[ 17, 32 ] = ascii (fp) : "./hrtfs/elev-5/L-5e200a.dat"
-[ 17, 33 ] = ascii (fp) : "./hrtfs/elev-5/L-5e195a.dat"
-[ 17, 34 ] = ascii (fp) : "./hrtfs/elev-5/L-5e190a.dat"
-[ 17, 35 ] = ascii (fp) : "./hrtfs/elev-5/L-5e185a.dat"
-[ 17, 36 ] = ascii (fp) : "./hrtfs/elev-5/L-5e180a.dat"
-[ 17, 37 ] = ascii (fp) : "./hrtfs/elev-5/L-5e175a.dat"
-[ 17, 38 ] = ascii (fp) : "./hrtfs/elev-5/L-5e170a.dat"
-[ 17, 39 ] = ascii (fp) : "./hrtfs/elev-5/L-5e165a.dat"
-[ 17, 40 ] = ascii (fp) : "./hrtfs/elev-5/L-5e160a.dat"
-[ 17, 41 ] = ascii (fp) : "./hrtfs/elev-5/L-5e155a.dat"
-[ 17, 42 ] = ascii (fp) : "./hrtfs/elev-5/L-5e150a.dat"
-[ 17, 43 ] = ascii (fp) : "./hrtfs/elev-5/L-5e145a.dat"
-[ 17, 44 ] = ascii (fp) : "./hrtfs/elev-5/L-5e140a.dat"
-[ 17, 45 ] = ascii (fp) : "./hrtfs/elev-5/L-5e135a.dat"
-[ 17, 46 ] = ascii (fp) : "./hrtfs/elev-5/L-5e130a.dat"
-[ 17, 47 ] = ascii (fp) : "./hrtfs/elev-5/L-5e125a.dat"
-[ 17, 48 ] = ascii (fp) : "./hrtfs/elev-5/L-5e120a.dat"
-[ 17, 49 ] = ascii (fp) : "./hrtfs/elev-5/L-5e115a.dat"
-[ 17, 50 ] = ascii (fp) : "./hrtfs/elev-5/L-5e110a.dat"
-[ 17, 51 ] = ascii (fp) : "./hrtfs/elev-5/L-5e105a.dat"
-[ 17, 52 ] = ascii (fp) : "./hrtfs/elev-5/L-5e100a.dat"
-[ 17, 53 ] = ascii (fp) : "./hrtfs/elev-5/L-5e095a.dat"
-[ 17, 54 ] = ascii (fp) : "./hrtfs/elev-5/L-5e090a.dat"
-[ 17, 55 ] = ascii (fp) : "./hrtfs/elev-5/L-5e085a.dat"
-[ 17, 56 ] = ascii (fp) : "./hrtfs/elev-5/L-5e080a.dat"
-[ 17, 57 ] = ascii (fp) : "./hrtfs/elev-5/L-5e075a.dat"
-[ 17, 58 ] = ascii (fp) : "./hrtfs/elev-5/L-5e070a.dat"
-[ 17, 59 ] = ascii (fp) : "./hrtfs/elev-5/L-5e065a.dat"
-[ 17, 60 ] = ascii (fp) : "./hrtfs/elev-5/L-5e060a.dat"
-[ 17, 61 ] = ascii (fp) : "./hrtfs/elev-5/L-5e055a.dat"
-[ 17, 62 ] = ascii (fp) : "./hrtfs/elev-5/L-5e050a.dat"
-[ 17, 63 ] = ascii (fp) : "./hrtfs/elev-5/L-5e045a.dat"
-[ 17, 64 ] = ascii (fp) : "./hrtfs/elev-5/L-5e040a.dat"
-[ 17, 65 ] = ascii (fp) : "./hrtfs/elev-5/L-5e035a.dat"
-[ 17, 66 ] = ascii (fp) : "./hrtfs/elev-5/L-5e030a.dat"
-[ 17, 67 ] = ascii (fp) : "./hrtfs/elev-5/L-5e025a.dat"
-[ 17, 68 ] = ascii (fp) : "./hrtfs/elev-5/L-5e020a.dat"
-[ 17, 69 ] = ascii (fp) : "./hrtfs/elev-5/L-5e015a.dat"
-[ 17, 70 ] = ascii (fp) : "./hrtfs/elev-5/L-5e010a.dat"
-[ 17, 71 ] = ascii (fp) : "./hrtfs/elev-5/L-5e005a.dat"
+[ 17, 0 ] = ascii (fp) : "./hrtfs/elev-5/L-5e000a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e000a.dat right
+[ 17, 1 ] = ascii (fp) : "./hrtfs/elev-5/L-5e355a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e355a.dat right
+[ 17, 2 ] = ascii (fp) : "./hrtfs/elev-5/L-5e350a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e350a.dat right
+[ 17, 3 ] = ascii (fp) : "./hrtfs/elev-5/L-5e345a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e345a.dat right
+[ 17, 4 ] = ascii (fp) : "./hrtfs/elev-5/L-5e340a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e340a.dat right
+[ 17, 5 ] = ascii (fp) : "./hrtfs/elev-5/L-5e335a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e335a.dat right
+[ 17, 6 ] = ascii (fp) : "./hrtfs/elev-5/L-5e330a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e330a.dat right
+[ 17, 7 ] = ascii (fp) : "./hrtfs/elev-5/L-5e325a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e325a.dat right
+[ 17, 8 ] = ascii (fp) : "./hrtfs/elev-5/L-5e320a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e320a.dat right
+[ 17, 9 ] = ascii (fp) : "./hrtfs/elev-5/L-5e315a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e315a.dat right
+[ 17, 10 ] = ascii (fp) : "./hrtfs/elev-5/L-5e310a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e310a.dat right
+[ 17, 11 ] = ascii (fp) : "./hrtfs/elev-5/L-5e305a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e305a.dat right
+[ 17, 12 ] = ascii (fp) : "./hrtfs/elev-5/L-5e300a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e300a.dat right
+[ 17, 13 ] = ascii (fp) : "./hrtfs/elev-5/L-5e295a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e295a.dat right
+[ 17, 14 ] = ascii (fp) : "./hrtfs/elev-5/L-5e290a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e290a.dat right
+[ 17, 15 ] = ascii (fp) : "./hrtfs/elev-5/L-5e285a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e285a.dat right
+[ 17, 16 ] = ascii (fp) : "./hrtfs/elev-5/L-5e280a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e280a.dat right
+[ 17, 17 ] = ascii (fp) : "./hrtfs/elev-5/L-5e275a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e275a.dat right
+[ 17, 18 ] = ascii (fp) : "./hrtfs/elev-5/L-5e270a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e270a.dat right
+[ 17, 19 ] = ascii (fp) : "./hrtfs/elev-5/L-5e265a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e265a.dat right
+[ 17, 20 ] = ascii (fp) : "./hrtfs/elev-5/L-5e260a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e260a.dat right
+[ 17, 21 ] = ascii (fp) : "./hrtfs/elev-5/L-5e255a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e255a.dat right
+[ 17, 22 ] = ascii (fp) : "./hrtfs/elev-5/L-5e250a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e250a.dat right
+[ 17, 23 ] = ascii (fp) : "./hrtfs/elev-5/L-5e245a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e245a.dat right
+[ 17, 24 ] = ascii (fp) : "./hrtfs/elev-5/L-5e240a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e240a.dat right
+[ 17, 25 ] = ascii (fp) : "./hrtfs/elev-5/L-5e235a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e235a.dat right
+[ 17, 26 ] = ascii (fp) : "./hrtfs/elev-5/L-5e230a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e230a.dat right
+[ 17, 27 ] = ascii (fp) : "./hrtfs/elev-5/L-5e225a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e225a.dat right
+[ 17, 28 ] = ascii (fp) : "./hrtfs/elev-5/L-5e220a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e220a.dat right
+[ 17, 29 ] = ascii (fp) : "./hrtfs/elev-5/L-5e215a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e215a.dat right
+[ 17, 30 ] = ascii (fp) : "./hrtfs/elev-5/L-5e210a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e210a.dat right
+[ 17, 31 ] = ascii (fp) : "./hrtfs/elev-5/L-5e205a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e205a.dat right
+[ 17, 32 ] = ascii (fp) : "./hrtfs/elev-5/L-5e200a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e200a.dat right
+[ 17, 33 ] = ascii (fp) : "./hrtfs/elev-5/L-5e195a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e195a.dat right
+[ 17, 34 ] = ascii (fp) : "./hrtfs/elev-5/L-5e190a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e190a.dat right
+[ 17, 35 ] = ascii (fp) : "./hrtfs/elev-5/L-5e185a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e185a.dat right
+[ 17, 36 ] = ascii (fp) : "./hrtfs/elev-5/L-5e180a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e180a.dat right
+[ 17, 37 ] = ascii (fp) : "./hrtfs/elev-5/L-5e175a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e175a.dat right
+[ 17, 38 ] = ascii (fp) : "./hrtfs/elev-5/L-5e170a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e170a.dat right
+[ 17, 39 ] = ascii (fp) : "./hrtfs/elev-5/L-5e165a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e165a.dat right
+[ 17, 40 ] = ascii (fp) : "./hrtfs/elev-5/L-5e160a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e160a.dat right
+[ 17, 41 ] = ascii (fp) : "./hrtfs/elev-5/L-5e155a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e155a.dat right
+[ 17, 42 ] = ascii (fp) : "./hrtfs/elev-5/L-5e150a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e150a.dat right
+[ 17, 43 ] = ascii (fp) : "./hrtfs/elev-5/L-5e145a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e145a.dat right
+[ 17, 44 ] = ascii (fp) : "./hrtfs/elev-5/L-5e140a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e140a.dat right
+[ 17, 45 ] = ascii (fp) : "./hrtfs/elev-5/L-5e135a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e135a.dat right
+[ 17, 46 ] = ascii (fp) : "./hrtfs/elev-5/L-5e130a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e130a.dat right
+[ 17, 47 ] = ascii (fp) : "./hrtfs/elev-5/L-5e125a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e125a.dat right
+[ 17, 48 ] = ascii (fp) : "./hrtfs/elev-5/L-5e120a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e120a.dat right
+[ 17, 49 ] = ascii (fp) : "./hrtfs/elev-5/L-5e115a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e115a.dat right
+[ 17, 50 ] = ascii (fp) : "./hrtfs/elev-5/L-5e110a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e110a.dat right
+[ 17, 51 ] = ascii (fp) : "./hrtfs/elev-5/L-5e105a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e105a.dat right
+[ 17, 52 ] = ascii (fp) : "./hrtfs/elev-5/L-5e100a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e100a.dat right
+[ 17, 53 ] = ascii (fp) : "./hrtfs/elev-5/L-5e095a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e095a.dat right
+[ 17, 54 ] = ascii (fp) : "./hrtfs/elev-5/L-5e090a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e090a.dat right
+[ 17, 55 ] = ascii (fp) : "./hrtfs/elev-5/L-5e085a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e085a.dat right
+[ 17, 56 ] = ascii (fp) : "./hrtfs/elev-5/L-5e080a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e080a.dat right
+[ 17, 57 ] = ascii (fp) : "./hrtfs/elev-5/L-5e075a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e075a.dat right
+[ 17, 58 ] = ascii (fp) : "./hrtfs/elev-5/L-5e070a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e070a.dat right
+[ 17, 59 ] = ascii (fp) : "./hrtfs/elev-5/L-5e065a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e065a.dat right
+[ 17, 60 ] = ascii (fp) : "./hrtfs/elev-5/L-5e060a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e060a.dat right
+[ 17, 61 ] = ascii (fp) : "./hrtfs/elev-5/L-5e055a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e055a.dat right
+[ 17, 62 ] = ascii (fp) : "./hrtfs/elev-5/L-5e050a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e050a.dat right
+[ 17, 63 ] = ascii (fp) : "./hrtfs/elev-5/L-5e045a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e045a.dat right
+[ 17, 64 ] = ascii (fp) : "./hrtfs/elev-5/L-5e040a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e040a.dat right
+[ 17, 65 ] = ascii (fp) : "./hrtfs/elev-5/L-5e035a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e035a.dat right
+[ 17, 66 ] = ascii (fp) : "./hrtfs/elev-5/L-5e030a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e030a.dat right
+[ 17, 67 ] = ascii (fp) : "./hrtfs/elev-5/L-5e025a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e025a.dat right
+[ 17, 68 ] = ascii (fp) : "./hrtfs/elev-5/L-5e020a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e020a.dat right
+[ 17, 69 ] = ascii (fp) : "./hrtfs/elev-5/L-5e015a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e015a.dat right
+[ 17, 70 ] = ascii (fp) : "./hrtfs/elev-5/L-5e010a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e010a.dat right
+[ 17, 71 ] = ascii (fp) : "./hrtfs/elev-5/L-5e005a.dat left
+ + ascii (fp) : "./hrtfs/elev-5/R-5e005a.dat right
-[ 18, 0 ] = ascii (fp) : "./hrtfs/elev0/L0e000a.dat"
-[ 18, 1 ] = ascii (fp) : "./hrtfs/elev0/L0e355a.dat"
-[ 18, 2 ] = ascii (fp) : "./hrtfs/elev0/L0e350a.dat"
-[ 18, 3 ] = ascii (fp) : "./hrtfs/elev0/L0e345a.dat"
-[ 18, 4 ] = ascii (fp) : "./hrtfs/elev0/L0e340a.dat"
-[ 18, 5 ] = ascii (fp) : "./hrtfs/elev0/L0e335a.dat"
-[ 18, 6 ] = ascii (fp) : "./hrtfs/elev0/L0e330a.dat"
-[ 18, 7 ] = ascii (fp) : "./hrtfs/elev0/L0e325a.dat"
-[ 18, 8 ] = ascii (fp) : "./hrtfs/elev0/L0e320a.dat"
-[ 18, 9 ] = ascii (fp) : "./hrtfs/elev0/L0e315a.dat"
-[ 18, 10 ] = ascii (fp) : "./hrtfs/elev0/L0e310a.dat"
-[ 18, 11 ] = ascii (fp) : "./hrtfs/elev0/L0e305a.dat"
-[ 18, 12 ] = ascii (fp) : "./hrtfs/elev0/L0e300a.dat"
-[ 18, 13 ] = ascii (fp) : "./hrtfs/elev0/L0e295a.dat"
-[ 18, 14 ] = ascii (fp) : "./hrtfs/elev0/L0e290a.dat"
-[ 18, 15 ] = ascii (fp) : "./hrtfs/elev0/L0e285a.dat"
-[ 18, 16 ] = ascii (fp) : "./hrtfs/elev0/L0e280a.dat"
-[ 18, 17 ] = ascii (fp) : "./hrtfs/elev0/L0e275a.dat"
-[ 18, 18 ] = ascii (fp) : "./hrtfs/elev0/L0e270a.dat"
-[ 18, 19 ] = ascii (fp) : "./hrtfs/elev0/L0e265a.dat"
-[ 18, 20 ] = ascii (fp) : "./hrtfs/elev0/L0e260a.dat"
-[ 18, 21 ] = ascii (fp) : "./hrtfs/elev0/L0e255a.dat"
-[ 18, 22 ] = ascii (fp) : "./hrtfs/elev0/L0e250a.dat"
-[ 18, 23 ] = ascii (fp) : "./hrtfs/elev0/L0e245a.dat"
-[ 18, 24 ] = ascii (fp) : "./hrtfs/elev0/L0e240a.dat"
-[ 18, 25 ] = ascii (fp) : "./hrtfs/elev0/L0e235a.dat"
-[ 18, 26 ] = ascii (fp) : "./hrtfs/elev0/L0e230a.dat"
-[ 18, 27 ] = ascii (fp) : "./hrtfs/elev0/L0e225a.dat"
-[ 18, 28 ] = ascii (fp) : "./hrtfs/elev0/L0e220a.dat"
-[ 18, 29 ] = ascii (fp) : "./hrtfs/elev0/L0e215a.dat"
-[ 18, 30 ] = ascii (fp) : "./hrtfs/elev0/L0e210a.dat"
-[ 18, 31 ] = ascii (fp) : "./hrtfs/elev0/L0e205a.dat"
-[ 18, 32 ] = ascii (fp) : "./hrtfs/elev0/L0e200a.dat"
-[ 18, 33 ] = ascii (fp) : "./hrtfs/elev0/L0e195a.dat"
-[ 18, 34 ] = ascii (fp) : "./hrtfs/elev0/L0e190a.dat"
-[ 18, 35 ] = ascii (fp) : "./hrtfs/elev0/L0e185a.dat"
-[ 18, 36 ] = ascii (fp) : "./hrtfs/elev0/L0e180a.dat"
-[ 18, 37 ] = ascii (fp) : "./hrtfs/elev0/L0e175a.dat"
-[ 18, 38 ] = ascii (fp) : "./hrtfs/elev0/L0e170a.dat"
-[ 18, 39 ] = ascii (fp) : "./hrtfs/elev0/L0e165a.dat"
-[ 18, 40 ] = ascii (fp) : "./hrtfs/elev0/L0e160a.dat"
-[ 18, 41 ] = ascii (fp) : "./hrtfs/elev0/L0e155a.dat"
-[ 18, 42 ] = ascii (fp) : "./hrtfs/elev0/L0e150a.dat"
-[ 18, 43 ] = ascii (fp) : "./hrtfs/elev0/L0e145a.dat"
-[ 18, 44 ] = ascii (fp) : "./hrtfs/elev0/L0e140a.dat"
-[ 18, 45 ] = ascii (fp) : "./hrtfs/elev0/L0e135a.dat"
-[ 18, 46 ] = ascii (fp) : "./hrtfs/elev0/L0e130a.dat"
-[ 18, 47 ] = ascii (fp) : "./hrtfs/elev0/L0e125a.dat"
-[ 18, 48 ] = ascii (fp) : "./hrtfs/elev0/L0e120a.dat"
-[ 18, 49 ] = ascii (fp) : "./hrtfs/elev0/L0e115a.dat"
-[ 18, 50 ] = ascii (fp) : "./hrtfs/elev0/L0e110a.dat"
-[ 18, 51 ] = ascii (fp) : "./hrtfs/elev0/L0e105a.dat"
-[ 18, 52 ] = ascii (fp) : "./hrtfs/elev0/L0e100a.dat"
-[ 18, 53 ] = ascii (fp) : "./hrtfs/elev0/L0e095a.dat"
-[ 18, 54 ] = ascii (fp) : "./hrtfs/elev0/L0e090a.dat"
-[ 18, 55 ] = ascii (fp) : "./hrtfs/elev0/L0e085a.dat"
-[ 18, 56 ] = ascii (fp) : "./hrtfs/elev0/L0e080a.dat"
-[ 18, 57 ] = ascii (fp) : "./hrtfs/elev0/L0e075a.dat"
-[ 18, 58 ] = ascii (fp) : "./hrtfs/elev0/L0e070a.dat"
-[ 18, 59 ] = ascii (fp) : "./hrtfs/elev0/L0e065a.dat"
-[ 18, 60 ] = ascii (fp) : "./hrtfs/elev0/L0e060a.dat"
-[ 18, 61 ] = ascii (fp) : "./hrtfs/elev0/L0e055a.dat"
-[ 18, 62 ] = ascii (fp) : "./hrtfs/elev0/L0e050a.dat"
-[ 18, 63 ] = ascii (fp) : "./hrtfs/elev0/L0e045a.dat"
-[ 18, 64 ] = ascii (fp) : "./hrtfs/elev0/L0e040a.dat"
-[ 18, 65 ] = ascii (fp) : "./hrtfs/elev0/L0e035a.dat"
-[ 18, 66 ] = ascii (fp) : "./hrtfs/elev0/L0e030a.dat"
-[ 18, 67 ] = ascii (fp) : "./hrtfs/elev0/L0e025a.dat"
-[ 18, 68 ] = ascii (fp) : "./hrtfs/elev0/L0e020a.dat"
-[ 18, 69 ] = ascii (fp) : "./hrtfs/elev0/L0e015a.dat"
-[ 18, 70 ] = ascii (fp) : "./hrtfs/elev0/L0e010a.dat"
-[ 18, 71 ] = ascii (fp) : "./hrtfs/elev0/L0e005a.dat"
+[ 18, 0 ] = ascii (fp) : "./hrtfs/elev0/L0e000a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e000a.dat right
+[ 18, 1 ] = ascii (fp) : "./hrtfs/elev0/L0e355a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e355a.dat right
+[ 18, 2 ] = ascii (fp) : "./hrtfs/elev0/L0e350a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e350a.dat right
+[ 18, 3 ] = ascii (fp) : "./hrtfs/elev0/L0e345a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e345a.dat right
+[ 18, 4 ] = ascii (fp) : "./hrtfs/elev0/L0e340a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e340a.dat right
+[ 18, 5 ] = ascii (fp) : "./hrtfs/elev0/L0e335a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e335a.dat right
+[ 18, 6 ] = ascii (fp) : "./hrtfs/elev0/L0e330a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e330a.dat right
+[ 18, 7 ] = ascii (fp) : "./hrtfs/elev0/L0e325a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e325a.dat right
+[ 18, 8 ] = ascii (fp) : "./hrtfs/elev0/L0e320a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e320a.dat right
+[ 18, 9 ] = ascii (fp) : "./hrtfs/elev0/L0e315a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e315a.dat right
+[ 18, 10 ] = ascii (fp) : "./hrtfs/elev0/L0e310a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e310a.dat right
+[ 18, 11 ] = ascii (fp) : "./hrtfs/elev0/L0e305a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e305a.dat right
+[ 18, 12 ] = ascii (fp) : "./hrtfs/elev0/L0e300a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e300a.dat right
+[ 18, 13 ] = ascii (fp) : "./hrtfs/elev0/L0e295a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e295a.dat right
+[ 18, 14 ] = ascii (fp) : "./hrtfs/elev0/L0e290a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e290a.dat right
+[ 18, 15 ] = ascii (fp) : "./hrtfs/elev0/L0e285a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e285a.dat right
+[ 18, 16 ] = ascii (fp) : "./hrtfs/elev0/L0e280a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e280a.dat right
+[ 18, 17 ] = ascii (fp) : "./hrtfs/elev0/L0e275a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e275a.dat right
+[ 18, 18 ] = ascii (fp) : "./hrtfs/elev0/L0e270a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e270a.dat right
+[ 18, 19 ] = ascii (fp) : "./hrtfs/elev0/L0e265a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e265a.dat right
+[ 18, 20 ] = ascii (fp) : "./hrtfs/elev0/L0e260a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e260a.dat right
+[ 18, 21 ] = ascii (fp) : "./hrtfs/elev0/L0e255a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e255a.dat right
+[ 18, 22 ] = ascii (fp) : "./hrtfs/elev0/L0e250a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e250a.dat right
+[ 18, 23 ] = ascii (fp) : "./hrtfs/elev0/L0e245a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e245a.dat right
+[ 18, 24 ] = ascii (fp) : "./hrtfs/elev0/L0e240a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e240a.dat right
+[ 18, 25 ] = ascii (fp) : "./hrtfs/elev0/L0e235a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e235a.dat right
+[ 18, 26 ] = ascii (fp) : "./hrtfs/elev0/L0e230a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e230a.dat right
+[ 18, 27 ] = ascii (fp) : "./hrtfs/elev0/L0e225a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e225a.dat right
+[ 18, 28 ] = ascii (fp) : "./hrtfs/elev0/L0e220a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e220a.dat right
+[ 18, 29 ] = ascii (fp) : "./hrtfs/elev0/L0e215a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e215a.dat right
+[ 18, 30 ] = ascii (fp) : "./hrtfs/elev0/L0e210a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e210a.dat right
+[ 18, 31 ] = ascii (fp) : "./hrtfs/elev0/L0e205a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e205a.dat right
+[ 18, 32 ] = ascii (fp) : "./hrtfs/elev0/L0e200a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e200a.dat right
+[ 18, 33 ] = ascii (fp) : "./hrtfs/elev0/L0e195a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e195a.dat right
+[ 18, 34 ] = ascii (fp) : "./hrtfs/elev0/L0e190a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e190a.dat right
+[ 18, 35 ] = ascii (fp) : "./hrtfs/elev0/L0e185a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e185a.dat right
+[ 18, 36 ] = ascii (fp) : "./hrtfs/elev0/L0e180a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e180a.dat right
+[ 18, 37 ] = ascii (fp) : "./hrtfs/elev0/L0e175a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e175a.dat right
+[ 18, 38 ] = ascii (fp) : "./hrtfs/elev0/L0e170a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e170a.dat right
+[ 18, 39 ] = ascii (fp) : "./hrtfs/elev0/L0e165a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e165a.dat right
+[ 18, 40 ] = ascii (fp) : "./hrtfs/elev0/L0e160a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e160a.dat right
+[ 18, 41 ] = ascii (fp) : "./hrtfs/elev0/L0e155a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e155a.dat right
+[ 18, 42 ] = ascii (fp) : "./hrtfs/elev0/L0e150a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e150a.dat right
+[ 18, 43 ] = ascii (fp) : "./hrtfs/elev0/L0e145a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e145a.dat right
+[ 18, 44 ] = ascii (fp) : "./hrtfs/elev0/L0e140a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e140a.dat right
+[ 18, 45 ] = ascii (fp) : "./hrtfs/elev0/L0e135a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e135a.dat right
+[ 18, 46 ] = ascii (fp) : "./hrtfs/elev0/L0e130a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e130a.dat right
+[ 18, 47 ] = ascii (fp) : "./hrtfs/elev0/L0e125a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e125a.dat right
+[ 18, 48 ] = ascii (fp) : "./hrtfs/elev0/L0e120a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e120a.dat right
+[ 18, 49 ] = ascii (fp) : "./hrtfs/elev0/L0e115a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e115a.dat right
+[ 18, 50 ] = ascii (fp) : "./hrtfs/elev0/L0e110a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e110a.dat right
+[ 18, 51 ] = ascii (fp) : "./hrtfs/elev0/L0e105a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e105a.dat right
+[ 18, 52 ] = ascii (fp) : "./hrtfs/elev0/L0e100a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e100a.dat right
+[ 18, 53 ] = ascii (fp) : "./hrtfs/elev0/L0e095a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e095a.dat right
+[ 18, 54 ] = ascii (fp) : "./hrtfs/elev0/L0e090a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e090a.dat right
+[ 18, 55 ] = ascii (fp) : "./hrtfs/elev0/L0e085a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e085a.dat right
+[ 18, 56 ] = ascii (fp) : "./hrtfs/elev0/L0e080a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e080a.dat right
+[ 18, 57 ] = ascii (fp) : "./hrtfs/elev0/L0e075a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e075a.dat right
+[ 18, 58 ] = ascii (fp) : "./hrtfs/elev0/L0e070a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e070a.dat right
+[ 18, 59 ] = ascii (fp) : "./hrtfs/elev0/L0e065a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e065a.dat right
+[ 18, 60 ] = ascii (fp) : "./hrtfs/elev0/L0e060a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e060a.dat right
+[ 18, 61 ] = ascii (fp) : "./hrtfs/elev0/L0e055a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e055a.dat right
+[ 18, 62 ] = ascii (fp) : "./hrtfs/elev0/L0e050a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e050a.dat right
+[ 18, 63 ] = ascii (fp) : "./hrtfs/elev0/L0e045a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e045a.dat right
+[ 18, 64 ] = ascii (fp) : "./hrtfs/elev0/L0e040a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e040a.dat right
+[ 18, 65 ] = ascii (fp) : "./hrtfs/elev0/L0e035a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e035a.dat right
+[ 18, 66 ] = ascii (fp) : "./hrtfs/elev0/L0e030a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e030a.dat right
+[ 18, 67 ] = ascii (fp) : "./hrtfs/elev0/L0e025a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e025a.dat right
+[ 18, 68 ] = ascii (fp) : "./hrtfs/elev0/L0e020a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e020a.dat right
+[ 18, 69 ] = ascii (fp) : "./hrtfs/elev0/L0e015a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e015a.dat right
+[ 18, 70 ] = ascii (fp) : "./hrtfs/elev0/L0e010a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e010a.dat right
+[ 18, 71 ] = ascii (fp) : "./hrtfs/elev0/L0e005a.dat left
+ + ascii (fp) : "./hrtfs/elev0/R0e005a.dat right
-[ 19, 0 ] = ascii (fp) : "./hrtfs/elev5/L5e000a.dat"
-[ 19, 1 ] = ascii (fp) : "./hrtfs/elev5/L5e355a.dat"
-[ 19, 2 ] = ascii (fp) : "./hrtfs/elev5/L5e350a.dat"
-[ 19, 3 ] = ascii (fp) : "./hrtfs/elev5/L5e345a.dat"
-[ 19, 4 ] = ascii (fp) : "./hrtfs/elev5/L5e340a.dat"
-[ 19, 5 ] = ascii (fp) : "./hrtfs/elev5/L5e335a.dat"
-[ 19, 6 ] = ascii (fp) : "./hrtfs/elev5/L5e330a.dat"
-[ 19, 7 ] = ascii (fp) : "./hrtfs/elev5/L5e325a.dat"
-[ 19, 8 ] = ascii (fp) : "./hrtfs/elev5/L5e320a.dat"
-[ 19, 9 ] = ascii (fp) : "./hrtfs/elev5/L5e315a.dat"
-[ 19, 10 ] = ascii (fp) : "./hrtfs/elev5/L5e310a.dat"
-[ 19, 11 ] = ascii (fp) : "./hrtfs/elev5/L5e305a.dat"
-[ 19, 12 ] = ascii (fp) : "./hrtfs/elev5/L5e300a.dat"
-[ 19, 13 ] = ascii (fp) : "./hrtfs/elev5/L5e295a.dat"
-[ 19, 14 ] = ascii (fp) : "./hrtfs/elev5/L5e290a.dat"
-[ 19, 15 ] = ascii (fp) : "./hrtfs/elev5/L5e285a.dat"
-[ 19, 16 ] = ascii (fp) : "./hrtfs/elev5/L5e280a.dat"
-[ 19, 17 ] = ascii (fp) : "./hrtfs/elev5/L5e275a.dat"
-[ 19, 18 ] = ascii (fp) : "./hrtfs/elev5/L5e270a.dat"
-[ 19, 19 ] = ascii (fp) : "./hrtfs/elev5/L5e265a.dat"
-[ 19, 20 ] = ascii (fp) : "./hrtfs/elev5/L5e260a.dat"
-[ 19, 21 ] = ascii (fp) : "./hrtfs/elev5/L5e255a.dat"
-[ 19, 22 ] = ascii (fp) : "./hrtfs/elev5/L5e250a.dat"
-[ 19, 23 ] = ascii (fp) : "./hrtfs/elev5/L5e245a.dat"
-[ 19, 24 ] = ascii (fp) : "./hrtfs/elev5/L5e240a.dat"
-[ 19, 25 ] = ascii (fp) : "./hrtfs/elev5/L5e235a.dat"
-[ 19, 26 ] = ascii (fp) : "./hrtfs/elev5/L5e230a.dat"
-[ 19, 27 ] = ascii (fp) : "./hrtfs/elev5/L5e225a.dat"
-[ 19, 28 ] = ascii (fp) : "./hrtfs/elev5/L5e220a.dat"
-[ 19, 29 ] = ascii (fp) : "./hrtfs/elev5/L5e215a.dat"
-[ 19, 30 ] = ascii (fp) : "./hrtfs/elev5/L5e210a.dat"
-[ 19, 31 ] = ascii (fp) : "./hrtfs/elev5/L5e205a.dat"
-[ 19, 32 ] = ascii (fp) : "./hrtfs/elev5/L5e200a.dat"
-[ 19, 33 ] = ascii (fp) : "./hrtfs/elev5/L5e195a.dat"
-[ 19, 34 ] = ascii (fp) : "./hrtfs/elev5/L5e190a.dat"
-[ 19, 35 ] = ascii (fp) : "./hrtfs/elev5/L5e185a.dat"
-[ 19, 36 ] = ascii (fp) : "./hrtfs/elev5/L5e180a.dat"
-[ 19, 37 ] = ascii (fp) : "./hrtfs/elev5/L5e175a.dat"
-[ 19, 38 ] = ascii (fp) : "./hrtfs/elev5/L5e170a.dat"
-[ 19, 39 ] = ascii (fp) : "./hrtfs/elev5/L5e165a.dat"
-[ 19, 40 ] = ascii (fp) : "./hrtfs/elev5/L5e160a.dat"
-[ 19, 41 ] = ascii (fp) : "./hrtfs/elev5/L5e155a.dat"
-[ 19, 42 ] = ascii (fp) : "./hrtfs/elev5/L5e150a.dat"
-[ 19, 43 ] = ascii (fp) : "./hrtfs/elev5/L5e145a.dat"
-[ 19, 44 ] = ascii (fp) : "./hrtfs/elev5/L5e140a.dat"
-[ 19, 45 ] = ascii (fp) : "./hrtfs/elev5/L5e135a.dat"
-[ 19, 46 ] = ascii (fp) : "./hrtfs/elev5/L5e130a.dat"
-[ 19, 47 ] = ascii (fp) : "./hrtfs/elev5/L5e125a.dat"
-[ 19, 48 ] = ascii (fp) : "./hrtfs/elev5/L5e120a.dat"
-[ 19, 49 ] = ascii (fp) : "./hrtfs/elev5/L5e115a.dat"
-[ 19, 50 ] = ascii (fp) : "./hrtfs/elev5/L5e110a.dat"
-[ 19, 51 ] = ascii (fp) : "./hrtfs/elev5/L5e105a.dat"
-[ 19, 52 ] = ascii (fp) : "./hrtfs/elev5/L5e100a.dat"
-[ 19, 53 ] = ascii (fp) : "./hrtfs/elev5/L5e095a.dat"
-[ 19, 54 ] = ascii (fp) : "./hrtfs/elev5/L5e090a.dat"
-[ 19, 55 ] = ascii (fp) : "./hrtfs/elev5/L5e085a.dat"
-[ 19, 56 ] = ascii (fp) : "./hrtfs/elev5/L5e080a.dat"
-[ 19, 57 ] = ascii (fp) : "./hrtfs/elev5/L5e075a.dat"
-[ 19, 58 ] = ascii (fp) : "./hrtfs/elev5/L5e070a.dat"
-[ 19, 59 ] = ascii (fp) : "./hrtfs/elev5/L5e065a.dat"
-[ 19, 60 ] = ascii (fp) : "./hrtfs/elev5/L5e060a.dat"
-[ 19, 61 ] = ascii (fp) : "./hrtfs/elev5/L5e055a.dat"
-[ 19, 62 ] = ascii (fp) : "./hrtfs/elev5/L5e050a.dat"
-[ 19, 63 ] = ascii (fp) : "./hrtfs/elev5/L5e045a.dat"
-[ 19, 64 ] = ascii (fp) : "./hrtfs/elev5/L5e040a.dat"
-[ 19, 65 ] = ascii (fp) : "./hrtfs/elev5/L5e035a.dat"
-[ 19, 66 ] = ascii (fp) : "./hrtfs/elev5/L5e030a.dat"
-[ 19, 67 ] = ascii (fp) : "./hrtfs/elev5/L5e025a.dat"
-[ 19, 68 ] = ascii (fp) : "./hrtfs/elev5/L5e020a.dat"
-[ 19, 69 ] = ascii (fp) : "./hrtfs/elev5/L5e015a.dat"
-[ 19, 70 ] = ascii (fp) : "./hrtfs/elev5/L5e010a.dat"
-[ 19, 71 ] = ascii (fp) : "./hrtfs/elev5/L5e005a.dat"
+[ 19, 0 ] = ascii (fp) : "./hrtfs/elev5/L5e000a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e000a.dat right
+[ 19, 1 ] = ascii (fp) : "./hrtfs/elev5/L5e355a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e355a.dat right
+[ 19, 2 ] = ascii (fp) : "./hrtfs/elev5/L5e350a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e350a.dat right
+[ 19, 3 ] = ascii (fp) : "./hrtfs/elev5/L5e345a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e345a.dat right
+[ 19, 4 ] = ascii (fp) : "./hrtfs/elev5/L5e340a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e340a.dat right
+[ 19, 5 ] = ascii (fp) : "./hrtfs/elev5/L5e335a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e335a.dat right
+[ 19, 6 ] = ascii (fp) : "./hrtfs/elev5/L5e330a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e330a.dat right
+[ 19, 7 ] = ascii (fp) : "./hrtfs/elev5/L5e325a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e325a.dat right
+[ 19, 8 ] = ascii (fp) : "./hrtfs/elev5/L5e320a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e320a.dat right
+[ 19, 9 ] = ascii (fp) : "./hrtfs/elev5/L5e315a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e315a.dat right
+[ 19, 10 ] = ascii (fp) : "./hrtfs/elev5/L5e310a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e310a.dat right
+[ 19, 11 ] = ascii (fp) : "./hrtfs/elev5/L5e305a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e305a.dat right
+[ 19, 12 ] = ascii (fp) : "./hrtfs/elev5/L5e300a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e300a.dat right
+[ 19, 13 ] = ascii (fp) : "./hrtfs/elev5/L5e295a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e295a.dat right
+[ 19, 14 ] = ascii (fp) : "./hrtfs/elev5/L5e290a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e290a.dat right
+[ 19, 15 ] = ascii (fp) : "./hrtfs/elev5/L5e285a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e285a.dat right
+[ 19, 16 ] = ascii (fp) : "./hrtfs/elev5/L5e280a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e280a.dat right
+[ 19, 17 ] = ascii (fp) : "./hrtfs/elev5/L5e275a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e275a.dat right
+[ 19, 18 ] = ascii (fp) : "./hrtfs/elev5/L5e270a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e270a.dat right
+[ 19, 19 ] = ascii (fp) : "./hrtfs/elev5/L5e265a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e265a.dat right
+[ 19, 20 ] = ascii (fp) : "./hrtfs/elev5/L5e260a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e260a.dat right
+[ 19, 21 ] = ascii (fp) : "./hrtfs/elev5/L5e255a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e255a.dat right
+[ 19, 22 ] = ascii (fp) : "./hrtfs/elev5/L5e250a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e250a.dat right
+[ 19, 23 ] = ascii (fp) : "./hrtfs/elev5/L5e245a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e245a.dat right
+[ 19, 24 ] = ascii (fp) : "./hrtfs/elev5/L5e240a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e240a.dat right
+[ 19, 25 ] = ascii (fp) : "./hrtfs/elev5/L5e235a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e235a.dat right
+[ 19, 26 ] = ascii (fp) : "./hrtfs/elev5/L5e230a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e230a.dat right
+[ 19, 27 ] = ascii (fp) : "./hrtfs/elev5/L5e225a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e225a.dat right
+[ 19, 28 ] = ascii (fp) : "./hrtfs/elev5/L5e220a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e220a.dat right
+[ 19, 29 ] = ascii (fp) : "./hrtfs/elev5/L5e215a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e215a.dat right
+[ 19, 30 ] = ascii (fp) : "./hrtfs/elev5/L5e210a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e210a.dat right
+[ 19, 31 ] = ascii (fp) : "./hrtfs/elev5/L5e205a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e205a.dat right
+[ 19, 32 ] = ascii (fp) : "./hrtfs/elev5/L5e200a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e200a.dat right
+[ 19, 33 ] = ascii (fp) : "./hrtfs/elev5/L5e195a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e195a.dat right
+[ 19, 34 ] = ascii (fp) : "./hrtfs/elev5/L5e190a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e190a.dat right
+[ 19, 35 ] = ascii (fp) : "./hrtfs/elev5/L5e185a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e185a.dat right
+[ 19, 36 ] = ascii (fp) : "./hrtfs/elev5/L5e180a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e180a.dat right
+[ 19, 37 ] = ascii (fp) : "./hrtfs/elev5/L5e175a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e175a.dat right
+[ 19, 38 ] = ascii (fp) : "./hrtfs/elev5/L5e170a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e170a.dat right
+[ 19, 39 ] = ascii (fp) : "./hrtfs/elev5/L5e165a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e165a.dat right
+[ 19, 40 ] = ascii (fp) : "./hrtfs/elev5/L5e160a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e160a.dat right
+[ 19, 41 ] = ascii (fp) : "./hrtfs/elev5/L5e155a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e155a.dat right
+[ 19, 42 ] = ascii (fp) : "./hrtfs/elev5/L5e150a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e150a.dat right
+[ 19, 43 ] = ascii (fp) : "./hrtfs/elev5/L5e145a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e145a.dat right
+[ 19, 44 ] = ascii (fp) : "./hrtfs/elev5/L5e140a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e140a.dat right
+[ 19, 45 ] = ascii (fp) : "./hrtfs/elev5/L5e135a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e135a.dat right
+[ 19, 46 ] = ascii (fp) : "./hrtfs/elev5/L5e130a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e130a.dat right
+[ 19, 47 ] = ascii (fp) : "./hrtfs/elev5/L5e125a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e125a.dat right
+[ 19, 48 ] = ascii (fp) : "./hrtfs/elev5/L5e120a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e120a.dat right
+[ 19, 49 ] = ascii (fp) : "./hrtfs/elev5/L5e115a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e115a.dat right
+[ 19, 50 ] = ascii (fp) : "./hrtfs/elev5/L5e110a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e110a.dat right
+[ 19, 51 ] = ascii (fp) : "./hrtfs/elev5/L5e105a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e105a.dat right
+[ 19, 52 ] = ascii (fp) : "./hrtfs/elev5/L5e100a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e100a.dat right
+[ 19, 53 ] = ascii (fp) : "./hrtfs/elev5/L5e095a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e095a.dat right
+[ 19, 54 ] = ascii (fp) : "./hrtfs/elev5/L5e090a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e090a.dat right
+[ 19, 55 ] = ascii (fp) : "./hrtfs/elev5/L5e085a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e085a.dat right
+[ 19, 56 ] = ascii (fp) : "./hrtfs/elev5/L5e080a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e080a.dat right
+[ 19, 57 ] = ascii (fp) : "./hrtfs/elev5/L5e075a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e075a.dat right
+[ 19, 58 ] = ascii (fp) : "./hrtfs/elev5/L5e070a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e070a.dat right
+[ 19, 59 ] = ascii (fp) : "./hrtfs/elev5/L5e065a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e065a.dat right
+[ 19, 60 ] = ascii (fp) : "./hrtfs/elev5/L5e060a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e060a.dat right
+[ 19, 61 ] = ascii (fp) : "./hrtfs/elev5/L5e055a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e055a.dat right
+[ 19, 62 ] = ascii (fp) : "./hrtfs/elev5/L5e050a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e050a.dat right
+[ 19, 63 ] = ascii (fp) : "./hrtfs/elev5/L5e045a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e045a.dat right
+[ 19, 64 ] = ascii (fp) : "./hrtfs/elev5/L5e040a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e040a.dat right
+[ 19, 65 ] = ascii (fp) : "./hrtfs/elev5/L5e035a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e035a.dat right
+[ 19, 66 ] = ascii (fp) : "./hrtfs/elev5/L5e030a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e030a.dat right
+[ 19, 67 ] = ascii (fp) : "./hrtfs/elev5/L5e025a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e025a.dat right
+[ 19, 68 ] = ascii (fp) : "./hrtfs/elev5/L5e020a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e020a.dat right
+[ 19, 69 ] = ascii (fp) : "./hrtfs/elev5/L5e015a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e015a.dat right
+[ 19, 70 ] = ascii (fp) : "./hrtfs/elev5/L5e010a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e010a.dat right
+[ 19, 71 ] = ascii (fp) : "./hrtfs/elev5/L5e005a.dat left
+ + ascii (fp) : "./hrtfs/elev5/R5e005a.dat right
-[ 20, 0 ] = ascii (fp) : "./hrtfs/elev10/L10e000a.dat"
-[ 20, 1 ] = ascii (fp) : "./hrtfs/elev10/L10e355a.dat"
-[ 20, 2 ] = ascii (fp) : "./hrtfs/elev10/L10e350a.dat"
-[ 20, 3 ] = ascii (fp) : "./hrtfs/elev10/L10e345a.dat"
-[ 20, 4 ] = ascii (fp) : "./hrtfs/elev10/L10e340a.dat"
-[ 20, 5 ] = ascii (fp) : "./hrtfs/elev10/L10e335a.dat"
-[ 20, 6 ] = ascii (fp) : "./hrtfs/elev10/L10e330a.dat"
-[ 20, 7 ] = ascii (fp) : "./hrtfs/elev10/L10e325a.dat"
-[ 20, 8 ] = ascii (fp) : "./hrtfs/elev10/L10e320a.dat"
-[ 20, 9 ] = ascii (fp) : "./hrtfs/elev10/L10e315a.dat"
-[ 20, 10 ] = ascii (fp) : "./hrtfs/elev10/L10e310a.dat"
-[ 20, 11 ] = ascii (fp) : "./hrtfs/elev10/L10e305a.dat"
-[ 20, 12 ] = ascii (fp) : "./hrtfs/elev10/L10e300a.dat"
-[ 20, 13 ] = ascii (fp) : "./hrtfs/elev10/L10e295a.dat"
-[ 20, 14 ] = ascii (fp) : "./hrtfs/elev10/L10e290a.dat"
-[ 20, 15 ] = ascii (fp) : "./hrtfs/elev10/L10e285a.dat"
-[ 20, 16 ] = ascii (fp) : "./hrtfs/elev10/L10e280a.dat"
-[ 20, 17 ] = ascii (fp) : "./hrtfs/elev10/L10e275a.dat"
-[ 20, 18 ] = ascii (fp) : "./hrtfs/elev10/L10e270a.dat"
-[ 20, 19 ] = ascii (fp) : "./hrtfs/elev10/L10e265a.dat"
-[ 20, 20 ] = ascii (fp) : "./hrtfs/elev10/L10e260a.dat"
-[ 20, 21 ] = ascii (fp) : "./hrtfs/elev10/L10e255a.dat"
-[ 20, 22 ] = ascii (fp) : "./hrtfs/elev10/L10e250a.dat"
-[ 20, 23 ] = ascii (fp) : "./hrtfs/elev10/L10e245a.dat"
-[ 20, 24 ] = ascii (fp) : "./hrtfs/elev10/L10e240a.dat"
-[ 20, 25 ] = ascii (fp) : "./hrtfs/elev10/L10e235a.dat"
-[ 20, 26 ] = ascii (fp) : "./hrtfs/elev10/L10e230a.dat"
-[ 20, 27 ] = ascii (fp) : "./hrtfs/elev10/L10e225a.dat"
-[ 20, 28 ] = ascii (fp) : "./hrtfs/elev10/L10e220a.dat"
-[ 20, 29 ] = ascii (fp) : "./hrtfs/elev10/L10e215a.dat"
-[ 20, 30 ] = ascii (fp) : "./hrtfs/elev10/L10e210a.dat"
-[ 20, 31 ] = ascii (fp) : "./hrtfs/elev10/L10e205a.dat"
-[ 20, 32 ] = ascii (fp) : "./hrtfs/elev10/L10e200a.dat"
-[ 20, 33 ] = ascii (fp) : "./hrtfs/elev10/L10e195a.dat"
-[ 20, 34 ] = ascii (fp) : "./hrtfs/elev10/L10e190a.dat"
-[ 20, 35 ] = ascii (fp) : "./hrtfs/elev10/L10e185a.dat"
-[ 20, 36 ] = ascii (fp) : "./hrtfs/elev10/L10e180a.dat"
-[ 20, 37 ] = ascii (fp) : "./hrtfs/elev10/L10e175a.dat"
-[ 20, 38 ] = ascii (fp) : "./hrtfs/elev10/L10e170a.dat"
-[ 20, 39 ] = ascii (fp) : "./hrtfs/elev10/L10e165a.dat"
-[ 20, 40 ] = ascii (fp) : "./hrtfs/elev10/L10e160a.dat"
-[ 20, 41 ] = ascii (fp) : "./hrtfs/elev10/L10e155a.dat"
-[ 20, 42 ] = ascii (fp) : "./hrtfs/elev10/L10e150a.dat"
-[ 20, 43 ] = ascii (fp) : "./hrtfs/elev10/L10e145a.dat"
-[ 20, 44 ] = ascii (fp) : "./hrtfs/elev10/L10e140a.dat"
-[ 20, 45 ] = ascii (fp) : "./hrtfs/elev10/L10e135a.dat"
-[ 20, 46 ] = ascii (fp) : "./hrtfs/elev10/L10e130a.dat"
-[ 20, 47 ] = ascii (fp) : "./hrtfs/elev10/L10e125a.dat"
-[ 20, 48 ] = ascii (fp) : "./hrtfs/elev10/L10e120a.dat"
-[ 20, 49 ] = ascii (fp) : "./hrtfs/elev10/L10e115a.dat"
-[ 20, 50 ] = ascii (fp) : "./hrtfs/elev10/L10e110a.dat"
-[ 20, 51 ] = ascii (fp) : "./hrtfs/elev10/L10e105a.dat"
-[ 20, 52 ] = ascii (fp) : "./hrtfs/elev10/L10e100a.dat"
-[ 20, 53 ] = ascii (fp) : "./hrtfs/elev10/L10e095a.dat"
-[ 20, 54 ] = ascii (fp) : "./hrtfs/elev10/L10e090a.dat"
-[ 20, 55 ] = ascii (fp) : "./hrtfs/elev10/L10e085a.dat"
-[ 20, 56 ] = ascii (fp) : "./hrtfs/elev10/L10e080a.dat"
-[ 20, 57 ] = ascii (fp) : "./hrtfs/elev10/L10e075a.dat"
-[ 20, 58 ] = ascii (fp) : "./hrtfs/elev10/L10e070a.dat"
-[ 20, 59 ] = ascii (fp) : "./hrtfs/elev10/L10e065a.dat"
-[ 20, 60 ] = ascii (fp) : "./hrtfs/elev10/L10e060a.dat"
-[ 20, 61 ] = ascii (fp) : "./hrtfs/elev10/L10e055a.dat"
-[ 20, 62 ] = ascii (fp) : "./hrtfs/elev10/L10e050a.dat"
-[ 20, 63 ] = ascii (fp) : "./hrtfs/elev10/L10e045a.dat"
-[ 20, 64 ] = ascii (fp) : "./hrtfs/elev10/L10e040a.dat"
-[ 20, 65 ] = ascii (fp) : "./hrtfs/elev10/L10e035a.dat"
-[ 20, 66 ] = ascii (fp) : "./hrtfs/elev10/L10e030a.dat"
-[ 20, 67 ] = ascii (fp) : "./hrtfs/elev10/L10e025a.dat"
-[ 20, 68 ] = ascii (fp) : "./hrtfs/elev10/L10e020a.dat"
-[ 20, 69 ] = ascii (fp) : "./hrtfs/elev10/L10e015a.dat"
-[ 20, 70 ] = ascii (fp) : "./hrtfs/elev10/L10e010a.dat"
-[ 20, 71 ] = ascii (fp) : "./hrtfs/elev10/L10e005a.dat"
+[ 20, 0 ] = ascii (fp) : "./hrtfs/elev10/L10e000a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e000a.dat right
+[ 20, 1 ] = ascii (fp) : "./hrtfs/elev10/L10e355a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e355a.dat right
+[ 20, 2 ] = ascii (fp) : "./hrtfs/elev10/L10e350a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e350a.dat right
+[ 20, 3 ] = ascii (fp) : "./hrtfs/elev10/L10e345a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e345a.dat right
+[ 20, 4 ] = ascii (fp) : "./hrtfs/elev10/L10e340a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e340a.dat right
+[ 20, 5 ] = ascii (fp) : "./hrtfs/elev10/L10e335a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e335a.dat right
+[ 20, 6 ] = ascii (fp) : "./hrtfs/elev10/L10e330a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e330a.dat right
+[ 20, 7 ] = ascii (fp) : "./hrtfs/elev10/L10e325a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e325a.dat right
+[ 20, 8 ] = ascii (fp) : "./hrtfs/elev10/L10e320a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e320a.dat right
+[ 20, 9 ] = ascii (fp) : "./hrtfs/elev10/L10e315a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e315a.dat right
+[ 20, 10 ] = ascii (fp) : "./hrtfs/elev10/L10e310a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e310a.dat right
+[ 20, 11 ] = ascii (fp) : "./hrtfs/elev10/L10e305a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e305a.dat right
+[ 20, 12 ] = ascii (fp) : "./hrtfs/elev10/L10e300a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e300a.dat right
+[ 20, 13 ] = ascii (fp) : "./hrtfs/elev10/L10e295a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e295a.dat right
+[ 20, 14 ] = ascii (fp) : "./hrtfs/elev10/L10e290a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e290a.dat right
+[ 20, 15 ] = ascii (fp) : "./hrtfs/elev10/L10e285a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e285a.dat right
+[ 20, 16 ] = ascii (fp) : "./hrtfs/elev10/L10e280a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e280a.dat right
+[ 20, 17 ] = ascii (fp) : "./hrtfs/elev10/L10e275a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e275a.dat right
+[ 20, 18 ] = ascii (fp) : "./hrtfs/elev10/L10e270a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e270a.dat right
+[ 20, 19 ] = ascii (fp) : "./hrtfs/elev10/L10e265a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e265a.dat right
+[ 20, 20 ] = ascii (fp) : "./hrtfs/elev10/L10e260a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e260a.dat right
+[ 20, 21 ] = ascii (fp) : "./hrtfs/elev10/L10e255a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e255a.dat right
+[ 20, 22 ] = ascii (fp) : "./hrtfs/elev10/L10e250a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e250a.dat right
+[ 20, 23 ] = ascii (fp) : "./hrtfs/elev10/L10e245a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e245a.dat right
+[ 20, 24 ] = ascii (fp) : "./hrtfs/elev10/L10e240a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e240a.dat right
+[ 20, 25 ] = ascii (fp) : "./hrtfs/elev10/L10e235a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e235a.dat right
+[ 20, 26 ] = ascii (fp) : "./hrtfs/elev10/L10e230a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e230a.dat right
+[ 20, 27 ] = ascii (fp) : "./hrtfs/elev10/L10e225a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e225a.dat right
+[ 20, 28 ] = ascii (fp) : "./hrtfs/elev10/L10e220a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e220a.dat right
+[ 20, 29 ] = ascii (fp) : "./hrtfs/elev10/L10e215a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e215a.dat right
+[ 20, 30 ] = ascii (fp) : "./hrtfs/elev10/L10e210a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e210a.dat right
+[ 20, 31 ] = ascii (fp) : "./hrtfs/elev10/L10e205a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e205a.dat right
+[ 20, 32 ] = ascii (fp) : "./hrtfs/elev10/L10e200a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e200a.dat right
+[ 20, 33 ] = ascii (fp) : "./hrtfs/elev10/L10e195a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e195a.dat right
+[ 20, 34 ] = ascii (fp) : "./hrtfs/elev10/L10e190a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e190a.dat right
+[ 20, 35 ] = ascii (fp) : "./hrtfs/elev10/L10e185a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e185a.dat right
+[ 20, 36 ] = ascii (fp) : "./hrtfs/elev10/L10e180a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e180a.dat right
+[ 20, 37 ] = ascii (fp) : "./hrtfs/elev10/L10e175a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e175a.dat right
+[ 20, 38 ] = ascii (fp) : "./hrtfs/elev10/L10e170a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e170a.dat right
+[ 20, 39 ] = ascii (fp) : "./hrtfs/elev10/L10e165a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e165a.dat right
+[ 20, 40 ] = ascii (fp) : "./hrtfs/elev10/L10e160a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e160a.dat right
+[ 20, 41 ] = ascii (fp) : "./hrtfs/elev10/L10e155a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e155a.dat right
+[ 20, 42 ] = ascii (fp) : "./hrtfs/elev10/L10e150a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e150a.dat right
+[ 20, 43 ] = ascii (fp) : "./hrtfs/elev10/L10e145a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e145a.dat right
+[ 20, 44 ] = ascii (fp) : "./hrtfs/elev10/L10e140a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e140a.dat right
+[ 20, 45 ] = ascii (fp) : "./hrtfs/elev10/L10e135a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e135a.dat right
+[ 20, 46 ] = ascii (fp) : "./hrtfs/elev10/L10e130a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e130a.dat right
+[ 20, 47 ] = ascii (fp) : "./hrtfs/elev10/L10e125a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e125a.dat right
+[ 20, 48 ] = ascii (fp) : "./hrtfs/elev10/L10e120a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e120a.dat right
+[ 20, 49 ] = ascii (fp) : "./hrtfs/elev10/L10e115a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e115a.dat right
+[ 20, 50 ] = ascii (fp) : "./hrtfs/elev10/L10e110a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e110a.dat right
+[ 20, 51 ] = ascii (fp) : "./hrtfs/elev10/L10e105a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e105a.dat right
+[ 20, 52 ] = ascii (fp) : "./hrtfs/elev10/L10e100a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e100a.dat right
+[ 20, 53 ] = ascii (fp) : "./hrtfs/elev10/L10e095a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e095a.dat right
+[ 20, 54 ] = ascii (fp) : "./hrtfs/elev10/L10e090a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e090a.dat right
+[ 20, 55 ] = ascii (fp) : "./hrtfs/elev10/L10e085a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e085a.dat right
+[ 20, 56 ] = ascii (fp) : "./hrtfs/elev10/L10e080a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e080a.dat right
+[ 20, 57 ] = ascii (fp) : "./hrtfs/elev10/L10e075a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e075a.dat right
+[ 20, 58 ] = ascii (fp) : "./hrtfs/elev10/L10e070a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e070a.dat right
+[ 20, 59 ] = ascii (fp) : "./hrtfs/elev10/L10e065a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e065a.dat right
+[ 20, 60 ] = ascii (fp) : "./hrtfs/elev10/L10e060a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e060a.dat right
+[ 20, 61 ] = ascii (fp) : "./hrtfs/elev10/L10e055a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e055a.dat right
+[ 20, 62 ] = ascii (fp) : "./hrtfs/elev10/L10e050a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e050a.dat right
+[ 20, 63 ] = ascii (fp) : "./hrtfs/elev10/L10e045a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e045a.dat right
+[ 20, 64 ] = ascii (fp) : "./hrtfs/elev10/L10e040a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e040a.dat right
+[ 20, 65 ] = ascii (fp) : "./hrtfs/elev10/L10e035a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e035a.dat right
+[ 20, 66 ] = ascii (fp) : "./hrtfs/elev10/L10e030a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e030a.dat right
+[ 20, 67 ] = ascii (fp) : "./hrtfs/elev10/L10e025a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e025a.dat right
+[ 20, 68 ] = ascii (fp) : "./hrtfs/elev10/L10e020a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e020a.dat right
+[ 20, 69 ] = ascii (fp) : "./hrtfs/elev10/L10e015a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e015a.dat right
+[ 20, 70 ] = ascii (fp) : "./hrtfs/elev10/L10e010a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e010a.dat right
+[ 20, 71 ] = ascii (fp) : "./hrtfs/elev10/L10e005a.dat left
+ + ascii (fp) : "./hrtfs/elev10/R10e005a.dat right
-[ 21, 0 ] = ascii (fp) : "./hrtfs/elev15/L15e000a.dat"
-[ 21, 1 ] = ascii (fp) : "./hrtfs/elev15/L15e355a.dat"
-[ 21, 2 ] = ascii (fp) : "./hrtfs/elev15/L15e350a.dat"
-[ 21, 3 ] = ascii (fp) : "./hrtfs/elev15/L15e345a.dat"
-[ 21, 4 ] = ascii (fp) : "./hrtfs/elev15/L15e340a.dat"
-[ 21, 5 ] = ascii (fp) : "./hrtfs/elev15/L15e335a.dat"
-[ 21, 6 ] = ascii (fp) : "./hrtfs/elev15/L15e330a.dat"
-[ 21, 7 ] = ascii (fp) : "./hrtfs/elev15/L15e325a.dat"
-[ 21, 8 ] = ascii (fp) : "./hrtfs/elev15/L15e320a.dat"
-[ 21, 9 ] = ascii (fp) : "./hrtfs/elev15/L15e315a.dat"
-[ 21, 10 ] = ascii (fp) : "./hrtfs/elev15/L15e310a.dat"
-[ 21, 11 ] = ascii (fp) : "./hrtfs/elev15/L15e305a.dat"
-[ 21, 12 ] = ascii (fp) : "./hrtfs/elev15/L15e300a.dat"
-[ 21, 13 ] = ascii (fp) : "./hrtfs/elev15/L15e295a.dat"
-[ 21, 14 ] = ascii (fp) : "./hrtfs/elev15/L15e290a.dat"
-[ 21, 15 ] = ascii (fp) : "./hrtfs/elev15/L15e285a.dat"
-[ 21, 16 ] = ascii (fp) : "./hrtfs/elev15/L15e280a.dat"
-[ 21, 17 ] = ascii (fp) : "./hrtfs/elev15/L15e275a.dat"
-[ 21, 18 ] = ascii (fp) : "./hrtfs/elev15/L15e270a.dat"
-[ 21, 19 ] = ascii (fp) : "./hrtfs/elev15/L15e265a.dat"
-[ 21, 20 ] = ascii (fp) : "./hrtfs/elev15/L15e260a.dat"
-[ 21, 21 ] = ascii (fp) : "./hrtfs/elev15/L15e255a.dat"
-[ 21, 22 ] = ascii (fp) : "./hrtfs/elev15/L15e250a.dat"
-[ 21, 23 ] = ascii (fp) : "./hrtfs/elev15/L15e245a.dat"
-[ 21, 24 ] = ascii (fp) : "./hrtfs/elev15/L15e240a.dat"
-[ 21, 25 ] = ascii (fp) : "./hrtfs/elev15/L15e235a.dat"
-[ 21, 26 ] = ascii (fp) : "./hrtfs/elev15/L15e230a.dat"
-[ 21, 27 ] = ascii (fp) : "./hrtfs/elev15/L15e225a.dat"
-[ 21, 28 ] = ascii (fp) : "./hrtfs/elev15/L15e220a.dat"
-[ 21, 29 ] = ascii (fp) : "./hrtfs/elev15/L15e215a.dat"
-[ 21, 30 ] = ascii (fp) : "./hrtfs/elev15/L15e210a.dat"
-[ 21, 31 ] = ascii (fp) : "./hrtfs/elev15/L15e205a.dat"
-[ 21, 32 ] = ascii (fp) : "./hrtfs/elev15/L15e200a.dat"
-[ 21, 33 ] = ascii (fp) : "./hrtfs/elev15/L15e195a.dat"
-[ 21, 34 ] = ascii (fp) : "./hrtfs/elev15/L15e190a.dat"
-[ 21, 35 ] = ascii (fp) : "./hrtfs/elev15/L15e185a.dat"
-[ 21, 36 ] = ascii (fp) : "./hrtfs/elev15/L15e180a.dat"
-[ 21, 37 ] = ascii (fp) : "./hrtfs/elev15/L15e175a.dat"
-[ 21, 38 ] = ascii (fp) : "./hrtfs/elev15/L15e170a.dat"
-[ 21, 39 ] = ascii (fp) : "./hrtfs/elev15/L15e165a.dat"
-[ 21, 40 ] = ascii (fp) : "./hrtfs/elev15/L15e160a.dat"
-[ 21, 41 ] = ascii (fp) : "./hrtfs/elev15/L15e155a.dat"
-[ 21, 42 ] = ascii (fp) : "./hrtfs/elev15/L15e150a.dat"
-[ 21, 43 ] = ascii (fp) : "./hrtfs/elev15/L15e145a.dat"
-[ 21, 44 ] = ascii (fp) : "./hrtfs/elev15/L15e140a.dat"
-[ 21, 45 ] = ascii (fp) : "./hrtfs/elev15/L15e135a.dat"
-[ 21, 46 ] = ascii (fp) : "./hrtfs/elev15/L15e130a.dat"
-[ 21, 47 ] = ascii (fp) : "./hrtfs/elev15/L15e125a.dat"
-[ 21, 48 ] = ascii (fp) : "./hrtfs/elev15/L15e120a.dat"
-[ 21, 49 ] = ascii (fp) : "./hrtfs/elev15/L15e115a.dat"
-[ 21, 50 ] = ascii (fp) : "./hrtfs/elev15/L15e110a.dat"
-[ 21, 51 ] = ascii (fp) : "./hrtfs/elev15/L15e105a.dat"
-[ 21, 52 ] = ascii (fp) : "./hrtfs/elev15/L15e100a.dat"
-[ 21, 53 ] = ascii (fp) : "./hrtfs/elev15/L15e095a.dat"
-[ 21, 54 ] = ascii (fp) : "./hrtfs/elev15/L15e090a.dat"
-[ 21, 55 ] = ascii (fp) : "./hrtfs/elev15/L15e085a.dat"
-[ 21, 56 ] = ascii (fp) : "./hrtfs/elev15/L15e080a.dat"
-[ 21, 57 ] = ascii (fp) : "./hrtfs/elev15/L15e075a.dat"
-[ 21, 58 ] = ascii (fp) : "./hrtfs/elev15/L15e070a.dat"
-[ 21, 59 ] = ascii (fp) : "./hrtfs/elev15/L15e065a.dat"
-[ 21, 60 ] = ascii (fp) : "./hrtfs/elev15/L15e060a.dat"
-[ 21, 61 ] = ascii (fp) : "./hrtfs/elev15/L15e055a.dat"
-[ 21, 62 ] = ascii (fp) : "./hrtfs/elev15/L15e050a.dat"
-[ 21, 63 ] = ascii (fp) : "./hrtfs/elev15/L15e045a.dat"
-[ 21, 64 ] = ascii (fp) : "./hrtfs/elev15/L15e040a.dat"
-[ 21, 65 ] = ascii (fp) : "./hrtfs/elev15/L15e035a.dat"
-[ 21, 66 ] = ascii (fp) : "./hrtfs/elev15/L15e030a.dat"
-[ 21, 67 ] = ascii (fp) : "./hrtfs/elev15/L15e025a.dat"
-[ 21, 68 ] = ascii (fp) : "./hrtfs/elev15/L15e020a.dat"
-[ 21, 69 ] = ascii (fp) : "./hrtfs/elev15/L15e015a.dat"
-[ 21, 70 ] = ascii (fp) : "./hrtfs/elev15/L15e010a.dat"
-[ 21, 71 ] = ascii (fp) : "./hrtfs/elev15/L15e005a.dat"
+[ 21, 0 ] = ascii (fp) : "./hrtfs/elev15/L15e000a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e000a.dat right
+[ 21, 1 ] = ascii (fp) : "./hrtfs/elev15/L15e355a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e355a.dat right
+[ 21, 2 ] = ascii (fp) : "./hrtfs/elev15/L15e350a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e350a.dat right
+[ 21, 3 ] = ascii (fp) : "./hrtfs/elev15/L15e345a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e345a.dat right
+[ 21, 4 ] = ascii (fp) : "./hrtfs/elev15/L15e340a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e340a.dat right
+[ 21, 5 ] = ascii (fp) : "./hrtfs/elev15/L15e335a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e335a.dat right
+[ 21, 6 ] = ascii (fp) : "./hrtfs/elev15/L15e330a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e330a.dat right
+[ 21, 7 ] = ascii (fp) : "./hrtfs/elev15/L15e325a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e325a.dat right
+[ 21, 8 ] = ascii (fp) : "./hrtfs/elev15/L15e320a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e320a.dat right
+[ 21, 9 ] = ascii (fp) : "./hrtfs/elev15/L15e315a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e315a.dat right
+[ 21, 10 ] = ascii (fp) : "./hrtfs/elev15/L15e310a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e310a.dat right
+[ 21, 11 ] = ascii (fp) : "./hrtfs/elev15/L15e305a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e305a.dat right
+[ 21, 12 ] = ascii (fp) : "./hrtfs/elev15/L15e300a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e300a.dat right
+[ 21, 13 ] = ascii (fp) : "./hrtfs/elev15/L15e295a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e295a.dat right
+[ 21, 14 ] = ascii (fp) : "./hrtfs/elev15/L15e290a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e290a.dat right
+[ 21, 15 ] = ascii (fp) : "./hrtfs/elev15/L15e285a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e285a.dat right
+[ 21, 16 ] = ascii (fp) : "./hrtfs/elev15/L15e280a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e280a.dat right
+[ 21, 17 ] = ascii (fp) : "./hrtfs/elev15/L15e275a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e275a.dat right
+[ 21, 18 ] = ascii (fp) : "./hrtfs/elev15/L15e270a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e270a.dat right
+[ 21, 19 ] = ascii (fp) : "./hrtfs/elev15/L15e265a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e265a.dat right
+[ 21, 20 ] = ascii (fp) : "./hrtfs/elev15/L15e260a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e260a.dat right
+[ 21, 21 ] = ascii (fp) : "./hrtfs/elev15/L15e255a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e255a.dat right
+[ 21, 22 ] = ascii (fp) : "./hrtfs/elev15/L15e250a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e250a.dat right
+[ 21, 23 ] = ascii (fp) : "./hrtfs/elev15/L15e245a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e245a.dat right
+[ 21, 24 ] = ascii (fp) : "./hrtfs/elev15/L15e240a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e240a.dat right
+[ 21, 25 ] = ascii (fp) : "./hrtfs/elev15/L15e235a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e235a.dat right
+[ 21, 26 ] = ascii (fp) : "./hrtfs/elev15/L15e230a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e230a.dat right
+[ 21, 27 ] = ascii (fp) : "./hrtfs/elev15/L15e225a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e225a.dat right
+[ 21, 28 ] = ascii (fp) : "./hrtfs/elev15/L15e220a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e220a.dat right
+[ 21, 29 ] = ascii (fp) : "./hrtfs/elev15/L15e215a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e215a.dat right
+[ 21, 30 ] = ascii (fp) : "./hrtfs/elev15/L15e210a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e210a.dat right
+[ 21, 31 ] = ascii (fp) : "./hrtfs/elev15/L15e205a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e205a.dat right
+[ 21, 32 ] = ascii (fp) : "./hrtfs/elev15/L15e200a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e200a.dat right
+[ 21, 33 ] = ascii (fp) : "./hrtfs/elev15/L15e195a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e195a.dat right
+[ 21, 34 ] = ascii (fp) : "./hrtfs/elev15/L15e190a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e190a.dat right
+[ 21, 35 ] = ascii (fp) : "./hrtfs/elev15/L15e185a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e185a.dat right
+[ 21, 36 ] = ascii (fp) : "./hrtfs/elev15/L15e180a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e180a.dat right
+[ 21, 37 ] = ascii (fp) : "./hrtfs/elev15/L15e175a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e175a.dat right
+[ 21, 38 ] = ascii (fp) : "./hrtfs/elev15/L15e170a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e170a.dat right
+[ 21, 39 ] = ascii (fp) : "./hrtfs/elev15/L15e165a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e165a.dat right
+[ 21, 40 ] = ascii (fp) : "./hrtfs/elev15/L15e160a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e160a.dat right
+[ 21, 41 ] = ascii (fp) : "./hrtfs/elev15/L15e155a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e155a.dat right
+[ 21, 42 ] = ascii (fp) : "./hrtfs/elev15/L15e150a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e150a.dat right
+[ 21, 43 ] = ascii (fp) : "./hrtfs/elev15/L15e145a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e145a.dat right
+[ 21, 44 ] = ascii (fp) : "./hrtfs/elev15/L15e140a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e140a.dat right
+[ 21, 45 ] = ascii (fp) : "./hrtfs/elev15/L15e135a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e135a.dat right
+[ 21, 46 ] = ascii (fp) : "./hrtfs/elev15/L15e130a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e130a.dat right
+[ 21, 47 ] = ascii (fp) : "./hrtfs/elev15/L15e125a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e125a.dat right
+[ 21, 48 ] = ascii (fp) : "./hrtfs/elev15/L15e120a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e120a.dat right
+[ 21, 49 ] = ascii (fp) : "./hrtfs/elev15/L15e115a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e115a.dat right
+[ 21, 50 ] = ascii (fp) : "./hrtfs/elev15/L15e110a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e110a.dat right
+[ 21, 51 ] = ascii (fp) : "./hrtfs/elev15/L15e105a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e105a.dat right
+[ 21, 52 ] = ascii (fp) : "./hrtfs/elev15/L15e100a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e100a.dat right
+[ 21, 53 ] = ascii (fp) : "./hrtfs/elev15/L15e095a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e095a.dat right
+[ 21, 54 ] = ascii (fp) : "./hrtfs/elev15/L15e090a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e090a.dat right
+[ 21, 55 ] = ascii (fp) : "./hrtfs/elev15/L15e085a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e085a.dat right
+[ 21, 56 ] = ascii (fp) : "./hrtfs/elev15/L15e080a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e080a.dat right
+[ 21, 57 ] = ascii (fp) : "./hrtfs/elev15/L15e075a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e075a.dat right
+[ 21, 58 ] = ascii (fp) : "./hrtfs/elev15/L15e070a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e070a.dat right
+[ 21, 59 ] = ascii (fp) : "./hrtfs/elev15/L15e065a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e065a.dat right
+[ 21, 60 ] = ascii (fp) : "./hrtfs/elev15/L15e060a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e060a.dat right
+[ 21, 61 ] = ascii (fp) : "./hrtfs/elev15/L15e055a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e055a.dat right
+[ 21, 62 ] = ascii (fp) : "./hrtfs/elev15/L15e050a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e050a.dat right
+[ 21, 63 ] = ascii (fp) : "./hrtfs/elev15/L15e045a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e045a.dat right
+[ 21, 64 ] = ascii (fp) : "./hrtfs/elev15/L15e040a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e040a.dat right
+[ 21, 65 ] = ascii (fp) : "./hrtfs/elev15/L15e035a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e035a.dat right
+[ 21, 66 ] = ascii (fp) : "./hrtfs/elev15/L15e030a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e030a.dat right
+[ 21, 67 ] = ascii (fp) : "./hrtfs/elev15/L15e025a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e025a.dat right
+[ 21, 68 ] = ascii (fp) : "./hrtfs/elev15/L15e020a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e020a.dat right
+[ 21, 69 ] = ascii (fp) : "./hrtfs/elev15/L15e015a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e015a.dat right
+[ 21, 70 ] = ascii (fp) : "./hrtfs/elev15/L15e010a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e010a.dat right
+[ 21, 71 ] = ascii (fp) : "./hrtfs/elev15/L15e005a.dat left
+ + ascii (fp) : "./hrtfs/elev15/R15e005a.dat right
-[ 22, 0 ] = ascii (fp) : "./hrtfs/elev20/L20e000a.dat"
-[ 22, 1 ] = ascii (fp) : "./hrtfs/elev20/L20e355a.dat"
-[ 22, 2 ] = ascii (fp) : "./hrtfs/elev20/L20e350a.dat"
-[ 22, 3 ] = ascii (fp) : "./hrtfs/elev20/L20e345a.dat"
-[ 22, 4 ] = ascii (fp) : "./hrtfs/elev20/L20e340a.dat"
-[ 22, 5 ] = ascii (fp) : "./hrtfs/elev20/L20e335a.dat"
-[ 22, 6 ] = ascii (fp) : "./hrtfs/elev20/L20e330a.dat"
-[ 22, 7 ] = ascii (fp) : "./hrtfs/elev20/L20e325a.dat"
-[ 22, 8 ] = ascii (fp) : "./hrtfs/elev20/L20e320a.dat"
-[ 22, 9 ] = ascii (fp) : "./hrtfs/elev20/L20e315a.dat"
-[ 22, 10 ] = ascii (fp) : "./hrtfs/elev20/L20e310a.dat"
-[ 22, 11 ] = ascii (fp) : "./hrtfs/elev20/L20e305a.dat"
-[ 22, 12 ] = ascii (fp) : "./hrtfs/elev20/L20e300a.dat"
-[ 22, 13 ] = ascii (fp) : "./hrtfs/elev20/L20e295a.dat"
-[ 22, 14 ] = ascii (fp) : "./hrtfs/elev20/L20e290a.dat"
-[ 22, 15 ] = ascii (fp) : "./hrtfs/elev20/L20e285a.dat"
-[ 22, 16 ] = ascii (fp) : "./hrtfs/elev20/L20e280a.dat"
-[ 22, 17 ] = ascii (fp) : "./hrtfs/elev20/L20e275a.dat"
-[ 22, 18 ] = ascii (fp) : "./hrtfs/elev20/L20e270a.dat"
-[ 22, 19 ] = ascii (fp) : "./hrtfs/elev20/L20e265a.dat"
-[ 22, 20 ] = ascii (fp) : "./hrtfs/elev20/L20e260a.dat"
-[ 22, 21 ] = ascii (fp) : "./hrtfs/elev20/L20e255a.dat"
-[ 22, 22 ] = ascii (fp) : "./hrtfs/elev20/L20e250a.dat"
-[ 22, 23 ] = ascii (fp) : "./hrtfs/elev20/L20e245a.dat"
-[ 22, 24 ] = ascii (fp) : "./hrtfs/elev20/L20e240a.dat"
-[ 22, 25 ] = ascii (fp) : "./hrtfs/elev20/L20e235a.dat"
-[ 22, 26 ] = ascii (fp) : "./hrtfs/elev20/L20e230a.dat"
-[ 22, 27 ] = ascii (fp) : "./hrtfs/elev20/L20e225a.dat"
-[ 22, 28 ] = ascii (fp) : "./hrtfs/elev20/L20e220a.dat"
-[ 22, 29 ] = ascii (fp) : "./hrtfs/elev20/L20e215a.dat"
-[ 22, 30 ] = ascii (fp) : "./hrtfs/elev20/L20e210a.dat"
-[ 22, 31 ] = ascii (fp) : "./hrtfs/elev20/L20e205a.dat"
-[ 22, 32 ] = ascii (fp) : "./hrtfs/elev20/L20e200a.dat"
-[ 22, 33 ] = ascii (fp) : "./hrtfs/elev20/L20e195a.dat"
-[ 22, 34 ] = ascii (fp) : "./hrtfs/elev20/L20e190a.dat"
-[ 22, 35 ] = ascii (fp) : "./hrtfs/elev20/L20e185a.dat"
-[ 22, 36 ] = ascii (fp) : "./hrtfs/elev20/L20e180a.dat"
-[ 22, 37 ] = ascii (fp) : "./hrtfs/elev20/L20e175a.dat"
-[ 22, 38 ] = ascii (fp) : "./hrtfs/elev20/L20e170a.dat"
-[ 22, 39 ] = ascii (fp) : "./hrtfs/elev20/L20e165a.dat"
-[ 22, 40 ] = ascii (fp) : "./hrtfs/elev20/L20e160a.dat"
-[ 22, 41 ] = ascii (fp) : "./hrtfs/elev20/L20e155a.dat"
-[ 22, 42 ] = ascii (fp) : "./hrtfs/elev20/L20e150a.dat"
-[ 22, 43 ] = ascii (fp) : "./hrtfs/elev20/L20e145a.dat"
-[ 22, 44 ] = ascii (fp) : "./hrtfs/elev20/L20e140a.dat"
-[ 22, 45 ] = ascii (fp) : "./hrtfs/elev20/L20e135a.dat"
-[ 22, 46 ] = ascii (fp) : "./hrtfs/elev20/L20e130a.dat"
-[ 22, 47 ] = ascii (fp) : "./hrtfs/elev20/L20e125a.dat"
-[ 22, 48 ] = ascii (fp) : "./hrtfs/elev20/L20e120a.dat"
-[ 22, 49 ] = ascii (fp) : "./hrtfs/elev20/L20e115a.dat"
-[ 22, 50 ] = ascii (fp) : "./hrtfs/elev20/L20e110a.dat"
-[ 22, 51 ] = ascii (fp) : "./hrtfs/elev20/L20e105a.dat"
-[ 22, 52 ] = ascii (fp) : "./hrtfs/elev20/L20e100a.dat"
-[ 22, 53 ] = ascii (fp) : "./hrtfs/elev20/L20e095a.dat"
-[ 22, 54 ] = ascii (fp) : "./hrtfs/elev20/L20e090a.dat"
-[ 22, 55 ] = ascii (fp) : "./hrtfs/elev20/L20e085a.dat"
-[ 22, 56 ] = ascii (fp) : "./hrtfs/elev20/L20e080a.dat"
-[ 22, 57 ] = ascii (fp) : "./hrtfs/elev20/L20e075a.dat"
-[ 22, 58 ] = ascii (fp) : "./hrtfs/elev20/L20e070a.dat"
-[ 22, 59 ] = ascii (fp) : "./hrtfs/elev20/L20e065a.dat"
-[ 22, 60 ] = ascii (fp) : "./hrtfs/elev20/L20e060a.dat"
-[ 22, 61 ] = ascii (fp) : "./hrtfs/elev20/L20e055a.dat"
-[ 22, 62 ] = ascii (fp) : "./hrtfs/elev20/L20e050a.dat"
-[ 22, 63 ] = ascii (fp) : "./hrtfs/elev20/L20e045a.dat"
-[ 22, 64 ] = ascii (fp) : "./hrtfs/elev20/L20e040a.dat"
-[ 22, 65 ] = ascii (fp) : "./hrtfs/elev20/L20e035a.dat"
-[ 22, 66 ] = ascii (fp) : "./hrtfs/elev20/L20e030a.dat"
-[ 22, 67 ] = ascii (fp) : "./hrtfs/elev20/L20e025a.dat"
-[ 22, 68 ] = ascii (fp) : "./hrtfs/elev20/L20e020a.dat"
-[ 22, 69 ] = ascii (fp) : "./hrtfs/elev20/L20e015a.dat"
-[ 22, 70 ] = ascii (fp) : "./hrtfs/elev20/L20e010a.dat"
-[ 22, 71 ] = ascii (fp) : "./hrtfs/elev20/L20e005a.dat"
+[ 22, 0 ] = ascii (fp) : "./hrtfs/elev20/L20e000a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e000a.dat right
+[ 22, 1 ] = ascii (fp) : "./hrtfs/elev20/L20e355a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e355a.dat right
+[ 22, 2 ] = ascii (fp) : "./hrtfs/elev20/L20e350a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e350a.dat right
+[ 22, 3 ] = ascii (fp) : "./hrtfs/elev20/L20e345a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e345a.dat right
+[ 22, 4 ] = ascii (fp) : "./hrtfs/elev20/L20e340a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e340a.dat right
+[ 22, 5 ] = ascii (fp) : "./hrtfs/elev20/L20e335a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e335a.dat right
+[ 22, 6 ] = ascii (fp) : "./hrtfs/elev20/L20e330a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e330a.dat right
+[ 22, 7 ] = ascii (fp) : "./hrtfs/elev20/L20e325a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e325a.dat right
+[ 22, 8 ] = ascii (fp) : "./hrtfs/elev20/L20e320a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e320a.dat right
+[ 22, 9 ] = ascii (fp) : "./hrtfs/elev20/L20e315a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e315a.dat right
+[ 22, 10 ] = ascii (fp) : "./hrtfs/elev20/L20e310a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e310a.dat right
+[ 22, 11 ] = ascii (fp) : "./hrtfs/elev20/L20e305a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e305a.dat right
+[ 22, 12 ] = ascii (fp) : "./hrtfs/elev20/L20e300a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e300a.dat right
+[ 22, 13 ] = ascii (fp) : "./hrtfs/elev20/L20e295a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e295a.dat right
+[ 22, 14 ] = ascii (fp) : "./hrtfs/elev20/L20e290a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e290a.dat right
+[ 22, 15 ] = ascii (fp) : "./hrtfs/elev20/L20e285a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e285a.dat right
+[ 22, 16 ] = ascii (fp) : "./hrtfs/elev20/L20e280a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e280a.dat right
+[ 22, 17 ] = ascii (fp) : "./hrtfs/elev20/L20e275a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e275a.dat right
+[ 22, 18 ] = ascii (fp) : "./hrtfs/elev20/L20e270a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e270a.dat right
+[ 22, 19 ] = ascii (fp) : "./hrtfs/elev20/L20e265a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e265a.dat right
+[ 22, 20 ] = ascii (fp) : "./hrtfs/elev20/L20e260a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e260a.dat right
+[ 22, 21 ] = ascii (fp) : "./hrtfs/elev20/L20e255a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e255a.dat right
+[ 22, 22 ] = ascii (fp) : "./hrtfs/elev20/L20e250a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e250a.dat right
+[ 22, 23 ] = ascii (fp) : "./hrtfs/elev20/L20e245a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e245a.dat right
+[ 22, 24 ] = ascii (fp) : "./hrtfs/elev20/L20e240a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e240a.dat right
+[ 22, 25 ] = ascii (fp) : "./hrtfs/elev20/L20e235a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e235a.dat right
+[ 22, 26 ] = ascii (fp) : "./hrtfs/elev20/L20e230a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e230a.dat right
+[ 22, 27 ] = ascii (fp) : "./hrtfs/elev20/L20e225a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e225a.dat right
+[ 22, 28 ] = ascii (fp) : "./hrtfs/elev20/L20e220a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e220a.dat right
+[ 22, 29 ] = ascii (fp) : "./hrtfs/elev20/L20e215a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e215a.dat right
+[ 22, 30 ] = ascii (fp) : "./hrtfs/elev20/L20e210a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e210a.dat right
+[ 22, 31 ] = ascii (fp) : "./hrtfs/elev20/L20e205a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e205a.dat right
+[ 22, 32 ] = ascii (fp) : "./hrtfs/elev20/L20e200a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e200a.dat right
+[ 22, 33 ] = ascii (fp) : "./hrtfs/elev20/L20e195a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e195a.dat right
+[ 22, 34 ] = ascii (fp) : "./hrtfs/elev20/L20e190a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e190a.dat right
+[ 22, 35 ] = ascii (fp) : "./hrtfs/elev20/L20e185a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e185a.dat right
+[ 22, 36 ] = ascii (fp) : "./hrtfs/elev20/L20e180a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e180a.dat right
+[ 22, 37 ] = ascii (fp) : "./hrtfs/elev20/L20e175a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e175a.dat right
+[ 22, 38 ] = ascii (fp) : "./hrtfs/elev20/L20e170a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e170a.dat right
+[ 22, 39 ] = ascii (fp) : "./hrtfs/elev20/L20e165a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e165a.dat right
+[ 22, 40 ] = ascii (fp) : "./hrtfs/elev20/L20e160a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e160a.dat right
+[ 22, 41 ] = ascii (fp) : "./hrtfs/elev20/L20e155a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e155a.dat right
+[ 22, 42 ] = ascii (fp) : "./hrtfs/elev20/L20e150a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e150a.dat right
+[ 22, 43 ] = ascii (fp) : "./hrtfs/elev20/L20e145a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e145a.dat right
+[ 22, 44 ] = ascii (fp) : "./hrtfs/elev20/L20e140a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e140a.dat right
+[ 22, 45 ] = ascii (fp) : "./hrtfs/elev20/L20e135a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e135a.dat right
+[ 22, 46 ] = ascii (fp) : "./hrtfs/elev20/L20e130a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e130a.dat right
+[ 22, 47 ] = ascii (fp) : "./hrtfs/elev20/L20e125a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e125a.dat right
+[ 22, 48 ] = ascii (fp) : "./hrtfs/elev20/L20e120a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e120a.dat right
+[ 22, 49 ] = ascii (fp) : "./hrtfs/elev20/L20e115a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e115a.dat right
+[ 22, 50 ] = ascii (fp) : "./hrtfs/elev20/L20e110a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e110a.dat right
+[ 22, 51 ] = ascii (fp) : "./hrtfs/elev20/L20e105a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e105a.dat right
+[ 22, 52 ] = ascii (fp) : "./hrtfs/elev20/L20e100a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e100a.dat right
+[ 22, 53 ] = ascii (fp) : "./hrtfs/elev20/L20e095a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e095a.dat right
+[ 22, 54 ] = ascii (fp) : "./hrtfs/elev20/L20e090a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e090a.dat right
+[ 22, 55 ] = ascii (fp) : "./hrtfs/elev20/L20e085a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e085a.dat right
+[ 22, 56 ] = ascii (fp) : "./hrtfs/elev20/L20e080a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e080a.dat right
+[ 22, 57 ] = ascii (fp) : "./hrtfs/elev20/L20e075a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e075a.dat right
+[ 22, 58 ] = ascii (fp) : "./hrtfs/elev20/L20e070a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e070a.dat right
+[ 22, 59 ] = ascii (fp) : "./hrtfs/elev20/L20e065a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e065a.dat right
+[ 22, 60 ] = ascii (fp) : "./hrtfs/elev20/L20e060a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e060a.dat right
+[ 22, 61 ] = ascii (fp) : "./hrtfs/elev20/L20e055a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e055a.dat right
+[ 22, 62 ] = ascii (fp) : "./hrtfs/elev20/L20e050a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e050a.dat right
+[ 22, 63 ] = ascii (fp) : "./hrtfs/elev20/L20e045a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e045a.dat right
+[ 22, 64 ] = ascii (fp) : "./hrtfs/elev20/L20e040a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e040a.dat right
+[ 22, 65 ] = ascii (fp) : "./hrtfs/elev20/L20e035a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e035a.dat right
+[ 22, 66 ] = ascii (fp) : "./hrtfs/elev20/L20e030a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e030a.dat right
+[ 22, 67 ] = ascii (fp) : "./hrtfs/elev20/L20e025a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e025a.dat right
+[ 22, 68 ] = ascii (fp) : "./hrtfs/elev20/L20e020a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e020a.dat right
+[ 22, 69 ] = ascii (fp) : "./hrtfs/elev20/L20e015a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e015a.dat right
+[ 22, 70 ] = ascii (fp) : "./hrtfs/elev20/L20e010a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e010a.dat right
+[ 22, 71 ] = ascii (fp) : "./hrtfs/elev20/L20e005a.dat left
+ + ascii (fp) : "./hrtfs/elev20/R20e005a.dat right
-[ 23, 0 ] = ascii (fp) : "./hrtfs/elev25/L25e000a.dat"
-[ 23, 1 ] = ascii (fp) : "./hrtfs/elev25/L25e355a.dat"
-[ 23, 2 ] = ascii (fp) : "./hrtfs/elev25/L25e350a.dat"
-[ 23, 3 ] = ascii (fp) : "./hrtfs/elev25/L25e345a.dat"
-[ 23, 4 ] = ascii (fp) : "./hrtfs/elev25/L25e340a.dat"
-[ 23, 5 ] = ascii (fp) : "./hrtfs/elev25/L25e335a.dat"
-[ 23, 6 ] = ascii (fp) : "./hrtfs/elev25/L25e330a.dat"
-[ 23, 7 ] = ascii (fp) : "./hrtfs/elev25/L25e325a.dat"
-[ 23, 8 ] = ascii (fp) : "./hrtfs/elev25/L25e320a.dat"
-[ 23, 9 ] = ascii (fp) : "./hrtfs/elev25/L25e315a.dat"
-[ 23, 10 ] = ascii (fp) : "./hrtfs/elev25/L25e310a.dat"
-[ 23, 11 ] = ascii (fp) : "./hrtfs/elev25/L25e305a.dat"
-[ 23, 12 ] = ascii (fp) : "./hrtfs/elev25/L25e300a.dat"
-[ 23, 13 ] = ascii (fp) : "./hrtfs/elev25/L25e295a.dat"
-[ 23, 14 ] = ascii (fp) : "./hrtfs/elev25/L25e290a.dat"
-[ 23, 15 ] = ascii (fp) : "./hrtfs/elev25/L25e285a.dat"
-[ 23, 16 ] = ascii (fp) : "./hrtfs/elev25/L25e280a.dat"
-[ 23, 17 ] = ascii (fp) : "./hrtfs/elev25/L25e275a.dat"
-[ 23, 18 ] = ascii (fp) : "./hrtfs/elev25/L25e270a.dat"
-[ 23, 19 ] = ascii (fp) : "./hrtfs/elev25/L25e265a.dat"
-[ 23, 20 ] = ascii (fp) : "./hrtfs/elev25/L25e260a.dat"
-[ 23, 21 ] = ascii (fp) : "./hrtfs/elev25/L25e255a.dat"
-[ 23, 22 ] = ascii (fp) : "./hrtfs/elev25/L25e250a.dat"
-[ 23, 23 ] = ascii (fp) : "./hrtfs/elev25/L25e245a.dat"
-[ 23, 24 ] = ascii (fp) : "./hrtfs/elev25/L25e240a.dat"
-[ 23, 25 ] = ascii (fp) : "./hrtfs/elev25/L25e235a.dat"
-[ 23, 26 ] = ascii (fp) : "./hrtfs/elev25/L25e230a.dat"
-[ 23, 27 ] = ascii (fp) : "./hrtfs/elev25/L25e225a.dat"
-[ 23, 28 ] = ascii (fp) : "./hrtfs/elev25/L25e220a.dat"
-[ 23, 29 ] = ascii (fp) : "./hrtfs/elev25/L25e215a.dat"
-[ 23, 30 ] = ascii (fp) : "./hrtfs/elev25/L25e210a.dat"
-[ 23, 31 ] = ascii (fp) : "./hrtfs/elev25/L25e205a.dat"
-[ 23, 32 ] = ascii (fp) : "./hrtfs/elev25/L25e200a.dat"
-[ 23, 33 ] = ascii (fp) : "./hrtfs/elev25/L25e195a.dat"
-[ 23, 34 ] = ascii (fp) : "./hrtfs/elev25/L25e190a.dat"
-[ 23, 35 ] = ascii (fp) : "./hrtfs/elev25/L25e185a.dat"
-[ 23, 36 ] = ascii (fp) : "./hrtfs/elev25/L25e180a.dat"
-[ 23, 37 ] = ascii (fp) : "./hrtfs/elev25/L25e175a.dat"
-[ 23, 38 ] = ascii (fp) : "./hrtfs/elev25/L25e170a.dat"
-[ 23, 39 ] = ascii (fp) : "./hrtfs/elev25/L25e165a.dat"
-[ 23, 40 ] = ascii (fp) : "./hrtfs/elev25/L25e160a.dat"
-[ 23, 41 ] = ascii (fp) : "./hrtfs/elev25/L25e155a.dat"
-[ 23, 42 ] = ascii (fp) : "./hrtfs/elev25/L25e150a.dat"
-[ 23, 43 ] = ascii (fp) : "./hrtfs/elev25/L25e145a.dat"
-[ 23, 44 ] = ascii (fp) : "./hrtfs/elev25/L25e140a.dat"
-[ 23, 45 ] = ascii (fp) : "./hrtfs/elev25/L25e135a.dat"
-[ 23, 46 ] = ascii (fp) : "./hrtfs/elev25/L25e130a.dat"
-[ 23, 47 ] = ascii (fp) : "./hrtfs/elev25/L25e125a.dat"
-[ 23, 48 ] = ascii (fp) : "./hrtfs/elev25/L25e120a.dat"
-[ 23, 49 ] = ascii (fp) : "./hrtfs/elev25/L25e115a.dat"
-[ 23, 50 ] = ascii (fp) : "./hrtfs/elev25/L25e110a.dat"
-[ 23, 51 ] = ascii (fp) : "./hrtfs/elev25/L25e105a.dat"
-[ 23, 52 ] = ascii (fp) : "./hrtfs/elev25/L25e100a.dat"
-[ 23, 53 ] = ascii (fp) : "./hrtfs/elev25/L25e095a.dat"
-[ 23, 54 ] = ascii (fp) : "./hrtfs/elev25/L25e090a.dat"
-[ 23, 55 ] = ascii (fp) : "./hrtfs/elev25/L25e085a.dat"
-[ 23, 56 ] = ascii (fp) : "./hrtfs/elev25/L25e080a.dat"
-[ 23, 57 ] = ascii (fp) : "./hrtfs/elev25/L25e075a.dat"
-[ 23, 58 ] = ascii (fp) : "./hrtfs/elev25/L25e070a.dat"
-[ 23, 59 ] = ascii (fp) : "./hrtfs/elev25/L25e065a.dat"
-[ 23, 60 ] = ascii (fp) : "./hrtfs/elev25/L25e060a.dat"
-[ 23, 61 ] = ascii (fp) : "./hrtfs/elev25/L25e055a.dat"
-[ 23, 62 ] = ascii (fp) : "./hrtfs/elev25/L25e050a.dat"
-[ 23, 63 ] = ascii (fp) : "./hrtfs/elev25/L25e045a.dat"
-[ 23, 64 ] = ascii (fp) : "./hrtfs/elev25/L25e040a.dat"
-[ 23, 65 ] = ascii (fp) : "./hrtfs/elev25/L25e035a.dat"
-[ 23, 66 ] = ascii (fp) : "./hrtfs/elev25/L25e030a.dat"
-[ 23, 67 ] = ascii (fp) : "./hrtfs/elev25/L25e025a.dat"
-[ 23, 68 ] = ascii (fp) : "./hrtfs/elev25/L25e020a.dat"
-[ 23, 69 ] = ascii (fp) : "./hrtfs/elev25/L25e015a.dat"
-[ 23, 70 ] = ascii (fp) : "./hrtfs/elev25/L25e010a.dat"
-[ 23, 71 ] = ascii (fp) : "./hrtfs/elev25/L25e005a.dat"
+[ 23, 0 ] = ascii (fp) : "./hrtfs/elev25/L25e000a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e000a.dat right
+[ 23, 1 ] = ascii (fp) : "./hrtfs/elev25/L25e355a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e355a.dat right
+[ 23, 2 ] = ascii (fp) : "./hrtfs/elev25/L25e350a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e350a.dat right
+[ 23, 3 ] = ascii (fp) : "./hrtfs/elev25/L25e345a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e345a.dat right
+[ 23, 4 ] = ascii (fp) : "./hrtfs/elev25/L25e340a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e340a.dat right
+[ 23, 5 ] = ascii (fp) : "./hrtfs/elev25/L25e335a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e335a.dat right
+[ 23, 6 ] = ascii (fp) : "./hrtfs/elev25/L25e330a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e330a.dat right
+[ 23, 7 ] = ascii (fp) : "./hrtfs/elev25/L25e325a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e325a.dat right
+[ 23, 8 ] = ascii (fp) : "./hrtfs/elev25/L25e320a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e320a.dat right
+[ 23, 9 ] = ascii (fp) : "./hrtfs/elev25/L25e315a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e315a.dat right
+[ 23, 10 ] = ascii (fp) : "./hrtfs/elev25/L25e310a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e310a.dat right
+[ 23, 11 ] = ascii (fp) : "./hrtfs/elev25/L25e305a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e305a.dat right
+[ 23, 12 ] = ascii (fp) : "./hrtfs/elev25/L25e300a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e300a.dat right
+[ 23, 13 ] = ascii (fp) : "./hrtfs/elev25/L25e295a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e295a.dat right
+[ 23, 14 ] = ascii (fp) : "./hrtfs/elev25/L25e290a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e290a.dat right
+[ 23, 15 ] = ascii (fp) : "./hrtfs/elev25/L25e285a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e285a.dat right
+[ 23, 16 ] = ascii (fp) : "./hrtfs/elev25/L25e280a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e280a.dat right
+[ 23, 17 ] = ascii (fp) : "./hrtfs/elev25/L25e275a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e275a.dat right
+[ 23, 18 ] = ascii (fp) : "./hrtfs/elev25/L25e270a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e270a.dat right
+[ 23, 19 ] = ascii (fp) : "./hrtfs/elev25/L25e265a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e265a.dat right
+[ 23, 20 ] = ascii (fp) : "./hrtfs/elev25/L25e260a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e260a.dat right
+[ 23, 21 ] = ascii (fp) : "./hrtfs/elev25/L25e255a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e255a.dat right
+[ 23, 22 ] = ascii (fp) : "./hrtfs/elev25/L25e250a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e250a.dat right
+[ 23, 23 ] = ascii (fp) : "./hrtfs/elev25/L25e245a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e245a.dat right
+[ 23, 24 ] = ascii (fp) : "./hrtfs/elev25/L25e240a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e240a.dat right
+[ 23, 25 ] = ascii (fp) : "./hrtfs/elev25/L25e235a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e235a.dat right
+[ 23, 26 ] = ascii (fp) : "./hrtfs/elev25/L25e230a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e230a.dat right
+[ 23, 27 ] = ascii (fp) : "./hrtfs/elev25/L25e225a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e225a.dat right
+[ 23, 28 ] = ascii (fp) : "./hrtfs/elev25/L25e220a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e220a.dat right
+[ 23, 29 ] = ascii (fp) : "./hrtfs/elev25/L25e215a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e215a.dat right
+[ 23, 30 ] = ascii (fp) : "./hrtfs/elev25/L25e210a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e210a.dat right
+[ 23, 31 ] = ascii (fp) : "./hrtfs/elev25/L25e205a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e205a.dat right
+[ 23, 32 ] = ascii (fp) : "./hrtfs/elev25/L25e200a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e200a.dat right
+[ 23, 33 ] = ascii (fp) : "./hrtfs/elev25/L25e195a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e195a.dat right
+[ 23, 34 ] = ascii (fp) : "./hrtfs/elev25/L25e190a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e190a.dat right
+[ 23, 35 ] = ascii (fp) : "./hrtfs/elev25/L25e185a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e185a.dat right
+[ 23, 36 ] = ascii (fp) : "./hrtfs/elev25/L25e180a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e180a.dat right
+[ 23, 37 ] = ascii (fp) : "./hrtfs/elev25/L25e175a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e175a.dat right
+[ 23, 38 ] = ascii (fp) : "./hrtfs/elev25/L25e170a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e170a.dat right
+[ 23, 39 ] = ascii (fp) : "./hrtfs/elev25/L25e165a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e165a.dat right
+[ 23, 40 ] = ascii (fp) : "./hrtfs/elev25/L25e160a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e160a.dat right
+[ 23, 41 ] = ascii (fp) : "./hrtfs/elev25/L25e155a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e155a.dat right
+[ 23, 42 ] = ascii (fp) : "./hrtfs/elev25/L25e150a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e150a.dat right
+[ 23, 43 ] = ascii (fp) : "./hrtfs/elev25/L25e145a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e145a.dat right
+[ 23, 44 ] = ascii (fp) : "./hrtfs/elev25/L25e140a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e140a.dat right
+[ 23, 45 ] = ascii (fp) : "./hrtfs/elev25/L25e135a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e135a.dat right
+[ 23, 46 ] = ascii (fp) : "./hrtfs/elev25/L25e130a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e130a.dat right
+[ 23, 47 ] = ascii (fp) : "./hrtfs/elev25/L25e125a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e125a.dat right
+[ 23, 48 ] = ascii (fp) : "./hrtfs/elev25/L25e120a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e120a.dat right
+[ 23, 49 ] = ascii (fp) : "./hrtfs/elev25/L25e115a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e115a.dat right
+[ 23, 50 ] = ascii (fp) : "./hrtfs/elev25/L25e110a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e110a.dat right
+[ 23, 51 ] = ascii (fp) : "./hrtfs/elev25/L25e105a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e105a.dat right
+[ 23, 52 ] = ascii (fp) : "./hrtfs/elev25/L25e100a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e100a.dat right
+[ 23, 53 ] = ascii (fp) : "./hrtfs/elev25/L25e095a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e095a.dat right
+[ 23, 54 ] = ascii (fp) : "./hrtfs/elev25/L25e090a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e090a.dat right
+[ 23, 55 ] = ascii (fp) : "./hrtfs/elev25/L25e085a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e085a.dat right
+[ 23, 56 ] = ascii (fp) : "./hrtfs/elev25/L25e080a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e080a.dat right
+[ 23, 57 ] = ascii (fp) : "./hrtfs/elev25/L25e075a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e075a.dat right
+[ 23, 58 ] = ascii (fp) : "./hrtfs/elev25/L25e070a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e070a.dat right
+[ 23, 59 ] = ascii (fp) : "./hrtfs/elev25/L25e065a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e065a.dat right
+[ 23, 60 ] = ascii (fp) : "./hrtfs/elev25/L25e060a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e060a.dat right
+[ 23, 61 ] = ascii (fp) : "./hrtfs/elev25/L25e055a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e055a.dat right
+[ 23, 62 ] = ascii (fp) : "./hrtfs/elev25/L25e050a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e050a.dat right
+[ 23, 63 ] = ascii (fp) : "./hrtfs/elev25/L25e045a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e045a.dat right
+[ 23, 64 ] = ascii (fp) : "./hrtfs/elev25/L25e040a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e040a.dat right
+[ 23, 65 ] = ascii (fp) : "./hrtfs/elev25/L25e035a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e035a.dat right
+[ 23, 66 ] = ascii (fp) : "./hrtfs/elev25/L25e030a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e030a.dat right
+[ 23, 67 ] = ascii (fp) : "./hrtfs/elev25/L25e025a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e025a.dat right
+[ 23, 68 ] = ascii (fp) : "./hrtfs/elev25/L25e020a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e020a.dat right
+[ 23, 69 ] = ascii (fp) : "./hrtfs/elev25/L25e015a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e015a.dat right
+[ 23, 70 ] = ascii (fp) : "./hrtfs/elev25/L25e010a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e010a.dat right
+[ 23, 71 ] = ascii (fp) : "./hrtfs/elev25/L25e005a.dat left
+ + ascii (fp) : "./hrtfs/elev25/R25e005a.dat right
-[ 24, 0 ] = ascii (fp) : "./hrtfs/elev30/L30e000a.dat"
-[ 24, 1 ] = ascii (fp) : "./hrtfs/elev30/L30e355a.dat"
-[ 24, 2 ] = ascii (fp) : "./hrtfs/elev30/L30e350a.dat"
-[ 24, 3 ] = ascii (fp) : "./hrtfs/elev30/L30e345a.dat"
-[ 24, 4 ] = ascii (fp) : "./hrtfs/elev30/L30e340a.dat"
-[ 24, 5 ] = ascii (fp) : "./hrtfs/elev30/L30e335a.dat"
-[ 24, 6 ] = ascii (fp) : "./hrtfs/elev30/L30e330a.dat"
-[ 24, 7 ] = ascii (fp) : "./hrtfs/elev30/L30e325a.dat"
-[ 24, 8 ] = ascii (fp) : "./hrtfs/elev30/L30e320a.dat"
-[ 24, 9 ] = ascii (fp) : "./hrtfs/elev30/L30e315a.dat"
-[ 24, 10 ] = ascii (fp) : "./hrtfs/elev30/L30e310a.dat"
-[ 24, 11 ] = ascii (fp) : "./hrtfs/elev30/L30e305a.dat"
-[ 24, 12 ] = ascii (fp) : "./hrtfs/elev30/L30e300a.dat"
-[ 24, 13 ] = ascii (fp) : "./hrtfs/elev30/L30e295a.dat"
-[ 24, 14 ] = ascii (fp) : "./hrtfs/elev30/L30e290a.dat"
-[ 24, 15 ] = ascii (fp) : "./hrtfs/elev30/L30e285a.dat"
-[ 24, 16 ] = ascii (fp) : "./hrtfs/elev30/L30e280a.dat"
-[ 24, 17 ] = ascii (fp) : "./hrtfs/elev30/L30e275a.dat"
-[ 24, 18 ] = ascii (fp) : "./hrtfs/elev30/L30e270a.dat"
-[ 24, 19 ] = ascii (fp) : "./hrtfs/elev30/L30e265a.dat"
-[ 24, 20 ] = ascii (fp) : "./hrtfs/elev30/L30e260a.dat"
-[ 24, 21 ] = ascii (fp) : "./hrtfs/elev30/L30e255a.dat"
-[ 24, 22 ] = ascii (fp) : "./hrtfs/elev30/L30e250a.dat"
-[ 24, 23 ] = ascii (fp) : "./hrtfs/elev30/L30e245a.dat"
-[ 24, 24 ] = ascii (fp) : "./hrtfs/elev30/L30e240a.dat"
-[ 24, 25 ] = ascii (fp) : "./hrtfs/elev30/L30e235a.dat"
-[ 24, 26 ] = ascii (fp) : "./hrtfs/elev30/L30e230a.dat"
-[ 24, 27 ] = ascii (fp) : "./hrtfs/elev30/L30e225a.dat"
-[ 24, 28 ] = ascii (fp) : "./hrtfs/elev30/L30e220a.dat"
-[ 24, 29 ] = ascii (fp) : "./hrtfs/elev30/L30e215a.dat"
-[ 24, 30 ] = ascii (fp) : "./hrtfs/elev30/L30e210a.dat"
-[ 24, 31 ] = ascii (fp) : "./hrtfs/elev30/L30e205a.dat"
-[ 24, 32 ] = ascii (fp) : "./hrtfs/elev30/L30e200a.dat"
-[ 24, 33 ] = ascii (fp) : "./hrtfs/elev30/L30e195a.dat"
-[ 24, 34 ] = ascii (fp) : "./hrtfs/elev30/L30e190a.dat"
-[ 24, 35 ] = ascii (fp) : "./hrtfs/elev30/L30e185a.dat"
-[ 24, 36 ] = ascii (fp) : "./hrtfs/elev30/L30e180a.dat"
-[ 24, 37 ] = ascii (fp) : "./hrtfs/elev30/L30e175a.dat"
-[ 24, 38 ] = ascii (fp) : "./hrtfs/elev30/L30e170a.dat"
-[ 24, 39 ] = ascii (fp) : "./hrtfs/elev30/L30e165a.dat"
-[ 24, 40 ] = ascii (fp) : "./hrtfs/elev30/L30e160a.dat"
-[ 24, 41 ] = ascii (fp) : "./hrtfs/elev30/L30e155a.dat"
-[ 24, 42 ] = ascii (fp) : "./hrtfs/elev30/L30e150a.dat"
-[ 24, 43 ] = ascii (fp) : "./hrtfs/elev30/L30e145a.dat"
-[ 24, 44 ] = ascii (fp) : "./hrtfs/elev30/L30e140a.dat"
-[ 24, 45 ] = ascii (fp) : "./hrtfs/elev30/L30e135a.dat"
-[ 24, 46 ] = ascii (fp) : "./hrtfs/elev30/L30e130a.dat"
-[ 24, 47 ] = ascii (fp) : "./hrtfs/elev30/L30e125a.dat"
-[ 24, 48 ] = ascii (fp) : "./hrtfs/elev30/L30e120a.dat"
-[ 24, 49 ] = ascii (fp) : "./hrtfs/elev30/L30e115a.dat"
-[ 24, 50 ] = ascii (fp) : "./hrtfs/elev30/L30e110a.dat"
-[ 24, 51 ] = ascii (fp) : "./hrtfs/elev30/L30e105a.dat"
-[ 24, 52 ] = ascii (fp) : "./hrtfs/elev30/L30e100a.dat"
-[ 24, 53 ] = ascii (fp) : "./hrtfs/elev30/L30e095a.dat"
-[ 24, 54 ] = ascii (fp) : "./hrtfs/elev30/L30e090a.dat"
-[ 24, 55 ] = ascii (fp) : "./hrtfs/elev30/L30e085a.dat"
-[ 24, 56 ] = ascii (fp) : "./hrtfs/elev30/L30e080a.dat"
-[ 24, 57 ] = ascii (fp) : "./hrtfs/elev30/L30e075a.dat"
-[ 24, 58 ] = ascii (fp) : "./hrtfs/elev30/L30e070a.dat"
-[ 24, 59 ] = ascii (fp) : "./hrtfs/elev30/L30e065a.dat"
-[ 24, 60 ] = ascii (fp) : "./hrtfs/elev30/L30e060a.dat"
-[ 24, 61 ] = ascii (fp) : "./hrtfs/elev30/L30e055a.dat"
-[ 24, 62 ] = ascii (fp) : "./hrtfs/elev30/L30e050a.dat"
-[ 24, 63 ] = ascii (fp) : "./hrtfs/elev30/L30e045a.dat"
-[ 24, 64 ] = ascii (fp) : "./hrtfs/elev30/L30e040a.dat"
-[ 24, 65 ] = ascii (fp) : "./hrtfs/elev30/L30e035a.dat"
-[ 24, 66 ] = ascii (fp) : "./hrtfs/elev30/L30e030a.dat"
-[ 24, 67 ] = ascii (fp) : "./hrtfs/elev30/L30e025a.dat"
-[ 24, 68 ] = ascii (fp) : "./hrtfs/elev30/L30e020a.dat"
-[ 24, 69 ] = ascii (fp) : "./hrtfs/elev30/L30e015a.dat"
-[ 24, 70 ] = ascii (fp) : "./hrtfs/elev30/L30e010a.dat"
-[ 24, 71 ] = ascii (fp) : "./hrtfs/elev30/L30e005a.dat"
+[ 24, 0 ] = ascii (fp) : "./hrtfs/elev30/L30e000a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e000a.dat right
+[ 24, 1 ] = ascii (fp) : "./hrtfs/elev30/L30e355a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e355a.dat right
+[ 24, 2 ] = ascii (fp) : "./hrtfs/elev30/L30e350a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e350a.dat right
+[ 24, 3 ] = ascii (fp) : "./hrtfs/elev30/L30e345a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e345a.dat right
+[ 24, 4 ] = ascii (fp) : "./hrtfs/elev30/L30e340a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e340a.dat right
+[ 24, 5 ] = ascii (fp) : "./hrtfs/elev30/L30e335a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e335a.dat right
+[ 24, 6 ] = ascii (fp) : "./hrtfs/elev30/L30e330a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e330a.dat right
+[ 24, 7 ] = ascii (fp) : "./hrtfs/elev30/L30e325a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e325a.dat right
+[ 24, 8 ] = ascii (fp) : "./hrtfs/elev30/L30e320a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e320a.dat right
+[ 24, 9 ] = ascii (fp) : "./hrtfs/elev30/L30e315a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e315a.dat right
+[ 24, 10 ] = ascii (fp) : "./hrtfs/elev30/L30e310a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e310a.dat right
+[ 24, 11 ] = ascii (fp) : "./hrtfs/elev30/L30e305a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e305a.dat right
+[ 24, 12 ] = ascii (fp) : "./hrtfs/elev30/L30e300a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e300a.dat right
+[ 24, 13 ] = ascii (fp) : "./hrtfs/elev30/L30e295a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e295a.dat right
+[ 24, 14 ] = ascii (fp) : "./hrtfs/elev30/L30e290a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e290a.dat right
+[ 24, 15 ] = ascii (fp) : "./hrtfs/elev30/L30e285a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e285a.dat right
+[ 24, 16 ] = ascii (fp) : "./hrtfs/elev30/L30e280a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e280a.dat right
+[ 24, 17 ] = ascii (fp) : "./hrtfs/elev30/L30e275a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e275a.dat right
+[ 24, 18 ] = ascii (fp) : "./hrtfs/elev30/L30e270a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e270a.dat right
+[ 24, 19 ] = ascii (fp) : "./hrtfs/elev30/L30e265a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e265a.dat right
+[ 24, 20 ] = ascii (fp) : "./hrtfs/elev30/L30e260a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e260a.dat right
+[ 24, 21 ] = ascii (fp) : "./hrtfs/elev30/L30e255a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e255a.dat right
+[ 24, 22 ] = ascii (fp) : "./hrtfs/elev30/L30e250a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e250a.dat right
+[ 24, 23 ] = ascii (fp) : "./hrtfs/elev30/L30e245a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e245a.dat right
+[ 24, 24 ] = ascii (fp) : "./hrtfs/elev30/L30e240a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e240a.dat right
+[ 24, 25 ] = ascii (fp) : "./hrtfs/elev30/L30e235a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e235a.dat right
+[ 24, 26 ] = ascii (fp) : "./hrtfs/elev30/L30e230a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e230a.dat right
+[ 24, 27 ] = ascii (fp) : "./hrtfs/elev30/L30e225a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e225a.dat right
+[ 24, 28 ] = ascii (fp) : "./hrtfs/elev30/L30e220a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e220a.dat right
+[ 24, 29 ] = ascii (fp) : "./hrtfs/elev30/L30e215a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e215a.dat right
+[ 24, 30 ] = ascii (fp) : "./hrtfs/elev30/L30e210a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e210a.dat right
+[ 24, 31 ] = ascii (fp) : "./hrtfs/elev30/L30e205a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e205a.dat right
+[ 24, 32 ] = ascii (fp) : "./hrtfs/elev30/L30e200a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e200a.dat right
+[ 24, 33 ] = ascii (fp) : "./hrtfs/elev30/L30e195a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e195a.dat right
+[ 24, 34 ] = ascii (fp) : "./hrtfs/elev30/L30e190a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e190a.dat right
+[ 24, 35 ] = ascii (fp) : "./hrtfs/elev30/L30e185a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e185a.dat right
+[ 24, 36 ] = ascii (fp) : "./hrtfs/elev30/L30e180a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e180a.dat right
+[ 24, 37 ] = ascii (fp) : "./hrtfs/elev30/L30e175a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e175a.dat right
+[ 24, 38 ] = ascii (fp) : "./hrtfs/elev30/L30e170a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e170a.dat right
+[ 24, 39 ] = ascii (fp) : "./hrtfs/elev30/L30e165a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e165a.dat right
+[ 24, 40 ] = ascii (fp) : "./hrtfs/elev30/L30e160a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e160a.dat right
+[ 24, 41 ] = ascii (fp) : "./hrtfs/elev30/L30e155a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e155a.dat right
+[ 24, 42 ] = ascii (fp) : "./hrtfs/elev30/L30e150a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e150a.dat right
+[ 24, 43 ] = ascii (fp) : "./hrtfs/elev30/L30e145a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e145a.dat right
+[ 24, 44 ] = ascii (fp) : "./hrtfs/elev30/L30e140a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e140a.dat right
+[ 24, 45 ] = ascii (fp) : "./hrtfs/elev30/L30e135a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e135a.dat right
+[ 24, 46 ] = ascii (fp) : "./hrtfs/elev30/L30e130a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e130a.dat right
+[ 24, 47 ] = ascii (fp) : "./hrtfs/elev30/L30e125a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e125a.dat right
+[ 24, 48 ] = ascii (fp) : "./hrtfs/elev30/L30e120a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e120a.dat right
+[ 24, 49 ] = ascii (fp) : "./hrtfs/elev30/L30e115a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e115a.dat right
+[ 24, 50 ] = ascii (fp) : "./hrtfs/elev30/L30e110a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e110a.dat right
+[ 24, 51 ] = ascii (fp) : "./hrtfs/elev30/L30e105a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e105a.dat right
+[ 24, 52 ] = ascii (fp) : "./hrtfs/elev30/L30e100a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e100a.dat right
+[ 24, 53 ] = ascii (fp) : "./hrtfs/elev30/L30e095a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e095a.dat right
+[ 24, 54 ] = ascii (fp) : "./hrtfs/elev30/L30e090a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e090a.dat right
+[ 24, 55 ] = ascii (fp) : "./hrtfs/elev30/L30e085a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e085a.dat right
+[ 24, 56 ] = ascii (fp) : "./hrtfs/elev30/L30e080a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e080a.dat right
+[ 24, 57 ] = ascii (fp) : "./hrtfs/elev30/L30e075a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e075a.dat right
+[ 24, 58 ] = ascii (fp) : "./hrtfs/elev30/L30e070a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e070a.dat right
+[ 24, 59 ] = ascii (fp) : "./hrtfs/elev30/L30e065a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e065a.dat right
+[ 24, 60 ] = ascii (fp) : "./hrtfs/elev30/L30e060a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e060a.dat right
+[ 24, 61 ] = ascii (fp) : "./hrtfs/elev30/L30e055a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e055a.dat right
+[ 24, 62 ] = ascii (fp) : "./hrtfs/elev30/L30e050a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e050a.dat right
+[ 24, 63 ] = ascii (fp) : "./hrtfs/elev30/L30e045a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e045a.dat right
+[ 24, 64 ] = ascii (fp) : "./hrtfs/elev30/L30e040a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e040a.dat right
+[ 24, 65 ] = ascii (fp) : "./hrtfs/elev30/L30e035a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e035a.dat right
+[ 24, 66 ] = ascii (fp) : "./hrtfs/elev30/L30e030a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e030a.dat right
+[ 24, 67 ] = ascii (fp) : "./hrtfs/elev30/L30e025a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e025a.dat right
+[ 24, 68 ] = ascii (fp) : "./hrtfs/elev30/L30e020a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e020a.dat right
+[ 24, 69 ] = ascii (fp) : "./hrtfs/elev30/L30e015a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e015a.dat right
+[ 24, 70 ] = ascii (fp) : "./hrtfs/elev30/L30e010a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e010a.dat right
+[ 24, 71 ] = ascii (fp) : "./hrtfs/elev30/L30e005a.dat left
+ + ascii (fp) : "./hrtfs/elev30/R30e005a.dat right
-[ 25, 0 ] = ascii (fp) : "./hrtfs/elev35/L35e000a.dat"
-[ 25, 1 ] = ascii (fp) : "./hrtfs/elev35/L35e355a.dat"
-[ 25, 2 ] = ascii (fp) : "./hrtfs/elev35/L35e350a.dat"
-[ 25, 3 ] = ascii (fp) : "./hrtfs/elev35/L35e345a.dat"
-[ 25, 4 ] = ascii (fp) : "./hrtfs/elev35/L35e340a.dat"
-[ 25, 5 ] = ascii (fp) : "./hrtfs/elev35/L35e335a.dat"
-[ 25, 6 ] = ascii (fp) : "./hrtfs/elev35/L35e330a.dat"
-[ 25, 7 ] = ascii (fp) : "./hrtfs/elev35/L35e325a.dat"
-[ 25, 8 ] = ascii (fp) : "./hrtfs/elev35/L35e320a.dat"
-[ 25, 9 ] = ascii (fp) : "./hrtfs/elev35/L35e315a.dat"
-[ 25, 10 ] = ascii (fp) : "./hrtfs/elev35/L35e310a.dat"
-[ 25, 11 ] = ascii (fp) : "./hrtfs/elev35/L35e305a.dat"
-[ 25, 12 ] = ascii (fp) : "./hrtfs/elev35/L35e300a.dat"
-[ 25, 13 ] = ascii (fp) : "./hrtfs/elev35/L35e295a.dat"
-[ 25, 14 ] = ascii (fp) : "./hrtfs/elev35/L35e290a.dat"
-[ 25, 15 ] = ascii (fp) : "./hrtfs/elev35/L35e285a.dat"
-[ 25, 16 ] = ascii (fp) : "./hrtfs/elev35/L35e280a.dat"
-[ 25, 17 ] = ascii (fp) : "./hrtfs/elev35/L35e275a.dat"
-[ 25, 18 ] = ascii (fp) : "./hrtfs/elev35/L35e270a.dat"
-[ 25, 19 ] = ascii (fp) : "./hrtfs/elev35/L35e265a.dat"
-[ 25, 20 ] = ascii (fp) : "./hrtfs/elev35/L35e260a.dat"
-[ 25, 21 ] = ascii (fp) : "./hrtfs/elev35/L35e255a.dat"
-[ 25, 22 ] = ascii (fp) : "./hrtfs/elev35/L35e250a.dat"
-[ 25, 23 ] = ascii (fp) : "./hrtfs/elev35/L35e245a.dat"
-[ 25, 24 ] = ascii (fp) : "./hrtfs/elev35/L35e240a.dat"
-[ 25, 25 ] = ascii (fp) : "./hrtfs/elev35/L35e235a.dat"
-[ 25, 26 ] = ascii (fp) : "./hrtfs/elev35/L35e230a.dat"
-[ 25, 27 ] = ascii (fp) : "./hrtfs/elev35/L35e225a.dat"
-[ 25, 28 ] = ascii (fp) : "./hrtfs/elev35/L35e220a.dat"
-[ 25, 29 ] = ascii (fp) : "./hrtfs/elev35/L35e215a.dat"
-[ 25, 30 ] = ascii (fp) : "./hrtfs/elev35/L35e210a.dat"
-[ 25, 31 ] = ascii (fp) : "./hrtfs/elev35/L35e205a.dat"
-[ 25, 32 ] = ascii (fp) : "./hrtfs/elev35/L35e200a.dat"
-[ 25, 33 ] = ascii (fp) : "./hrtfs/elev35/L35e195a.dat"
-[ 25, 34 ] = ascii (fp) : "./hrtfs/elev35/L35e190a.dat"
-[ 25, 35 ] = ascii (fp) : "./hrtfs/elev35/L35e185a.dat"
-[ 25, 36 ] = ascii (fp) : "./hrtfs/elev35/L35e180a.dat"
-[ 25, 37 ] = ascii (fp) : "./hrtfs/elev35/L35e175a.dat"
-[ 25, 38 ] = ascii (fp) : "./hrtfs/elev35/L35e170a.dat"
-[ 25, 39 ] = ascii (fp) : "./hrtfs/elev35/L35e165a.dat"
-[ 25, 40 ] = ascii (fp) : "./hrtfs/elev35/L35e160a.dat"
-[ 25, 41 ] = ascii (fp) : "./hrtfs/elev35/L35e155a.dat"
-[ 25, 42 ] = ascii (fp) : "./hrtfs/elev35/L35e150a.dat"
-[ 25, 43 ] = ascii (fp) : "./hrtfs/elev35/L35e145a.dat"
-[ 25, 44 ] = ascii (fp) : "./hrtfs/elev35/L35e140a.dat"
-[ 25, 45 ] = ascii (fp) : "./hrtfs/elev35/L35e135a.dat"
-[ 25, 46 ] = ascii (fp) : "./hrtfs/elev35/L35e130a.dat"
-[ 25, 47 ] = ascii (fp) : "./hrtfs/elev35/L35e125a.dat"
-[ 25, 48 ] = ascii (fp) : "./hrtfs/elev35/L35e120a.dat"
-[ 25, 49 ] = ascii (fp) : "./hrtfs/elev35/L35e115a.dat"
-[ 25, 50 ] = ascii (fp) : "./hrtfs/elev35/L35e110a.dat"
-[ 25, 51 ] = ascii (fp) : "./hrtfs/elev35/L35e105a.dat"
-[ 25, 52 ] = ascii (fp) : "./hrtfs/elev35/L35e100a.dat"
-[ 25, 53 ] = ascii (fp) : "./hrtfs/elev35/L35e095a.dat"
-[ 25, 54 ] = ascii (fp) : "./hrtfs/elev35/L35e090a.dat"
-[ 25, 55 ] = ascii (fp) : "./hrtfs/elev35/L35e085a.dat"
-[ 25, 56 ] = ascii (fp) : "./hrtfs/elev35/L35e080a.dat"
-[ 25, 57 ] = ascii (fp) : "./hrtfs/elev35/L35e075a.dat"
-[ 25, 58 ] = ascii (fp) : "./hrtfs/elev35/L35e070a.dat"
-[ 25, 59 ] = ascii (fp) : "./hrtfs/elev35/L35e065a.dat"
-[ 25, 60 ] = ascii (fp) : "./hrtfs/elev35/L35e060a.dat"
-[ 25, 61 ] = ascii (fp) : "./hrtfs/elev35/L35e055a.dat"
-[ 25, 62 ] = ascii (fp) : "./hrtfs/elev35/L35e050a.dat"
-[ 25, 63 ] = ascii (fp) : "./hrtfs/elev35/L35e045a.dat"
-[ 25, 64 ] = ascii (fp) : "./hrtfs/elev35/L35e040a.dat"
-[ 25, 65 ] = ascii (fp) : "./hrtfs/elev35/L35e035a.dat"
-[ 25, 66 ] = ascii (fp) : "./hrtfs/elev35/L35e030a.dat"
-[ 25, 67 ] = ascii (fp) : "./hrtfs/elev35/L35e025a.dat"
-[ 25, 68 ] = ascii (fp) : "./hrtfs/elev35/L35e020a.dat"
-[ 25, 69 ] = ascii (fp) : "./hrtfs/elev35/L35e015a.dat"
-[ 25, 70 ] = ascii (fp) : "./hrtfs/elev35/L35e010a.dat"
-[ 25, 71 ] = ascii (fp) : "./hrtfs/elev35/L35e005a.dat"
+[ 25, 0 ] = ascii (fp) : "./hrtfs/elev35/L35e000a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e000a.dat right
+[ 25, 1 ] = ascii (fp) : "./hrtfs/elev35/L35e355a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e355a.dat right
+[ 25, 2 ] = ascii (fp) : "./hrtfs/elev35/L35e350a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e350a.dat right
+[ 25, 3 ] = ascii (fp) : "./hrtfs/elev35/L35e345a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e345a.dat right
+[ 25, 4 ] = ascii (fp) : "./hrtfs/elev35/L35e340a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e340a.dat right
+[ 25, 5 ] = ascii (fp) : "./hrtfs/elev35/L35e335a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e335a.dat right
+[ 25, 6 ] = ascii (fp) : "./hrtfs/elev35/L35e330a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e330a.dat right
+[ 25, 7 ] = ascii (fp) : "./hrtfs/elev35/L35e325a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e325a.dat right
+[ 25, 8 ] = ascii (fp) : "./hrtfs/elev35/L35e320a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e320a.dat right
+[ 25, 9 ] = ascii (fp) : "./hrtfs/elev35/L35e315a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e315a.dat right
+[ 25, 10 ] = ascii (fp) : "./hrtfs/elev35/L35e310a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e310a.dat right
+[ 25, 11 ] = ascii (fp) : "./hrtfs/elev35/L35e305a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e305a.dat right
+[ 25, 12 ] = ascii (fp) : "./hrtfs/elev35/L35e300a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e300a.dat right
+[ 25, 13 ] = ascii (fp) : "./hrtfs/elev35/L35e295a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e295a.dat right
+[ 25, 14 ] = ascii (fp) : "./hrtfs/elev35/L35e290a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e290a.dat right
+[ 25, 15 ] = ascii (fp) : "./hrtfs/elev35/L35e285a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e285a.dat right
+[ 25, 16 ] = ascii (fp) : "./hrtfs/elev35/L35e280a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e280a.dat right
+[ 25, 17 ] = ascii (fp) : "./hrtfs/elev35/L35e275a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e275a.dat right
+[ 25, 18 ] = ascii (fp) : "./hrtfs/elev35/L35e270a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e270a.dat right
+[ 25, 19 ] = ascii (fp) : "./hrtfs/elev35/L35e265a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e265a.dat right
+[ 25, 20 ] = ascii (fp) : "./hrtfs/elev35/L35e260a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e260a.dat right
+[ 25, 21 ] = ascii (fp) : "./hrtfs/elev35/L35e255a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e255a.dat right
+[ 25, 22 ] = ascii (fp) : "./hrtfs/elev35/L35e250a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e250a.dat right
+[ 25, 23 ] = ascii (fp) : "./hrtfs/elev35/L35e245a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e245a.dat right
+[ 25, 24 ] = ascii (fp) : "./hrtfs/elev35/L35e240a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e240a.dat right
+[ 25, 25 ] = ascii (fp) : "./hrtfs/elev35/L35e235a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e235a.dat right
+[ 25, 26 ] = ascii (fp) : "./hrtfs/elev35/L35e230a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e230a.dat right
+[ 25, 27 ] = ascii (fp) : "./hrtfs/elev35/L35e225a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e225a.dat right
+[ 25, 28 ] = ascii (fp) : "./hrtfs/elev35/L35e220a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e220a.dat right
+[ 25, 29 ] = ascii (fp) : "./hrtfs/elev35/L35e215a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e215a.dat right
+[ 25, 30 ] = ascii (fp) : "./hrtfs/elev35/L35e210a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e210a.dat right
+[ 25, 31 ] = ascii (fp) : "./hrtfs/elev35/L35e205a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e205a.dat right
+[ 25, 32 ] = ascii (fp) : "./hrtfs/elev35/L35e200a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e200a.dat right
+[ 25, 33 ] = ascii (fp) : "./hrtfs/elev35/L35e195a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e195a.dat right
+[ 25, 34 ] = ascii (fp) : "./hrtfs/elev35/L35e190a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e190a.dat right
+[ 25, 35 ] = ascii (fp) : "./hrtfs/elev35/L35e185a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e185a.dat right
+[ 25, 36 ] = ascii (fp) : "./hrtfs/elev35/L35e180a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e180a.dat right
+[ 25, 37 ] = ascii (fp) : "./hrtfs/elev35/L35e175a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e175a.dat right
+[ 25, 38 ] = ascii (fp) : "./hrtfs/elev35/L35e170a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e170a.dat right
+[ 25, 39 ] = ascii (fp) : "./hrtfs/elev35/L35e165a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e165a.dat right
+[ 25, 40 ] = ascii (fp) : "./hrtfs/elev35/L35e160a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e160a.dat right
+[ 25, 41 ] = ascii (fp) : "./hrtfs/elev35/L35e155a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e155a.dat right
+[ 25, 42 ] = ascii (fp) : "./hrtfs/elev35/L35e150a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e150a.dat right
+[ 25, 43 ] = ascii (fp) : "./hrtfs/elev35/L35e145a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e145a.dat right
+[ 25, 44 ] = ascii (fp) : "./hrtfs/elev35/L35e140a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e140a.dat right
+[ 25, 45 ] = ascii (fp) : "./hrtfs/elev35/L35e135a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e135a.dat right
+[ 25, 46 ] = ascii (fp) : "./hrtfs/elev35/L35e130a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e130a.dat right
+[ 25, 47 ] = ascii (fp) : "./hrtfs/elev35/L35e125a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e125a.dat right
+[ 25, 48 ] = ascii (fp) : "./hrtfs/elev35/L35e120a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e120a.dat right
+[ 25, 49 ] = ascii (fp) : "./hrtfs/elev35/L35e115a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e115a.dat right
+[ 25, 50 ] = ascii (fp) : "./hrtfs/elev35/L35e110a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e110a.dat right
+[ 25, 51 ] = ascii (fp) : "./hrtfs/elev35/L35e105a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e105a.dat right
+[ 25, 52 ] = ascii (fp) : "./hrtfs/elev35/L35e100a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e100a.dat right
+[ 25, 53 ] = ascii (fp) : "./hrtfs/elev35/L35e095a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e095a.dat right
+[ 25, 54 ] = ascii (fp) : "./hrtfs/elev35/L35e090a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e090a.dat right
+[ 25, 55 ] = ascii (fp) : "./hrtfs/elev35/L35e085a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e085a.dat right
+[ 25, 56 ] = ascii (fp) : "./hrtfs/elev35/L35e080a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e080a.dat right
+[ 25, 57 ] = ascii (fp) : "./hrtfs/elev35/L35e075a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e075a.dat right
+[ 25, 58 ] = ascii (fp) : "./hrtfs/elev35/L35e070a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e070a.dat right
+[ 25, 59 ] = ascii (fp) : "./hrtfs/elev35/L35e065a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e065a.dat right
+[ 25, 60 ] = ascii (fp) : "./hrtfs/elev35/L35e060a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e060a.dat right
+[ 25, 61 ] = ascii (fp) : "./hrtfs/elev35/L35e055a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e055a.dat right
+[ 25, 62 ] = ascii (fp) : "./hrtfs/elev35/L35e050a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e050a.dat right
+[ 25, 63 ] = ascii (fp) : "./hrtfs/elev35/L35e045a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e045a.dat right
+[ 25, 64 ] = ascii (fp) : "./hrtfs/elev35/L35e040a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e040a.dat right
+[ 25, 65 ] = ascii (fp) : "./hrtfs/elev35/L35e035a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e035a.dat right
+[ 25, 66 ] = ascii (fp) : "./hrtfs/elev35/L35e030a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e030a.dat right
+[ 25, 67 ] = ascii (fp) : "./hrtfs/elev35/L35e025a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e025a.dat right
+[ 25, 68 ] = ascii (fp) : "./hrtfs/elev35/L35e020a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e020a.dat right
+[ 25, 69 ] = ascii (fp) : "./hrtfs/elev35/L35e015a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e015a.dat right
+[ 25, 70 ] = ascii (fp) : "./hrtfs/elev35/L35e010a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e010a.dat right
+[ 25, 71 ] = ascii (fp) : "./hrtfs/elev35/L35e005a.dat left
+ + ascii (fp) : "./hrtfs/elev35/R35e005a.dat right
-[ 26, 0 ] = ascii (fp) : "./hrtfs/elev40/L40e000a.dat"
-[ 26, 1 ] = ascii (fp) : "./hrtfs/elev40/L40e355a.dat"
-[ 26, 2 ] = ascii (fp) : "./hrtfs/elev40/L40e350a.dat"
-[ 26, 3 ] = ascii (fp) : "./hrtfs/elev40/L40e345a.dat"
-[ 26, 4 ] = ascii (fp) : "./hrtfs/elev40/L40e340a.dat"
-[ 26, 5 ] = ascii (fp) : "./hrtfs/elev40/L40e335a.dat"
-[ 26, 6 ] = ascii (fp) : "./hrtfs/elev40/L40e330a.dat"
-[ 26, 7 ] = ascii (fp) : "./hrtfs/elev40/L40e325a.dat"
-[ 26, 8 ] = ascii (fp) : "./hrtfs/elev40/L40e320a.dat"
-[ 26, 9 ] = ascii (fp) : "./hrtfs/elev40/L40e315a.dat"
-[ 26, 10 ] = ascii (fp) : "./hrtfs/elev40/L40e310a.dat"
-[ 26, 11 ] = ascii (fp) : "./hrtfs/elev40/L40e305a.dat"
-[ 26, 12 ] = ascii (fp) : "./hrtfs/elev40/L40e300a.dat"
-[ 26, 13 ] = ascii (fp) : "./hrtfs/elev40/L40e295a.dat"
-[ 26, 14 ] = ascii (fp) : "./hrtfs/elev40/L40e290a.dat"
-[ 26, 15 ] = ascii (fp) : "./hrtfs/elev40/L40e285a.dat"
-[ 26, 16 ] = ascii (fp) : "./hrtfs/elev40/L40e280a.dat"
-[ 26, 17 ] = ascii (fp) : "./hrtfs/elev40/L40e275a.dat"
-[ 26, 18 ] = ascii (fp) : "./hrtfs/elev40/L40e270a.dat"
-[ 26, 19 ] = ascii (fp) : "./hrtfs/elev40/L40e265a.dat"
-[ 26, 20 ] = ascii (fp) : "./hrtfs/elev40/L40e260a.dat"
-[ 26, 21 ] = ascii (fp) : "./hrtfs/elev40/L40e255a.dat"
-[ 26, 22 ] = ascii (fp) : "./hrtfs/elev40/L40e250a.dat"
-[ 26, 23 ] = ascii (fp) : "./hrtfs/elev40/L40e245a.dat"
-[ 26, 24 ] = ascii (fp) : "./hrtfs/elev40/L40e240a.dat"
-[ 26, 25 ] = ascii (fp) : "./hrtfs/elev40/L40e235a.dat"
-[ 26, 26 ] = ascii (fp) : "./hrtfs/elev40/L40e230a.dat"
-[ 26, 27 ] = ascii (fp) : "./hrtfs/elev40/L40e225a.dat"
-[ 26, 28 ] = ascii (fp) : "./hrtfs/elev40/L40e220a.dat"
-[ 26, 29 ] = ascii (fp) : "./hrtfs/elev40/L40e215a.dat"
-[ 26, 30 ] = ascii (fp) : "./hrtfs/elev40/L40e210a.dat"
-[ 26, 31 ] = ascii (fp) : "./hrtfs/elev40/L40e205a.dat"
-[ 26, 32 ] = ascii (fp) : "./hrtfs/elev40/L40e200a.dat"
-[ 26, 33 ] = ascii (fp) : "./hrtfs/elev40/L40e195a.dat"
-[ 26, 34 ] = ascii (fp) : "./hrtfs/elev40/L40e190a.dat"
-[ 26, 35 ] = ascii (fp) : "./hrtfs/elev40/L40e185a.dat"
-[ 26, 36 ] = ascii (fp) : "./hrtfs/elev40/L40e180a.dat"
-[ 26, 37 ] = ascii (fp) : "./hrtfs/elev40/L40e175a.dat"
-[ 26, 38 ] = ascii (fp) : "./hrtfs/elev40/L40e170a.dat"
-[ 26, 39 ] = ascii (fp) : "./hrtfs/elev40/L40e165a.dat"
-[ 26, 40 ] = ascii (fp) : "./hrtfs/elev40/L40e160a.dat"
-[ 26, 41 ] = ascii (fp) : "./hrtfs/elev40/L40e155a.dat"
-[ 26, 42 ] = ascii (fp) : "./hrtfs/elev40/L40e150a.dat"
-[ 26, 43 ] = ascii (fp) : "./hrtfs/elev40/L40e145a.dat"
-[ 26, 44 ] = ascii (fp) : "./hrtfs/elev40/L40e140a.dat"
-[ 26, 45 ] = ascii (fp) : "./hrtfs/elev40/L40e135a.dat"
-[ 26, 46 ] = ascii (fp) : "./hrtfs/elev40/L40e130a.dat"
-[ 26, 47 ] = ascii (fp) : "./hrtfs/elev40/L40e125a.dat"
-[ 26, 48 ] = ascii (fp) : "./hrtfs/elev40/L40e120a.dat"
-[ 26, 49 ] = ascii (fp) : "./hrtfs/elev40/L40e115a.dat"
-[ 26, 50 ] = ascii (fp) : "./hrtfs/elev40/L40e110a.dat"
-[ 26, 51 ] = ascii (fp) : "./hrtfs/elev40/L40e105a.dat"
-[ 26, 52 ] = ascii (fp) : "./hrtfs/elev40/L40e100a.dat"
-[ 26, 53 ] = ascii (fp) : "./hrtfs/elev40/L40e095a.dat"
-[ 26, 54 ] = ascii (fp) : "./hrtfs/elev40/L40e090a.dat"
-[ 26, 55 ] = ascii (fp) : "./hrtfs/elev40/L40e085a.dat"
-[ 26, 56 ] = ascii (fp) : "./hrtfs/elev40/L40e080a.dat"
-[ 26, 57 ] = ascii (fp) : "./hrtfs/elev40/L40e075a.dat"
-[ 26, 58 ] = ascii (fp) : "./hrtfs/elev40/L40e070a.dat"
-[ 26, 59 ] = ascii (fp) : "./hrtfs/elev40/L40e065a.dat"
-[ 26, 60 ] = ascii (fp) : "./hrtfs/elev40/L40e060a.dat"
-[ 26, 61 ] = ascii (fp) : "./hrtfs/elev40/L40e055a.dat"
-[ 26, 62 ] = ascii (fp) : "./hrtfs/elev40/L40e050a.dat"
-[ 26, 63 ] = ascii (fp) : "./hrtfs/elev40/L40e045a.dat"
-[ 26, 64 ] = ascii (fp) : "./hrtfs/elev40/L40e040a.dat"
-[ 26, 65 ] = ascii (fp) : "./hrtfs/elev40/L40e035a.dat"
-[ 26, 66 ] = ascii (fp) : "./hrtfs/elev40/L40e030a.dat"
-[ 26, 67 ] = ascii (fp) : "./hrtfs/elev40/L40e025a.dat"
-[ 26, 68 ] = ascii (fp) : "./hrtfs/elev40/L40e020a.dat"
-[ 26, 69 ] = ascii (fp) : "./hrtfs/elev40/L40e015a.dat"
-[ 26, 70 ] = ascii (fp) : "./hrtfs/elev40/L40e010a.dat"
-[ 26, 71 ] = ascii (fp) : "./hrtfs/elev40/L40e005a.dat"
+[ 26, 0 ] = ascii (fp) : "./hrtfs/elev40/L40e000a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e000a.dat right
+[ 26, 1 ] = ascii (fp) : "./hrtfs/elev40/L40e355a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e355a.dat right
+[ 26, 2 ] = ascii (fp) : "./hrtfs/elev40/L40e350a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e350a.dat right
+[ 26, 3 ] = ascii (fp) : "./hrtfs/elev40/L40e345a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e345a.dat right
+[ 26, 4 ] = ascii (fp) : "./hrtfs/elev40/L40e340a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e340a.dat right
+[ 26, 5 ] = ascii (fp) : "./hrtfs/elev40/L40e335a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e335a.dat right
+[ 26, 6 ] = ascii (fp) : "./hrtfs/elev40/L40e330a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e330a.dat right
+[ 26, 7 ] = ascii (fp) : "./hrtfs/elev40/L40e325a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e325a.dat right
+[ 26, 8 ] = ascii (fp) : "./hrtfs/elev40/L40e320a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e320a.dat right
+[ 26, 9 ] = ascii (fp) : "./hrtfs/elev40/L40e315a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e315a.dat right
+[ 26, 10 ] = ascii (fp) : "./hrtfs/elev40/L40e310a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e310a.dat right
+[ 26, 11 ] = ascii (fp) : "./hrtfs/elev40/L40e305a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e305a.dat right
+[ 26, 12 ] = ascii (fp) : "./hrtfs/elev40/L40e300a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e300a.dat right
+[ 26, 13 ] = ascii (fp) : "./hrtfs/elev40/L40e295a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e295a.dat right
+[ 26, 14 ] = ascii (fp) : "./hrtfs/elev40/L40e290a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e290a.dat right
+[ 26, 15 ] = ascii (fp) : "./hrtfs/elev40/L40e285a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e285a.dat right
+[ 26, 16 ] = ascii (fp) : "./hrtfs/elev40/L40e280a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e280a.dat right
+[ 26, 17 ] = ascii (fp) : "./hrtfs/elev40/L40e275a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e275a.dat right
+[ 26, 18 ] = ascii (fp) : "./hrtfs/elev40/L40e270a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e270a.dat right
+[ 26, 19 ] = ascii (fp) : "./hrtfs/elev40/L40e265a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e265a.dat right
+[ 26, 20 ] = ascii (fp) : "./hrtfs/elev40/L40e260a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e260a.dat right
+[ 26, 21 ] = ascii (fp) : "./hrtfs/elev40/L40e255a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e255a.dat right
+[ 26, 22 ] = ascii (fp) : "./hrtfs/elev40/L40e250a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e250a.dat right
+[ 26, 23 ] = ascii (fp) : "./hrtfs/elev40/L40e245a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e245a.dat right
+[ 26, 24 ] = ascii (fp) : "./hrtfs/elev40/L40e240a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e240a.dat right
+[ 26, 25 ] = ascii (fp) : "./hrtfs/elev40/L40e235a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e235a.dat right
+[ 26, 26 ] = ascii (fp) : "./hrtfs/elev40/L40e230a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e230a.dat right
+[ 26, 27 ] = ascii (fp) : "./hrtfs/elev40/L40e225a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e225a.dat right
+[ 26, 28 ] = ascii (fp) : "./hrtfs/elev40/L40e220a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e220a.dat right
+[ 26, 29 ] = ascii (fp) : "./hrtfs/elev40/L40e215a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e215a.dat right
+[ 26, 30 ] = ascii (fp) : "./hrtfs/elev40/L40e210a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e210a.dat right
+[ 26, 31 ] = ascii (fp) : "./hrtfs/elev40/L40e205a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e205a.dat right
+[ 26, 32 ] = ascii (fp) : "./hrtfs/elev40/L40e200a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e200a.dat right
+[ 26, 33 ] = ascii (fp) : "./hrtfs/elev40/L40e195a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e195a.dat right
+[ 26, 34 ] = ascii (fp) : "./hrtfs/elev40/L40e190a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e190a.dat right
+[ 26, 35 ] = ascii (fp) : "./hrtfs/elev40/L40e185a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e185a.dat right
+[ 26, 36 ] = ascii (fp) : "./hrtfs/elev40/L40e180a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e180a.dat right
+[ 26, 37 ] = ascii (fp) : "./hrtfs/elev40/L40e175a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e175a.dat right
+[ 26, 38 ] = ascii (fp) : "./hrtfs/elev40/L40e170a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e170a.dat right
+[ 26, 39 ] = ascii (fp) : "./hrtfs/elev40/L40e165a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e165a.dat right
+[ 26, 40 ] = ascii (fp) : "./hrtfs/elev40/L40e160a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e160a.dat right
+[ 26, 41 ] = ascii (fp) : "./hrtfs/elev40/L40e155a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e155a.dat right
+[ 26, 42 ] = ascii (fp) : "./hrtfs/elev40/L40e150a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e150a.dat right
+[ 26, 43 ] = ascii (fp) : "./hrtfs/elev40/L40e145a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e145a.dat right
+[ 26, 44 ] = ascii (fp) : "./hrtfs/elev40/L40e140a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e140a.dat right
+[ 26, 45 ] = ascii (fp) : "./hrtfs/elev40/L40e135a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e135a.dat right
+[ 26, 46 ] = ascii (fp) : "./hrtfs/elev40/L40e130a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e130a.dat right
+[ 26, 47 ] = ascii (fp) : "./hrtfs/elev40/L40e125a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e125a.dat right
+[ 26, 48 ] = ascii (fp) : "./hrtfs/elev40/L40e120a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e120a.dat right
+[ 26, 49 ] = ascii (fp) : "./hrtfs/elev40/L40e115a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e115a.dat right
+[ 26, 50 ] = ascii (fp) : "./hrtfs/elev40/L40e110a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e110a.dat right
+[ 26, 51 ] = ascii (fp) : "./hrtfs/elev40/L40e105a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e105a.dat right
+[ 26, 52 ] = ascii (fp) : "./hrtfs/elev40/L40e100a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e100a.dat right
+[ 26, 53 ] = ascii (fp) : "./hrtfs/elev40/L40e095a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e095a.dat right
+[ 26, 54 ] = ascii (fp) : "./hrtfs/elev40/L40e090a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e090a.dat right
+[ 26, 55 ] = ascii (fp) : "./hrtfs/elev40/L40e085a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e085a.dat right
+[ 26, 56 ] = ascii (fp) : "./hrtfs/elev40/L40e080a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e080a.dat right
+[ 26, 57 ] = ascii (fp) : "./hrtfs/elev40/L40e075a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e075a.dat right
+[ 26, 58 ] = ascii (fp) : "./hrtfs/elev40/L40e070a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e070a.dat right
+[ 26, 59 ] = ascii (fp) : "./hrtfs/elev40/L40e065a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e065a.dat right
+[ 26, 60 ] = ascii (fp) : "./hrtfs/elev40/L40e060a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e060a.dat right
+[ 26, 61 ] = ascii (fp) : "./hrtfs/elev40/L40e055a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e055a.dat right
+[ 26, 62 ] = ascii (fp) : "./hrtfs/elev40/L40e050a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e050a.dat right
+[ 26, 63 ] = ascii (fp) : "./hrtfs/elev40/L40e045a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e045a.dat right
+[ 26, 64 ] = ascii (fp) : "./hrtfs/elev40/L40e040a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e040a.dat right
+[ 26, 65 ] = ascii (fp) : "./hrtfs/elev40/L40e035a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e035a.dat right
+[ 26, 66 ] = ascii (fp) : "./hrtfs/elev40/L40e030a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e030a.dat right
+[ 26, 67 ] = ascii (fp) : "./hrtfs/elev40/L40e025a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e025a.dat right
+[ 26, 68 ] = ascii (fp) : "./hrtfs/elev40/L40e020a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e020a.dat right
+[ 26, 69 ] = ascii (fp) : "./hrtfs/elev40/L40e015a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e015a.dat right
+[ 26, 70 ] = ascii (fp) : "./hrtfs/elev40/L40e010a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e010a.dat right
+[ 26, 71 ] = ascii (fp) : "./hrtfs/elev40/L40e005a.dat left
+ + ascii (fp) : "./hrtfs/elev40/R40e005a.dat right
-[ 27, 0 ] = ascii (fp) : "./hrtfs/elev45/L45e000a.dat"
-[ 27, 1 ] = ascii (fp) : "./hrtfs/elev45/L45e355a.dat"
-[ 27, 2 ] = ascii (fp) : "./hrtfs/elev45/L45e350a.dat"
-[ 27, 3 ] = ascii (fp) : "./hrtfs/elev45/L45e345a.dat"
-[ 27, 4 ] = ascii (fp) : "./hrtfs/elev45/L45e340a.dat"
-[ 27, 5 ] = ascii (fp) : "./hrtfs/elev45/L45e335a.dat"
-[ 27, 6 ] = ascii (fp) : "./hrtfs/elev45/L45e330a.dat"
-[ 27, 7 ] = ascii (fp) : "./hrtfs/elev45/L45e325a.dat"
-[ 27, 8 ] = ascii (fp) : "./hrtfs/elev45/L45e320a.dat"
-[ 27, 9 ] = ascii (fp) : "./hrtfs/elev45/L45e315a.dat"
-[ 27, 10 ] = ascii (fp) : "./hrtfs/elev45/L45e310a.dat"
-[ 27, 11 ] = ascii (fp) : "./hrtfs/elev45/L45e305a.dat"
-[ 27, 12 ] = ascii (fp) : "./hrtfs/elev45/L45e300a.dat"
-[ 27, 13 ] = ascii (fp) : "./hrtfs/elev45/L45e295a.dat"
-[ 27, 14 ] = ascii (fp) : "./hrtfs/elev45/L45e290a.dat"
-[ 27, 15 ] = ascii (fp) : "./hrtfs/elev45/L45e285a.dat"
-[ 27, 16 ] = ascii (fp) : "./hrtfs/elev45/L45e280a.dat"
-[ 27, 17 ] = ascii (fp) : "./hrtfs/elev45/L45e275a.dat"
-[ 27, 18 ] = ascii (fp) : "./hrtfs/elev45/L45e270a.dat"
-[ 27, 19 ] = ascii (fp) : "./hrtfs/elev45/L45e265a.dat"
-[ 27, 20 ] = ascii (fp) : "./hrtfs/elev45/L45e260a.dat"
-[ 27, 21 ] = ascii (fp) : "./hrtfs/elev45/L45e255a.dat"
-[ 27, 22 ] = ascii (fp) : "./hrtfs/elev45/L45e250a.dat"
-[ 27, 23 ] = ascii (fp) : "./hrtfs/elev45/L45e245a.dat"
-[ 27, 24 ] = ascii (fp) : "./hrtfs/elev45/L45e240a.dat"
-[ 27, 25 ] = ascii (fp) : "./hrtfs/elev45/L45e235a.dat"
-[ 27, 26 ] = ascii (fp) : "./hrtfs/elev45/L45e230a.dat"
-[ 27, 27 ] = ascii (fp) : "./hrtfs/elev45/L45e225a.dat"
-[ 27, 28 ] = ascii (fp) : "./hrtfs/elev45/L45e220a.dat"
-[ 27, 29 ] = ascii (fp) : "./hrtfs/elev45/L45e215a.dat"
-[ 27, 30 ] = ascii (fp) : "./hrtfs/elev45/L45e210a.dat"
-[ 27, 31 ] = ascii (fp) : "./hrtfs/elev45/L45e205a.dat"
-[ 27, 32 ] = ascii (fp) : "./hrtfs/elev45/L45e200a.dat"
-[ 27, 33 ] = ascii (fp) : "./hrtfs/elev45/L45e195a.dat"
-[ 27, 34 ] = ascii (fp) : "./hrtfs/elev45/L45e190a.dat"
-[ 27, 35 ] = ascii (fp) : "./hrtfs/elev45/L45e185a.dat"
-[ 27, 36 ] = ascii (fp) : "./hrtfs/elev45/L45e180a.dat"
-[ 27, 37 ] = ascii (fp) : "./hrtfs/elev45/L45e175a.dat"
-[ 27, 38 ] = ascii (fp) : "./hrtfs/elev45/L45e170a.dat"
-[ 27, 39 ] = ascii (fp) : "./hrtfs/elev45/L45e165a.dat"
-[ 27, 40 ] = ascii (fp) : "./hrtfs/elev45/L45e160a.dat"
-[ 27, 41 ] = ascii (fp) : "./hrtfs/elev45/L45e155a.dat"
-[ 27, 42 ] = ascii (fp) : "./hrtfs/elev45/L45e150a.dat"
-[ 27, 43 ] = ascii (fp) : "./hrtfs/elev45/L45e145a.dat"
-[ 27, 44 ] = ascii (fp) : "./hrtfs/elev45/L45e140a.dat"
-[ 27, 45 ] = ascii (fp) : "./hrtfs/elev45/L45e135a.dat"
-[ 27, 46 ] = ascii (fp) : "./hrtfs/elev45/L45e130a.dat"
-[ 27, 47 ] = ascii (fp) : "./hrtfs/elev45/L45e125a.dat"
-[ 27, 48 ] = ascii (fp) : "./hrtfs/elev45/L45e120a.dat"
-[ 27, 49 ] = ascii (fp) : "./hrtfs/elev45/L45e115a.dat"
-[ 27, 50 ] = ascii (fp) : "./hrtfs/elev45/L45e110a.dat"
-[ 27, 51 ] = ascii (fp) : "./hrtfs/elev45/L45e105a.dat"
-[ 27, 52 ] = ascii (fp) : "./hrtfs/elev45/L45e100a.dat"
-[ 27, 53 ] = ascii (fp) : "./hrtfs/elev45/L45e095a.dat"
-[ 27, 54 ] = ascii (fp) : "./hrtfs/elev45/L45e090a.dat"
-[ 27, 55 ] = ascii (fp) : "./hrtfs/elev45/L45e085a.dat"
-[ 27, 56 ] = ascii (fp) : "./hrtfs/elev45/L45e080a.dat"
-[ 27, 57 ] = ascii (fp) : "./hrtfs/elev45/L45e075a.dat"
-[ 27, 58 ] = ascii (fp) : "./hrtfs/elev45/L45e070a.dat"
-[ 27, 59 ] = ascii (fp) : "./hrtfs/elev45/L45e065a.dat"
-[ 27, 60 ] = ascii (fp) : "./hrtfs/elev45/L45e060a.dat"
-[ 27, 61 ] = ascii (fp) : "./hrtfs/elev45/L45e055a.dat"
-[ 27, 62 ] = ascii (fp) : "./hrtfs/elev45/L45e050a.dat"
-[ 27, 63 ] = ascii (fp) : "./hrtfs/elev45/L45e045a.dat"
-[ 27, 64 ] = ascii (fp) : "./hrtfs/elev45/L45e040a.dat"
-[ 27, 65 ] = ascii (fp) : "./hrtfs/elev45/L45e035a.dat"
-[ 27, 66 ] = ascii (fp) : "./hrtfs/elev45/L45e030a.dat"
-[ 27, 67 ] = ascii (fp) : "./hrtfs/elev45/L45e025a.dat"
-[ 27, 68 ] = ascii (fp) : "./hrtfs/elev45/L45e020a.dat"
-[ 27, 69 ] = ascii (fp) : "./hrtfs/elev45/L45e015a.dat"
-[ 27, 70 ] = ascii (fp) : "./hrtfs/elev45/L45e010a.dat"
-[ 27, 71 ] = ascii (fp) : "./hrtfs/elev45/L45e005a.dat"
+[ 27, 0 ] = ascii (fp) : "./hrtfs/elev45/L45e000a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e000a.dat right
+[ 27, 1 ] = ascii (fp) : "./hrtfs/elev45/L45e355a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e355a.dat right
+[ 27, 2 ] = ascii (fp) : "./hrtfs/elev45/L45e350a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e350a.dat right
+[ 27, 3 ] = ascii (fp) : "./hrtfs/elev45/L45e345a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e345a.dat right
+[ 27, 4 ] = ascii (fp) : "./hrtfs/elev45/L45e340a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e340a.dat right
+[ 27, 5 ] = ascii (fp) : "./hrtfs/elev45/L45e335a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e335a.dat right
+[ 27, 6 ] = ascii (fp) : "./hrtfs/elev45/L45e330a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e330a.dat right
+[ 27, 7 ] = ascii (fp) : "./hrtfs/elev45/L45e325a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e325a.dat right
+[ 27, 8 ] = ascii (fp) : "./hrtfs/elev45/L45e320a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e320a.dat right
+[ 27, 9 ] = ascii (fp) : "./hrtfs/elev45/L45e315a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e315a.dat right
+[ 27, 10 ] = ascii (fp) : "./hrtfs/elev45/L45e310a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e310a.dat right
+[ 27, 11 ] = ascii (fp) : "./hrtfs/elev45/L45e305a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e305a.dat right
+[ 27, 12 ] = ascii (fp) : "./hrtfs/elev45/L45e300a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e300a.dat right
+[ 27, 13 ] = ascii (fp) : "./hrtfs/elev45/L45e295a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e295a.dat right
+[ 27, 14 ] = ascii (fp) : "./hrtfs/elev45/L45e290a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e290a.dat right
+[ 27, 15 ] = ascii (fp) : "./hrtfs/elev45/L45e285a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e285a.dat right
+[ 27, 16 ] = ascii (fp) : "./hrtfs/elev45/L45e280a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e280a.dat right
+[ 27, 17 ] = ascii (fp) : "./hrtfs/elev45/L45e275a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e275a.dat right
+[ 27, 18 ] = ascii (fp) : "./hrtfs/elev45/L45e270a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e270a.dat right
+[ 27, 19 ] = ascii (fp) : "./hrtfs/elev45/L45e265a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e265a.dat right
+[ 27, 20 ] = ascii (fp) : "./hrtfs/elev45/L45e260a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e260a.dat right
+[ 27, 21 ] = ascii (fp) : "./hrtfs/elev45/L45e255a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e255a.dat right
+[ 27, 22 ] = ascii (fp) : "./hrtfs/elev45/L45e250a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e250a.dat right
+[ 27, 23 ] = ascii (fp) : "./hrtfs/elev45/L45e245a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e245a.dat right
+[ 27, 24 ] = ascii (fp) : "./hrtfs/elev45/L45e240a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e240a.dat right
+[ 27, 25 ] = ascii (fp) : "./hrtfs/elev45/L45e235a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e235a.dat right
+[ 27, 26 ] = ascii (fp) : "./hrtfs/elev45/L45e230a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e230a.dat right
+[ 27, 27 ] = ascii (fp) : "./hrtfs/elev45/L45e225a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e225a.dat right
+[ 27, 28 ] = ascii (fp) : "./hrtfs/elev45/L45e220a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e220a.dat right
+[ 27, 29 ] = ascii (fp) : "./hrtfs/elev45/L45e215a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e215a.dat right
+[ 27, 30 ] = ascii (fp) : "./hrtfs/elev45/L45e210a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e210a.dat right
+[ 27, 31 ] = ascii (fp) : "./hrtfs/elev45/L45e205a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e205a.dat right
+[ 27, 32 ] = ascii (fp) : "./hrtfs/elev45/L45e200a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e200a.dat right
+[ 27, 33 ] = ascii (fp) : "./hrtfs/elev45/L45e195a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e195a.dat right
+[ 27, 34 ] = ascii (fp) : "./hrtfs/elev45/L45e190a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e190a.dat right
+[ 27, 35 ] = ascii (fp) : "./hrtfs/elev45/L45e185a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e185a.dat right
+[ 27, 36 ] = ascii (fp) : "./hrtfs/elev45/L45e180a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e180a.dat right
+[ 27, 37 ] = ascii (fp) : "./hrtfs/elev45/L45e175a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e175a.dat right
+[ 27, 38 ] = ascii (fp) : "./hrtfs/elev45/L45e170a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e170a.dat right
+[ 27, 39 ] = ascii (fp) : "./hrtfs/elev45/L45e165a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e165a.dat right
+[ 27, 40 ] = ascii (fp) : "./hrtfs/elev45/L45e160a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e160a.dat right
+[ 27, 41 ] = ascii (fp) : "./hrtfs/elev45/L45e155a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e155a.dat right
+[ 27, 42 ] = ascii (fp) : "./hrtfs/elev45/L45e150a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e150a.dat right
+[ 27, 43 ] = ascii (fp) : "./hrtfs/elev45/L45e145a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e145a.dat right
+[ 27, 44 ] = ascii (fp) : "./hrtfs/elev45/L45e140a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e140a.dat right
+[ 27, 45 ] = ascii (fp) : "./hrtfs/elev45/L45e135a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e135a.dat right
+[ 27, 46 ] = ascii (fp) : "./hrtfs/elev45/L45e130a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e130a.dat right
+[ 27, 47 ] = ascii (fp) : "./hrtfs/elev45/L45e125a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e125a.dat right
+[ 27, 48 ] = ascii (fp) : "./hrtfs/elev45/L45e120a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e120a.dat right
+[ 27, 49 ] = ascii (fp) : "./hrtfs/elev45/L45e115a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e115a.dat right
+[ 27, 50 ] = ascii (fp) : "./hrtfs/elev45/L45e110a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e110a.dat right
+[ 27, 51 ] = ascii (fp) : "./hrtfs/elev45/L45e105a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e105a.dat right
+[ 27, 52 ] = ascii (fp) : "./hrtfs/elev45/L45e100a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e100a.dat right
+[ 27, 53 ] = ascii (fp) : "./hrtfs/elev45/L45e095a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e095a.dat right
+[ 27, 54 ] = ascii (fp) : "./hrtfs/elev45/L45e090a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e090a.dat right
+[ 27, 55 ] = ascii (fp) : "./hrtfs/elev45/L45e085a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e085a.dat right
+[ 27, 56 ] = ascii (fp) : "./hrtfs/elev45/L45e080a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e080a.dat right
+[ 27, 57 ] = ascii (fp) : "./hrtfs/elev45/L45e075a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e075a.dat right
+[ 27, 58 ] = ascii (fp) : "./hrtfs/elev45/L45e070a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e070a.dat right
+[ 27, 59 ] = ascii (fp) : "./hrtfs/elev45/L45e065a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e065a.dat right
+[ 27, 60 ] = ascii (fp) : "./hrtfs/elev45/L45e060a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e060a.dat right
+[ 27, 61 ] = ascii (fp) : "./hrtfs/elev45/L45e055a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e055a.dat right
+[ 27, 62 ] = ascii (fp) : "./hrtfs/elev45/L45e050a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e050a.dat right
+[ 27, 63 ] = ascii (fp) : "./hrtfs/elev45/L45e045a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e045a.dat right
+[ 27, 64 ] = ascii (fp) : "./hrtfs/elev45/L45e040a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e040a.dat right
+[ 27, 65 ] = ascii (fp) : "./hrtfs/elev45/L45e035a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e035a.dat right
+[ 27, 66 ] = ascii (fp) : "./hrtfs/elev45/L45e030a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e030a.dat right
+[ 27, 67 ] = ascii (fp) : "./hrtfs/elev45/L45e025a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e025a.dat right
+[ 27, 68 ] = ascii (fp) : "./hrtfs/elev45/L45e020a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e020a.dat right
+[ 27, 69 ] = ascii (fp) : "./hrtfs/elev45/L45e015a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e015a.dat right
+[ 27, 70 ] = ascii (fp) : "./hrtfs/elev45/L45e010a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e010a.dat right
+[ 27, 71 ] = ascii (fp) : "./hrtfs/elev45/L45e005a.dat left
+ + ascii (fp) : "./hrtfs/elev45/R45e005a.dat right
-[ 28, 0 ] = ascii (fp) : "./hrtfs/elev50/L50e000a.dat"
-[ 28, 1 ] = ascii (fp) : "./hrtfs/elev50/L50e355a.dat"
-[ 28, 2 ] = ascii (fp) : "./hrtfs/elev50/L50e350a.dat"
-[ 28, 3 ] = ascii (fp) : "./hrtfs/elev50/L50e345a.dat"
-[ 28, 4 ] = ascii (fp) : "./hrtfs/elev50/L50e340a.dat"
-[ 28, 5 ] = ascii (fp) : "./hrtfs/elev50/L50e335a.dat"
-[ 28, 6 ] = ascii (fp) : "./hrtfs/elev50/L50e330a.dat"
-[ 28, 7 ] = ascii (fp) : "./hrtfs/elev50/L50e325a.dat"
-[ 28, 8 ] = ascii (fp) : "./hrtfs/elev50/L50e320a.dat"
-[ 28, 9 ] = ascii (fp) : "./hrtfs/elev50/L50e315a.dat"
-[ 28, 10 ] = ascii (fp) : "./hrtfs/elev50/L50e310a.dat"
-[ 28, 11 ] = ascii (fp) : "./hrtfs/elev50/L50e305a.dat"
-[ 28, 12 ] = ascii (fp) : "./hrtfs/elev50/L50e300a.dat"
-[ 28, 13 ] = ascii (fp) : "./hrtfs/elev50/L50e295a.dat"
-[ 28, 14 ] = ascii (fp) : "./hrtfs/elev50/L50e290a.dat"
-[ 28, 15 ] = ascii (fp) : "./hrtfs/elev50/L50e285a.dat"
-[ 28, 16 ] = ascii (fp) : "./hrtfs/elev50/L50e280a.dat"
-[ 28, 17 ] = ascii (fp) : "./hrtfs/elev50/L50e275a.dat"
-[ 28, 18 ] = ascii (fp) : "./hrtfs/elev50/L50e270a.dat"
-[ 28, 19 ] = ascii (fp) : "./hrtfs/elev50/L50e265a.dat"
-[ 28, 20 ] = ascii (fp) : "./hrtfs/elev50/L50e260a.dat"
-[ 28, 21 ] = ascii (fp) : "./hrtfs/elev50/L50e255a.dat"
-[ 28, 22 ] = ascii (fp) : "./hrtfs/elev50/L50e250a.dat"
-[ 28, 23 ] = ascii (fp) : "./hrtfs/elev50/L50e245a.dat"
-[ 28, 24 ] = ascii (fp) : "./hrtfs/elev50/L50e240a.dat"
-[ 28, 25 ] = ascii (fp) : "./hrtfs/elev50/L50e235a.dat"
-[ 28, 26 ] = ascii (fp) : "./hrtfs/elev50/L50e230a.dat"
-[ 28, 27 ] = ascii (fp) : "./hrtfs/elev50/L50e225a.dat"
-[ 28, 28 ] = ascii (fp) : "./hrtfs/elev50/L50e220a.dat"
-[ 28, 29 ] = ascii (fp) : "./hrtfs/elev50/L50e215a.dat"
-[ 28, 30 ] = ascii (fp) : "./hrtfs/elev50/L50e210a.dat"
-[ 28, 31 ] = ascii (fp) : "./hrtfs/elev50/L50e205a.dat"
-[ 28, 32 ] = ascii (fp) : "./hrtfs/elev50/L50e200a.dat"
-[ 28, 33 ] = ascii (fp) : "./hrtfs/elev50/L50e195a.dat"
-[ 28, 34 ] = ascii (fp) : "./hrtfs/elev50/L50e190a.dat"
-[ 28, 35 ] = ascii (fp) : "./hrtfs/elev50/L50e185a.dat"
-[ 28, 36 ] = ascii (fp) : "./hrtfs/elev50/L50e180a.dat"
-[ 28, 37 ] = ascii (fp) : "./hrtfs/elev50/L50e175a.dat"
-[ 28, 38 ] = ascii (fp) : "./hrtfs/elev50/L50e170a.dat"
-[ 28, 39 ] = ascii (fp) : "./hrtfs/elev50/L50e165a.dat"
-[ 28, 40 ] = ascii (fp) : "./hrtfs/elev50/L50e160a.dat"
-[ 28, 41 ] = ascii (fp) : "./hrtfs/elev50/L50e155a.dat"
-[ 28, 42 ] = ascii (fp) : "./hrtfs/elev50/L50e150a.dat"
-[ 28, 43 ] = ascii (fp) : "./hrtfs/elev50/L50e145a.dat"
-[ 28, 44 ] = ascii (fp) : "./hrtfs/elev50/L50e140a.dat"
-[ 28, 45 ] = ascii (fp) : "./hrtfs/elev50/L50e135a.dat"
-[ 28, 46 ] = ascii (fp) : "./hrtfs/elev50/L50e130a.dat"
-[ 28, 47 ] = ascii (fp) : "./hrtfs/elev50/L50e125a.dat"
-[ 28, 48 ] = ascii (fp) : "./hrtfs/elev50/L50e120a.dat"
-[ 28, 49 ] = ascii (fp) : "./hrtfs/elev50/L50e115a.dat"
-[ 28, 50 ] = ascii (fp) : "./hrtfs/elev50/L50e110a.dat"
-[ 28, 51 ] = ascii (fp) : "./hrtfs/elev50/L50e105a.dat"
-[ 28, 52 ] = ascii (fp) : "./hrtfs/elev50/L50e100a.dat"
-[ 28, 53 ] = ascii (fp) : "./hrtfs/elev50/L50e095a.dat"
-[ 28, 54 ] = ascii (fp) : "./hrtfs/elev50/L50e090a.dat"
-[ 28, 55 ] = ascii (fp) : "./hrtfs/elev50/L50e085a.dat"
-[ 28, 56 ] = ascii (fp) : "./hrtfs/elev50/L50e080a.dat"
-[ 28, 57 ] = ascii (fp) : "./hrtfs/elev50/L50e075a.dat"
-[ 28, 58 ] = ascii (fp) : "./hrtfs/elev50/L50e070a.dat"
-[ 28, 59 ] = ascii (fp) : "./hrtfs/elev50/L50e065a.dat"
-[ 28, 60 ] = ascii (fp) : "./hrtfs/elev50/L50e060a.dat"
-[ 28, 61 ] = ascii (fp) : "./hrtfs/elev50/L50e055a.dat"
-[ 28, 62 ] = ascii (fp) : "./hrtfs/elev50/L50e050a.dat"
-[ 28, 63 ] = ascii (fp) : "./hrtfs/elev50/L50e045a.dat"
-[ 28, 64 ] = ascii (fp) : "./hrtfs/elev50/L50e040a.dat"
-[ 28, 65 ] = ascii (fp) : "./hrtfs/elev50/L50e035a.dat"
-[ 28, 66 ] = ascii (fp) : "./hrtfs/elev50/L50e030a.dat"
-[ 28, 67 ] = ascii (fp) : "./hrtfs/elev50/L50e025a.dat"
-[ 28, 68 ] = ascii (fp) : "./hrtfs/elev50/L50e020a.dat"
-[ 28, 69 ] = ascii (fp) : "./hrtfs/elev50/L50e015a.dat"
-[ 28, 70 ] = ascii (fp) : "./hrtfs/elev50/L50e010a.dat"
-[ 28, 71 ] = ascii (fp) : "./hrtfs/elev50/L50e005a.dat"
+[ 28, 0 ] = ascii (fp) : "./hrtfs/elev50/L50e000a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e000a.dat right
+[ 28, 1 ] = ascii (fp) : "./hrtfs/elev50/L50e355a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e355a.dat right
+[ 28, 2 ] = ascii (fp) : "./hrtfs/elev50/L50e350a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e350a.dat right
+[ 28, 3 ] = ascii (fp) : "./hrtfs/elev50/L50e345a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e345a.dat right
+[ 28, 4 ] = ascii (fp) : "./hrtfs/elev50/L50e340a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e340a.dat right
+[ 28, 5 ] = ascii (fp) : "./hrtfs/elev50/L50e335a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e335a.dat right
+[ 28, 6 ] = ascii (fp) : "./hrtfs/elev50/L50e330a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e330a.dat right
+[ 28, 7 ] = ascii (fp) : "./hrtfs/elev50/L50e325a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e325a.dat right
+[ 28, 8 ] = ascii (fp) : "./hrtfs/elev50/L50e320a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e320a.dat right
+[ 28, 9 ] = ascii (fp) : "./hrtfs/elev50/L50e315a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e315a.dat right
+[ 28, 10 ] = ascii (fp) : "./hrtfs/elev50/L50e310a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e310a.dat right
+[ 28, 11 ] = ascii (fp) : "./hrtfs/elev50/L50e305a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e305a.dat right
+[ 28, 12 ] = ascii (fp) : "./hrtfs/elev50/L50e300a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e300a.dat right
+[ 28, 13 ] = ascii (fp) : "./hrtfs/elev50/L50e295a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e295a.dat right
+[ 28, 14 ] = ascii (fp) : "./hrtfs/elev50/L50e290a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e290a.dat right
+[ 28, 15 ] = ascii (fp) : "./hrtfs/elev50/L50e285a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e285a.dat right
+[ 28, 16 ] = ascii (fp) : "./hrtfs/elev50/L50e280a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e280a.dat right
+[ 28, 17 ] = ascii (fp) : "./hrtfs/elev50/L50e275a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e275a.dat right
+[ 28, 18 ] = ascii (fp) : "./hrtfs/elev50/L50e270a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e270a.dat right
+[ 28, 19 ] = ascii (fp) : "./hrtfs/elev50/L50e265a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e265a.dat right
+[ 28, 20 ] = ascii (fp) : "./hrtfs/elev50/L50e260a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e260a.dat right
+[ 28, 21 ] = ascii (fp) : "./hrtfs/elev50/L50e255a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e255a.dat right
+[ 28, 22 ] = ascii (fp) : "./hrtfs/elev50/L50e250a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e250a.dat right
+[ 28, 23 ] = ascii (fp) : "./hrtfs/elev50/L50e245a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e245a.dat right
+[ 28, 24 ] = ascii (fp) : "./hrtfs/elev50/L50e240a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e240a.dat right
+[ 28, 25 ] = ascii (fp) : "./hrtfs/elev50/L50e235a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e235a.dat right
+[ 28, 26 ] = ascii (fp) : "./hrtfs/elev50/L50e230a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e230a.dat right
+[ 28, 27 ] = ascii (fp) : "./hrtfs/elev50/L50e225a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e225a.dat right
+[ 28, 28 ] = ascii (fp) : "./hrtfs/elev50/L50e220a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e220a.dat right
+[ 28, 29 ] = ascii (fp) : "./hrtfs/elev50/L50e215a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e215a.dat right
+[ 28, 30 ] = ascii (fp) : "./hrtfs/elev50/L50e210a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e210a.dat right
+[ 28, 31 ] = ascii (fp) : "./hrtfs/elev50/L50e205a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e205a.dat right
+[ 28, 32 ] = ascii (fp) : "./hrtfs/elev50/L50e200a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e200a.dat right
+[ 28, 33 ] = ascii (fp) : "./hrtfs/elev50/L50e195a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e195a.dat right
+[ 28, 34 ] = ascii (fp) : "./hrtfs/elev50/L50e190a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e190a.dat right
+[ 28, 35 ] = ascii (fp) : "./hrtfs/elev50/L50e185a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e185a.dat right
+[ 28, 36 ] = ascii (fp) : "./hrtfs/elev50/L50e180a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e180a.dat right
+[ 28, 37 ] = ascii (fp) : "./hrtfs/elev50/L50e175a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e175a.dat right
+[ 28, 38 ] = ascii (fp) : "./hrtfs/elev50/L50e170a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e170a.dat right
+[ 28, 39 ] = ascii (fp) : "./hrtfs/elev50/L50e165a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e165a.dat right
+[ 28, 40 ] = ascii (fp) : "./hrtfs/elev50/L50e160a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e160a.dat right
+[ 28, 41 ] = ascii (fp) : "./hrtfs/elev50/L50e155a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e155a.dat right
+[ 28, 42 ] = ascii (fp) : "./hrtfs/elev50/L50e150a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e150a.dat right
+[ 28, 43 ] = ascii (fp) : "./hrtfs/elev50/L50e145a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e145a.dat right
+[ 28, 44 ] = ascii (fp) : "./hrtfs/elev50/L50e140a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e140a.dat right
+[ 28, 45 ] = ascii (fp) : "./hrtfs/elev50/L50e135a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e135a.dat right
+[ 28, 46 ] = ascii (fp) : "./hrtfs/elev50/L50e130a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e130a.dat right
+[ 28, 47 ] = ascii (fp) : "./hrtfs/elev50/L50e125a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e125a.dat right
+[ 28, 48 ] = ascii (fp) : "./hrtfs/elev50/L50e120a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e120a.dat right
+[ 28, 49 ] = ascii (fp) : "./hrtfs/elev50/L50e115a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e115a.dat right
+[ 28, 50 ] = ascii (fp) : "./hrtfs/elev50/L50e110a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e110a.dat right
+[ 28, 51 ] = ascii (fp) : "./hrtfs/elev50/L50e105a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e105a.dat right
+[ 28, 52 ] = ascii (fp) : "./hrtfs/elev50/L50e100a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e100a.dat right
+[ 28, 53 ] = ascii (fp) : "./hrtfs/elev50/L50e095a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e095a.dat right
+[ 28, 54 ] = ascii (fp) : "./hrtfs/elev50/L50e090a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e090a.dat right
+[ 28, 55 ] = ascii (fp) : "./hrtfs/elev50/L50e085a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e085a.dat right
+[ 28, 56 ] = ascii (fp) : "./hrtfs/elev50/L50e080a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e080a.dat right
+[ 28, 57 ] = ascii (fp) : "./hrtfs/elev50/L50e075a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e075a.dat right
+[ 28, 58 ] = ascii (fp) : "./hrtfs/elev50/L50e070a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e070a.dat right
+[ 28, 59 ] = ascii (fp) : "./hrtfs/elev50/L50e065a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e065a.dat right
+[ 28, 60 ] = ascii (fp) : "./hrtfs/elev50/L50e060a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e060a.dat right
+[ 28, 61 ] = ascii (fp) : "./hrtfs/elev50/L50e055a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e055a.dat right
+[ 28, 62 ] = ascii (fp) : "./hrtfs/elev50/L50e050a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e050a.dat right
+[ 28, 63 ] = ascii (fp) : "./hrtfs/elev50/L50e045a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e045a.dat right
+[ 28, 64 ] = ascii (fp) : "./hrtfs/elev50/L50e040a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e040a.dat right
+[ 28, 65 ] = ascii (fp) : "./hrtfs/elev50/L50e035a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e035a.dat right
+[ 28, 66 ] = ascii (fp) : "./hrtfs/elev50/L50e030a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e030a.dat right
+[ 28, 67 ] = ascii (fp) : "./hrtfs/elev50/L50e025a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e025a.dat right
+[ 28, 68 ] = ascii (fp) : "./hrtfs/elev50/L50e020a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e020a.dat right
+[ 28, 69 ] = ascii (fp) : "./hrtfs/elev50/L50e015a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e015a.dat right
+[ 28, 70 ] = ascii (fp) : "./hrtfs/elev50/L50e010a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e010a.dat right
+[ 28, 71 ] = ascii (fp) : "./hrtfs/elev50/L50e005a.dat left
+ + ascii (fp) : "./hrtfs/elev50/R50e005a.dat right
-[ 29, 0 ] = ascii (fp) : "./hrtfs/elev55/L55e000a.dat"
-[ 29, 1 ] = ascii (fp) : "./hrtfs/elev55/L55e355a.dat"
-[ 29, 2 ] = ascii (fp) : "./hrtfs/elev55/L55e350a.dat"
-[ 29, 3 ] = ascii (fp) : "./hrtfs/elev55/L55e345a.dat"
-[ 29, 4 ] = ascii (fp) : "./hrtfs/elev55/L55e340a.dat"
-[ 29, 5 ] = ascii (fp) : "./hrtfs/elev55/L55e335a.dat"
-[ 29, 6 ] = ascii (fp) : "./hrtfs/elev55/L55e330a.dat"
-[ 29, 7 ] = ascii (fp) : "./hrtfs/elev55/L55e325a.dat"
-[ 29, 8 ] = ascii (fp) : "./hrtfs/elev55/L55e320a.dat"
-[ 29, 9 ] = ascii (fp) : "./hrtfs/elev55/L55e315a.dat"
-[ 29, 10 ] = ascii (fp) : "./hrtfs/elev55/L55e310a.dat"
-[ 29, 11 ] = ascii (fp) : "./hrtfs/elev55/L55e305a.dat"
-[ 29, 12 ] = ascii (fp) : "./hrtfs/elev55/L55e300a.dat"
-[ 29, 13 ] = ascii (fp) : "./hrtfs/elev55/L55e295a.dat"
-[ 29, 14 ] = ascii (fp) : "./hrtfs/elev55/L55e290a.dat"
-[ 29, 15 ] = ascii (fp) : "./hrtfs/elev55/L55e285a.dat"
-[ 29, 16 ] = ascii (fp) : "./hrtfs/elev55/L55e280a.dat"
-[ 29, 17 ] = ascii (fp) : "./hrtfs/elev55/L55e275a.dat"
-[ 29, 18 ] = ascii (fp) : "./hrtfs/elev55/L55e270a.dat"
-[ 29, 19 ] = ascii (fp) : "./hrtfs/elev55/L55e265a.dat"
-[ 29, 20 ] = ascii (fp) : "./hrtfs/elev55/L55e260a.dat"
-[ 29, 21 ] = ascii (fp) : "./hrtfs/elev55/L55e255a.dat"
-[ 29, 22 ] = ascii (fp) : "./hrtfs/elev55/L55e250a.dat"
-[ 29, 23 ] = ascii (fp) : "./hrtfs/elev55/L55e245a.dat"
-[ 29, 24 ] = ascii (fp) : "./hrtfs/elev55/L55e240a.dat"
-[ 29, 25 ] = ascii (fp) : "./hrtfs/elev55/L55e235a.dat"
-[ 29, 26 ] = ascii (fp) : "./hrtfs/elev55/L55e230a.dat"
-[ 29, 27 ] = ascii (fp) : "./hrtfs/elev55/L55e225a.dat"
-[ 29, 28 ] = ascii (fp) : "./hrtfs/elev55/L55e220a.dat"
-[ 29, 29 ] = ascii (fp) : "./hrtfs/elev55/L55e215a.dat"
-[ 29, 30 ] = ascii (fp) : "./hrtfs/elev55/L55e210a.dat"
-[ 29, 31 ] = ascii (fp) : "./hrtfs/elev55/L55e205a.dat"
-[ 29, 32 ] = ascii (fp) : "./hrtfs/elev55/L55e200a.dat"
-[ 29, 33 ] = ascii (fp) : "./hrtfs/elev55/L55e195a.dat"
-[ 29, 34 ] = ascii (fp) : "./hrtfs/elev55/L55e190a.dat"
-[ 29, 35 ] = ascii (fp) : "./hrtfs/elev55/L55e185a.dat"
-[ 29, 36 ] = ascii (fp) : "./hrtfs/elev55/L55e180a.dat"
-[ 29, 37 ] = ascii (fp) : "./hrtfs/elev55/L55e175a.dat"
-[ 29, 38 ] = ascii (fp) : "./hrtfs/elev55/L55e170a.dat"
-[ 29, 39 ] = ascii (fp) : "./hrtfs/elev55/L55e165a.dat"
-[ 29, 40 ] = ascii (fp) : "./hrtfs/elev55/L55e160a.dat"
-[ 29, 41 ] = ascii (fp) : "./hrtfs/elev55/L55e155a.dat"
-[ 29, 42 ] = ascii (fp) : "./hrtfs/elev55/L55e150a.dat"
-[ 29, 43 ] = ascii (fp) : "./hrtfs/elev55/L55e145a.dat"
-[ 29, 44 ] = ascii (fp) : "./hrtfs/elev55/L55e140a.dat"
-[ 29, 45 ] = ascii (fp) : "./hrtfs/elev55/L55e135a.dat"
-[ 29, 46 ] = ascii (fp) : "./hrtfs/elev55/L55e130a.dat"
-[ 29, 47 ] = ascii (fp) : "./hrtfs/elev55/L55e125a.dat"
-[ 29, 48 ] = ascii (fp) : "./hrtfs/elev55/L55e120a.dat"
-[ 29, 49 ] = ascii (fp) : "./hrtfs/elev55/L55e115a.dat"
-[ 29, 50 ] = ascii (fp) : "./hrtfs/elev55/L55e110a.dat"
-[ 29, 51 ] = ascii (fp) : "./hrtfs/elev55/L55e105a.dat"
-[ 29, 52 ] = ascii (fp) : "./hrtfs/elev55/L55e100a.dat"
-[ 29, 53 ] = ascii (fp) : "./hrtfs/elev55/L55e095a.dat"
-[ 29, 54 ] = ascii (fp) : "./hrtfs/elev55/L55e090a.dat"
-[ 29, 55 ] = ascii (fp) : "./hrtfs/elev55/L55e085a.dat"
-[ 29, 56 ] = ascii (fp) : "./hrtfs/elev55/L55e080a.dat"
-[ 29, 57 ] = ascii (fp) : "./hrtfs/elev55/L55e075a.dat"
-[ 29, 58 ] = ascii (fp) : "./hrtfs/elev55/L55e070a.dat"
-[ 29, 59 ] = ascii (fp) : "./hrtfs/elev55/L55e065a.dat"
-[ 29, 60 ] = ascii (fp) : "./hrtfs/elev55/L55e060a.dat"
-[ 29, 61 ] = ascii (fp) : "./hrtfs/elev55/L55e055a.dat"
-[ 29, 62 ] = ascii (fp) : "./hrtfs/elev55/L55e050a.dat"
-[ 29, 63 ] = ascii (fp) : "./hrtfs/elev55/L55e045a.dat"
-[ 29, 64 ] = ascii (fp) : "./hrtfs/elev55/L55e040a.dat"
-[ 29, 65 ] = ascii (fp) : "./hrtfs/elev55/L55e035a.dat"
-[ 29, 66 ] = ascii (fp) : "./hrtfs/elev55/L55e030a.dat"
-[ 29, 67 ] = ascii (fp) : "./hrtfs/elev55/L55e025a.dat"
-[ 29, 68 ] = ascii (fp) : "./hrtfs/elev55/L55e020a.dat"
-[ 29, 69 ] = ascii (fp) : "./hrtfs/elev55/L55e015a.dat"
-[ 29, 70 ] = ascii (fp) : "./hrtfs/elev55/L55e010a.dat"
-[ 29, 71 ] = ascii (fp) : "./hrtfs/elev55/L55e005a.dat"
+[ 29, 0 ] = ascii (fp) : "./hrtfs/elev55/L55e000a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e000a.dat right
+[ 29, 1 ] = ascii (fp) : "./hrtfs/elev55/L55e355a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e355a.dat right
+[ 29, 2 ] = ascii (fp) : "./hrtfs/elev55/L55e350a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e350a.dat right
+[ 29, 3 ] = ascii (fp) : "./hrtfs/elev55/L55e345a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e345a.dat right
+[ 29, 4 ] = ascii (fp) : "./hrtfs/elev55/L55e340a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e340a.dat right
+[ 29, 5 ] = ascii (fp) : "./hrtfs/elev55/L55e335a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e335a.dat right
+[ 29, 6 ] = ascii (fp) : "./hrtfs/elev55/L55e330a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e330a.dat right
+[ 29, 7 ] = ascii (fp) : "./hrtfs/elev55/L55e325a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e325a.dat right
+[ 29, 8 ] = ascii (fp) : "./hrtfs/elev55/L55e320a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e320a.dat right
+[ 29, 9 ] = ascii (fp) : "./hrtfs/elev55/L55e315a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e315a.dat right
+[ 29, 10 ] = ascii (fp) : "./hrtfs/elev55/L55e310a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e310a.dat right
+[ 29, 11 ] = ascii (fp) : "./hrtfs/elev55/L55e305a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e305a.dat right
+[ 29, 12 ] = ascii (fp) : "./hrtfs/elev55/L55e300a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e300a.dat right
+[ 29, 13 ] = ascii (fp) : "./hrtfs/elev55/L55e295a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e295a.dat right
+[ 29, 14 ] = ascii (fp) : "./hrtfs/elev55/L55e290a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e290a.dat right
+[ 29, 15 ] = ascii (fp) : "./hrtfs/elev55/L55e285a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e285a.dat right
+[ 29, 16 ] = ascii (fp) : "./hrtfs/elev55/L55e280a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e280a.dat right
+[ 29, 17 ] = ascii (fp) : "./hrtfs/elev55/L55e275a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e275a.dat right
+[ 29, 18 ] = ascii (fp) : "./hrtfs/elev55/L55e270a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e270a.dat right
+[ 29, 19 ] = ascii (fp) : "./hrtfs/elev55/L55e265a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e265a.dat right
+[ 29, 20 ] = ascii (fp) : "./hrtfs/elev55/L55e260a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e260a.dat right
+[ 29, 21 ] = ascii (fp) : "./hrtfs/elev55/L55e255a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e255a.dat right
+[ 29, 22 ] = ascii (fp) : "./hrtfs/elev55/L55e250a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e250a.dat right
+[ 29, 23 ] = ascii (fp) : "./hrtfs/elev55/L55e245a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e245a.dat right
+[ 29, 24 ] = ascii (fp) : "./hrtfs/elev55/L55e240a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e240a.dat right
+[ 29, 25 ] = ascii (fp) : "./hrtfs/elev55/L55e235a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e235a.dat right
+[ 29, 26 ] = ascii (fp) : "./hrtfs/elev55/L55e230a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e230a.dat right
+[ 29, 27 ] = ascii (fp) : "./hrtfs/elev55/L55e225a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e225a.dat right
+[ 29, 28 ] = ascii (fp) : "./hrtfs/elev55/L55e220a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e220a.dat right
+[ 29, 29 ] = ascii (fp) : "./hrtfs/elev55/L55e215a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e215a.dat right
+[ 29, 30 ] = ascii (fp) : "./hrtfs/elev55/L55e210a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e210a.dat right
+[ 29, 31 ] = ascii (fp) : "./hrtfs/elev55/L55e205a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e205a.dat right
+[ 29, 32 ] = ascii (fp) : "./hrtfs/elev55/L55e200a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e200a.dat right
+[ 29, 33 ] = ascii (fp) : "./hrtfs/elev55/L55e195a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e195a.dat right
+[ 29, 34 ] = ascii (fp) : "./hrtfs/elev55/L55e190a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e190a.dat right
+[ 29, 35 ] = ascii (fp) : "./hrtfs/elev55/L55e185a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e185a.dat right
+[ 29, 36 ] = ascii (fp) : "./hrtfs/elev55/L55e180a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e180a.dat right
+[ 29, 37 ] = ascii (fp) : "./hrtfs/elev55/L55e175a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e175a.dat right
+[ 29, 38 ] = ascii (fp) : "./hrtfs/elev55/L55e170a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e170a.dat right
+[ 29, 39 ] = ascii (fp) : "./hrtfs/elev55/L55e165a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e165a.dat right
+[ 29, 40 ] = ascii (fp) : "./hrtfs/elev55/L55e160a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e160a.dat right
+[ 29, 41 ] = ascii (fp) : "./hrtfs/elev55/L55e155a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e155a.dat right
+[ 29, 42 ] = ascii (fp) : "./hrtfs/elev55/L55e150a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e150a.dat right
+[ 29, 43 ] = ascii (fp) : "./hrtfs/elev55/L55e145a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e145a.dat right
+[ 29, 44 ] = ascii (fp) : "./hrtfs/elev55/L55e140a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e140a.dat right
+[ 29, 45 ] = ascii (fp) : "./hrtfs/elev55/L55e135a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e135a.dat right
+[ 29, 46 ] = ascii (fp) : "./hrtfs/elev55/L55e130a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e130a.dat right
+[ 29, 47 ] = ascii (fp) : "./hrtfs/elev55/L55e125a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e125a.dat right
+[ 29, 48 ] = ascii (fp) : "./hrtfs/elev55/L55e120a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e120a.dat right
+[ 29, 49 ] = ascii (fp) : "./hrtfs/elev55/L55e115a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e115a.dat right
+[ 29, 50 ] = ascii (fp) : "./hrtfs/elev55/L55e110a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e110a.dat right
+[ 29, 51 ] = ascii (fp) : "./hrtfs/elev55/L55e105a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e105a.dat right
+[ 29, 52 ] = ascii (fp) : "./hrtfs/elev55/L55e100a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e100a.dat right
+[ 29, 53 ] = ascii (fp) : "./hrtfs/elev55/L55e095a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e095a.dat right
+[ 29, 54 ] = ascii (fp) : "./hrtfs/elev55/L55e090a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e090a.dat right
+[ 29, 55 ] = ascii (fp) : "./hrtfs/elev55/L55e085a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e085a.dat right
+[ 29, 56 ] = ascii (fp) : "./hrtfs/elev55/L55e080a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e080a.dat right
+[ 29, 57 ] = ascii (fp) : "./hrtfs/elev55/L55e075a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e075a.dat right
+[ 29, 58 ] = ascii (fp) : "./hrtfs/elev55/L55e070a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e070a.dat right
+[ 29, 59 ] = ascii (fp) : "./hrtfs/elev55/L55e065a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e065a.dat right
+[ 29, 60 ] = ascii (fp) : "./hrtfs/elev55/L55e060a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e060a.dat right
+[ 29, 61 ] = ascii (fp) : "./hrtfs/elev55/L55e055a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e055a.dat right
+[ 29, 62 ] = ascii (fp) : "./hrtfs/elev55/L55e050a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e050a.dat right
+[ 29, 63 ] = ascii (fp) : "./hrtfs/elev55/L55e045a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e045a.dat right
+[ 29, 64 ] = ascii (fp) : "./hrtfs/elev55/L55e040a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e040a.dat right
+[ 29, 65 ] = ascii (fp) : "./hrtfs/elev55/L55e035a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e035a.dat right
+[ 29, 66 ] = ascii (fp) : "./hrtfs/elev55/L55e030a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e030a.dat right
+[ 29, 67 ] = ascii (fp) : "./hrtfs/elev55/L55e025a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e025a.dat right
+[ 29, 68 ] = ascii (fp) : "./hrtfs/elev55/L55e020a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e020a.dat right
+[ 29, 69 ] = ascii (fp) : "./hrtfs/elev55/L55e015a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e015a.dat right
+[ 29, 70 ] = ascii (fp) : "./hrtfs/elev55/L55e010a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e010a.dat right
+[ 29, 71 ] = ascii (fp) : "./hrtfs/elev55/L55e005a.dat left
+ + ascii (fp) : "./hrtfs/elev55/R55e005a.dat right
-[ 30, 0 ] = ascii (fp) : "./hrtfs/elev60/L60e000a.dat"
-[ 30, 1 ] = ascii (fp) : "./hrtfs/elev60/L60e355a.dat"
-[ 30, 2 ] = ascii (fp) : "./hrtfs/elev60/L60e350a.dat"
-[ 30, 3 ] = ascii (fp) : "./hrtfs/elev60/L60e345a.dat"
-[ 30, 4 ] = ascii (fp) : "./hrtfs/elev60/L60e340a.dat"
-[ 30, 5 ] = ascii (fp) : "./hrtfs/elev60/L60e335a.dat"
-[ 30, 6 ] = ascii (fp) : "./hrtfs/elev60/L60e330a.dat"
-[ 30, 7 ] = ascii (fp) : "./hrtfs/elev60/L60e325a.dat"
-[ 30, 8 ] = ascii (fp) : "./hrtfs/elev60/L60e320a.dat"
-[ 30, 9 ] = ascii (fp) : "./hrtfs/elev60/L60e315a.dat"
-[ 30, 10 ] = ascii (fp) : "./hrtfs/elev60/L60e310a.dat"
-[ 30, 11 ] = ascii (fp) : "./hrtfs/elev60/L60e305a.dat"
-[ 30, 12 ] = ascii (fp) : "./hrtfs/elev60/L60e300a.dat"
-[ 30, 13 ] = ascii (fp) : "./hrtfs/elev60/L60e295a.dat"
-[ 30, 14 ] = ascii (fp) : "./hrtfs/elev60/L60e290a.dat"
-[ 30, 15 ] = ascii (fp) : "./hrtfs/elev60/L60e285a.dat"
-[ 30, 16 ] = ascii (fp) : "./hrtfs/elev60/L60e280a.dat"
-[ 30, 17 ] = ascii (fp) : "./hrtfs/elev60/L60e275a.dat"
-[ 30, 18 ] = ascii (fp) : "./hrtfs/elev60/L60e270a.dat"
-[ 30, 19 ] = ascii (fp) : "./hrtfs/elev60/L60e265a.dat"
-[ 30, 20 ] = ascii (fp) : "./hrtfs/elev60/L60e260a.dat"
-[ 30, 21 ] = ascii (fp) : "./hrtfs/elev60/L60e255a.dat"
-[ 30, 22 ] = ascii (fp) : "./hrtfs/elev60/L60e250a.dat"
-[ 30, 23 ] = ascii (fp) : "./hrtfs/elev60/L60e245a.dat"
-[ 30, 24 ] = ascii (fp) : "./hrtfs/elev60/L60e240a.dat"
-[ 30, 25 ] = ascii (fp) : "./hrtfs/elev60/L60e235a.dat"
-[ 30, 26 ] = ascii (fp) : "./hrtfs/elev60/L60e230a.dat"
-[ 30, 27 ] = ascii (fp) : "./hrtfs/elev60/L60e225a.dat"
-[ 30, 28 ] = ascii (fp) : "./hrtfs/elev60/L60e220a.dat"
-[ 30, 29 ] = ascii (fp) : "./hrtfs/elev60/L60e215a.dat"
-[ 30, 30 ] = ascii (fp) : "./hrtfs/elev60/L60e210a.dat"
-[ 30, 31 ] = ascii (fp) : "./hrtfs/elev60/L60e205a.dat"
-[ 30, 32 ] = ascii (fp) : "./hrtfs/elev60/L60e200a.dat"
-[ 30, 33 ] = ascii (fp) : "./hrtfs/elev60/L60e195a.dat"
-[ 30, 34 ] = ascii (fp) : "./hrtfs/elev60/L60e190a.dat"
-[ 30, 35 ] = ascii (fp) : "./hrtfs/elev60/L60e185a.dat"
-[ 30, 36 ] = ascii (fp) : "./hrtfs/elev60/L60e180a.dat"
-[ 30, 37 ] = ascii (fp) : "./hrtfs/elev60/L60e175a.dat"
-[ 30, 38 ] = ascii (fp) : "./hrtfs/elev60/L60e170a.dat"
-[ 30, 39 ] = ascii (fp) : "./hrtfs/elev60/L60e165a.dat"
-[ 30, 40 ] = ascii (fp) : "./hrtfs/elev60/L60e160a.dat"
-[ 30, 41 ] = ascii (fp) : "./hrtfs/elev60/L60e155a.dat"
-[ 30, 42 ] = ascii (fp) : "./hrtfs/elev60/L60e150a.dat"
-[ 30, 43 ] = ascii (fp) : "./hrtfs/elev60/L60e145a.dat"
-[ 30, 44 ] = ascii (fp) : "./hrtfs/elev60/L60e140a.dat"
-[ 30, 45 ] = ascii (fp) : "./hrtfs/elev60/L60e135a.dat"
-[ 30, 46 ] = ascii (fp) : "./hrtfs/elev60/L60e130a.dat"
-[ 30, 47 ] = ascii (fp) : "./hrtfs/elev60/L60e125a.dat"
-[ 30, 48 ] = ascii (fp) : "./hrtfs/elev60/L60e120a.dat"
-[ 30, 49 ] = ascii (fp) : "./hrtfs/elev60/L60e115a.dat"
-[ 30, 50 ] = ascii (fp) : "./hrtfs/elev60/L60e110a.dat"
-[ 30, 51 ] = ascii (fp) : "./hrtfs/elev60/L60e105a.dat"
-[ 30, 52 ] = ascii (fp) : "./hrtfs/elev60/L60e100a.dat"
-[ 30, 53 ] = ascii (fp) : "./hrtfs/elev60/L60e095a.dat"
-[ 30, 54 ] = ascii (fp) : "./hrtfs/elev60/L60e090a.dat"
-[ 30, 55 ] = ascii (fp) : "./hrtfs/elev60/L60e085a.dat"
-[ 30, 56 ] = ascii (fp) : "./hrtfs/elev60/L60e080a.dat"
-[ 30, 57 ] = ascii (fp) : "./hrtfs/elev60/L60e075a.dat"
-[ 30, 58 ] = ascii (fp) : "./hrtfs/elev60/L60e070a.dat"
-[ 30, 59 ] = ascii (fp) : "./hrtfs/elev60/L60e065a.dat"
-[ 30, 60 ] = ascii (fp) : "./hrtfs/elev60/L60e060a.dat"
-[ 30, 61 ] = ascii (fp) : "./hrtfs/elev60/L60e055a.dat"
-[ 30, 62 ] = ascii (fp) : "./hrtfs/elev60/L60e050a.dat"
-[ 30, 63 ] = ascii (fp) : "./hrtfs/elev60/L60e045a.dat"
-[ 30, 64 ] = ascii (fp) : "./hrtfs/elev60/L60e040a.dat"
-[ 30, 65 ] = ascii (fp) : "./hrtfs/elev60/L60e035a.dat"
-[ 30, 66 ] = ascii (fp) : "./hrtfs/elev60/L60e030a.dat"
-[ 30, 67 ] = ascii (fp) : "./hrtfs/elev60/L60e025a.dat"
-[ 30, 68 ] = ascii (fp) : "./hrtfs/elev60/L60e020a.dat"
-[ 30, 69 ] = ascii (fp) : "./hrtfs/elev60/L60e015a.dat"
-[ 30, 70 ] = ascii (fp) : "./hrtfs/elev60/L60e010a.dat"
-[ 30, 71 ] = ascii (fp) : "./hrtfs/elev60/L60e005a.dat"
+[ 30, 0 ] = ascii (fp) : "./hrtfs/elev60/L60e000a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e000a.dat right
+[ 30, 1 ] = ascii (fp) : "./hrtfs/elev60/L60e355a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e355a.dat right
+[ 30, 2 ] = ascii (fp) : "./hrtfs/elev60/L60e350a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e350a.dat right
+[ 30, 3 ] = ascii (fp) : "./hrtfs/elev60/L60e345a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e345a.dat right
+[ 30, 4 ] = ascii (fp) : "./hrtfs/elev60/L60e340a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e340a.dat right
+[ 30, 5 ] = ascii (fp) : "./hrtfs/elev60/L60e335a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e335a.dat right
+[ 30, 6 ] = ascii (fp) : "./hrtfs/elev60/L60e330a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e330a.dat right
+[ 30, 7 ] = ascii (fp) : "./hrtfs/elev60/L60e325a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e325a.dat right
+[ 30, 8 ] = ascii (fp) : "./hrtfs/elev60/L60e320a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e320a.dat right
+[ 30, 9 ] = ascii (fp) : "./hrtfs/elev60/L60e315a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e315a.dat right
+[ 30, 10 ] = ascii (fp) : "./hrtfs/elev60/L60e310a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e310a.dat right
+[ 30, 11 ] = ascii (fp) : "./hrtfs/elev60/L60e305a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e305a.dat right
+[ 30, 12 ] = ascii (fp) : "./hrtfs/elev60/L60e300a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e300a.dat right
+[ 30, 13 ] = ascii (fp) : "./hrtfs/elev60/L60e295a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e295a.dat right
+[ 30, 14 ] = ascii (fp) : "./hrtfs/elev60/L60e290a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e290a.dat right
+[ 30, 15 ] = ascii (fp) : "./hrtfs/elev60/L60e285a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e285a.dat right
+[ 30, 16 ] = ascii (fp) : "./hrtfs/elev60/L60e280a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e280a.dat right
+[ 30, 17 ] = ascii (fp) : "./hrtfs/elev60/L60e275a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e275a.dat right
+[ 30, 18 ] = ascii (fp) : "./hrtfs/elev60/L60e270a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e270a.dat right
+[ 30, 19 ] = ascii (fp) : "./hrtfs/elev60/L60e265a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e265a.dat right
+[ 30, 20 ] = ascii (fp) : "./hrtfs/elev60/L60e260a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e260a.dat right
+[ 30, 21 ] = ascii (fp) : "./hrtfs/elev60/L60e255a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e255a.dat right
+[ 30, 22 ] = ascii (fp) : "./hrtfs/elev60/L60e250a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e250a.dat right
+[ 30, 23 ] = ascii (fp) : "./hrtfs/elev60/L60e245a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e245a.dat right
+[ 30, 24 ] = ascii (fp) : "./hrtfs/elev60/L60e240a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e240a.dat right
+[ 30, 25 ] = ascii (fp) : "./hrtfs/elev60/L60e235a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e235a.dat right
+[ 30, 26 ] = ascii (fp) : "./hrtfs/elev60/L60e230a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e230a.dat right
+[ 30, 27 ] = ascii (fp) : "./hrtfs/elev60/L60e225a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e225a.dat right
+[ 30, 28 ] = ascii (fp) : "./hrtfs/elev60/L60e220a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e220a.dat right
+[ 30, 29 ] = ascii (fp) : "./hrtfs/elev60/L60e215a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e215a.dat right
+[ 30, 30 ] = ascii (fp) : "./hrtfs/elev60/L60e210a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e210a.dat right
+[ 30, 31 ] = ascii (fp) : "./hrtfs/elev60/L60e205a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e205a.dat right
+[ 30, 32 ] = ascii (fp) : "./hrtfs/elev60/L60e200a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e200a.dat right
+[ 30, 33 ] = ascii (fp) : "./hrtfs/elev60/L60e195a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e195a.dat right
+[ 30, 34 ] = ascii (fp) : "./hrtfs/elev60/L60e190a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e190a.dat right
+[ 30, 35 ] = ascii (fp) : "./hrtfs/elev60/L60e185a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e185a.dat right
+[ 30, 36 ] = ascii (fp) : "./hrtfs/elev60/L60e180a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e180a.dat right
+[ 30, 37 ] = ascii (fp) : "./hrtfs/elev60/L60e175a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e175a.dat right
+[ 30, 38 ] = ascii (fp) : "./hrtfs/elev60/L60e170a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e170a.dat right
+[ 30, 39 ] = ascii (fp) : "./hrtfs/elev60/L60e165a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e165a.dat right
+[ 30, 40 ] = ascii (fp) : "./hrtfs/elev60/L60e160a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e160a.dat right
+[ 30, 41 ] = ascii (fp) : "./hrtfs/elev60/L60e155a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e155a.dat right
+[ 30, 42 ] = ascii (fp) : "./hrtfs/elev60/L60e150a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e150a.dat right
+[ 30, 43 ] = ascii (fp) : "./hrtfs/elev60/L60e145a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e145a.dat right
+[ 30, 44 ] = ascii (fp) : "./hrtfs/elev60/L60e140a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e140a.dat right
+[ 30, 45 ] = ascii (fp) : "./hrtfs/elev60/L60e135a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e135a.dat right
+[ 30, 46 ] = ascii (fp) : "./hrtfs/elev60/L60e130a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e130a.dat right
+[ 30, 47 ] = ascii (fp) : "./hrtfs/elev60/L60e125a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e125a.dat right
+[ 30, 48 ] = ascii (fp) : "./hrtfs/elev60/L60e120a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e120a.dat right
+[ 30, 49 ] = ascii (fp) : "./hrtfs/elev60/L60e115a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e115a.dat right
+[ 30, 50 ] = ascii (fp) : "./hrtfs/elev60/L60e110a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e110a.dat right
+[ 30, 51 ] = ascii (fp) : "./hrtfs/elev60/L60e105a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e105a.dat right
+[ 30, 52 ] = ascii (fp) : "./hrtfs/elev60/L60e100a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e100a.dat right
+[ 30, 53 ] = ascii (fp) : "./hrtfs/elev60/L60e095a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e095a.dat right
+[ 30, 54 ] = ascii (fp) : "./hrtfs/elev60/L60e090a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e090a.dat right
+[ 30, 55 ] = ascii (fp) : "./hrtfs/elev60/L60e085a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e085a.dat right
+[ 30, 56 ] = ascii (fp) : "./hrtfs/elev60/L60e080a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e080a.dat right
+[ 30, 57 ] = ascii (fp) : "./hrtfs/elev60/L60e075a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e075a.dat right
+[ 30, 58 ] = ascii (fp) : "./hrtfs/elev60/L60e070a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e070a.dat right
+[ 30, 59 ] = ascii (fp) : "./hrtfs/elev60/L60e065a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e065a.dat right
+[ 30, 60 ] = ascii (fp) : "./hrtfs/elev60/L60e060a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e060a.dat right
+[ 30, 61 ] = ascii (fp) : "./hrtfs/elev60/L60e055a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e055a.dat right
+[ 30, 62 ] = ascii (fp) : "./hrtfs/elev60/L60e050a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e050a.dat right
+[ 30, 63 ] = ascii (fp) : "./hrtfs/elev60/L60e045a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e045a.dat right
+[ 30, 64 ] = ascii (fp) : "./hrtfs/elev60/L60e040a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e040a.dat right
+[ 30, 65 ] = ascii (fp) : "./hrtfs/elev60/L60e035a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e035a.dat right
+[ 30, 66 ] = ascii (fp) : "./hrtfs/elev60/L60e030a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e030a.dat right
+[ 30, 67 ] = ascii (fp) : "./hrtfs/elev60/L60e025a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e025a.dat right
+[ 30, 68 ] = ascii (fp) : "./hrtfs/elev60/L60e020a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e020a.dat right
+[ 30, 69 ] = ascii (fp) : "./hrtfs/elev60/L60e015a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e015a.dat right
+[ 30, 70 ] = ascii (fp) : "./hrtfs/elev60/L60e010a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e010a.dat right
+[ 30, 71 ] = ascii (fp) : "./hrtfs/elev60/L60e005a.dat left
+ + ascii (fp) : "./hrtfs/elev60/R60e005a.dat right
-[ 31, 0 ] = ascii (fp) : "./hrtfs/elev65/L65e000a.dat"
-[ 31, 1 ] = ascii (fp) : "./hrtfs/elev65/L65e355a.dat"
-[ 31, 2 ] = ascii (fp) : "./hrtfs/elev65/L65e350a.dat"
-[ 31, 3 ] = ascii (fp) : "./hrtfs/elev65/L65e345a.dat"
-[ 31, 4 ] = ascii (fp) : "./hrtfs/elev65/L65e340a.dat"
-[ 31, 5 ] = ascii (fp) : "./hrtfs/elev65/L65e335a.dat"
-[ 31, 6 ] = ascii (fp) : "./hrtfs/elev65/L65e330a.dat"
-[ 31, 7 ] = ascii (fp) : "./hrtfs/elev65/L65e325a.dat"
-[ 31, 8 ] = ascii (fp) : "./hrtfs/elev65/L65e320a.dat"
-[ 31, 9 ] = ascii (fp) : "./hrtfs/elev65/L65e315a.dat"
-[ 31, 10 ] = ascii (fp) : "./hrtfs/elev65/L65e310a.dat"
-[ 31, 11 ] = ascii (fp) : "./hrtfs/elev65/L65e305a.dat"
-[ 31, 12 ] = ascii (fp) : "./hrtfs/elev65/L65e300a.dat"
-[ 31, 13 ] = ascii (fp) : "./hrtfs/elev65/L65e295a.dat"
-[ 31, 14 ] = ascii (fp) : "./hrtfs/elev65/L65e290a.dat"
-[ 31, 15 ] = ascii (fp) : "./hrtfs/elev65/L65e285a.dat"
-[ 31, 16 ] = ascii (fp) : "./hrtfs/elev65/L65e280a.dat"
-[ 31, 17 ] = ascii (fp) : "./hrtfs/elev65/L65e275a.dat"
-[ 31, 18 ] = ascii (fp) : "./hrtfs/elev65/L65e270a.dat"
-[ 31, 19 ] = ascii (fp) : "./hrtfs/elev65/L65e265a.dat"
-[ 31, 20 ] = ascii (fp) : "./hrtfs/elev65/L65e260a.dat"
-[ 31, 21 ] = ascii (fp) : "./hrtfs/elev65/L65e255a.dat"
-[ 31, 22 ] = ascii (fp) : "./hrtfs/elev65/L65e250a.dat"
-[ 31, 23 ] = ascii (fp) : "./hrtfs/elev65/L65e245a.dat"
-[ 31, 24 ] = ascii (fp) : "./hrtfs/elev65/L65e240a.dat"
-[ 31, 25 ] = ascii (fp) : "./hrtfs/elev65/L65e235a.dat"
-[ 31, 26 ] = ascii (fp) : "./hrtfs/elev65/L65e230a.dat"
-[ 31, 27 ] = ascii (fp) : "./hrtfs/elev65/L65e225a.dat"
-[ 31, 28 ] = ascii (fp) : "./hrtfs/elev65/L65e220a.dat"
-[ 31, 29 ] = ascii (fp) : "./hrtfs/elev65/L65e215a.dat"
-[ 31, 30 ] = ascii (fp) : "./hrtfs/elev65/L65e210a.dat"
-[ 31, 31 ] = ascii (fp) : "./hrtfs/elev65/L65e205a.dat"
-[ 31, 32 ] = ascii (fp) : "./hrtfs/elev65/L65e200a.dat"
-[ 31, 33 ] = ascii (fp) : "./hrtfs/elev65/L65e195a.dat"
-[ 31, 34 ] = ascii (fp) : "./hrtfs/elev65/L65e190a.dat"
-[ 31, 35 ] = ascii (fp) : "./hrtfs/elev65/L65e185a.dat"
-[ 31, 36 ] = ascii (fp) : "./hrtfs/elev65/L65e180a.dat"
-[ 31, 37 ] = ascii (fp) : "./hrtfs/elev65/L65e175a.dat"
-[ 31, 38 ] = ascii (fp) : "./hrtfs/elev65/L65e170a.dat"
-[ 31, 39 ] = ascii (fp) : "./hrtfs/elev65/L65e165a.dat"
-[ 31, 40 ] = ascii (fp) : "./hrtfs/elev65/L65e160a.dat"
-[ 31, 41 ] = ascii (fp) : "./hrtfs/elev65/L65e155a.dat"
-[ 31, 42 ] = ascii (fp) : "./hrtfs/elev65/L65e150a.dat"
-[ 31, 43 ] = ascii (fp) : "./hrtfs/elev65/L65e145a.dat"
-[ 31, 44 ] = ascii (fp) : "./hrtfs/elev65/L65e140a.dat"
-[ 31, 45 ] = ascii (fp) : "./hrtfs/elev65/L65e135a.dat"
-[ 31, 46 ] = ascii (fp) : "./hrtfs/elev65/L65e130a.dat"
-[ 31, 47 ] = ascii (fp) : "./hrtfs/elev65/L65e125a.dat"
-[ 31, 48 ] = ascii (fp) : "./hrtfs/elev65/L65e120a.dat"
-[ 31, 49 ] = ascii (fp) : "./hrtfs/elev65/L65e115a.dat"
-[ 31, 50 ] = ascii (fp) : "./hrtfs/elev65/L65e110a.dat"
-[ 31, 51 ] = ascii (fp) : "./hrtfs/elev65/L65e105a.dat"
-[ 31, 52 ] = ascii (fp) : "./hrtfs/elev65/L65e100a.dat"
-[ 31, 53 ] = ascii (fp) : "./hrtfs/elev65/L65e095a.dat"
-[ 31, 54 ] = ascii (fp) : "./hrtfs/elev65/L65e090a.dat"
-[ 31, 55 ] = ascii (fp) : "./hrtfs/elev65/L65e085a.dat"
-[ 31, 56 ] = ascii (fp) : "./hrtfs/elev65/L65e080a.dat"
-[ 31, 57 ] = ascii (fp) : "./hrtfs/elev65/L65e075a.dat"
-[ 31, 58 ] = ascii (fp) : "./hrtfs/elev65/L65e070a.dat"
-[ 31, 59 ] = ascii (fp) : "./hrtfs/elev65/L65e065a.dat"
-[ 31, 60 ] = ascii (fp) : "./hrtfs/elev65/L65e060a.dat"
-[ 31, 61 ] = ascii (fp) : "./hrtfs/elev65/L65e055a.dat"
-[ 31, 62 ] = ascii (fp) : "./hrtfs/elev65/L65e050a.dat"
-[ 31, 63 ] = ascii (fp) : "./hrtfs/elev65/L65e045a.dat"
-[ 31, 64 ] = ascii (fp) : "./hrtfs/elev65/L65e040a.dat"
-[ 31, 65 ] = ascii (fp) : "./hrtfs/elev65/L65e035a.dat"
-[ 31, 66 ] = ascii (fp) : "./hrtfs/elev65/L65e030a.dat"
-[ 31, 67 ] = ascii (fp) : "./hrtfs/elev65/L65e025a.dat"
-[ 31, 68 ] = ascii (fp) : "./hrtfs/elev65/L65e020a.dat"
-[ 31, 69 ] = ascii (fp) : "./hrtfs/elev65/L65e015a.dat"
-[ 31, 70 ] = ascii (fp) : "./hrtfs/elev65/L65e010a.dat"
-[ 31, 71 ] = ascii (fp) : "./hrtfs/elev65/L65e005a.dat"
+[ 31, 0 ] = ascii (fp) : "./hrtfs/elev65/L65e000a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e000a.dat right
+[ 31, 1 ] = ascii (fp) : "./hrtfs/elev65/L65e355a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e355a.dat right
+[ 31, 2 ] = ascii (fp) : "./hrtfs/elev65/L65e350a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e350a.dat right
+[ 31, 3 ] = ascii (fp) : "./hrtfs/elev65/L65e345a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e345a.dat right
+[ 31, 4 ] = ascii (fp) : "./hrtfs/elev65/L65e340a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e340a.dat right
+[ 31, 5 ] = ascii (fp) : "./hrtfs/elev65/L65e335a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e335a.dat right
+[ 31, 6 ] = ascii (fp) : "./hrtfs/elev65/L65e330a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e330a.dat right
+[ 31, 7 ] = ascii (fp) : "./hrtfs/elev65/L65e325a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e325a.dat right
+[ 31, 8 ] = ascii (fp) : "./hrtfs/elev65/L65e320a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e320a.dat right
+[ 31, 9 ] = ascii (fp) : "./hrtfs/elev65/L65e315a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e315a.dat right
+[ 31, 10 ] = ascii (fp) : "./hrtfs/elev65/L65e310a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e310a.dat right
+[ 31, 11 ] = ascii (fp) : "./hrtfs/elev65/L65e305a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e305a.dat right
+[ 31, 12 ] = ascii (fp) : "./hrtfs/elev65/L65e300a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e300a.dat right
+[ 31, 13 ] = ascii (fp) : "./hrtfs/elev65/L65e295a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e295a.dat right
+[ 31, 14 ] = ascii (fp) : "./hrtfs/elev65/L65e290a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e290a.dat right
+[ 31, 15 ] = ascii (fp) : "./hrtfs/elev65/L65e285a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e285a.dat right
+[ 31, 16 ] = ascii (fp) : "./hrtfs/elev65/L65e280a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e280a.dat right
+[ 31, 17 ] = ascii (fp) : "./hrtfs/elev65/L65e275a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e275a.dat right
+[ 31, 18 ] = ascii (fp) : "./hrtfs/elev65/L65e270a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e270a.dat right
+[ 31, 19 ] = ascii (fp) : "./hrtfs/elev65/L65e265a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e265a.dat right
+[ 31, 20 ] = ascii (fp) : "./hrtfs/elev65/L65e260a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e260a.dat right
+[ 31, 21 ] = ascii (fp) : "./hrtfs/elev65/L65e255a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e255a.dat right
+[ 31, 22 ] = ascii (fp) : "./hrtfs/elev65/L65e250a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e250a.dat right
+[ 31, 23 ] = ascii (fp) : "./hrtfs/elev65/L65e245a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e245a.dat right
+[ 31, 24 ] = ascii (fp) : "./hrtfs/elev65/L65e240a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e240a.dat right
+[ 31, 25 ] = ascii (fp) : "./hrtfs/elev65/L65e235a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e235a.dat right
+[ 31, 26 ] = ascii (fp) : "./hrtfs/elev65/L65e230a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e230a.dat right
+[ 31, 27 ] = ascii (fp) : "./hrtfs/elev65/L65e225a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e225a.dat right
+[ 31, 28 ] = ascii (fp) : "./hrtfs/elev65/L65e220a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e220a.dat right
+[ 31, 29 ] = ascii (fp) : "./hrtfs/elev65/L65e215a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e215a.dat right
+[ 31, 30 ] = ascii (fp) : "./hrtfs/elev65/L65e210a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e210a.dat right
+[ 31, 31 ] = ascii (fp) : "./hrtfs/elev65/L65e205a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e205a.dat right
+[ 31, 32 ] = ascii (fp) : "./hrtfs/elev65/L65e200a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e200a.dat right
+[ 31, 33 ] = ascii (fp) : "./hrtfs/elev65/L65e195a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e195a.dat right
+[ 31, 34 ] = ascii (fp) : "./hrtfs/elev65/L65e190a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e190a.dat right
+[ 31, 35 ] = ascii (fp) : "./hrtfs/elev65/L65e185a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e185a.dat right
+[ 31, 36 ] = ascii (fp) : "./hrtfs/elev65/L65e180a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e180a.dat right
+[ 31, 37 ] = ascii (fp) : "./hrtfs/elev65/L65e175a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e175a.dat right
+[ 31, 38 ] = ascii (fp) : "./hrtfs/elev65/L65e170a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e170a.dat right
+[ 31, 39 ] = ascii (fp) : "./hrtfs/elev65/L65e165a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e165a.dat right
+[ 31, 40 ] = ascii (fp) : "./hrtfs/elev65/L65e160a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e160a.dat right
+[ 31, 41 ] = ascii (fp) : "./hrtfs/elev65/L65e155a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e155a.dat right
+[ 31, 42 ] = ascii (fp) : "./hrtfs/elev65/L65e150a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e150a.dat right
+[ 31, 43 ] = ascii (fp) : "./hrtfs/elev65/L65e145a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e145a.dat right
+[ 31, 44 ] = ascii (fp) : "./hrtfs/elev65/L65e140a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e140a.dat right
+[ 31, 45 ] = ascii (fp) : "./hrtfs/elev65/L65e135a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e135a.dat right
+[ 31, 46 ] = ascii (fp) : "./hrtfs/elev65/L65e130a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e130a.dat right
+[ 31, 47 ] = ascii (fp) : "./hrtfs/elev65/L65e125a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e125a.dat right
+[ 31, 48 ] = ascii (fp) : "./hrtfs/elev65/L65e120a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e120a.dat right
+[ 31, 49 ] = ascii (fp) : "./hrtfs/elev65/L65e115a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e115a.dat right
+[ 31, 50 ] = ascii (fp) : "./hrtfs/elev65/L65e110a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e110a.dat right
+[ 31, 51 ] = ascii (fp) : "./hrtfs/elev65/L65e105a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e105a.dat right
+[ 31, 52 ] = ascii (fp) : "./hrtfs/elev65/L65e100a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e100a.dat right
+[ 31, 53 ] = ascii (fp) : "./hrtfs/elev65/L65e095a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e095a.dat right
+[ 31, 54 ] = ascii (fp) : "./hrtfs/elev65/L65e090a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e090a.dat right
+[ 31, 55 ] = ascii (fp) : "./hrtfs/elev65/L65e085a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e085a.dat right
+[ 31, 56 ] = ascii (fp) : "./hrtfs/elev65/L65e080a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e080a.dat right
+[ 31, 57 ] = ascii (fp) : "./hrtfs/elev65/L65e075a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e075a.dat right
+[ 31, 58 ] = ascii (fp) : "./hrtfs/elev65/L65e070a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e070a.dat right
+[ 31, 59 ] = ascii (fp) : "./hrtfs/elev65/L65e065a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e065a.dat right
+[ 31, 60 ] = ascii (fp) : "./hrtfs/elev65/L65e060a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e060a.dat right
+[ 31, 61 ] = ascii (fp) : "./hrtfs/elev65/L65e055a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e055a.dat right
+[ 31, 62 ] = ascii (fp) : "./hrtfs/elev65/L65e050a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e050a.dat right
+[ 31, 63 ] = ascii (fp) : "./hrtfs/elev65/L65e045a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e045a.dat right
+[ 31, 64 ] = ascii (fp) : "./hrtfs/elev65/L65e040a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e040a.dat right
+[ 31, 65 ] = ascii (fp) : "./hrtfs/elev65/L65e035a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e035a.dat right
+[ 31, 66 ] = ascii (fp) : "./hrtfs/elev65/L65e030a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e030a.dat right
+[ 31, 67 ] = ascii (fp) : "./hrtfs/elev65/L65e025a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e025a.dat right
+[ 31, 68 ] = ascii (fp) : "./hrtfs/elev65/L65e020a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e020a.dat right
+[ 31, 69 ] = ascii (fp) : "./hrtfs/elev65/L65e015a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e015a.dat right
+[ 31, 70 ] = ascii (fp) : "./hrtfs/elev65/L65e010a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e010a.dat right
+[ 31, 71 ] = ascii (fp) : "./hrtfs/elev65/L65e005a.dat left
+ + ascii (fp) : "./hrtfs/elev65/R65e005a.dat right
-[ 32, 0 ] = ascii (fp) : "./hrtfs/elev70/L70e000a.dat"
-[ 32, 1 ] = ascii (fp) : "./hrtfs/elev70/L70e355a.dat"
-[ 32, 2 ] = ascii (fp) : "./hrtfs/elev70/L70e350a.dat"
-[ 32, 3 ] = ascii (fp) : "./hrtfs/elev70/L70e345a.dat"
-[ 32, 4 ] = ascii (fp) : "./hrtfs/elev70/L70e340a.dat"
-[ 32, 5 ] = ascii (fp) : "./hrtfs/elev70/L70e335a.dat"
-[ 32, 6 ] = ascii (fp) : "./hrtfs/elev70/L70e330a.dat"
-[ 32, 7 ] = ascii (fp) : "./hrtfs/elev70/L70e325a.dat"
-[ 32, 8 ] = ascii (fp) : "./hrtfs/elev70/L70e320a.dat"
-[ 32, 9 ] = ascii (fp) : "./hrtfs/elev70/L70e315a.dat"
-[ 32, 10 ] = ascii (fp) : "./hrtfs/elev70/L70e310a.dat"
-[ 32, 11 ] = ascii (fp) : "./hrtfs/elev70/L70e305a.dat"
-[ 32, 12 ] = ascii (fp) : "./hrtfs/elev70/L70e300a.dat"
-[ 32, 13 ] = ascii (fp) : "./hrtfs/elev70/L70e295a.dat"
-[ 32, 14 ] = ascii (fp) : "./hrtfs/elev70/L70e290a.dat"
-[ 32, 15 ] = ascii (fp) : "./hrtfs/elev70/L70e285a.dat"
-[ 32, 16 ] = ascii (fp) : "./hrtfs/elev70/L70e280a.dat"
-[ 32, 17 ] = ascii (fp) : "./hrtfs/elev70/L70e275a.dat"
-[ 32, 18 ] = ascii (fp) : "./hrtfs/elev70/L70e270a.dat"
-[ 32, 19 ] = ascii (fp) : "./hrtfs/elev70/L70e265a.dat"
-[ 32, 20 ] = ascii (fp) : "./hrtfs/elev70/L70e260a.dat"
-[ 32, 21 ] = ascii (fp) : "./hrtfs/elev70/L70e255a.dat"
-[ 32, 22 ] = ascii (fp) : "./hrtfs/elev70/L70e250a.dat"
-[ 32, 23 ] = ascii (fp) : "./hrtfs/elev70/L70e245a.dat"
-[ 32, 24 ] = ascii (fp) : "./hrtfs/elev70/L70e240a.dat"
-[ 32, 25 ] = ascii (fp) : "./hrtfs/elev70/L70e235a.dat"
-[ 32, 26 ] = ascii (fp) : "./hrtfs/elev70/L70e230a.dat"
-[ 32, 27 ] = ascii (fp) : "./hrtfs/elev70/L70e225a.dat"
-[ 32, 28 ] = ascii (fp) : "./hrtfs/elev70/L70e220a.dat"
-[ 32, 29 ] = ascii (fp) : "./hrtfs/elev70/L70e215a.dat"
-[ 32, 30 ] = ascii (fp) : "./hrtfs/elev70/L70e210a.dat"
-[ 32, 31 ] = ascii (fp) : "./hrtfs/elev70/L70e205a.dat"
-[ 32, 32 ] = ascii (fp) : "./hrtfs/elev70/L70e200a.dat"
-[ 32, 33 ] = ascii (fp) : "./hrtfs/elev70/L70e195a.dat"
-[ 32, 34 ] = ascii (fp) : "./hrtfs/elev70/L70e190a.dat"
-[ 32, 35 ] = ascii (fp) : "./hrtfs/elev70/L70e185a.dat"
-[ 32, 36 ] = ascii (fp) : "./hrtfs/elev70/L70e180a.dat"
-[ 32, 37 ] = ascii (fp) : "./hrtfs/elev70/L70e175a.dat"
-[ 32, 38 ] = ascii (fp) : "./hrtfs/elev70/L70e170a.dat"
-[ 32, 39 ] = ascii (fp) : "./hrtfs/elev70/L70e165a.dat"
-[ 32, 40 ] = ascii (fp) : "./hrtfs/elev70/L70e160a.dat"
-[ 32, 41 ] = ascii (fp) : "./hrtfs/elev70/L70e155a.dat"
-[ 32, 42 ] = ascii (fp) : "./hrtfs/elev70/L70e150a.dat"
-[ 32, 43 ] = ascii (fp) : "./hrtfs/elev70/L70e145a.dat"
-[ 32, 44 ] = ascii (fp) : "./hrtfs/elev70/L70e140a.dat"
-[ 32, 45 ] = ascii (fp) : "./hrtfs/elev70/L70e135a.dat"
-[ 32, 46 ] = ascii (fp) : "./hrtfs/elev70/L70e130a.dat"
-[ 32, 47 ] = ascii (fp) : "./hrtfs/elev70/L70e125a.dat"
-[ 32, 48 ] = ascii (fp) : "./hrtfs/elev70/L70e120a.dat"
-[ 32, 49 ] = ascii (fp) : "./hrtfs/elev70/L70e115a.dat"
-[ 32, 50 ] = ascii (fp) : "./hrtfs/elev70/L70e110a.dat"
-[ 32, 51 ] = ascii (fp) : "./hrtfs/elev70/L70e105a.dat"
-[ 32, 52 ] = ascii (fp) : "./hrtfs/elev70/L70e100a.dat"
-[ 32, 53 ] = ascii (fp) : "./hrtfs/elev70/L70e095a.dat"
-[ 32, 54 ] = ascii (fp) : "./hrtfs/elev70/L70e090a.dat"
-[ 32, 55 ] = ascii (fp) : "./hrtfs/elev70/L70e085a.dat"
-[ 32, 56 ] = ascii (fp) : "./hrtfs/elev70/L70e080a.dat"
-[ 32, 57 ] = ascii (fp) : "./hrtfs/elev70/L70e075a.dat"
-[ 32, 58 ] = ascii (fp) : "./hrtfs/elev70/L70e070a.dat"
-[ 32, 59 ] = ascii (fp) : "./hrtfs/elev70/L70e065a.dat"
-[ 32, 60 ] = ascii (fp) : "./hrtfs/elev70/L70e060a.dat"
-[ 32, 61 ] = ascii (fp) : "./hrtfs/elev70/L70e055a.dat"
-[ 32, 62 ] = ascii (fp) : "./hrtfs/elev70/L70e050a.dat"
-[ 32, 63 ] = ascii (fp) : "./hrtfs/elev70/L70e045a.dat"
-[ 32, 64 ] = ascii (fp) : "./hrtfs/elev70/L70e040a.dat"
-[ 32, 65 ] = ascii (fp) : "./hrtfs/elev70/L70e035a.dat"
-[ 32, 66 ] = ascii (fp) : "./hrtfs/elev70/L70e030a.dat"
-[ 32, 67 ] = ascii (fp) : "./hrtfs/elev70/L70e025a.dat"
-[ 32, 68 ] = ascii (fp) : "./hrtfs/elev70/L70e020a.dat"
-[ 32, 69 ] = ascii (fp) : "./hrtfs/elev70/L70e015a.dat"
-[ 32, 70 ] = ascii (fp) : "./hrtfs/elev70/L70e010a.dat"
-[ 32, 71 ] = ascii (fp) : "./hrtfs/elev70/L70e005a.dat"
+[ 32, 0 ] = ascii (fp) : "./hrtfs/elev70/L70e000a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e000a.dat right
+[ 32, 1 ] = ascii (fp) : "./hrtfs/elev70/L70e355a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e355a.dat right
+[ 32, 2 ] = ascii (fp) : "./hrtfs/elev70/L70e350a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e350a.dat right
+[ 32, 3 ] = ascii (fp) : "./hrtfs/elev70/L70e345a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e345a.dat right
+[ 32, 4 ] = ascii (fp) : "./hrtfs/elev70/L70e340a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e340a.dat right
+[ 32, 5 ] = ascii (fp) : "./hrtfs/elev70/L70e335a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e335a.dat right
+[ 32, 6 ] = ascii (fp) : "./hrtfs/elev70/L70e330a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e330a.dat right
+[ 32, 7 ] = ascii (fp) : "./hrtfs/elev70/L70e325a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e325a.dat right
+[ 32, 8 ] = ascii (fp) : "./hrtfs/elev70/L70e320a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e320a.dat right
+[ 32, 9 ] = ascii (fp) : "./hrtfs/elev70/L70e315a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e315a.dat right
+[ 32, 10 ] = ascii (fp) : "./hrtfs/elev70/L70e310a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e310a.dat right
+[ 32, 11 ] = ascii (fp) : "./hrtfs/elev70/L70e305a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e305a.dat right
+[ 32, 12 ] = ascii (fp) : "./hrtfs/elev70/L70e300a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e300a.dat right
+[ 32, 13 ] = ascii (fp) : "./hrtfs/elev70/L70e295a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e295a.dat right
+[ 32, 14 ] = ascii (fp) : "./hrtfs/elev70/L70e290a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e290a.dat right
+[ 32, 15 ] = ascii (fp) : "./hrtfs/elev70/L70e285a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e285a.dat right
+[ 32, 16 ] = ascii (fp) : "./hrtfs/elev70/L70e280a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e280a.dat right
+[ 32, 17 ] = ascii (fp) : "./hrtfs/elev70/L70e275a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e275a.dat right
+[ 32, 18 ] = ascii (fp) : "./hrtfs/elev70/L70e270a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e270a.dat right
+[ 32, 19 ] = ascii (fp) : "./hrtfs/elev70/L70e265a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e265a.dat right
+[ 32, 20 ] = ascii (fp) : "./hrtfs/elev70/L70e260a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e260a.dat right
+[ 32, 21 ] = ascii (fp) : "./hrtfs/elev70/L70e255a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e255a.dat right
+[ 32, 22 ] = ascii (fp) : "./hrtfs/elev70/L70e250a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e250a.dat right
+[ 32, 23 ] = ascii (fp) : "./hrtfs/elev70/L70e245a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e245a.dat right
+[ 32, 24 ] = ascii (fp) : "./hrtfs/elev70/L70e240a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e240a.dat right
+[ 32, 25 ] = ascii (fp) : "./hrtfs/elev70/L70e235a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e235a.dat right
+[ 32, 26 ] = ascii (fp) : "./hrtfs/elev70/L70e230a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e230a.dat right
+[ 32, 27 ] = ascii (fp) : "./hrtfs/elev70/L70e225a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e225a.dat right
+[ 32, 28 ] = ascii (fp) : "./hrtfs/elev70/L70e220a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e220a.dat right
+[ 32, 29 ] = ascii (fp) : "./hrtfs/elev70/L70e215a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e215a.dat right
+[ 32, 30 ] = ascii (fp) : "./hrtfs/elev70/L70e210a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e210a.dat right
+[ 32, 31 ] = ascii (fp) : "./hrtfs/elev70/L70e205a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e205a.dat right
+[ 32, 32 ] = ascii (fp) : "./hrtfs/elev70/L70e200a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e200a.dat right
+[ 32, 33 ] = ascii (fp) : "./hrtfs/elev70/L70e195a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e195a.dat right
+[ 32, 34 ] = ascii (fp) : "./hrtfs/elev70/L70e190a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e190a.dat right
+[ 32, 35 ] = ascii (fp) : "./hrtfs/elev70/L70e185a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e185a.dat right
+[ 32, 36 ] = ascii (fp) : "./hrtfs/elev70/L70e180a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e180a.dat right
+[ 32, 37 ] = ascii (fp) : "./hrtfs/elev70/L70e175a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e175a.dat right
+[ 32, 38 ] = ascii (fp) : "./hrtfs/elev70/L70e170a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e170a.dat right
+[ 32, 39 ] = ascii (fp) : "./hrtfs/elev70/L70e165a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e165a.dat right
+[ 32, 40 ] = ascii (fp) : "./hrtfs/elev70/L70e160a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e160a.dat right
+[ 32, 41 ] = ascii (fp) : "./hrtfs/elev70/L70e155a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e155a.dat right
+[ 32, 42 ] = ascii (fp) : "./hrtfs/elev70/L70e150a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e150a.dat right
+[ 32, 43 ] = ascii (fp) : "./hrtfs/elev70/L70e145a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e145a.dat right
+[ 32, 44 ] = ascii (fp) : "./hrtfs/elev70/L70e140a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e140a.dat right
+[ 32, 45 ] = ascii (fp) : "./hrtfs/elev70/L70e135a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e135a.dat right
+[ 32, 46 ] = ascii (fp) : "./hrtfs/elev70/L70e130a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e130a.dat right
+[ 32, 47 ] = ascii (fp) : "./hrtfs/elev70/L70e125a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e125a.dat right
+[ 32, 48 ] = ascii (fp) : "./hrtfs/elev70/L70e120a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e120a.dat right
+[ 32, 49 ] = ascii (fp) : "./hrtfs/elev70/L70e115a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e115a.dat right
+[ 32, 50 ] = ascii (fp) : "./hrtfs/elev70/L70e110a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e110a.dat right
+[ 32, 51 ] = ascii (fp) : "./hrtfs/elev70/L70e105a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e105a.dat right
+[ 32, 52 ] = ascii (fp) : "./hrtfs/elev70/L70e100a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e100a.dat right
+[ 32, 53 ] = ascii (fp) : "./hrtfs/elev70/L70e095a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e095a.dat right
+[ 32, 54 ] = ascii (fp) : "./hrtfs/elev70/L70e090a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e090a.dat right
+[ 32, 55 ] = ascii (fp) : "./hrtfs/elev70/L70e085a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e085a.dat right
+[ 32, 56 ] = ascii (fp) : "./hrtfs/elev70/L70e080a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e080a.dat right
+[ 32, 57 ] = ascii (fp) : "./hrtfs/elev70/L70e075a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e075a.dat right
+[ 32, 58 ] = ascii (fp) : "./hrtfs/elev70/L70e070a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e070a.dat right
+[ 32, 59 ] = ascii (fp) : "./hrtfs/elev70/L70e065a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e065a.dat right
+[ 32, 60 ] = ascii (fp) : "./hrtfs/elev70/L70e060a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e060a.dat right
+[ 32, 61 ] = ascii (fp) : "./hrtfs/elev70/L70e055a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e055a.dat right
+[ 32, 62 ] = ascii (fp) : "./hrtfs/elev70/L70e050a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e050a.dat right
+[ 32, 63 ] = ascii (fp) : "./hrtfs/elev70/L70e045a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e045a.dat right
+[ 32, 64 ] = ascii (fp) : "./hrtfs/elev70/L70e040a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e040a.dat right
+[ 32, 65 ] = ascii (fp) : "./hrtfs/elev70/L70e035a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e035a.dat right
+[ 32, 66 ] = ascii (fp) : "./hrtfs/elev70/L70e030a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e030a.dat right
+[ 32, 67 ] = ascii (fp) : "./hrtfs/elev70/L70e025a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e025a.dat right
+[ 32, 68 ] = ascii (fp) : "./hrtfs/elev70/L70e020a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e020a.dat right
+[ 32, 69 ] = ascii (fp) : "./hrtfs/elev70/L70e015a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e015a.dat right
+[ 32, 70 ] = ascii (fp) : "./hrtfs/elev70/L70e010a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e010a.dat right
+[ 32, 71 ] = ascii (fp) : "./hrtfs/elev70/L70e005a.dat left
+ + ascii (fp) : "./hrtfs/elev70/R70e005a.dat right
-[ 33, 0 ] = ascii (fp) : "./hrtfs/elev75/L75e000a.dat"
-[ 33, 1 ] = ascii (fp) : "./hrtfs/elev75/L75e355a.dat"
-[ 33, 2 ] = ascii (fp) : "./hrtfs/elev75/L75e350a.dat"
-[ 33, 3 ] = ascii (fp) : "./hrtfs/elev75/L75e345a.dat"
-[ 33, 4 ] = ascii (fp) : "./hrtfs/elev75/L75e340a.dat"
-[ 33, 5 ] = ascii (fp) : "./hrtfs/elev75/L75e335a.dat"
-[ 33, 6 ] = ascii (fp) : "./hrtfs/elev75/L75e330a.dat"
-[ 33, 7 ] = ascii (fp) : "./hrtfs/elev75/L75e325a.dat"
-[ 33, 8 ] = ascii (fp) : "./hrtfs/elev75/L75e320a.dat"
-[ 33, 9 ] = ascii (fp) : "./hrtfs/elev75/L75e315a.dat"
-[ 33, 10 ] = ascii (fp) : "./hrtfs/elev75/L75e310a.dat"
-[ 33, 11 ] = ascii (fp) : "./hrtfs/elev75/L75e305a.dat"
-[ 33, 12 ] = ascii (fp) : "./hrtfs/elev75/L75e300a.dat"
-[ 33, 13 ] = ascii (fp) : "./hrtfs/elev75/L75e295a.dat"
-[ 33, 14 ] = ascii (fp) : "./hrtfs/elev75/L75e290a.dat"
-[ 33, 15 ] = ascii (fp) : "./hrtfs/elev75/L75e285a.dat"
-[ 33, 16 ] = ascii (fp) : "./hrtfs/elev75/L75e280a.dat"
-[ 33, 17 ] = ascii (fp) : "./hrtfs/elev75/L75e275a.dat"
-[ 33, 18 ] = ascii (fp) : "./hrtfs/elev75/L75e270a.dat"
-[ 33, 19 ] = ascii (fp) : "./hrtfs/elev75/L75e265a.dat"
-[ 33, 20 ] = ascii (fp) : "./hrtfs/elev75/L75e260a.dat"
-[ 33, 21 ] = ascii (fp) : "./hrtfs/elev75/L75e255a.dat"
-[ 33, 22 ] = ascii (fp) : "./hrtfs/elev75/L75e250a.dat"
-[ 33, 23 ] = ascii (fp) : "./hrtfs/elev75/L75e245a.dat"
-[ 33, 24 ] = ascii (fp) : "./hrtfs/elev75/L75e240a.dat"
-[ 33, 25 ] = ascii (fp) : "./hrtfs/elev75/L75e235a.dat"
-[ 33, 26 ] = ascii (fp) : "./hrtfs/elev75/L75e230a.dat"
-[ 33, 27 ] = ascii (fp) : "./hrtfs/elev75/L75e225a.dat"
-[ 33, 28 ] = ascii (fp) : "./hrtfs/elev75/L75e220a.dat"
-[ 33, 29 ] = ascii (fp) : "./hrtfs/elev75/L75e215a.dat"
-[ 33, 30 ] = ascii (fp) : "./hrtfs/elev75/L75e210a.dat"
-[ 33, 31 ] = ascii (fp) : "./hrtfs/elev75/L75e205a.dat"
-[ 33, 32 ] = ascii (fp) : "./hrtfs/elev75/L75e200a.dat"
-[ 33, 33 ] = ascii (fp) : "./hrtfs/elev75/L75e195a.dat"
-[ 33, 34 ] = ascii (fp) : "./hrtfs/elev75/L75e190a.dat"
-[ 33, 35 ] = ascii (fp) : "./hrtfs/elev75/L75e185a.dat"
-[ 33, 36 ] = ascii (fp) : "./hrtfs/elev75/L75e180a.dat"
-[ 33, 37 ] = ascii (fp) : "./hrtfs/elev75/L75e175a.dat"
-[ 33, 38 ] = ascii (fp) : "./hrtfs/elev75/L75e170a.dat"
-[ 33, 39 ] = ascii (fp) : "./hrtfs/elev75/L75e165a.dat"
-[ 33, 40 ] = ascii (fp) : "./hrtfs/elev75/L75e160a.dat"
-[ 33, 41 ] = ascii (fp) : "./hrtfs/elev75/L75e155a.dat"
-[ 33, 42 ] = ascii (fp) : "./hrtfs/elev75/L75e150a.dat"
-[ 33, 43 ] = ascii (fp) : "./hrtfs/elev75/L75e145a.dat"
-[ 33, 44 ] = ascii (fp) : "./hrtfs/elev75/L75e140a.dat"
-[ 33, 45 ] = ascii (fp) : "./hrtfs/elev75/L75e135a.dat"
-[ 33, 46 ] = ascii (fp) : "./hrtfs/elev75/L75e130a.dat"
-[ 33, 47 ] = ascii (fp) : "./hrtfs/elev75/L75e125a.dat"
-[ 33, 48 ] = ascii (fp) : "./hrtfs/elev75/L75e120a.dat"
-[ 33, 49 ] = ascii (fp) : "./hrtfs/elev75/L75e115a.dat"
-[ 33, 50 ] = ascii (fp) : "./hrtfs/elev75/L75e110a.dat"
-[ 33, 51 ] = ascii (fp) : "./hrtfs/elev75/L75e105a.dat"
-[ 33, 52 ] = ascii (fp) : "./hrtfs/elev75/L75e100a.dat"
-[ 33, 53 ] = ascii (fp) : "./hrtfs/elev75/L75e095a.dat"
-[ 33, 54 ] = ascii (fp) : "./hrtfs/elev75/L75e090a.dat"
-[ 33, 55 ] = ascii (fp) : "./hrtfs/elev75/L75e085a.dat"
-[ 33, 56 ] = ascii (fp) : "./hrtfs/elev75/L75e080a.dat"
-[ 33, 57 ] = ascii (fp) : "./hrtfs/elev75/L75e075a.dat"
-[ 33, 58 ] = ascii (fp) : "./hrtfs/elev75/L75e070a.dat"
-[ 33, 59 ] = ascii (fp) : "./hrtfs/elev75/L75e065a.dat"
-[ 33, 60 ] = ascii (fp) : "./hrtfs/elev75/L75e060a.dat"
-[ 33, 61 ] = ascii (fp) : "./hrtfs/elev75/L75e055a.dat"
-[ 33, 62 ] = ascii (fp) : "./hrtfs/elev75/L75e050a.dat"
-[ 33, 63 ] = ascii (fp) : "./hrtfs/elev75/L75e045a.dat"
-[ 33, 64 ] = ascii (fp) : "./hrtfs/elev75/L75e040a.dat"
-[ 33, 65 ] = ascii (fp) : "./hrtfs/elev75/L75e035a.dat"
-[ 33, 66 ] = ascii (fp) : "./hrtfs/elev75/L75e030a.dat"
-[ 33, 67 ] = ascii (fp) : "./hrtfs/elev75/L75e025a.dat"
-[ 33, 68 ] = ascii (fp) : "./hrtfs/elev75/L75e020a.dat"
-[ 33, 69 ] = ascii (fp) : "./hrtfs/elev75/L75e015a.dat"
-[ 33, 70 ] = ascii (fp) : "./hrtfs/elev75/L75e010a.dat"
-[ 33, 71 ] = ascii (fp) : "./hrtfs/elev75/L75e005a.dat"
+[ 33, 0 ] = ascii (fp) : "./hrtfs/elev75/L75e000a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e000a.dat right
+[ 33, 1 ] = ascii (fp) : "./hrtfs/elev75/L75e355a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e355a.dat right
+[ 33, 2 ] = ascii (fp) : "./hrtfs/elev75/L75e350a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e350a.dat right
+[ 33, 3 ] = ascii (fp) : "./hrtfs/elev75/L75e345a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e345a.dat right
+[ 33, 4 ] = ascii (fp) : "./hrtfs/elev75/L75e340a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e340a.dat right
+[ 33, 5 ] = ascii (fp) : "./hrtfs/elev75/L75e335a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e335a.dat right
+[ 33, 6 ] = ascii (fp) : "./hrtfs/elev75/L75e330a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e330a.dat right
+[ 33, 7 ] = ascii (fp) : "./hrtfs/elev75/L75e325a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e325a.dat right
+[ 33, 8 ] = ascii (fp) : "./hrtfs/elev75/L75e320a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e320a.dat right
+[ 33, 9 ] = ascii (fp) : "./hrtfs/elev75/L75e315a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e315a.dat right
+[ 33, 10 ] = ascii (fp) : "./hrtfs/elev75/L75e310a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e310a.dat right
+[ 33, 11 ] = ascii (fp) : "./hrtfs/elev75/L75e305a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e305a.dat right
+[ 33, 12 ] = ascii (fp) : "./hrtfs/elev75/L75e300a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e300a.dat right
+[ 33, 13 ] = ascii (fp) : "./hrtfs/elev75/L75e295a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e295a.dat right
+[ 33, 14 ] = ascii (fp) : "./hrtfs/elev75/L75e290a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e290a.dat right
+[ 33, 15 ] = ascii (fp) : "./hrtfs/elev75/L75e285a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e285a.dat right
+[ 33, 16 ] = ascii (fp) : "./hrtfs/elev75/L75e280a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e280a.dat right
+[ 33, 17 ] = ascii (fp) : "./hrtfs/elev75/L75e275a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e275a.dat right
+[ 33, 18 ] = ascii (fp) : "./hrtfs/elev75/L75e270a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e270a.dat right
+[ 33, 19 ] = ascii (fp) : "./hrtfs/elev75/L75e265a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e265a.dat right
+[ 33, 20 ] = ascii (fp) : "./hrtfs/elev75/L75e260a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e260a.dat right
+[ 33, 21 ] = ascii (fp) : "./hrtfs/elev75/L75e255a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e255a.dat right
+[ 33, 22 ] = ascii (fp) : "./hrtfs/elev75/L75e250a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e250a.dat right
+[ 33, 23 ] = ascii (fp) : "./hrtfs/elev75/L75e245a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e245a.dat right
+[ 33, 24 ] = ascii (fp) : "./hrtfs/elev75/L75e240a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e240a.dat right
+[ 33, 25 ] = ascii (fp) : "./hrtfs/elev75/L75e235a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e235a.dat right
+[ 33, 26 ] = ascii (fp) : "./hrtfs/elev75/L75e230a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e230a.dat right
+[ 33, 27 ] = ascii (fp) : "./hrtfs/elev75/L75e225a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e225a.dat right
+[ 33, 28 ] = ascii (fp) : "./hrtfs/elev75/L75e220a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e220a.dat right
+[ 33, 29 ] = ascii (fp) : "./hrtfs/elev75/L75e215a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e215a.dat right
+[ 33, 30 ] = ascii (fp) : "./hrtfs/elev75/L75e210a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e210a.dat right
+[ 33, 31 ] = ascii (fp) : "./hrtfs/elev75/L75e205a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e205a.dat right
+[ 33, 32 ] = ascii (fp) : "./hrtfs/elev75/L75e200a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e200a.dat right
+[ 33, 33 ] = ascii (fp) : "./hrtfs/elev75/L75e195a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e195a.dat right
+[ 33, 34 ] = ascii (fp) : "./hrtfs/elev75/L75e190a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e190a.dat right
+[ 33, 35 ] = ascii (fp) : "./hrtfs/elev75/L75e185a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e185a.dat right
+[ 33, 36 ] = ascii (fp) : "./hrtfs/elev75/L75e180a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e180a.dat right
+[ 33, 37 ] = ascii (fp) : "./hrtfs/elev75/L75e175a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e175a.dat right
+[ 33, 38 ] = ascii (fp) : "./hrtfs/elev75/L75e170a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e170a.dat right
+[ 33, 39 ] = ascii (fp) : "./hrtfs/elev75/L75e165a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e165a.dat right
+[ 33, 40 ] = ascii (fp) : "./hrtfs/elev75/L75e160a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e160a.dat right
+[ 33, 41 ] = ascii (fp) : "./hrtfs/elev75/L75e155a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e155a.dat right
+[ 33, 42 ] = ascii (fp) : "./hrtfs/elev75/L75e150a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e150a.dat right
+[ 33, 43 ] = ascii (fp) : "./hrtfs/elev75/L75e145a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e145a.dat right
+[ 33, 44 ] = ascii (fp) : "./hrtfs/elev75/L75e140a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e140a.dat right
+[ 33, 45 ] = ascii (fp) : "./hrtfs/elev75/L75e135a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e135a.dat right
+[ 33, 46 ] = ascii (fp) : "./hrtfs/elev75/L75e130a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e130a.dat right
+[ 33, 47 ] = ascii (fp) : "./hrtfs/elev75/L75e125a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e125a.dat right
+[ 33, 48 ] = ascii (fp) : "./hrtfs/elev75/L75e120a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e120a.dat right
+[ 33, 49 ] = ascii (fp) : "./hrtfs/elev75/L75e115a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e115a.dat right
+[ 33, 50 ] = ascii (fp) : "./hrtfs/elev75/L75e110a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e110a.dat right
+[ 33, 51 ] = ascii (fp) : "./hrtfs/elev75/L75e105a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e105a.dat right
+[ 33, 52 ] = ascii (fp) : "./hrtfs/elev75/L75e100a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e100a.dat right
+[ 33, 53 ] = ascii (fp) : "./hrtfs/elev75/L75e095a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e095a.dat right
+[ 33, 54 ] = ascii (fp) : "./hrtfs/elev75/L75e090a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e090a.dat right
+[ 33, 55 ] = ascii (fp) : "./hrtfs/elev75/L75e085a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e085a.dat right
+[ 33, 56 ] = ascii (fp) : "./hrtfs/elev75/L75e080a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e080a.dat right
+[ 33, 57 ] = ascii (fp) : "./hrtfs/elev75/L75e075a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e075a.dat right
+[ 33, 58 ] = ascii (fp) : "./hrtfs/elev75/L75e070a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e070a.dat right
+[ 33, 59 ] = ascii (fp) : "./hrtfs/elev75/L75e065a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e065a.dat right
+[ 33, 60 ] = ascii (fp) : "./hrtfs/elev75/L75e060a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e060a.dat right
+[ 33, 61 ] = ascii (fp) : "./hrtfs/elev75/L75e055a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e055a.dat right
+[ 33, 62 ] = ascii (fp) : "./hrtfs/elev75/L75e050a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e050a.dat right
+[ 33, 63 ] = ascii (fp) : "./hrtfs/elev75/L75e045a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e045a.dat right
+[ 33, 64 ] = ascii (fp) : "./hrtfs/elev75/L75e040a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e040a.dat right
+[ 33, 65 ] = ascii (fp) : "./hrtfs/elev75/L75e035a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e035a.dat right
+[ 33, 66 ] = ascii (fp) : "./hrtfs/elev75/L75e030a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e030a.dat right
+[ 33, 67 ] = ascii (fp) : "./hrtfs/elev75/L75e025a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e025a.dat right
+[ 33, 68 ] = ascii (fp) : "./hrtfs/elev75/L75e020a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e020a.dat right
+[ 33, 69 ] = ascii (fp) : "./hrtfs/elev75/L75e015a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e015a.dat right
+[ 33, 70 ] = ascii (fp) : "./hrtfs/elev75/L75e010a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e010a.dat right
+[ 33, 71 ] = ascii (fp) : "./hrtfs/elev75/L75e005a.dat left
+ + ascii (fp) : "./hrtfs/elev75/R75e005a.dat right
-[ 34, 0 ] = ascii (fp) : "./hrtfs/elev80/L80e000a.dat"
-[ 34, 1 ] = ascii (fp) : "./hrtfs/elev80/L80e355a.dat"
-[ 34, 2 ] = ascii (fp) : "./hrtfs/elev80/L80e350a.dat"
-[ 34, 3 ] = ascii (fp) : "./hrtfs/elev80/L80e345a.dat"
-[ 34, 4 ] = ascii (fp) : "./hrtfs/elev80/L80e340a.dat"
-[ 34, 5 ] = ascii (fp) : "./hrtfs/elev80/L80e335a.dat"
-[ 34, 6 ] = ascii (fp) : "./hrtfs/elev80/L80e330a.dat"
-[ 34, 7 ] = ascii (fp) : "./hrtfs/elev80/L80e325a.dat"
-[ 34, 8 ] = ascii (fp) : "./hrtfs/elev80/L80e320a.dat"
-[ 34, 9 ] = ascii (fp) : "./hrtfs/elev80/L80e315a.dat"
-[ 34, 10 ] = ascii (fp) : "./hrtfs/elev80/L80e310a.dat"
-[ 34, 11 ] = ascii (fp) : "./hrtfs/elev80/L80e305a.dat"
-[ 34, 12 ] = ascii (fp) : "./hrtfs/elev80/L80e300a.dat"
-[ 34, 13 ] = ascii (fp) : "./hrtfs/elev80/L80e295a.dat"
-[ 34, 14 ] = ascii (fp) : "./hrtfs/elev80/L80e290a.dat"
-[ 34, 15 ] = ascii (fp) : "./hrtfs/elev80/L80e285a.dat"
-[ 34, 16 ] = ascii (fp) : "./hrtfs/elev80/L80e280a.dat"
-[ 34, 17 ] = ascii (fp) : "./hrtfs/elev80/L80e275a.dat"
-[ 34, 18 ] = ascii (fp) : "./hrtfs/elev80/L80e270a.dat"
-[ 34, 19 ] = ascii (fp) : "./hrtfs/elev80/L80e265a.dat"
-[ 34, 20 ] = ascii (fp) : "./hrtfs/elev80/L80e260a.dat"
-[ 34, 21 ] = ascii (fp) : "./hrtfs/elev80/L80e255a.dat"
-[ 34, 22 ] = ascii (fp) : "./hrtfs/elev80/L80e250a.dat"
-[ 34, 23 ] = ascii (fp) : "./hrtfs/elev80/L80e245a.dat"
-[ 34, 24 ] = ascii (fp) : "./hrtfs/elev80/L80e240a.dat"
-[ 34, 25 ] = ascii (fp) : "./hrtfs/elev80/L80e235a.dat"
-[ 34, 26 ] = ascii (fp) : "./hrtfs/elev80/L80e230a.dat"
-[ 34, 27 ] = ascii (fp) : "./hrtfs/elev80/L80e225a.dat"
-[ 34, 28 ] = ascii (fp) : "./hrtfs/elev80/L80e220a.dat"
-[ 34, 29 ] = ascii (fp) : "./hrtfs/elev80/L80e215a.dat"
-[ 34, 30 ] = ascii (fp) : "./hrtfs/elev80/L80e210a.dat"
-[ 34, 31 ] = ascii (fp) : "./hrtfs/elev80/L80e205a.dat"
-[ 34, 32 ] = ascii (fp) : "./hrtfs/elev80/L80e200a.dat"
-[ 34, 33 ] = ascii (fp) : "./hrtfs/elev80/L80e195a.dat"
-[ 34, 34 ] = ascii (fp) : "./hrtfs/elev80/L80e190a.dat"
-[ 34, 35 ] = ascii (fp) : "./hrtfs/elev80/L80e185a.dat"
-[ 34, 36 ] = ascii (fp) : "./hrtfs/elev80/L80e180a.dat"
-[ 34, 37 ] = ascii (fp) : "./hrtfs/elev80/L80e175a.dat"
-[ 34, 38 ] = ascii (fp) : "./hrtfs/elev80/L80e170a.dat"
-[ 34, 39 ] = ascii (fp) : "./hrtfs/elev80/L80e165a.dat"
-[ 34, 40 ] = ascii (fp) : "./hrtfs/elev80/L80e160a.dat"
-[ 34, 41 ] = ascii (fp) : "./hrtfs/elev80/L80e155a.dat"
-[ 34, 42 ] = ascii (fp) : "./hrtfs/elev80/L80e150a.dat"
-[ 34, 43 ] = ascii (fp) : "./hrtfs/elev80/L80e145a.dat"
-[ 34, 44 ] = ascii (fp) : "./hrtfs/elev80/L80e140a.dat"
-[ 34, 45 ] = ascii (fp) : "./hrtfs/elev80/L80e135a.dat"
-[ 34, 46 ] = ascii (fp) : "./hrtfs/elev80/L80e130a.dat"
-[ 34, 47 ] = ascii (fp) : "./hrtfs/elev80/L80e125a.dat"
-[ 34, 48 ] = ascii (fp) : "./hrtfs/elev80/L80e120a.dat"
-[ 34, 49 ] = ascii (fp) : "./hrtfs/elev80/L80e115a.dat"
-[ 34, 50 ] = ascii (fp) : "./hrtfs/elev80/L80e110a.dat"
-[ 34, 51 ] = ascii (fp) : "./hrtfs/elev80/L80e105a.dat"
-[ 34, 52 ] = ascii (fp) : "./hrtfs/elev80/L80e100a.dat"
-[ 34, 53 ] = ascii (fp) : "./hrtfs/elev80/L80e095a.dat"
-[ 34, 54 ] = ascii (fp) : "./hrtfs/elev80/L80e090a.dat"
-[ 34, 55 ] = ascii (fp) : "./hrtfs/elev80/L80e085a.dat"
-[ 34, 56 ] = ascii (fp) : "./hrtfs/elev80/L80e080a.dat"
-[ 34, 57 ] = ascii (fp) : "./hrtfs/elev80/L80e075a.dat"
-[ 34, 58 ] = ascii (fp) : "./hrtfs/elev80/L80e070a.dat"
-[ 34, 59 ] = ascii (fp) : "./hrtfs/elev80/L80e065a.dat"
-[ 34, 60 ] = ascii (fp) : "./hrtfs/elev80/L80e060a.dat"
-[ 34, 61 ] = ascii (fp) : "./hrtfs/elev80/L80e055a.dat"
-[ 34, 62 ] = ascii (fp) : "./hrtfs/elev80/L80e050a.dat"
-[ 34, 63 ] = ascii (fp) : "./hrtfs/elev80/L80e045a.dat"
-[ 34, 64 ] = ascii (fp) : "./hrtfs/elev80/L80e040a.dat"
-[ 34, 65 ] = ascii (fp) : "./hrtfs/elev80/L80e035a.dat"
-[ 34, 66 ] = ascii (fp) : "./hrtfs/elev80/L80e030a.dat"
-[ 34, 67 ] = ascii (fp) : "./hrtfs/elev80/L80e025a.dat"
-[ 34, 68 ] = ascii (fp) : "./hrtfs/elev80/L80e020a.dat"
-[ 34, 69 ] = ascii (fp) : "./hrtfs/elev80/L80e015a.dat"
-[ 34, 70 ] = ascii (fp) : "./hrtfs/elev80/L80e010a.dat"
-[ 34, 71 ] = ascii (fp) : "./hrtfs/elev80/L80e005a.dat"
+[ 34, 0 ] = ascii (fp) : "./hrtfs/elev80/L80e000a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e000a.dat right
+[ 34, 1 ] = ascii (fp) : "./hrtfs/elev80/L80e355a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e355a.dat right
+[ 34, 2 ] = ascii (fp) : "./hrtfs/elev80/L80e350a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e350a.dat right
+[ 34, 3 ] = ascii (fp) : "./hrtfs/elev80/L80e345a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e345a.dat right
+[ 34, 4 ] = ascii (fp) : "./hrtfs/elev80/L80e340a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e340a.dat right
+[ 34, 5 ] = ascii (fp) : "./hrtfs/elev80/L80e335a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e335a.dat right
+[ 34, 6 ] = ascii (fp) : "./hrtfs/elev80/L80e330a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e330a.dat right
+[ 34, 7 ] = ascii (fp) : "./hrtfs/elev80/L80e325a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e325a.dat right
+[ 34, 8 ] = ascii (fp) : "./hrtfs/elev80/L80e320a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e320a.dat right
+[ 34, 9 ] = ascii (fp) : "./hrtfs/elev80/L80e315a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e315a.dat right
+[ 34, 10 ] = ascii (fp) : "./hrtfs/elev80/L80e310a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e310a.dat right
+[ 34, 11 ] = ascii (fp) : "./hrtfs/elev80/L80e305a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e305a.dat right
+[ 34, 12 ] = ascii (fp) : "./hrtfs/elev80/L80e300a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e300a.dat right
+[ 34, 13 ] = ascii (fp) : "./hrtfs/elev80/L80e295a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e295a.dat right
+[ 34, 14 ] = ascii (fp) : "./hrtfs/elev80/L80e290a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e290a.dat right
+[ 34, 15 ] = ascii (fp) : "./hrtfs/elev80/L80e285a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e285a.dat right
+[ 34, 16 ] = ascii (fp) : "./hrtfs/elev80/L80e280a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e280a.dat right
+[ 34, 17 ] = ascii (fp) : "./hrtfs/elev80/L80e275a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e275a.dat right
+[ 34, 18 ] = ascii (fp) : "./hrtfs/elev80/L80e270a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e270a.dat right
+[ 34, 19 ] = ascii (fp) : "./hrtfs/elev80/L80e265a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e265a.dat right
+[ 34, 20 ] = ascii (fp) : "./hrtfs/elev80/L80e260a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e260a.dat right
+[ 34, 21 ] = ascii (fp) : "./hrtfs/elev80/L80e255a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e255a.dat right
+[ 34, 22 ] = ascii (fp) : "./hrtfs/elev80/L80e250a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e250a.dat right
+[ 34, 23 ] = ascii (fp) : "./hrtfs/elev80/L80e245a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e245a.dat right
+[ 34, 24 ] = ascii (fp) : "./hrtfs/elev80/L80e240a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e240a.dat right
+[ 34, 25 ] = ascii (fp) : "./hrtfs/elev80/L80e235a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e235a.dat right
+[ 34, 26 ] = ascii (fp) : "./hrtfs/elev80/L80e230a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e230a.dat right
+[ 34, 27 ] = ascii (fp) : "./hrtfs/elev80/L80e225a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e225a.dat right
+[ 34, 28 ] = ascii (fp) : "./hrtfs/elev80/L80e220a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e220a.dat right
+[ 34, 29 ] = ascii (fp) : "./hrtfs/elev80/L80e215a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e215a.dat right
+[ 34, 30 ] = ascii (fp) : "./hrtfs/elev80/L80e210a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e210a.dat right
+[ 34, 31 ] = ascii (fp) : "./hrtfs/elev80/L80e205a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e205a.dat right
+[ 34, 32 ] = ascii (fp) : "./hrtfs/elev80/L80e200a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e200a.dat right
+[ 34, 33 ] = ascii (fp) : "./hrtfs/elev80/L80e195a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e195a.dat right
+[ 34, 34 ] = ascii (fp) : "./hrtfs/elev80/L80e190a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e190a.dat right
+[ 34, 35 ] = ascii (fp) : "./hrtfs/elev80/L80e185a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e185a.dat right
+[ 34, 36 ] = ascii (fp) : "./hrtfs/elev80/L80e180a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e180a.dat right
+[ 34, 37 ] = ascii (fp) : "./hrtfs/elev80/L80e175a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e175a.dat right
+[ 34, 38 ] = ascii (fp) : "./hrtfs/elev80/L80e170a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e170a.dat right
+[ 34, 39 ] = ascii (fp) : "./hrtfs/elev80/L80e165a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e165a.dat right
+[ 34, 40 ] = ascii (fp) : "./hrtfs/elev80/L80e160a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e160a.dat right
+[ 34, 41 ] = ascii (fp) : "./hrtfs/elev80/L80e155a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e155a.dat right
+[ 34, 42 ] = ascii (fp) : "./hrtfs/elev80/L80e150a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e150a.dat right
+[ 34, 43 ] = ascii (fp) : "./hrtfs/elev80/L80e145a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e145a.dat right
+[ 34, 44 ] = ascii (fp) : "./hrtfs/elev80/L80e140a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e140a.dat right
+[ 34, 45 ] = ascii (fp) : "./hrtfs/elev80/L80e135a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e135a.dat right
+[ 34, 46 ] = ascii (fp) : "./hrtfs/elev80/L80e130a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e130a.dat right
+[ 34, 47 ] = ascii (fp) : "./hrtfs/elev80/L80e125a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e125a.dat right
+[ 34, 48 ] = ascii (fp) : "./hrtfs/elev80/L80e120a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e120a.dat right
+[ 34, 49 ] = ascii (fp) : "./hrtfs/elev80/L80e115a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e115a.dat right
+[ 34, 50 ] = ascii (fp) : "./hrtfs/elev80/L80e110a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e110a.dat right
+[ 34, 51 ] = ascii (fp) : "./hrtfs/elev80/L80e105a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e105a.dat right
+[ 34, 52 ] = ascii (fp) : "./hrtfs/elev80/L80e100a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e100a.dat right
+[ 34, 53 ] = ascii (fp) : "./hrtfs/elev80/L80e095a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e095a.dat right
+[ 34, 54 ] = ascii (fp) : "./hrtfs/elev80/L80e090a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e090a.dat right
+[ 34, 55 ] = ascii (fp) : "./hrtfs/elev80/L80e085a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e085a.dat right
+[ 34, 56 ] = ascii (fp) : "./hrtfs/elev80/L80e080a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e080a.dat right
+[ 34, 57 ] = ascii (fp) : "./hrtfs/elev80/L80e075a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e075a.dat right
+[ 34, 58 ] = ascii (fp) : "./hrtfs/elev80/L80e070a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e070a.dat right
+[ 34, 59 ] = ascii (fp) : "./hrtfs/elev80/L80e065a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e065a.dat right
+[ 34, 60 ] = ascii (fp) : "./hrtfs/elev80/L80e060a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e060a.dat right
+[ 34, 61 ] = ascii (fp) : "./hrtfs/elev80/L80e055a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e055a.dat right
+[ 34, 62 ] = ascii (fp) : "./hrtfs/elev80/L80e050a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e050a.dat right
+[ 34, 63 ] = ascii (fp) : "./hrtfs/elev80/L80e045a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e045a.dat right
+[ 34, 64 ] = ascii (fp) : "./hrtfs/elev80/L80e040a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e040a.dat right
+[ 34, 65 ] = ascii (fp) : "./hrtfs/elev80/L80e035a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e035a.dat right
+[ 34, 66 ] = ascii (fp) : "./hrtfs/elev80/L80e030a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e030a.dat right
+[ 34, 67 ] = ascii (fp) : "./hrtfs/elev80/L80e025a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e025a.dat right
+[ 34, 68 ] = ascii (fp) : "./hrtfs/elev80/L80e020a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e020a.dat right
+[ 34, 69 ] = ascii (fp) : "./hrtfs/elev80/L80e015a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e015a.dat right
+[ 34, 70 ] = ascii (fp) : "./hrtfs/elev80/L80e010a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e010a.dat right
+[ 34, 71 ] = ascii (fp) : "./hrtfs/elev80/L80e005a.dat left
+ + ascii (fp) : "./hrtfs/elev80/R80e005a.dat right
-[ 35, 0 ] = ascii (fp) : "./hrtfs/elev85/L85e000a.dat"
-[ 35, 1 ] = ascii (fp) : "./hrtfs/elev85/L85e355a.dat"
-[ 35, 2 ] = ascii (fp) : "./hrtfs/elev85/L85e350a.dat"
-[ 35, 3 ] = ascii (fp) : "./hrtfs/elev85/L85e345a.dat"
-[ 35, 4 ] = ascii (fp) : "./hrtfs/elev85/L85e340a.dat"
-[ 35, 5 ] = ascii (fp) : "./hrtfs/elev85/L85e335a.dat"
-[ 35, 6 ] = ascii (fp) : "./hrtfs/elev85/L85e330a.dat"
-[ 35, 7 ] = ascii (fp) : "./hrtfs/elev85/L85e325a.dat"
-[ 35, 8 ] = ascii (fp) : "./hrtfs/elev85/L85e320a.dat"
-[ 35, 9 ] = ascii (fp) : "./hrtfs/elev85/L85e315a.dat"
-[ 35, 10 ] = ascii (fp) : "./hrtfs/elev85/L85e310a.dat"
-[ 35, 11 ] = ascii (fp) : "./hrtfs/elev85/L85e305a.dat"
-[ 35, 12 ] = ascii (fp) : "./hrtfs/elev85/L85e300a.dat"
-[ 35, 13 ] = ascii (fp) : "./hrtfs/elev85/L85e295a.dat"
-[ 35, 14 ] = ascii (fp) : "./hrtfs/elev85/L85e290a.dat"
-[ 35, 15 ] = ascii (fp) : "./hrtfs/elev85/L85e285a.dat"
-[ 35, 16 ] = ascii (fp) : "./hrtfs/elev85/L85e280a.dat"
-[ 35, 17 ] = ascii (fp) : "./hrtfs/elev85/L85e275a.dat"
-[ 35, 18 ] = ascii (fp) : "./hrtfs/elev85/L85e270a.dat"
-[ 35, 19 ] = ascii (fp) : "./hrtfs/elev85/L85e265a.dat"
-[ 35, 20 ] = ascii (fp) : "./hrtfs/elev85/L85e260a.dat"
-[ 35, 21 ] = ascii (fp) : "./hrtfs/elev85/L85e255a.dat"
-[ 35, 22 ] = ascii (fp) : "./hrtfs/elev85/L85e250a.dat"
-[ 35, 23 ] = ascii (fp) : "./hrtfs/elev85/L85e245a.dat"
-[ 35, 24 ] = ascii (fp) : "./hrtfs/elev85/L85e240a.dat"
-[ 35, 25 ] = ascii (fp) : "./hrtfs/elev85/L85e235a.dat"
-[ 35, 26 ] = ascii (fp) : "./hrtfs/elev85/L85e230a.dat"
-[ 35, 27 ] = ascii (fp) : "./hrtfs/elev85/L85e225a.dat"
-[ 35, 28 ] = ascii (fp) : "./hrtfs/elev85/L85e220a.dat"
-[ 35, 29 ] = ascii (fp) : "./hrtfs/elev85/L85e215a.dat"
-[ 35, 30 ] = ascii (fp) : "./hrtfs/elev85/L85e210a.dat"
-[ 35, 31 ] = ascii (fp) : "./hrtfs/elev85/L85e205a.dat"
-[ 35, 32 ] = ascii (fp) : "./hrtfs/elev85/L85e200a.dat"
-[ 35, 33 ] = ascii (fp) : "./hrtfs/elev85/L85e195a.dat"
-[ 35, 34 ] = ascii (fp) : "./hrtfs/elev85/L85e190a.dat"
-[ 35, 35 ] = ascii (fp) : "./hrtfs/elev85/L85e185a.dat"
-[ 35, 36 ] = ascii (fp) : "./hrtfs/elev85/L85e180a.dat"
-[ 35, 37 ] = ascii (fp) : "./hrtfs/elev85/L85e175a.dat"
-[ 35, 38 ] = ascii (fp) : "./hrtfs/elev85/L85e170a.dat"
-[ 35, 39 ] = ascii (fp) : "./hrtfs/elev85/L85e165a.dat"
-[ 35, 40 ] = ascii (fp) : "./hrtfs/elev85/L85e160a.dat"
-[ 35, 41 ] = ascii (fp) : "./hrtfs/elev85/L85e155a.dat"
-[ 35, 42 ] = ascii (fp) : "./hrtfs/elev85/L85e150a.dat"
-[ 35, 43 ] = ascii (fp) : "./hrtfs/elev85/L85e145a.dat"
-[ 35, 44 ] = ascii (fp) : "./hrtfs/elev85/L85e140a.dat"
-[ 35, 45 ] = ascii (fp) : "./hrtfs/elev85/L85e135a.dat"
-[ 35, 46 ] = ascii (fp) : "./hrtfs/elev85/L85e130a.dat"
-[ 35, 47 ] = ascii (fp) : "./hrtfs/elev85/L85e125a.dat"
-[ 35, 48 ] = ascii (fp) : "./hrtfs/elev85/L85e120a.dat"
-[ 35, 49 ] = ascii (fp) : "./hrtfs/elev85/L85e115a.dat"
-[ 35, 50 ] = ascii (fp) : "./hrtfs/elev85/L85e110a.dat"
-[ 35, 51 ] = ascii (fp) : "./hrtfs/elev85/L85e105a.dat"
-[ 35, 52 ] = ascii (fp) : "./hrtfs/elev85/L85e100a.dat"
-[ 35, 53 ] = ascii (fp) : "./hrtfs/elev85/L85e095a.dat"
-[ 35, 54 ] = ascii (fp) : "./hrtfs/elev85/L85e090a.dat"
-[ 35, 55 ] = ascii (fp) : "./hrtfs/elev85/L85e085a.dat"
-[ 35, 56 ] = ascii (fp) : "./hrtfs/elev85/L85e080a.dat"
-[ 35, 57 ] = ascii (fp) : "./hrtfs/elev85/L85e075a.dat"
-[ 35, 58 ] = ascii (fp) : "./hrtfs/elev85/L85e070a.dat"
-[ 35, 59 ] = ascii (fp) : "./hrtfs/elev85/L85e065a.dat"
-[ 35, 60 ] = ascii (fp) : "./hrtfs/elev85/L85e060a.dat"
-[ 35, 61 ] = ascii (fp) : "./hrtfs/elev85/L85e055a.dat"
-[ 35, 62 ] = ascii (fp) : "./hrtfs/elev85/L85e050a.dat"
-[ 35, 63 ] = ascii (fp) : "./hrtfs/elev85/L85e045a.dat"
-[ 35, 64 ] = ascii (fp) : "./hrtfs/elev85/L85e040a.dat"
-[ 35, 65 ] = ascii (fp) : "./hrtfs/elev85/L85e035a.dat"
-[ 35, 66 ] = ascii (fp) : "./hrtfs/elev85/L85e030a.dat"
-[ 35, 67 ] = ascii (fp) : "./hrtfs/elev85/L85e025a.dat"
-[ 35, 68 ] = ascii (fp) : "./hrtfs/elev85/L85e020a.dat"
-[ 35, 69 ] = ascii (fp) : "./hrtfs/elev85/L85e015a.dat"
-[ 35, 70 ] = ascii (fp) : "./hrtfs/elev85/L85e010a.dat"
-[ 35, 71 ] = ascii (fp) : "./hrtfs/elev85/L85e005a.dat"
+[ 35, 0 ] = ascii (fp) : "./hrtfs/elev85/L85e000a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e000a.dat right
+[ 35, 1 ] = ascii (fp) : "./hrtfs/elev85/L85e355a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e355a.dat right
+[ 35, 2 ] = ascii (fp) : "./hrtfs/elev85/L85e350a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e350a.dat right
+[ 35, 3 ] = ascii (fp) : "./hrtfs/elev85/L85e345a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e345a.dat right
+[ 35, 4 ] = ascii (fp) : "./hrtfs/elev85/L85e340a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e340a.dat right
+[ 35, 5 ] = ascii (fp) : "./hrtfs/elev85/L85e335a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e335a.dat right
+[ 35, 6 ] = ascii (fp) : "./hrtfs/elev85/L85e330a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e330a.dat right
+[ 35, 7 ] = ascii (fp) : "./hrtfs/elev85/L85e325a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e325a.dat right
+[ 35, 8 ] = ascii (fp) : "./hrtfs/elev85/L85e320a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e320a.dat right
+[ 35, 9 ] = ascii (fp) : "./hrtfs/elev85/L85e315a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e315a.dat right
+[ 35, 10 ] = ascii (fp) : "./hrtfs/elev85/L85e310a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e310a.dat right
+[ 35, 11 ] = ascii (fp) : "./hrtfs/elev85/L85e305a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e305a.dat right
+[ 35, 12 ] = ascii (fp) : "./hrtfs/elev85/L85e300a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e300a.dat right
+[ 35, 13 ] = ascii (fp) : "./hrtfs/elev85/L85e295a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e295a.dat right
+[ 35, 14 ] = ascii (fp) : "./hrtfs/elev85/L85e290a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e290a.dat right
+[ 35, 15 ] = ascii (fp) : "./hrtfs/elev85/L85e285a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e285a.dat right
+[ 35, 16 ] = ascii (fp) : "./hrtfs/elev85/L85e280a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e280a.dat right
+[ 35, 17 ] = ascii (fp) : "./hrtfs/elev85/L85e275a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e275a.dat right
+[ 35, 18 ] = ascii (fp) : "./hrtfs/elev85/L85e270a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e270a.dat right
+[ 35, 19 ] = ascii (fp) : "./hrtfs/elev85/L85e265a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e265a.dat right
+[ 35, 20 ] = ascii (fp) : "./hrtfs/elev85/L85e260a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e260a.dat right
+[ 35, 21 ] = ascii (fp) : "./hrtfs/elev85/L85e255a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e255a.dat right
+[ 35, 22 ] = ascii (fp) : "./hrtfs/elev85/L85e250a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e250a.dat right
+[ 35, 23 ] = ascii (fp) : "./hrtfs/elev85/L85e245a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e245a.dat right
+[ 35, 24 ] = ascii (fp) : "./hrtfs/elev85/L85e240a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e240a.dat right
+[ 35, 25 ] = ascii (fp) : "./hrtfs/elev85/L85e235a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e235a.dat right
+[ 35, 26 ] = ascii (fp) : "./hrtfs/elev85/L85e230a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e230a.dat right
+[ 35, 27 ] = ascii (fp) : "./hrtfs/elev85/L85e225a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e225a.dat right
+[ 35, 28 ] = ascii (fp) : "./hrtfs/elev85/L85e220a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e220a.dat right
+[ 35, 29 ] = ascii (fp) : "./hrtfs/elev85/L85e215a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e215a.dat right
+[ 35, 30 ] = ascii (fp) : "./hrtfs/elev85/L85e210a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e210a.dat right
+[ 35, 31 ] = ascii (fp) : "./hrtfs/elev85/L85e205a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e205a.dat right
+[ 35, 32 ] = ascii (fp) : "./hrtfs/elev85/L85e200a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e200a.dat right
+[ 35, 33 ] = ascii (fp) : "./hrtfs/elev85/L85e195a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e195a.dat right
+[ 35, 34 ] = ascii (fp) : "./hrtfs/elev85/L85e190a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e190a.dat right
+[ 35, 35 ] = ascii (fp) : "./hrtfs/elev85/L85e185a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e185a.dat right
+[ 35, 36 ] = ascii (fp) : "./hrtfs/elev85/L85e180a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e180a.dat right
+[ 35, 37 ] = ascii (fp) : "./hrtfs/elev85/L85e175a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e175a.dat right
+[ 35, 38 ] = ascii (fp) : "./hrtfs/elev85/L85e170a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e170a.dat right
+[ 35, 39 ] = ascii (fp) : "./hrtfs/elev85/L85e165a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e165a.dat right
+[ 35, 40 ] = ascii (fp) : "./hrtfs/elev85/L85e160a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e160a.dat right
+[ 35, 41 ] = ascii (fp) : "./hrtfs/elev85/L85e155a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e155a.dat right
+[ 35, 42 ] = ascii (fp) : "./hrtfs/elev85/L85e150a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e150a.dat right
+[ 35, 43 ] = ascii (fp) : "./hrtfs/elev85/L85e145a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e145a.dat right
+[ 35, 44 ] = ascii (fp) : "./hrtfs/elev85/L85e140a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e140a.dat right
+[ 35, 45 ] = ascii (fp) : "./hrtfs/elev85/L85e135a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e135a.dat right
+[ 35, 46 ] = ascii (fp) : "./hrtfs/elev85/L85e130a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e130a.dat right
+[ 35, 47 ] = ascii (fp) : "./hrtfs/elev85/L85e125a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e125a.dat right
+[ 35, 48 ] = ascii (fp) : "./hrtfs/elev85/L85e120a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e120a.dat right
+[ 35, 49 ] = ascii (fp) : "./hrtfs/elev85/L85e115a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e115a.dat right
+[ 35, 50 ] = ascii (fp) : "./hrtfs/elev85/L85e110a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e110a.dat right
+[ 35, 51 ] = ascii (fp) : "./hrtfs/elev85/L85e105a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e105a.dat right
+[ 35, 52 ] = ascii (fp) : "./hrtfs/elev85/L85e100a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e100a.dat right
+[ 35, 53 ] = ascii (fp) : "./hrtfs/elev85/L85e095a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e095a.dat right
+[ 35, 54 ] = ascii (fp) : "./hrtfs/elev85/L85e090a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e090a.dat right
+[ 35, 55 ] = ascii (fp) : "./hrtfs/elev85/L85e085a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e085a.dat right
+[ 35, 56 ] = ascii (fp) : "./hrtfs/elev85/L85e080a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e080a.dat right
+[ 35, 57 ] = ascii (fp) : "./hrtfs/elev85/L85e075a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e075a.dat right
+[ 35, 58 ] = ascii (fp) : "./hrtfs/elev85/L85e070a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e070a.dat right
+[ 35, 59 ] = ascii (fp) : "./hrtfs/elev85/L85e065a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e065a.dat right
+[ 35, 60 ] = ascii (fp) : "./hrtfs/elev85/L85e060a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e060a.dat right
+[ 35, 61 ] = ascii (fp) : "./hrtfs/elev85/L85e055a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e055a.dat right
+[ 35, 62 ] = ascii (fp) : "./hrtfs/elev85/L85e050a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e050a.dat right
+[ 35, 63 ] = ascii (fp) : "./hrtfs/elev85/L85e045a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e045a.dat right
+[ 35, 64 ] = ascii (fp) : "./hrtfs/elev85/L85e040a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e040a.dat right
+[ 35, 65 ] = ascii (fp) : "./hrtfs/elev85/L85e035a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e035a.dat right
+[ 35, 66 ] = ascii (fp) : "./hrtfs/elev85/L85e030a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e030a.dat right
+[ 35, 67 ] = ascii (fp) : "./hrtfs/elev85/L85e025a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e025a.dat right
+[ 35, 68 ] = ascii (fp) : "./hrtfs/elev85/L85e020a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e020a.dat right
+[ 35, 69 ] = ascii (fp) : "./hrtfs/elev85/L85e015a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e015a.dat right
+[ 35, 70 ] = ascii (fp) : "./hrtfs/elev85/L85e010a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e010a.dat right
+[ 35, 71 ] = ascii (fp) : "./hrtfs/elev85/L85e005a.dat left
+ + ascii (fp) : "./hrtfs/elev85/R85e005a.dat right
-[ 36, 0 ] = ascii (fp) : "./hrtfs/elev90/L90e000a.dat"
+[ 36, 0 ] = ascii (fp) : "./hrtfs/elev90/L90e000a.dat left
+ + ascii (fp) : "./hrtfs/elev90/R90e000a.dat right
diff --git a/utils/IRC_1005.def b/utils/IRC_1005.def
index f5a16934..c2fd90b5 100644
--- a/utils/IRC_1005.def
+++ b/utils/IRC_1005.def
@@ -1,8 +1,8 @@
# This is a makehrtf HRIR definition file. It is used to define the layout
# and source data to be processed into an OpenAL Soft compatible HRTF.
#
-# This definition is used to transform an average of the left and right ear
-# HRIRs from any raw data set from the IRCAM/AKG Listen HRTF database.
+# This definition is used to transform the left and right ear HRIRs of any
+# raw data set from the IRCAM/AKG Listen HRTF database.
#
# The data sets are available free of charge from:
#
@@ -17,405 +17,409 @@
rate = 44100
+# The IRCAM sets are stereo because they provide both ear HRIRs.
+type = stereo
+
# The raw sets have up to 8192 samples, but 2048 seems large enough.
points = 2048
-# The IRCAM sets are not as dense as the MIT set.
-azimuths = 1, 6, 12, 24, 24, 24, 24, 24, 24, 24, 12, 6, 1
-
# No head radius was provided. Just use the average radius of 9 cm.
radius = 0.09
-# The distance between the source and the listener (in meters).
+# The IRCAM sets are single-field (like most others) with a distance between
+# the source and the listener of 1.95 meters.
distance = 1.95
+# This set isn't as dense as the MIT set.
+azimuths = 1, 6, 12, 24, 24, 24, 24, 24, 24, 24, 12, 6, 1
+
# The IRCAM source azimuth is counter-clockwise, so it needs to be flipped.
-# Left and right ear HRIRs (from the respective WAVE channels) are averaged.
+# Left and right ear HRIRs (from the respective WAVE channels) are used to
+# create a stereo HRTF.
# Replace all occurrences of IRC_#### for the desired subject (1005 was used
# in this demonstration).
+[ 3, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P315.wav" right
+[ 3, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P315.wav" right
+[ 3, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P315.wav" right
+[ 3, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P315.wav" right
+[ 3, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P315.wav" right
+[ 3, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P315.wav" right
+[ 3, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P315.wav" right
+[ 3, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P315.wav" right
+[ 3, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P315.wav" right
+[ 3, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P315.wav" right
+[ 3, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P315.wav" right
+[ 3, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P315.wav" right
+[ 3, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P315.wav" right
+[ 3, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P315.wav" right
+[ 3, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P315.wav" right
+[ 3, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P315.wav" right
+[ 3, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P315.wav" right
+[ 3, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P315.wav" right
+[ 3, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P315.wav" right
+[ 3, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P315.wav" right
+[ 3, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P315.wav" right
+[ 3, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P315.wav" right
+[ 3, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P315.wav" right
+[ 3, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P315.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P315.wav" right
-[ 3, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P315.wav"
-[ 3, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P315.wav"
-[ 3, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P315.wav"
-[ 3, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P315.wav"
-[ 3, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P315.wav"
-[ 3, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P315.wav"
-[ 3, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P315.wav"
-[ 3, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P315.wav"
-[ 3, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P315.wav"
-[ 3, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P315.wav"
-[ 3, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P315.wav"
-[ 3, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P315.wav"
-[ 3, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P315.wav"
-[ 3, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P315.wav"
-[ 3, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P315.wav"
-[ 3, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P315.wav"
-[ 3, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P315.wav"
-[ 3, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P315.wav"
-[ 3, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P315.wav"
-[ 3, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P315.wav"
-[ 3, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P315.wav"
-[ 3, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P315.wav"
-[ 3, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P315.wav"
-[ 3, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P315.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P315.wav"
-
-[ 4, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P330.wav"
-[ 4, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P330.wav"
-[ 4, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P330.wav"
-[ 4, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P330.wav"
-[ 4, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P330.wav"
-[ 4, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P330.wav"
-[ 4, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P330.wav"
-[ 4, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P330.wav"
-[ 4, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P330.wav"
-[ 4, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P330.wav"
-[ 4, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P330.wav"
-[ 4, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P330.wav"
-[ 4, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P330.wav"
-[ 4, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P330.wav"
-[ 4, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P330.wav"
-[ 4, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P330.wav"
-[ 4, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P330.wav"
-[ 4, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P330.wav"
-[ 4, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P330.wav"
-[ 4, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P330.wav"
-[ 4, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P330.wav"
-[ 4, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P330.wav"
-[ 4, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P330.wav"
-[ 4, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P330.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P330.wav"
+[ 4, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P330.wav" right
+[ 4, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P330.wav" right
+[ 4, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P330.wav" right
+[ 4, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P330.wav" right
+[ 4, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P330.wav" right
+[ 4, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P330.wav" right
+[ 4, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P330.wav" right
+[ 4, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P330.wav" right
+[ 4, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P330.wav" right
+[ 4, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P330.wav" right
+[ 4, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P330.wav" right
+[ 4, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P330.wav" right
+[ 4, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P330.wav" right
+[ 4, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P330.wav" right
+[ 4, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P330.wav" right
+[ 4, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P330.wav" right
+[ 4, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P330.wav" right
+[ 4, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P330.wav" right
+[ 4, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P330.wav" right
+[ 4, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P330.wav" right
+[ 4, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P330.wav" right
+[ 4, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P330.wav" right
+[ 4, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P330.wav" right
+[ 4, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P330.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P330.wav" right
-[ 5, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P345.wav"
-[ 5, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P345.wav"
-[ 5, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P345.wav"
-[ 5, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P345.wav"
-[ 5, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P345.wav"
-[ 5, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P345.wav"
-[ 5, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P345.wav"
-[ 5, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P345.wav"
-[ 5, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P345.wav"
-[ 5, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P345.wav"
-[ 5, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P345.wav"
-[ 5, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P345.wav"
-[ 5, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P345.wav"
-[ 5, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P345.wav"
-[ 5, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P345.wav"
-[ 5, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P345.wav"
-[ 5, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P345.wav"
-[ 5, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P345.wav"
-[ 5, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P345.wav"
-[ 5, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P345.wav"
-[ 5, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P345.wav"
-[ 5, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P345.wav"
-[ 5, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P345.wav"
-[ 5, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P345.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P345.wav"
+[ 5, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P345.wav" right
+[ 5, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P345.wav" right
+[ 5, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P345.wav" right
+[ 5, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P345.wav" right
+[ 5, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P345.wav" right
+[ 5, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P345.wav" right
+[ 5, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P345.wav" right
+[ 5, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P345.wav" right
+[ 5, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P345.wav" right
+[ 5, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P345.wav" right
+[ 5, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P345.wav" right
+[ 5, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P345.wav" right
+[ 5, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P345.wav" right
+[ 5, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P345.wav" right
+[ 5, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P345.wav" right
+[ 5, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P345.wav" right
+[ 5, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P345.wav" right
+[ 5, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P345.wav" right
+[ 5, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P345.wav" right
+[ 5, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P345.wav" right
+[ 5, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P345.wav" right
+[ 5, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P345.wav" right
+[ 5, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P345.wav" right
+[ 5, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P345.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P345.wav" right
-[ 6, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P000.wav"
-[ 6, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P000.wav"
-[ 6, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P000.wav"
-[ 6, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P000.wav"
-[ 6, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P000.wav"
-[ 6, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P000.wav"
-[ 6, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P000.wav"
-[ 6, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P000.wav"
-[ 6, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P000.wav"
-[ 6, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P000.wav"
-[ 6, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P000.wav"
-[ 6, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P000.wav"
-[ 6, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P000.wav"
-[ 6, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P000.wav"
-[ 6, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P000.wav"
-[ 6, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P000.wav"
-[ 6, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P000.wav"
-[ 6, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P000.wav"
-[ 6, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P000.wav"
-[ 6, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P000.wav"
-[ 6, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P000.wav"
-[ 6, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P000.wav"
-[ 6, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P000.wav"
-[ 6, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P000.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P000.wav"
+[ 6, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P000.wav" right
+[ 6, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P000.wav" right
+[ 6, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P000.wav" right
+[ 6, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P000.wav" right
+[ 6, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P000.wav" right
+[ 6, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P000.wav" right
+[ 6, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P000.wav" right
+[ 6, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P000.wav" right
+[ 6, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P000.wav" right
+[ 6, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P000.wav" right
+[ 6, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P000.wav" right
+[ 6, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P000.wav" right
+[ 6, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P000.wav" right
+[ 6, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P000.wav" right
+[ 6, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P000.wav" right
+[ 6, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P000.wav" right
+[ 6, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P000.wav" right
+[ 6, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P000.wav" right
+[ 6, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P000.wav" right
+[ 6, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P000.wav" right
+[ 6, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P000.wav" right
+[ 6, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P000.wav" right
+[ 6, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P000.wav" right
+[ 6, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P000.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P000.wav" right
-[ 7, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P015.wav"
-[ 7, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P015.wav"
-[ 7, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P015.wav"
-[ 7, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P015.wav"
-[ 7, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P015.wav"
-[ 7, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P015.wav"
-[ 7, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P015.wav"
-[ 7, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P015.wav"
-[ 7, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P015.wav"
-[ 7, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P015.wav"
-[ 7, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P015.wav"
-[ 7, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P015.wav"
-[ 7, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P015.wav"
-[ 7, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P015.wav"
-[ 7, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P015.wav"
-[ 7, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P015.wav"
-[ 7, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P015.wav"
-[ 7, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P015.wav"
-[ 7, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P015.wav"
-[ 7, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P015.wav"
-[ 7, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P015.wav"
-[ 7, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P015.wav"
-[ 7, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P015.wav"
-[ 7, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P015.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P015.wav"
+[ 7, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P015.wav" right
+[ 7, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P015.wav" right
+[ 7, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P015.wav" right
+[ 7, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P015.wav" right
+[ 7, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P015.wav" right
+[ 7, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P015.wav" right
+[ 7, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P015.wav" right
+[ 7, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P015.wav" right
+[ 7, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P015.wav" right
+[ 7, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P015.wav" right
+[ 7, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P015.wav" right
+[ 7, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P015.wav" right
+[ 7, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P015.wav" right
+[ 7, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P015.wav" right
+[ 7, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P015.wav" right
+[ 7, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P015.wav" right
+[ 7, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P015.wav" right
+[ 7, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P015.wav" right
+[ 7, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P015.wav" right
+[ 7, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P015.wav" right
+[ 7, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P015.wav" right
+[ 7, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P015.wav" right
+[ 7, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P015.wav" right
+[ 7, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P015.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P015.wav" right
-[ 8, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P030.wav"
-[ 8, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P030.wav"
-[ 8, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P030.wav"
-[ 8, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P030.wav"
-[ 8, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P030.wav"
-[ 8, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P030.wav"
-[ 8, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P030.wav"
-[ 8, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P030.wav"
-[ 8, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P030.wav"
-[ 8, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P030.wav"
-[ 8, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P030.wav"
-[ 8, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P030.wav"
-[ 8, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P030.wav"
-[ 8, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P030.wav"
-[ 8, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P030.wav"
-[ 8, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P030.wav"
-[ 8, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P030.wav"
-[ 8, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P030.wav"
-[ 8, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P030.wav"
-[ 8, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P030.wav"
-[ 8, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P030.wav"
-[ 8, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P030.wav"
-[ 8, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P030.wav"
-[ 8, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P030.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P030.wav"
+[ 8, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P030.wav" right
+[ 8, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P030.wav" right
+[ 8, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P030.wav" right
+[ 8, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P030.wav" right
+[ 8, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P030.wav" right
+[ 8, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P030.wav" right
+[ 8, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P030.wav" right
+[ 8, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P030.wav" right
+[ 8, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P030.wav" right
+[ 8, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P030.wav" right
+[ 8, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P030.wav" right
+[ 8, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P030.wav" right
+[ 8, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P030.wav" right
+[ 8, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P030.wav" right
+[ 8, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P030.wav" right
+[ 8, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P030.wav" right
+[ 8, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P030.wav" right
+[ 8, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P030.wav" right
+[ 8, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P030.wav" right
+[ 8, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P030.wav" right
+[ 8, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P030.wav" right
+[ 8, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P030.wav" right
+[ 8, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P030.wav" right
+[ 8, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P030.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P030.wav" right
-[ 9, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P045.wav"
-[ 9, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P045.wav"
-[ 9, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P045.wav"
-[ 9, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P045.wav"
-[ 9, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P045.wav"
-[ 9, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P045.wav"
-[ 9, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P045.wav"
-[ 9, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P045.wav"
-[ 9, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P045.wav"
-[ 9, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P045.wav"
-[ 9, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P045.wav"
-[ 9, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P045.wav"
-[ 9, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P045.wav"
-[ 9, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P045.wav"
-[ 9, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P045.wav"
-[ 9, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P045.wav"
-[ 9, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P045.wav"
-[ 9, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P045.wav"
-[ 9, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P045.wav"
-[ 9, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P045.wav"
-[ 9, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P045.wav"
-[ 9, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P045.wav"
-[ 9, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P045.wav"
-[ 9, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P045.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P045.wav"
+[ 9, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P045.wav" right
+[ 9, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T345_P045.wav" right
+[ 9, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P045.wav" right
+[ 9, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T315_P045.wav" right
+[ 9, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P045.wav" right
+[ 9, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T285_P045.wav" right
+[ 9, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P045.wav" right
+[ 9, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T255_P045.wav" right
+[ 9, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P045.wav" right
+[ 9, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T225_P045.wav" right
+[ 9, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P045.wav" right
+[ 9, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T195_P045.wav" right
+[ 9, 12 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P045.wav" right
+[ 9, 13 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T165_P045.wav" right
+[ 9, 14 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P045.wav" right
+[ 9, 15 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T135_P045.wav" right
+[ 9, 16 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P045.wav" right
+[ 9, 17 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T105_P045.wav" right
+[ 9, 18 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P045.wav" right
+[ 9, 19 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T075_P045.wav" right
+[ 9, 20 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P045.wav" right
+[ 9, 21 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T045_P045.wav" right
+[ 9, 22 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P045.wav" right
+[ 9, 23 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P045.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T015_P045.wav" right
-[ 10, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P060.wav"
-[ 10, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P060.wav"
-[ 10, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P060.wav"
-[ 10, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P060.wav"
-[ 10, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P060.wav"
-[ 10, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P060.wav"
-[ 10, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P060.wav"
-[ 10, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P060.wav"
-[ 10, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P060.wav"
-[ 10, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P060.wav"
-[ 10, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P060.wav"
-[ 10, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P060.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P060.wav"
+[ 10, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P060.wav" right
+[ 10, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T330_P060.wav" right
+[ 10, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P060.wav" right
+[ 10, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T270_P060.wav" right
+[ 10, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P060.wav" right
+[ 10, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T210_P060.wav" right
+[ 10, 6 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P060.wav" right
+[ 10, 7 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T150_P060.wav" right
+[ 10, 8 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P060.wav" right
+[ 10, 9 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T090_P060.wav" right
+[ 10, 10 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P060.wav" right
+[ 10, 11 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P060.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T030_P060.wav" right
-[ 11, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P075.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P075.wav"
-[ 11, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P075.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P075.wav"
-[ 11, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P075.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P075.wav"
-[ 11, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P075.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P075.wav"
-[ 11, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P075.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P075.wav"
-[ 11, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P075.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P075.wav"
+[ 11, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P075.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P075.wav" right
+[ 11, 1 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P075.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T300_P075.wav" right
+[ 11, 2 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P075.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T240_P075.wav" right
+[ 11, 3 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P075.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T180_P075.wav" right
+[ 11, 4 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P075.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T120_P075.wav" right
+[ 11, 5 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P075.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T060_P075.wav" right
-[ 12, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P090.wav"
- + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P090.wav"
+[ 12, 0 ] = wave (0) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P090.wav" left
+ + wave (1) : "./IRC/RAW/WAV/IRC_1005_R/IRC_1005_R_R0195_T000_P090.wav" right
diff --git a/utils/MIT_KEMAR.def b/utils/MIT_KEMAR.def
index 1067e0b4..e6b0ddff 100644
--- a/utils/MIT_KEMAR.def
+++ b/utils/MIT_KEMAR.def
@@ -12,26 +12,26 @@
# It is copyrighted 1994 by MIT Media Laboratory, and provided free of charge
# with no restrictions on use so long as the authors (above) are cited.
#
-# This definition is used to generate the internal HRTF table used by OpenAL
+# This definition is used to generate the default HRTF table used by OpenAL
# Soft.
# The following are the data set metrics. They must always be specified at
-# start of a definition file, but their order is not important.
+# the start of a definition file, but their order is not important.
# Sampling rate of the HRIR data (in hertz).
rate = 44100
+# The channel type of incoming HRIR data (mono or stereo). Mono channel
+# inputs will result in mirroring to provide the right ear HRIRs. If not
+# specified, this defaults to mono.
+type = mono
+
# The number of points to use from the HRIR data. This should be a
# sufficiently large value (to encompass the entire impulse response). It
# cannot be smaller than the truncation size (default is 32) specified on the
# command line.
points = 512
-# A list of the number of azimuths measured for each elevation. There must
-# be at least 5 elevations covering the 180 degrees for the data set to be
-# viable.
-azimuths = 1, 12, 24, 36, 45, 56, 60, 72, 72, 72, 72, 72, 60, 56, 45, 36, 24, 12, 1
-
# The radius of the listener's head (measured ear-to-ear in meters). The
# makehrtf utility uses this value to rescale measured propagation delays
# when a custom head radius is specified on the command line. It is also
@@ -41,62 +41,83 @@ azimuths = 1, 12, 24, 36, 45, 56, 60, 72, 72, 72, 72, 72, 60, 56, 45, 36, 24, 12
# default). At the moment, radius rescaling does not adjust HRIR coupling.
radius = 0.09
-# The distance between the source and the listener (in meters). This does
-# have to match the data set, but it's effect is minimal at the moment due to
-# the coupled nature of OpenAL Soft's HRTF model.
+# A list of the distances between the source and the listener (in meters) for
+# each field. These must start at or above the head radius and proceed in
+# ascending order. Since the MIT set is single-field, there is only one
+# distance.
distance = 1.4
-# Following the metrics is the list of source HRIRs for each elevation and
-# azimuth pair. They don't have to be specified in order, but the final
-# composition must not be sparse. They can however begin above a number of
-# elevations (as typical for HRIR measurements).
+# A list of the number of azimuths measured for each elevation per field.
+# Elevations are separated by commas (,) while fields are separated by
+# semicolons (;). There must be at least 5 elevations covering 180 degrees
+# degrees of elevation for the data set to be viable. The poles (first and
+# last elevation) must be singular (an azimuth count of 1).
+azimuths = 1, 12, 24, 36, 45, 56, 60, 72, 72, 72, 72, 72, 60, 56, 45, 36, 24, 12, 1
+
+# Following the metrics is the list of source HRIRs for each field,
+# elevation, and azimuth triplet. They don't have to be specified in order,
+# but the final composition must not be sparse. They can however begin above
+# a number of elevations (as typical for HRIR measurements).
#
-# The elevation and azimuth indices are used to determine the resulting polar
-# coordinates following OpenAL Soft's convention (-90 degree elevation
-# increasing counter-clockwise from the bottom; 0 degree azimuth increasing
-# clockwise from the front).
+# The field index is used to determine the distance coordinate (for mult-
+# field HRTFs) while the elevation and azimuth indices are used to determine
+# the resulting polar coordinates following OpenAL Soft's convention (-90
+# degree elevation increasing counter-clockwise from the bottom; 0 degree
+# azimuth increasing clockwise from the front).
#
-# More than one HRIR can be used per source, in which case the average
-# magnitude response of all references for that source is used.
+# More than one HRIR can be used per source. This allows the composition of
+# averaged magnitude responses or the specification of stereo HRTFs. Target
+# ears must (and can only be) specified for each source when the type metric
+# is set to 'stereo'.
#
# Source specification is of the form (~BNF):
#
-# source = '[' ev_index ',' az_index ']' '=' source_ref [ '+' source_ref ]*
+# source = ( sf_index | mf_index ) source_ref [ '+' source_ref ]*
+#
+# sf_index = '[' ev_index ',' az_index ']' '='
+# mf_index = '[' fd_index ',' ev_index ',' az_index ']' '='
+# source_ref = mono_ref | stereo_ref
#
+# fd_index = unsigned_integer
# ev_index = unsigned_integer
# az_index = unsigned_integer
-# source_ref = ref_spec ':' filename
+# mono_ref = ref_spec ':' filename
+# stereo_ref = ref_spec ':' filename ear
#
-# ref_spec = ( wave_fmt '(' wave_parms ')' [ '@' start_sample ] ) |
-# ( bin_fmt '(' bini_parms ')' [ '@' start_bytes ] ) |
-# ( bin_fmt '(' binf_parms ')' [ '@' start_bytes ] ) |
-# ( ascii_fmt '(' asci_parms ')' [ '@' start_elements ] ) |
-# ( ascii_fmt '(' ascf_parms ')' [ '@' start_elements ] )
+# ref_spec = ( wave_fmt '(' wave_parms ')' [ '@' start_sample ] ) |
+# ( bin_fmt '(' bini_parms ')' [ '@' start_byte ] ) |
+# ( bin_fmt '(' binf_parms ')' [ '@' start_byte ] ) |
+# ( ascii_fmt '(' asci_parms ')' [ '@' start_element ] ) |
+# ( ascii_fmt '(' ascf_parms ')' [ '@' start_element ] )
# filename = double_quoted_string
+# ear = 'left' | 'right'
#
-# wave_fmt = 'wave'
-# wave_parms = channel
-# bin_fmt = 'bin_le' | 'bin_be'
-# bini_parms = 'int' ',' byte_size [ ',' bin_sig_bits ] [ ';' skip_bytes ]
-# binf_parms = 'fp' ',' byte_size [ ';' skip_bytes ]
-# ascii_fmt = 'ascii'
-# asci_parms = 'int' ',' sig_bits [ ';' skip_elements ]
-# ascf_parms = 'fp' [ ';' skip_elements ]
-# start_sample = unsigned_integer
-# start_bytes = unsigned_integer
-# start_elements = unsigned_integer
+# wave_fmt = 'wave'
+# wave_parms = channel
+# bin_fmt = 'bin_le' | 'bin_be'
+# bini_parms = 'int' ',' byte_size [ ',' bin_sig_bits ] [ ';' skip_bytes ]
+# binf_parms = 'fp' ',' byte_size [ ';' skip_bytes ]
+# ascii_fmt = 'ascii'
+# asci_parms = 'int' ',' sig_bits [ ';' skip_elements ]
+# ascf_parms = 'fp' [ ';' skip_elements ]
+# start_sample = unsigned_integer
+# start_byte = unsigned_integer
+# start_element = unsigned_integer
#
-# channel = unsigned_integer
-# byte_size = unsigned_integer
-# bin_sig_bits = signed_integer
-# skip_bytes = unsigned_integer
-# sig_bits = unsigned_integer
-# skip_elements = unsigned_integer
+# channel = unsigned_integer
+# byte_size = unsigned_integer
+# bin_sig_bits = signed_integer
+# skip_bytes = unsigned_integer
+# sig_bits = unsigned_integer
+# skip_elements = unsigned_integer
#
# For bin_sig_bits, positive values mean the significant bits start at the
# MSB (padding toward the LSB) while negative values mean they start at the
# LSB.
+# Even though the MIT set is provided as stereo .wav files, each channel is
+# for a different sized KEMAR ear. Since it is not a stereo data set, no ear
+# is specified. The smaller KEMAR ear (in the left channel: 0) is used.
[ 5, 0 ] = wave (0) : "./MITfull/elev-40/L-40e000a.wav"
[ 5, 1 ] = wave (0) : "./MITfull/elev-40/L-40e006a.wav"
[ 5, 2 ] = wave (0) : "./MITfull/elev-40/L-40e013a.wav"
diff --git a/utils/makehrtf.c b/utils/makehrtf.c
index ca810b84..461df597 100644
--- a/utils/makehrtf.c
+++ b/utils/makehrtf.c
@@ -129,6 +129,9 @@ typedef unsigned __int64 uint64_t;
#define MIN_POINTS (16)
#define MAX_POINTS (8192)
+// The limit to the number of 'distances' listed in the data set definition.
+#define MAX_FD_COUNT (16)
+
// The limits to the number of 'azimuths' listed in the data set definition.
#define MIN_EV_COUNT (5)
#define MAX_EV_COUNT (128)
@@ -141,10 +144,10 @@ typedef unsigned __int64 uint64_t;
#define MIN_RADIUS (0.05)
#define MAX_RADIUS (0.15)
-// The limits for the 'distance' from source to listener in the definition
-// file.
-#define MIN_DISTANCE (0.5)
-#define MAX_DISTANCE (2.5)
+// The limits for the 'distance' from source to listener for each field in
+// the definition file.
+#define MIN_DISTANCE (0.05)
+#define MAX_DISTANCE (2.50)
// The maximum number of channels that can be addressed for a WAVE file
// source listed in the data set definition.
@@ -212,20 +215,20 @@ typedef unsigned __int64 uint64_t;
#define MAX_HRTD (63.0)
// The OpenAL Soft HRTF format marker. It stands for minimum-phase head
-// response protocol 01.
-#define MHR_FORMAT ("MinPHR01")
+// response protocol 02.
+#define MHR_FORMAT ("MinPHR02")
-#define MHR_FORMAT_EXPERIMENTAL ("MinPHRTEMPDONOTUSE")
-
-// Sample and channel type enum values
+// Sample and channel type enum values.
typedef enum SampleTypeT {
ST_S16 = 0,
ST_S24 = 1
} SampleTypeT;
+// Certain iterations rely on these integer enum values.
typedef enum ChannelTypeT {
- CT_LEFTONLY = 0,
- CT_LEFTRIGHT = 1
+ CT_NONE = -1,
+ CT_MONO = 0,
+ CT_STEREO = 1
} ChannelTypeT;
// Byte order for the serialization routines.
@@ -290,25 +293,42 @@ typedef struct SourceRefT {
char mPath[MAX_PATH_LEN+1];
} SourceRefT;
+// Structured HRIR storage for stereo azimuth pairs, elevations, and fields.
+typedef struct HrirAzT {
+ double mAzimuth;
+ uint mIndex;
+ double mDelays[2];
+ double *mIrs[2];
+} HrirAzT;
+
+typedef struct HrirEvT {
+ double mElevation;
+ uint mIrCount;
+ uint mAzCount;
+ HrirAzT *mAzs;
+} HrirEvT;
+
+typedef struct HrirFdT {
+ double mDistance;
+ uint mIrCount;
+ uint mEvCount;
+ uint mEvStart;
+ HrirEvT *mEvs;
+} HrirFdT;
+
// The HRIR metrics and data set used when loading, processing, and storing
// the resulting HRTF.
typedef struct HrirDataT {
uint mIrRate;
SampleTypeT mSampleType;
ChannelTypeT mChannelType;
- uint mIrCount;
- uint mIrSize;
uint mIrPoints;
uint mFftSize;
- uint mEvCount;
- uint mEvStart;
- uint mAzCount[MAX_EV_COUNT];
- uint mEvOffset[MAX_EV_COUNT];
+ uint mIrSize;
double mRadius;
- double mDistance;
- double *mHrirs;
- double *mHrtds;
- double mMaxHrtd;
+ uint mIrCount;
+ uint mFdCount;
+ HrirFdT *mFds;
} HrirDataT;
// The resampler metrics and FIR filter.
@@ -533,6 +553,19 @@ static void TrIndication(TokenReaderT *tr, uint *line, uint *column)
if(column) *column = tr->mColumn;
}
+// Checks to see if a token is (likely to be) an identifier. It does not
+// display any errors and will not proceed to the next token.
+static int TrIsIdent(TokenReaderT *tr)
+{
+ char ch;
+
+ if(!TrSkipWhitespace(tr))
+ return 0;
+ ch = tr->mRing[tr->mOut&TR_RING_MASK];
+ return ch == '_' || isalpha(ch);
+}
+
+
// Checks to see if a token is the given operator. It does not display any
// errors and will not proceed to the next token.
static int TrIsOperator(TokenReaderT *tr, const char *op)
@@ -641,9 +674,9 @@ static int TrReadInt(TokenReaderT *tr, const int loBound, const int hiBound, int
if(*value < loBound || *value > hiBound)
{
TrErrorAt(tr, tr->mLine, col, "Expected a value from %d to %d.\n", loBound, hiBound);
- return (0);
+ return 0;
}
- return (1);
+ return 1;
}
}
TrErrorAt(tr, tr->mLine, col, "Expected an integer.\n");
@@ -736,7 +769,7 @@ static int TrReadFloat(TokenReaderT *tr, const double loBound, const double hiBo
*value = strtod(temp, NULL);
if(*value < loBound || *value > hiBound)
{
- TrErrorAt (tr, tr->mLine, col, "Expected a value from %f to %f.\n", loBound, hiBound);
+ TrErrorAt(tr, tr->mLine, col, "Expected a value from %f to %f.\n", loBound, hiBound);
return 0;
}
return 1;
@@ -772,7 +805,7 @@ static int TrReadString(TokenReaderT *tr, const uint maxLen, char *text)
break;
if(ch == '\n')
{
- TrErrorAt (tr, tr->mLine, col, "Unterminated string at end of line.\n");
+ TrErrorAt(tr, tr->mLine, col, "Unterminated string at end of line.\n");
return 0;
}
if(len < maxLen)
@@ -788,7 +821,7 @@ static int TrReadString(TokenReaderT *tr, const uint maxLen, char *text)
tr->mColumn += 2 + len;
if(len > maxLen)
{
- TrErrorAt (tr, tr->mLine, col, "String is too long.\n");
+ TrErrorAt(tr, tr->mLine, col, "String is too long.\n");
return 0;
}
text[len] = '\0';
@@ -901,34 +934,40 @@ static double Clamp(const double val, const double lower, const double upper)
// Performs linear interpolation.
static double Lerp(const double a, const double b, const double f)
{
- return a + (f * (b - a));
+ return a + f * (b - a);
}
static inline uint dither_rng(uint *seed)
{
- *seed = (*seed * 96314165) + 907633515;
+ *seed = *seed * 96314165 + 907633515;
return *seed;
}
-// Performs a triangular probability density function dither. It assumes the
-// input sample is already scaled.
-static inline double TpdfDither(const double in, uint *seed)
+// Performs a triangular probability density function dither. The input samples
+// should be normalized (-1 to +1).
+static void TpdfDither(double *restrict out, const double *restrict in, const double scale,
+ const int count, const int step, uint *seed)
{
static const double PRNG_SCALE = 1.0 / UINT_MAX;
uint prn0, prn1;
+ int i;
- prn0 = dither_rng(seed);
- prn1 = dither_rng(seed);
- return round(in + (prn0*PRNG_SCALE - prn1*PRNG_SCALE));
+ for(i = 0;i < count;i++)
+ {
+ prn0 = dither_rng(seed);
+ prn1 = dither_rng(seed);
+ out[i*step] = round(in[i]*scale + (prn0*PRNG_SCALE - prn1*PRNG_SCALE));
+ }
}
// Allocates an array of doubles.
-static double *CreateArray(size_t n)
+static double *CreateDoubles(size_t n)
{
double *a;
- if(n == 0) n = 1;
- a = calloc(n, sizeof(double));
+ if(n == 0)
+ n = 1;
+ a = calloc(n, sizeof(*a));
if(a == NULL)
{
fprintf(stderr, "Error: Out of memory.\n");
@@ -937,9 +976,21 @@ static double *CreateArray(size_t n)
return a;
}
-// Frees an array of doubles.
-static void DestroyArray(double *a)
-{ free(a); }
+// Allocates an array of complex numbers.
+static Complex *CreateComplexes(size_t n)
+{
+ Complex *a;
+
+ if(n == 0)
+ n = 1;
+ a = calloc(n, sizeof(*a));
+ if(a == NULL)
+ {
+ fprintf(stderr, "Error: Out of memory.\n");
+ exit(-1);
+ }
+ return a;
+}
/* Fast Fourier transform routines. The number of points must be a power of
* two. In-place operation is possible only if both the real and imaginary
@@ -1081,9 +1132,8 @@ static void MagnitudeResponse(const uint n, const Complex *in, double *out)
* to adjust the effects of the diffuse-field average on the equalization
* process.
*/
-static void LimitMagnitudeResponse(const uint n, const double limit, const double *in, double *out)
+static void LimitMagnitudeResponse(const uint n, const uint m, const double limit, const double *in, double *out)
{
- const uint m = 1 + (n / 2);
double halfLim;
uint i, lower, upper;
double ave;
@@ -1118,7 +1168,7 @@ static void MinimumPhase(const uint n, const double *in, Complex *out)
double *mags;
uint i;
- mags = CreateArray(n);
+ mags = CreateDoubles(n);
for(i = 0;i < m;i++)
{
mags[i] = fmax(EPSILON, in[i]);
@@ -1137,7 +1187,7 @@ static void MinimumPhase(const uint n, const double *in, Complex *out)
Complex a = c_exp(MakeComplex(0.0, out[i].Imag));
out[i] = c_mul(MakeComplex(mags[i], 0.0), a);
}
- DestroyArray(mags);
+ free(mags);
}
@@ -1319,7 +1369,7 @@ static void ResamplerSetup(ResamplerT *rs, const uint srcRate, const uint dstRat
beta = CalcKaiserBeta(180.0);
rs->mM = l*2 + 1;
rs->mL = l;
- rs->mF = CreateArray(rs->mM);
+ rs->mF = CreateDoubles(rs->mM);
for(i = 0;i < ((int)rs->mM);i++)
rs->mF[i] = SincFilter((int)l, beta, rs->mP, cutoff, i);
}
@@ -1327,7 +1377,7 @@ static void ResamplerSetup(ResamplerT *rs, const uint srcRate, const uint dstRat
// Clean up after the resampler.
static void ResamplerClear(ResamplerT *rs)
{
- DestroyArray(rs->mF);
+ free(rs->mF);
rs->mF = NULL;
}
@@ -1346,7 +1396,7 @@ static void ResamplerRun(ResamplerT *rs, const uint inN, const double *in, const
// Handle in-place operation.
if(in == out)
- work = CreateArray(outN);
+ work = CreateDoubles(outN);
else
work = out;
// Resample the input.
@@ -1373,7 +1423,7 @@ static void ResamplerRun(ResamplerT *rs, const uint inN, const double *in, const
{
for(i = 0;i < outN;i++)
out[i] = work[i];
- DestroyArray(work);
+ free(work);
}
}
@@ -1536,18 +1586,18 @@ static int ReadWaveFormat(FILE *fp, const ByteOrderT order, const uint hrirRate,
chunkSize = 0;
do {
- if (chunkSize > 0)
- fseek (fp, (long) chunkSize, SEEK_CUR);
+ if(chunkSize > 0)
+ fseek (fp, (long) chunkSize, SEEK_CUR);
if(!ReadBin4(fp, src->mPath, BO_LITTLE, 4, &fourCC) ||
!ReadBin4(fp, src->mPath, order, 4, &chunkSize))
- return 0;
+ return 0;
} while(fourCC != FOURCC_FMT);
- if(!ReadBin4(fp, src->mPath, order, 2, & format) ||
- !ReadBin4(fp, src->mPath, order, 2, & channels) ||
- !ReadBin4(fp, src->mPath, order, 4, & rate) ||
- !ReadBin4(fp, src->mPath, order, 4, & dummy) ||
- !ReadBin4(fp, src->mPath, order, 2, & block))
- return (0);
+ if(!ReadBin4(fp, src->mPath, order, 2, &format) ||
+ !ReadBin4(fp, src->mPath, order, 2, &channels) ||
+ !ReadBin4(fp, src->mPath, order, 4, &rate) ||
+ !ReadBin4(fp, src->mPath, order, 4, &dummy) ||
+ !ReadBin4(fp, src->mPath, order, 2, &block))
+ return 0;
block /= channels;
if(chunkSize > 14)
{
@@ -1654,10 +1704,11 @@ static int ReadWaveList(FILE *fp, const SourceRefT *src, const ByteOrderT order,
uint block, skip, offset, i;
double lastSample;
- for (;;) {
- if(!ReadBin4(fp, src->mPath, BO_LITTLE, 4, & fourCC) ||
- !ReadBin4(fp, src->mPath, order, 4, & chunkSize))
- return (0);
+ for(;;)
+ {
+ if(!ReadBin4(fp, src->mPath, BO_LITTLE, 4, &fourCC) ||
+ !ReadBin4(fp, src->mPath, order, 4, &chunkSize))
+ return 0;
if(fourCC == FOURCC_DATA)
{
@@ -1811,7 +1862,7 @@ static int LoadAsciiSource(FILE *fp, const SourceRefT *src, const uint n, double
for(i = 0;i < src->mOffset;i++)
{
if(!ReadAsciiAsDouble(&tr, src->mPath, src->mType, (uint)src->mBits, &dummy))
- return (0);
+ return 0;
}
for(i = 0;i < n;i++)
{
@@ -1832,7 +1883,7 @@ static int LoadSource(SourceRefT *src, const uint hrirRate, const uint n, double
int result;
FILE *fp;
- if (src->mFormat == SF_ASCII)
+ if(src->mFormat == SF_ASCII)
fp = fopen(src->mPath, "r");
else
fp = fopen(src->mPath, "rb");
@@ -1902,63 +1953,90 @@ static int WriteBin4(const ByteOrderT order, const uint bytes, const uint32 in,
}
// Store the OpenAL Soft HRTF data set.
-static int StoreMhr(const HrirDataT *hData, const int experimental, const char *filename)
+static int StoreMhr(const HrirDataT *hData, const char *filename)
{
- uint e, step, end, n, j, i;
- uint dither_seed;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ uint n = hData->mIrPoints;
FILE *fp;
- int v;
+ uint fi, ei, ai, i;
+ uint dither_seed = 22222;
if((fp=fopen(filename, "wb")) == NULL)
{
fprintf(stderr, "Error: Could not open MHR file '%s'.\n", filename);
return 0;
}
- if(!WriteAscii(experimental ? MHR_FORMAT_EXPERIMENTAL : MHR_FORMAT, fp, filename))
+ if(!WriteAscii(MHR_FORMAT, fp, filename))
return 0;
if(!WriteBin4(BO_LITTLE, 4, (uint32)hData->mIrRate, fp, filename))
return 0;
- if(experimental)
- {
- if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mSampleType, fp, filename))
- return 0;
- if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mChannelType, fp, filename))
- return 0;
- }
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mSampleType, fp, filename))
+ return 0;
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mChannelType, fp, filename))
+ return 0;
if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mIrPoints, fp, filename))
return 0;
- if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mEvCount, fp, filename))
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mFdCount, fp, filename))
return 0;
- for(e = 0;e < hData->mEvCount;e++)
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mAzCount[e], fp, filename))
+ if(!WriteBin4(BO_LITTLE, 2, (uint32)(1000.0 * hData->mFds[fi].mDistance), fp, filename))
+ return 0;
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mFds[fi].mEvCount, fp, filename))
return 0;
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)hData->mFds[fi].mEvs[ei].mAzCount, fp, filename))
+ return 0;
+ }
}
- step = hData->mIrSize;
- end = hData->mIrCount * step;
- n = hData->mIrPoints;
- dither_seed = 22222;
- for(j = 0;j < end;j += step)
+
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- const double scale = (!experimental || hData->mSampleType == ST_S16) ? 32767.0 :
+ const double scale = (hData->mSampleType == ST_S16) ? 32767.0 :
((hData->mSampleType == ST_S24) ? 8388607.0 : 0.0);
- const int bps = (!experimental || hData->mSampleType == ST_S16) ? 2 :
+ const int bps = (hData->mSampleType == ST_S16) ? 2 :
((hData->mSampleType == ST_S24) ? 3 : 0);
- double out[MAX_TRUNCSIZE];
- for(i = 0;i < n;i++)
- out[i] = TpdfDither(scale * hData->mHrirs[j+i], &dither_seed);
- for(i = 0;i < n;i++)
+
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
{
- v = (int)Clamp(out[i], -scale-1.0, scale);
- if(!WriteBin4(BO_LITTLE, bps, (uint32)v, fp, filename))
- return 0;
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+ double out[2 * MAX_TRUNCSIZE];
+
+ TpdfDither(out, azd->mIrs[0], scale, n, channels, &dither_seed);
+ if(hData->mChannelType == CT_STEREO)
+ TpdfDither(out+1, azd->mIrs[1], scale, n, channels, &dither_seed);
+ for(i = 0;i < (channels * n);i++)
+ {
+ int v = (int)Clamp(out[i], -scale-1.0, scale);
+ if(!WriteBin4(BO_LITTLE, bps, (uint32)v, fp, filename))
+ return 0;
+ }
+ }
}
}
- for(j = 0;j < hData->mIrCount;j++)
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- v = (int)fmin(round(hData->mIrRate * hData->mHrtds[j]), MAX_HRTD);
- if(!WriteBin4(BO_LITTLE, 1, (uint32)v, fp, filename))
- return 0;
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+ int v = (int)fmin(round(hData->mIrRate * azd->mDelays[0]), MAX_HRTD);
+
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)v, fp, filename))
+ return 0;
+ if(hData->mChannelType == CT_STEREO)
+ {
+ v = (int)fmin(round(hData->mIrRate * azd->mDelays[1]), MAX_HRTD);
+
+ if(!WriteBin4(BO_LITTLE, 1, (uint32)v, fp, filename))
+ return 0;
+ }
+ }
+ }
}
fclose(fp);
return 1;
@@ -1970,14 +2048,12 @@ static int StoreMhr(const HrirDataT *hData, const int experimental, const char *
***********************/
// Calculate the onset time of an HRIR and average it with any existing
-// timing for its elevation and azimuth.
-static void AverageHrirOnset(const double *hrir, const double f, const uint ei, const uint ai, const HrirDataT *hData)
+// timing for its field, elevation, azimuth, and ear.
+static double AverageHrirOnset(const uint rate, const uint n, const double *hrir, const double f, const double onset)
{
- double mag;
- uint n, i, j;
+ double mag = 0.0;
+ uint i;
- mag = 0.0;
- n = hData->mIrPoints;
for(i = 0;i < n;i++)
mag = fmax(fabs(hrir[i]), mag);
mag *= 0.15;
@@ -1986,33 +2062,27 @@ static void AverageHrirOnset(const double *hrir, const double f, const uint ei,
if(fabs(hrir[i]) >= mag)
break;
}
- j = hData->mEvOffset[ei] + ai;
- hData->mHrtds[j] = Lerp(hData->mHrtds[j], ((double)i) / hData->mIrRate, f);
+ return Lerp(onset, (double)i / rate, f);
}
// Calculate the magnitude response of an HRIR and average it with any
-// existing responses for its elevation and azimuth.
-static void AverageHrirMagnitude(const double *hrir, const double f, const uint ei, const uint ai, const HrirDataT *hData)
+// existing responses for its field, elevation, azimuth, and ear.
+static void AverageHrirMagnitude(const uint points, const uint n, const double *hrir, const double f, double *mag)
{
- uint n, m, i, j;
- Complex *cplx;
- double *mags;
+ uint m = 1 + (n / 2), i;
+ Complex *h = CreateComplexes(n);
+ double *r = CreateDoubles(n);
- n = hData->mFftSize;
- cplx = calloc(sizeof(*cplx), n);
- mags = calloc(sizeof(*mags), n);
- for(i = 0;i < hData->mIrPoints;i++)
- cplx[i] = MakeComplex(hrir[i], 0.0);
+ for(i = 0;i < points;i++)
+ h[i] = MakeComplex(hrir[i], 0.0);
for(;i < n;i++)
- cplx[i] = MakeComplex(0.0, 0.0);
- FftForward(n, cplx, cplx);
- MagnitudeResponse(n, cplx, mags);
- m = 1 + (n / 2);
- j = (hData->mEvOffset[ei] + ai) * hData->mIrSize;
+ h[i] = MakeComplex(0.0, 0.0);
+ FftForward(n, h, h);
+ MagnitudeResponse(n, h, r);
for(i = 0;i < m;i++)
- hData->mHrirs[j+i] = Lerp(hData->mHrirs[j+i], mags[i], f);
- free(mags);
- free(cplx);
+ mag[i] = Lerp(mag[i], r[i], f);
+ free(r);
+ free(h);
}
/* Calculate the contribution of each HRIR to the diffuse-field average based
@@ -2021,34 +2091,39 @@ static void AverageHrirMagnitude(const double *hrir, const double f, const uint
*/
static void CalculateDfWeights(const HrirDataT *hData, double *weights)
{
- double evs, sum, ev, up_ev, down_ev, solidAngle;
- uint ei;
+ double sum, evs, ev, upperEv, lowerEv, solidAngle;
+ uint fi, ei;
- evs = 90.0 / (hData->mEvCount - 1);
sum = 0.0;
- for(ei = hData->mEvStart;ei < hData->mEvCount;ei++)
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- // For each elevation, calculate the upper and lower limits of the
- // patch band.
- ev = -90.0 + (ei * 2.0 * evs);
- if(ei < (hData->mEvCount - 1))
- up_ev = (ev + evs) * M_PI / 180.0;
- else
- up_ev = M_PI / 2.0;
- if(ei > 0)
- down_ev = (ev - evs) * M_PI / 180.0;
- else
- down_ev = -M_PI / 2.0;
- // Calculate the area of the patch band.
- solidAngle = 2.0 * M_PI * (sin(up_ev) - sin(down_ev));
- // Each weight is the area of one patch.
- weights[ei] = solidAngle / hData->mAzCount [ei];
- // Sum the total surface area covered by the HRIRs.
- sum += solidAngle;
+ evs = M_PI / 2.0 / (hData->mFds[fi].mEvCount - 1);
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ // For each elevation, calculate the upper and lower limits of
+ // the patch band.
+ ev = hData->mFds[fi].mEvs[ei].mElevation;
+ lowerEv = fmax(-M_PI / 2.0, ev - evs);
+ upperEv = fmin(M_PI / 2.0, ev + evs);
+ // Calculate the area of the patch band.
+ solidAngle = 2.0 * M_PI * (sin(upperEv) - sin(lowerEv));
+ // Each weight is the area of one patch.
+ weights[(fi * MAX_EV_COUNT) + ei] = solidAngle / hData->mFds[fi].mEvs[ei].mAzCount;
+ // Sum the total surface area covered by the HRIRs of all fields.
+ sum += solidAngle;
+ }
+ }
+ /* TODO: It may be interesting to experiment with how a volume-based
+ weighting performs compared to the existing distance-indepenent
+ surface patches.
+ */
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ // Normalize the weights given the total surface coverage for all
+ // fields.
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ weights[(fi * MAX_EV_COUNT) + ei] /= sum;
}
- // Normalize the weights given the total surface coverage.
- for(ei = hData->mEvStart;ei < hData->mEvCount;ei++)
- weights[ei] /= sum;
}
/* Calculate the diffuse-field average from the given magnitude responses of
@@ -2056,12 +2131,11 @@ static void CalculateDfWeights(const HrirDataT *hData, double *weights)
* surface area covered by each HRIR. The final average can then be limited
* by the specified magnitude range (in positive dB; 0.0 to skip).
*/
-static void CalculateDiffuseFieldAverage(const HrirDataT *hData, const int weighted, const double limit, double *dfa)
+static void CalculateDiffuseFieldAverage(const HrirDataT *hData, const uint channels, const uint m, const int weighted, const double limit, double *dfa)
{
- uint ei, ai, count, step, start, end, m, j, i;
- double *weights;
+ double *weights = CreateDoubles(hData->mFdCount * MAX_EV_COUNT);
+ uint count, ti, fi, ei, i, ai;
- weights = CreateArray(hData->mEvCount);
if(weighted)
{
// Use coverage weighting to calculate the average.
@@ -2069,61 +2143,76 @@ static void CalculateDiffuseFieldAverage(const HrirDataT *hData, const int weigh
}
else
{
+ double weight;
+
// If coverage weighting is not used, the weights still need to be
- // averaged by the number of HRIRs.
- count = 0;
- for(ei = hData->mEvStart;ei < hData->mEvCount;ei++)
- count += hData->mAzCount [ei];
- for(ei = hData->mEvStart;ei < hData->mEvCount;ei++)
- weights[ei] = 1.0 / count;
- }
- ei = hData->mEvStart;
- ai = 0;
- step = hData->mIrSize;
- start = hData->mEvOffset[ei] * step;
- end = hData->mIrCount * step;
- m = 1 + (hData->mFftSize / 2);
- for(i = 0;i < m;i++)
- dfa[i] = 0.0;
- for(j = start;j < end;j += step)
+ // averaged by the number of existing HRIRs.
+ count = hData->mIrCount;
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvStart;ei++)
+ count -= hData->mFds[fi].mEvs[ei].mAzCount;
+ }
+ weight = 1.0 / count;
+
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ weights[(fi * MAX_EV_COUNT) + ei] = weight;
+ }
+ }
+ for(ti = 0;ti < channels;ti++)
{
- // Get the weight for this HRIR's contribution.
- double weight = weights[ei];
- // Add this HRIR's weighted power average to the total.
for(i = 0;i < m;i++)
- dfa[i] += weight * hData->mHrirs[j+i] * hData->mHrirs[j+i];
- // Determine the next weight to use.
- ai++;
- if(ai >= hData->mAzCount[ei])
+ dfa[(ti * m) + i] = 0.0;
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- ei++;
- ai = 0;
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+ // Get the weight for this HRIR's contribution.
+ double weight = weights[(fi * MAX_EV_COUNT) + ei];
+
+ // Add this HRIR's weighted power average to the total.
+ for(i = 0;i < m;i++)
+ dfa[(ti * m) + i] += weight * azd->mIrs[ti][i] * azd->mIrs[ti][i];
+ }
+ }
}
+ // Finish the average calculation and keep it from being too small.
+ for(i = 0;i < m;i++)
+ dfa[(ti * m) + i] = fmax(sqrt(dfa[(ti * m) + i]), EPSILON);
+ // Apply a limit to the magnitude range of the diffuse-field average
+ // if desired.
+ if(limit > 0.0)
+ LimitMagnitudeResponse(hData->mFftSize, m, limit, &dfa[ti * m], &dfa[ti * m]);
}
- // Finish the average calculation and keep it from being too small.
- for(i = 0;i < m;i++)
- dfa[i] = fmax(sqrt(dfa[i]), EPSILON);
- // Apply a limit to the magnitude range of the diffuse-field average if
- // desired.
- if(limit > 0.0)
- LimitMagnitudeResponse(hData->mFftSize, limit, dfa, dfa);
- DestroyArray(weights);
+ free(weights);
}
// Perform diffuse-field equalization on the magnitude responses of the HRIR
// set using the given average response.
-static void DiffuseFieldEqualize(const double *dfa, const HrirDataT *hData)
+static void DiffuseFieldEqualize(const uint channels, const uint m, const double *dfa, const HrirDataT *hData)
{
- uint step, start, end, m, j, i;
+ uint ti, fi, ei, ai, i;
- step = hData->mIrSize;
- start = hData->mEvOffset[hData->mEvStart] * step;
- end = hData->mIrCount * step;
- m = 1 + (hData->mFftSize / 2);
- for(j = start;j < end;j += step)
+ for(ti = 0;ti < channels;ti++)
{
- for(i = 0;i < m;i++)
- hData->mHrirs[j+i] /= dfa[i];
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ for(i = 0;i < m;i++)
+ azd->mIrs[ti][i] /= dfa[(ti * m) + i];
+ }
+ }
+ }
}
}
@@ -2131,187 +2220,241 @@ static void DiffuseFieldEqualize(const double *dfa, const HrirDataT *hData)
// HRIR set.
static void ReconstructHrirs(const HrirDataT *hData)
{
- uint step, start, end, n, j, i;
- uint pcdone, lastpc;
- Complex *cplx;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ uint n = hData->mFftSize;
+ uint ti, fi, ei, ai, i;
+ Complex *h = CreateComplexes(n);
+ uint total, count, pcdone, lastpc;
- pcdone = lastpc = 0;
+ total = hData->mIrCount;
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvStart;ei++)
+ total -= hData->mFds[fi].mEvs[ei].mAzCount;
+ }
+ total *= channels;
+ count = pcdone = lastpc = 0;
printf("%3d%% done.", pcdone);
fflush(stdout);
-
- step = hData->mIrSize;
- start = hData->mEvOffset[hData->mEvStart] * step;
- end = hData->mIrCount * step;
- n = hData->mFftSize;
- cplx = calloc(sizeof(*cplx), n);
- for(j = start;j < end;j += step)
- {
- MinimumPhase(n, &hData->mHrirs[j], cplx);
- FftInverse(n, cplx, cplx);
- for(i = 0;i < hData->mIrPoints;i++)
- hData->mHrirs[j+i] = cplx[i].Real;
- pcdone = (j+step-start) * 100 / (end-start);
- if(pcdone != lastpc)
- {
- lastpc = pcdone;
- printf("\r%3d%% done.", pcdone);
- fflush(stdout);
+ for(ti = 0;ti < channels;ti++)
+ {
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ MinimumPhase(n, azd->mIrs[ti], h);
+ FftInverse(n, h, h);
+ for(i = 0;i < hData->mIrPoints;i++)
+ azd->mIrs[ti][i] = h[i].Real;
+ pcdone = ++count * 100 / total;
+ if(pcdone != lastpc)
+ {
+ lastpc = pcdone;
+ printf("\r%3d%% done.", pcdone);
+ fflush(stdout);
+ }
+ }
+ }
}
}
- free(cplx);
printf("\n");
+ free(h);
}
// Resamples the HRIRs for use at the given sampling rate.
static void ResampleHrirs(const uint rate, HrirDataT *hData)
{
- uint n, step, start, end, j;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ uint n = hData->mIrPoints;
+ uint ti, fi, ei, ai;
ResamplerT rs;
ResamplerSetup(&rs, hData->mIrRate, rate);
- n = hData->mIrPoints;
- step = hData->mIrSize;
- start = hData->mEvOffset[hData->mEvStart] * step;
- end = hData->mIrCount * step;
- for(j = start;j < end;j += step)
- ResamplerRun(&rs, n, &hData->mHrirs[j], n, &hData->mHrirs[j]);
- ResamplerClear(&rs);
+ for(ti = 0;ti < channels;ti++)
+ {
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = hData->mFds[fi].mEvStart;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ ResamplerRun(&rs, n, azd->mIrs[ti], n, azd->mIrs[ti]);
+ }
+ }
+ }
+ }
hData->mIrRate = rate;
+ ResamplerClear(&rs);
}
-/* Given an elevation index and an azimuth, calculate the indices of the two
- * HRIRs that bound the coordinate along with a factor for calculating the
- * continous HRIR using interpolation.
+/* Given field and elevation indices and an azimuth, calculate the indices of
+ * the two HRIRs that bound the coordinate along with a factor for
+ * calculating the continuous HRIR using interpolation.
*/
-static void CalcAzIndices(const HrirDataT *hData, const uint ei, const double az, uint *j0, uint *j1, double *jf)
+static void CalcAzIndices(const HrirDataT *hData, const uint fi, const uint ei, const double az, uint *a0, uint *a1, double *af)
{
- double af;
- uint ai;
-
- af = ((2.0*M_PI) + az) * hData->mAzCount[ei] / (2.0*M_PI);
- ai = ((uint)af) % hData->mAzCount[ei];
- af -= floor(af);
+ double f = (2.0*M_PI + az) * hData->mFds[fi].mEvs[ei].mAzCount / (2.0*M_PI);
+ uint i = (uint)f % hData->mFds[fi].mEvs[ei].mAzCount;
- *j0 = hData->mEvOffset[ei] + ai;
- *j1 = hData->mEvOffset[ei] + ((ai+1) % hData->mAzCount [ei]);
- *jf = af;
+ f -= floor(f);
+ *a0 = i;
+ *a1 = (i + 1) % hData->mFds[fi].mEvs[ei].mAzCount;
+ *af = f;
}
-// Synthesize any missing onset timings at the bottom elevations. This just
-// blends between slightly exaggerated known onsets. Not an accurate model.
+// Synthesize any missing onset timings at the bottom elevations of each
+// field. This just blends between slightly exaggerated known onsets (not
+// an accurate model).
static void SynthesizeOnsets(HrirDataT *hData)
{
- uint oi, e, a, j0, j1;
- double t, of, jf;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ uint ti, fi, oi, ai, ei, a0, a1;
+ double t, of, af;
- oi = hData->mEvStart;
- t = 0.0;
- for(a = 0;a < hData->mAzCount[oi];a++)
- t += hData->mHrtds[hData->mEvOffset[oi] + a];
- hData->mHrtds[0] = 1.32e-4 + (t / hData->mAzCount[oi]);
- for(e = 1;e < hData->mEvStart;e++)
+ for(ti = 0;ti < channels;ti++)
{
- of = ((double)e) / hData->mEvStart;
- for(a = 0;a < hData->mAzCount[e];a++)
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- CalcAzIndices(hData, oi, a * 2.0 * M_PI / hData->mAzCount[e], &j0, &j1, &jf);
- hData->mHrtds[hData->mEvOffset[e] + a] = Lerp(hData->mHrtds[0], Lerp(hData->mHrtds[j0], hData->mHrtds[j1], jf), of);
+ if(hData->mFds[fi].mEvStart <= 0)
+ continue;
+ oi = hData->mFds[fi].mEvStart;
+ t = 0.0;
+ for(ai = 0;ai < hData->mFds[fi].mEvs[oi].mAzCount;ai++)
+ t += hData->mFds[fi].mEvs[oi].mAzs[ai].mDelays[ti];
+ hData->mFds[fi].mEvs[0].mAzs[0].mDelays[ti] = 1.32e-4 + (t / hData->mFds[fi].mEvs[oi].mAzCount);
+ for(ei = 1;ei < hData->mFds[fi].mEvStart;ei++)
+ {
+ of = (double)ei / hData->mFds[fi].mEvStart;
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ CalcAzIndices(hData, fi, oi, hData->mFds[fi].mEvs[ei].mAzs[ai].mAzimuth, &a0, &a1, &af);
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mDelays[ti] = Lerp(hData->mFds[fi].mEvs[0].mAzs[0].mDelays[ti], Lerp(hData->mFds[fi].mEvs[oi].mAzs[a0].mDelays[ti], hData->mFds[fi].mEvs[oi].mAzs[a1].mDelays[ti], af), of);
+ }
+ }
}
}
}
-/* Attempt to synthesize any missing HRIRs at the bottom elevations. Right
- * now this just blends the lowest elevation HRIRs together and applies some
- * attenuation and high frequency damping. It is a simple, if inaccurate
- * model.
+/* Attempt to synthesize any missing HRIRs at the bottom elevations of each
+ * field. Right now this just blends the lowest elevation HRIRs together and
+ * applies some attenuation and high frequency damping. It is a simple, if
+ * inaccurate model.
*/
-static void SynthesizeHrirs (HrirDataT *hData)
+static void SynthesizeHrirs(HrirDataT *hData)
{
- uint oi, a, e, step, n, i, j;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ uint n = hData->mIrPoints;
+ uint ti, fi, oi, ai, ei, i;
double lp[4], s0, s1;
double of, b;
- uint j0, j1;
- double jf;
+ uint a0, a1;
+ double af;
- if(hData->mEvStart <= 0)
- return;
- step = hData->mIrSize;
- oi = hData->mEvStart;
- n = hData->mIrPoints;
- for(i = 0;i < n;i++)
- hData->mHrirs[i] = 0.0;
- for(a = 0;a < hData->mAzCount[oi];a++)
+ for(ti = 0;ti < channels;ti++)
{
- j = (hData->mEvOffset[oi] + a) * step;
- for(i = 0;i < n;i++)
- hData->mHrirs[i] += hData->mHrirs[j+i] / hData->mAzCount[oi];
- }
- for(e = 1;e < hData->mEvStart;e++)
- {
- of = ((double)e) / hData->mEvStart;
- b = (1.0 - of) * (3.5e-6 * hData->mIrRate);
- for(a = 0;a < hData->mAzCount[e];a++)
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- j = (hData->mEvOffset[e] + a) * step;
- CalcAzIndices(hData, oi, a * 2.0 * M_PI / hData->mAzCount[e], &j0, &j1, &jf);
- j0 *= step;
- j1 *= step;
+ if(hData->mFds[fi].mEvStart <= 0)
+ continue;
+ oi = hData->mFds[fi].mEvStart;
+ for(i = 0;i < n;i++)
+ hData->mFds[fi].mEvs[0].mAzs[0].mIrs[ti][i] = 0.0;
+ for(ai = 0;ai < hData->mFds[fi].mEvs[oi].mAzCount;ai++)
+ {
+ for(i = 0;i < n;i++)
+ hData->mFds[fi].mEvs[0].mAzs[0].mIrs[ti][i] += hData->mFds[fi].mEvs[oi].mAzs[ai].mIrs[ti][i] / hData->mFds[fi].mEvs[oi].mAzCount;
+ }
+ for(ei = 1;ei < hData->mFds[fi].mEvStart;ei++)
+ {
+ of = (double)ei / hData->mFds[fi].mEvStart;
+ b = (1.0 - of) * (3.5e-6 * hData->mIrRate);
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ CalcAzIndices(hData, fi, oi, hData->mFds[fi].mEvs[ei].mAzs[ai].mAzimuth, &a0, &a1, &af);
+ lp[0] = 0.0;
+ lp[1] = 0.0;
+ lp[2] = 0.0;
+ lp[3] = 0.0;
+ for(i = 0;i < n;i++)
+ {
+ s0 = hData->mFds[fi].mEvs[0].mAzs[0].mIrs[ti][i];
+ s1 = Lerp(hData->mFds[fi].mEvs[oi].mAzs[a0].mIrs[ti][i], hData->mFds[fi].mEvs[oi].mAzs[a1].mIrs[ti][i], af);
+ s0 = Lerp(s0, s1, of);
+ lp[0] = Lerp(s0, lp[0], b);
+ lp[1] = Lerp(lp[0], lp[1], b);
+ lp[2] = Lerp(lp[1], lp[2], b);
+ lp[3] = Lerp(lp[2], lp[3], b);
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mIrs[ti][i] = lp[3];
+ }
+ }
+ }
+ b = 3.5e-6 * hData->mIrRate;
lp[0] = 0.0;
lp[1] = 0.0;
lp[2] = 0.0;
lp[3] = 0.0;
for(i = 0;i < n;i++)
{
- s0 = hData->mHrirs[i];
- s1 = Lerp(hData->mHrirs[j0+i], hData->mHrirs[j1+i], jf);
- s0 = Lerp(s0, s1, of);
+ s0 = hData->mFds[fi].mEvs[0].mAzs[0].mIrs[ti][i];
lp[0] = Lerp(s0, lp[0], b);
lp[1] = Lerp(lp[0], lp[1], b);
lp[2] = Lerp(lp[1], lp[2], b);
lp[3] = Lerp(lp[2], lp[3], b);
- hData->mHrirs[j+i] = lp[3];
+ hData->mFds[fi].mEvs[0].mAzs[0].mIrs[ti][i] = lp[3];
}
+ hData->mFds[fi].mEvStart = 0;
}
}
- b = 3.5e-6 * hData->mIrRate;
- lp[0] = 0.0;
- lp[1] = 0.0;
- lp[2] = 0.0;
- lp[3] = 0.0;
- for(i = 0;i < n;i++)
- {
- s0 = hData->mHrirs[i];
- lp[0] = Lerp(s0, lp[0], b);
- lp[1] = Lerp(lp[0], lp[1], b);
- lp[2] = Lerp(lp[1], lp[2], b);
- lp[3] = Lerp(lp[2], lp[3], b);
- hData->mHrirs[i] = lp[3];
- }
- hData->mEvStart = 0;
}
// The following routines assume a full set of HRIRs for all elevations.
// Normalize the HRIR set and slightly attenuate the result.
-static void NormalizeHrirs (const HrirDataT *hData)
+static void NormalizeHrirs(const HrirDataT *hData)
{
- uint step, end, n, j, i;
- double maxLevel;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ uint n = hData->mIrPoints;
+ uint ti, fi, ei, ai, i;
+ double maxLevel = 0.0;
- step = hData->mIrSize;
- end = hData->mIrCount * step;
- n = hData->mIrPoints;
- maxLevel = 0.0;
- for(j = 0;j < end;j += step)
+ for(ti = 0;ti < channels;ti++)
{
- for(i = 0;i < n;i++)
- maxLevel = fmax(fabs(hData->mHrirs[j+i]), maxLevel);
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ for(i = 0;i < n;i++)
+ maxLevel = fmax(fabs(azd->mIrs[ti][i]), maxLevel);
+ }
+ }
+ }
}
maxLevel = 1.01 * maxLevel;
- for(j = 0;j < end;j += step)
+ for(ti = 0;ti < channels;ti++)
{
- for(i = 0;i < n;i++)
- hData->mHrirs[j+i] /= maxLevel;
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ for(i = 0;i < n;i++)
+ azd->mIrs[ti][i] /= maxLevel;
+ }
+ }
+ }
}
}
@@ -2326,93 +2469,259 @@ static double CalcLTD(const double ev, const double az, const double rad, const
al = (0.5 * M_PI) + azp;
if(dlp > l)
dlp = l + (rad * (al - acos(rad / dist)));
- return (dlp / 343.3);
+ return dlp / 343.3;
}
// Calculate the effective head-related time delays for each minimum-phase
// HRIR.
-static void CalculateHrtds (const HeadModelT model, const double radius, HrirDataT *hData)
+static void CalculateHrtds(const HeadModelT model, const double radius, HrirDataT *hData)
{
- double minHrtd, maxHrtd;
- uint e, a, j;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ double minHrtd = INFINITY, maxHrtd = -INFINITY;
+ uint ti, fi, ei, ai;
double t;
- minHrtd = 1000.0;
- maxHrtd = -1000.0;
- for(e = 0;e < hData->mEvCount;e++)
+ if(model == HM_DATASET)
{
- for(a = 0;a < hData->mAzCount[e];a++)
+ for(ti = 0;ti < channels;ti++)
{
- j = hData->mEvOffset[e] + a;
- if(model == HM_DATASET)
- t = hData->mHrtds[j] * radius / hData->mRadius;
- else
- t = CalcLTD((-90.0 + (e * 180.0 / (hData->mEvCount - 1))) * M_PI / 180.0,
- (a * 360.0 / hData->mAzCount [e]) * M_PI / 180.0,
- radius, hData->mDistance);
- hData->mHrtds[j] = t;
- maxHrtd = fmax(t, maxHrtd);
- minHrtd = fmin(t, minHrtd);
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ t = azd->mDelays[ti] * radius / hData->mRadius;
+ azd->mDelays[ti] = t;
+ maxHrtd = fmax(t, maxHrtd);
+ minHrtd = fmin(t, minHrtd);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ for(ti = 0;ti < channels;ti++)
+ {
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ HrirEvT *evd = &hData->mFds[fi].mEvs[ei];
+
+ for(ai = 0;ai < evd->mAzCount;ai++)
+ {
+ HrirAzT *azd = &evd->mAzs[ai];
+
+ t = CalcLTD(evd->mElevation, azd->mAzimuth, radius, hData->mFds[fi].mDistance);
+ azd->mDelays[ti] = t;
+ maxHrtd = fmax(t, maxHrtd);
+ minHrtd = fmin(t, minHrtd);
+ }
+ }
+ }
+ }
+ }
+ for(ti = 0;ti < channels;ti++)
+ {
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mDelays[ti] -= minHrtd;
+ }
+ }
+ }
+}
+
+// Clear the initial HRIR data state.
+static void ResetHrirData(HrirDataT *hData)
+{
+ hData->mIrRate = 0;
+ hData->mSampleType = ST_S24;
+ hData->mChannelType = CT_NONE;
+ hData->mIrPoints = 0;
+ hData->mFftSize = 0;
+ hData->mIrSize = 0;
+ hData->mRadius = 0.0;
+ hData->mIrCount = 0;
+ hData->mFdCount = 0;
+ hData->mFds = NULL;
+}
+
+// Allocate and configure dynamic HRIR structures.
+static int PrepareHrirData(const uint fdCount, const double distances[MAX_FD_COUNT], const uint evCounts[MAX_FD_COUNT], const uint azCounts[MAX_FD_COUNT * MAX_EV_COUNT], HrirDataT *hData)
+{
+ uint evTotal = 0, azTotal = 0, fi, ei, ai;
+
+ for(fi = 0;fi < fdCount;fi++)
+ {
+ evTotal += evCounts[fi];
+ for(ei = 0;ei < evCounts[fi];ei++)
+ azTotal += azCounts[(fi * MAX_EV_COUNT) + ei];
+ }
+ hData->mFds = calloc(fdCount, sizeof(*hData->mFds));
+ if(hData->mFds == NULL)
+ return 0;
+ hData->mFds[0].mEvs = calloc(evTotal, sizeof(*hData->mFds[0].mEvs));
+ if(hData->mFds[0].mEvs == NULL)
+ return 0;
+ hData->mFds[0].mEvs[0].mAzs = calloc(azTotal, sizeof(*hData->mFds[0].mEvs[0].mAzs));
+ if(hData->mFds[0].mEvs[0].mAzs == NULL)
+ return 0;
+ hData->mIrCount = azTotal;
+ hData->mFdCount = fdCount;
+ evTotal = 0;
+ azTotal = 0;
+ for(fi = 0;fi < fdCount;fi++)
+ {
+ hData->mFds[fi].mDistance = distances[fi];
+ hData->mFds[fi].mEvCount = evCounts[fi];
+ hData->mFds[fi].mEvStart = 0;
+ hData->mFds[fi].mEvs = &hData->mFds[0].mEvs[evTotal];
+ evTotal += evCounts[fi];
+ for(ei = 0;ei < evCounts[fi];ei++)
+ {
+ uint azCount = azCounts[(fi * MAX_EV_COUNT) + ei];
+
+ hData->mFds[fi].mIrCount += azCount;
+ hData->mFds[fi].mEvs[ei].mElevation = -M_PI / 2.0 + M_PI * ei / (evCounts[fi] - 1);
+ hData->mFds[fi].mEvs[ei].mIrCount += azCount;
+ hData->mFds[fi].mEvs[ei].mAzCount = azCount;
+ hData->mFds[fi].mEvs[ei].mAzs = &hData->mFds[0].mEvs[0].mAzs[azTotal];
+ for(ai = 0;ai < azCount;ai++)
+ {
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mAzimuth = 2.0 * M_PI * ai / azCount;
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mIndex = azTotal + ai;
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mDelays[0] = 0.0;
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mDelays[1] = 0.0;
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mIrs[0] = NULL;
+ hData->mFds[fi].mEvs[ei].mAzs[ai].mIrs[1] = NULL;
+ }
+ azTotal += azCount;
}
}
- maxHrtd -= minHrtd;
- for(j = 0;j < hData->mIrCount;j++)
- hData->mHrtds[j] -= minHrtd;
- hData->mMaxHrtd = maxHrtd;
+ return 1;
}
+// Clean up HRIR data.
+static void FreeHrirData(HrirDataT *hData)
+{
+ if(hData->mFds != NULL)
+ {
+ if(hData->mFds[0].mEvs != NULL)
+ {
+ if(hData->mFds[0].mEvs[0].mAzs)
+ {
+ if(hData->mFds[0].mEvs[0].mAzs[0].mIrs[0] != NULL)
+ free(hData->mFds[0].mEvs[0].mAzs[0].mIrs[0]);
+ free(hData->mFds[0].mEvs[0].mAzs);
+ }
+ free(hData->mFds[0].mEvs);
+ }
+ free(hData->mFds);
+ hData->mFds = NULL;
+ }
+}
+
+// Match the channel type from a given identifier.
+static ChannelTypeT MatchChannelType(const char *ident)
+{
+ if(strcasecmp(ident, "mono") == 0)
+ return CT_MONO;
+ if(strcasecmp(ident, "stereo") == 0)
+ return CT_STEREO;
+ return CT_NONE;
+}
// Process the data set definition to read and validate the data set metrics.
static int ProcessMetrics(TokenReaderT *tr, const uint fftSize, const uint truncSize, HrirDataT *hData)
{
- int hasRate = 0, hasPoints = 0, hasAzimuths = 0;
- int hasRadius = 0, hasDistance = 0;
+ int hasRate = 0, hasType = 0, hasPoints = 0, hasRadius = 0;
+ int hasDistance = 0, hasAzimuths = 0;
char ident[MAX_IDENT_LEN+1];
uint line, col;
double fpVal;
uint points;
int intVal;
+ double distances[MAX_FD_COUNT];
+ uint fdCount = 0;
+ uint evCounts[MAX_FD_COUNT];
+ uint *azCounts = calloc(MAX_FD_COUNT * MAX_EV_COUNT, sizeof(*azCounts));
- while(!(hasRate && hasPoints && hasAzimuths && hasRadius && hasDistance))
+ if(azCounts == NULL)
{
- TrIndication(tr, & line, & col);
+ fprintf(stderr, "Error: Out of memory.\n");
+ exit(-1);
+ }
+ TrIndication(tr, &line, &col);
+ while(TrIsIdent(tr))
+ {
+ TrIndication(tr, &line, &col);
if(!TrReadIdent(tr, MAX_IDENT_LEN, ident))
- return 0;
+ goto error;
if(strcasecmp(ident, "rate") == 0)
{
if(hasRate)
{
TrErrorAt(tr, line, col, "Redefinition of 'rate'.\n");
- return 0;
+ goto error;
}
if(!TrReadOperator(tr, "="))
- return 0;
+ goto error;
if(!TrReadInt(tr, MIN_RATE, MAX_RATE, &intVal))
- return 0;
+ goto error;
hData->mIrRate = (uint)intVal;
hasRate = 1;
}
+ else if(strcasecmp(ident, "type") == 0)
+ {
+ char type[MAX_IDENT_LEN+1];
+
+ if(hasType)
+ {
+ TrErrorAt(tr, line, col, "Redefinition of 'type'.\n");
+ goto error;
+ }
+ if(!TrReadOperator(tr, "="))
+ goto error;
+
+ if(!TrReadIdent(tr, MAX_IDENT_LEN, type))
+ goto error;
+ hData->mChannelType = MatchChannelType(type);
+ if(hData->mChannelType == CT_NONE)
+ {
+ TrErrorAt(tr, line, col, "Expected a channel type.\n");
+ goto error;
+ }
+ hasType = 1;
+ }
else if(strcasecmp(ident, "points") == 0)
{
- if (hasPoints) {
+ if(hasPoints)
+ {
TrErrorAt(tr, line, col, "Redefinition of 'points'.\n");
- return 0;
+ goto error;
}
if(!TrReadOperator(tr, "="))
- return 0;
+ goto error;
TrIndication(tr, &line, &col);
if(!TrReadInt(tr, MIN_POINTS, MAX_POINTS, &intVal))
- return 0;
+ goto error;
points = (uint)intVal;
if(fftSize > 0 && points > fftSize)
{
TrErrorAt(tr, line, col, "Value exceeds the overridden FFT size.\n");
- return 0;
+ goto error;
}
if(points < truncSize)
{
TrErrorAt(tr, line, col, "Value is below the truncation size.\n");
- return 0;
+ goto error;
}
hData->mIrPoints = points;
if(fftSize <= 0)
@@ -2429,90 +2738,178 @@ static int ProcessMetrics(TokenReaderT *tr, const uint fftSize, const uint trunc
}
hasPoints = 1;
}
- else if(strcasecmp(ident, "azimuths") == 0)
+ else if(strcasecmp(ident, "radius") == 0)
{
- if(hasAzimuths)
+ if(hasRadius)
{
- TrErrorAt(tr, line, col, "Redefinition of 'azimuths'.\n");
- return 0;
+ TrErrorAt(tr, line, col, "Redefinition of 'radius'.\n");
+ goto error;
}
if(!TrReadOperator(tr, "="))
- return 0;
- hData->mIrCount = 0;
- hData->mEvCount = 0;
- hData->mEvOffset[0] = 0;
+ goto error;
+ if(!TrReadFloat(tr, MIN_RADIUS, MAX_RADIUS, &fpVal))
+ goto error;
+ hData->mRadius = fpVal;
+ hasRadius = 1;
+ }
+ else if(strcasecmp(ident, "distance") == 0)
+ {
+ uint count = 0;
+
+ if(hasDistance)
+ {
+ TrErrorAt(tr, line, col, "Redefinition of 'distance'.\n");
+ goto error;
+ }
+ if(!TrReadOperator(tr, "="))
+ goto error;
+
for(;;)
{
- if(!TrReadInt(tr, MIN_AZ_COUNT, MAX_AZ_COUNT, &intVal))
- return 0;
- hData->mAzCount[hData->mEvCount] = (uint)intVal;
- hData->mIrCount += (uint)intVal;
- hData->mEvCount ++;
+ if(!TrReadFloat(tr, MIN_DISTANCE, MAX_DISTANCE, &fpVal))
+ goto error;
+ if(count > 0 && fpVal <= distances[count - 1])
+ {
+ TrError(tr, "Distances are not ascending.\n");
+ goto error;
+ }
+ distances[count++] = fpVal;
if(!TrIsOperator(tr, ","))
break;
- if(hData->mEvCount >= MAX_EV_COUNT)
+ if(count >= MAX_FD_COUNT)
{
- TrError(tr, "Exceeded the maximum of %d elevations.\n", MAX_EV_COUNT);
- return 0;
+ TrError(tr, "Exceeded the maximum of %d fields.\n", MAX_FD_COUNT);
+ goto error;
}
- hData->mEvOffset[hData->mEvCount] = hData->mEvOffset[hData->mEvCount - 1] + ((uint)intVal);
TrReadOperator(tr, ",");
}
- if(hData->mEvCount < MIN_EV_COUNT)
+ if(fdCount != 0 && count != fdCount)
{
- TrErrorAt(tr, line, col, "Did not reach the minimum of %d azimuth counts.\n", MIN_EV_COUNT);
- return 0;
+ TrError(tr, "Did not match the specified number of %d fields.\n", fdCount);
+ goto error;
}
- hasAzimuths = 1;
+ fdCount = count;
+ hasDistance = 1;
}
- else if(strcasecmp(ident, "radius") == 0)
+ else if(strcasecmp(ident, "azimuths") == 0)
{
- if(hasRadius)
+ uint count = 0;
+
+ if(hasAzimuths)
{
- TrErrorAt(tr, line, col, "Redefinition of 'radius'.\n");
- return 0;
+ TrErrorAt(tr, line, col, "Redefinition of 'azimuths'.\n");
+ goto error;
}
if(!TrReadOperator(tr, "="))
- return 0;
- if(!TrReadFloat(tr, MIN_RADIUS, MAX_RADIUS, &fpVal))
- return 0;
- hData->mRadius = fpVal;
- hasRadius = 1;
- }
- else if(strcasecmp(ident, "distance") == 0)
- {
- if(hasDistance)
+ goto error;
+
+ evCounts[0] = 0;
+ for(;;)
{
- TrErrorAt(tr, line, col, "Redefinition of 'distance'.\n");
- return 0;
+ if(!TrReadInt(tr, MIN_AZ_COUNT, MAX_AZ_COUNT, &intVal))
+ goto error;
+ azCounts[(count * MAX_EV_COUNT) + evCounts[count]++] = (uint)intVal;
+ if(TrIsOperator(tr, ","))
+ {
+ if(evCounts[count] >= MAX_EV_COUNT)
+ {
+ TrError(tr, "Exceeded the maximum of %d elevations.\n", MAX_EV_COUNT);
+ goto error;
+ }
+ TrReadOperator(tr, ",");
+ }
+ else
+ {
+ if(evCounts[count] < MIN_EV_COUNT)
+ {
+ TrErrorAt(tr, line, col, "Did not reach the minimum of %d azimuth counts.\n", MIN_EV_COUNT);
+ goto error;
+ }
+ if(azCounts[count * MAX_EV_COUNT] != 1 || azCounts[(count * MAX_EV_COUNT) + evCounts[count] - 1] != 1)
+ {
+ TrError(tr, "Poles are not singular for field %d.\n", count - 1);
+ goto error;
+ }
+ count++;
+ if(TrIsOperator(tr, ";"))
+ {
+ if(count >= MAX_FD_COUNT)
+ {
+ TrError(tr, "Exceeded the maximum number of %d fields.\n", MAX_FD_COUNT);
+ goto error;
+ }
+ evCounts[count] = 0;
+ TrReadOperator(tr, ";");
+ }
+ else
+ {
+ break;
+ }
+ }
}
- if(!TrReadOperator(tr, "="))
- return 0;
- if(!TrReadFloat(tr, MIN_DISTANCE, MAX_DISTANCE, & fpVal))
- return 0;
- hData->mDistance = fpVal;
- hasDistance = 1;
+ if(fdCount != 0 && count != fdCount)
+ {
+ TrError(tr, "Did not match the specified number of %d fields.\n", fdCount);
+ goto error;
+ }
+ fdCount = count;
+ hasAzimuths = 1;
}
else
{
TrErrorAt(tr, line, col, "Expected a metric name.\n");
- return 0;
+ goto error;
}
- TrSkipWhitespace (tr);
+ TrSkipWhitespace(tr);
+ }
+ if(!(hasRate && hasPoints && hasRadius && hasDistance && hasAzimuths))
+ {
+ TrErrorAt(tr, line, col, "Expected a metric name.\n");
+ goto error;
}
+ if(distances[0] < hData->mRadius)
+ {
+ TrError(tr, "Distance cannot start below head radius.\n");
+ goto error;
+ }
+ if(hData->mChannelType == CT_NONE)
+ hData->mChannelType = CT_MONO;
+ if(!PrepareHrirData(fdCount, distances, evCounts, azCounts, hData))
+ {
+ fprintf(stderr, "Error: Out of memory.\n");
+ exit(-1);
+ }
+ free(azCounts);
return 1;
+
+error:
+ free(azCounts);
+ return 0;
}
-// Parse an index pair from the data set definition.
-static int ReadIndexPair(TokenReaderT *tr, const HrirDataT *hData, uint *ei, uint *ai)
+// Parse an index triplet from the data set definition.
+static int ReadIndexTriplet(TokenReaderT *tr, const HrirDataT *hData, uint *fi, uint *ei, uint *ai)
{
int intVal;
- if(!TrReadInt(tr, 0, (int)hData->mEvCount, &intVal))
+
+ if(hData->mFdCount > 1)
+ {
+ if(!TrReadInt(tr, 0, (int)hData->mFdCount - 1, &intVal))
+ return 0;
+ *fi = (uint)intVal;
+ if(!TrReadOperator(tr, ","))
+ return 0;
+ }
+ else
+ {
+ *fi = 0;
+ }
+ if(!TrReadInt(tr, 0, (int)hData->mFds[*fi].mEvCount - 1, &intVal))
return 0;
*ei = (uint)intVal;
if(!TrReadOperator(tr, ","))
return 0;
- if(!TrReadInt(tr, 0, (int)hData->mAzCount[*ei], &intVal))
+ if(!TrReadInt(tr, 0, (int)hData->mFds[*fi].mEvs[*ei].mAzCount - 1, &intVal))
return 0;
*ai = (uint)intVal;
return 1;
@@ -2598,7 +2995,7 @@ static int ReadSourceRef(TokenReaderT *tr, SourceRefT *src)
TrIndication(tr, &line, &col);
if(!TrReadInt(tr, -2147483647-1, 2147483647, &intVal))
return 0;
- if(abs(intVal) < MIN_BIN_BITS || ((uint)abs(intVal)) > (8*src->mSize))
+ if(abs(intVal) < MIN_BIN_BITS || (uint)abs(intVal) > (8*src->mSize))
{
TrErrorAt(tr, line, col, "Expected a value of (+/-) %d to %d.\n", MIN_BIN_BITS, 8*src->mSize);
return 0;
@@ -2640,7 +3037,7 @@ static int ReadSourceRef(TokenReaderT *tr, SourceRefT *src)
else
{
TrReadOperator(tr, ";");
- if(!TrReadInt (tr, 0, 0x7FFFFFFF, &intVal))
+ if(!TrReadInt(tr, 0, 0x7FFFFFFF, &intVal))
return 0;
src->mSkip = (uint)intVal;
}
@@ -2663,32 +3060,41 @@ static int ReadSourceRef(TokenReaderT *tr, SourceRefT *src)
return 1;
}
+// Match the target ear (index) from a given identifier.
+static int MatchTargetEar(const char *ident)
+{
+ if(strcasecmp(ident, "left") == 0)
+ return 0;
+ if(strcasecmp(ident, "right") == 0)
+ return 1;
+ return -1;
+}
+
// Process the list of sources in the data set definition.
static int ProcessSources(const HeadModelT model, TokenReaderT *tr, HrirDataT *hData)
{
- uint *setCount, *setFlag;
- uint line, col, ei, ai;
- SourceRefT src;
- double factor;
- double *hrir;
+ uint channels = (hData->mChannelType == CT_STEREO) ? 2 : 1;
+ double *hrirs = CreateDoubles(channels * hData->mIrCount * hData->mIrSize);
+ double *hrir = CreateDoubles(hData->mIrPoints);
+ uint line, col, fi, ei, ai, ti;
int count;
printf("Loading sources...");
fflush(stdout);
-
count = 0;
- setCount = (uint*)calloc(hData->mEvCount, sizeof(uint));
- setFlag = (uint*)calloc(hData->mIrCount, sizeof(uint));
- hrir = CreateArray(hData->mIrPoints);
while(TrIsOperator(tr, "["))
{
- TrIndication(tr, & line, & col);
+ double factor[2] = { 1.0, 1.0 };
+
+ TrIndication(tr, &line, &col);
TrReadOperator(tr, "[");
- if(!ReadIndexPair(tr, hData, &ei, &ai))
+ if(!ReadIndexTriplet(tr, hData, &fi, &ei, &ai))
goto error;
if(!TrReadOperator(tr, "]"))
goto error;
- if(setFlag[hData->mEvOffset[ei] + ai])
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ if(azd->mIrs[0] != NULL)
{
TrErrorAt(tr, line, col, "Redefinition of source.\n");
goto error;
@@ -2696,9 +3102,11 @@ static int ProcessSources(const HeadModelT model, TokenReaderT *tr, HrirDataT *h
if(!TrReadOperator(tr, "="))
goto error;
- factor = 1.0;
for(;;)
{
+ SourceRefT src;
+ uint ti = 0;
+
if(!ReadSourceRef(tr, &src))
goto error;
@@ -2712,48 +3120,101 @@ static int ProcessSources(const HeadModelT model, TokenReaderT *tr, HrirDataT *h
if(!LoadSource(&src, hData->mIrRate, hData->mIrPoints, hrir))
goto error;
+ if(hData->mChannelType == CT_STEREO)
+ {
+ char ident[MAX_IDENT_LEN+1];
+
+ if(!TrReadIdent(tr, MAX_IDENT_LEN, ident))
+ goto error;
+ ti = MatchTargetEar(ident);
+ if((int)ti < 0)
+ {
+ TrErrorAt(tr, line, col, "Expected a target ear.\n");
+ goto error;
+ }
+ }
+ azd->mIrs[ti] = &hrirs[hData->mIrSize * (ti * hData->mIrCount + azd->mIndex)];
if(model == HM_DATASET)
- AverageHrirOnset(hrir, 1.0 / factor, ei, ai, hData);
- AverageHrirMagnitude(hrir, 1.0 / factor, ei, ai, hData);
- factor += 1.0;
+ azd->mDelays[ti] = AverageHrirOnset(hData->mIrRate, hData->mIrPoints, hrir, 1.0 / factor[ti], azd->mDelays[ti]);
+ AverageHrirMagnitude(hData->mIrPoints, hData->mFftSize, hrir, 1.0 / factor[ti], azd->mIrs[ti]);
+ factor[ti] += 1.0;
if(!TrIsOperator(tr, "+"))
break;
TrReadOperator(tr, "+");
}
- setFlag[hData->mEvOffset[ei] + ai] = 1;
- setCount[ei]++;
+ if(hData->mChannelType == CT_STEREO)
+ {
+ if(azd->mIrs[0] == NULL)
+ {
+ TrErrorAt(tr, line, col, "Missing left ear source reference(s).\n");
+ goto error;
+ }
+ else if(azd->mIrs[1] == NULL)
+ {
+ TrErrorAt(tr, line, col, "Missing right ear source reference(s).\n");
+ goto error;
+ }
+ }
}
printf("\n");
+ for(fi = 0;fi < hData->mFdCount;fi++)
+ {
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
- ei = 0;
- while(ei < hData->mEvCount && setCount[ei] < 1)
- ei++;
- if(ei < hData->mEvCount)
+ if(azd->mIrs[0] != NULL)
+ break;
+ }
+ if(ai < hData->mFds[fi].mEvs[ei].mAzCount)
+ break;
+ }
+ if(ei >= hData->mFds[fi].mEvCount)
+ {
+ TrError(tr, "Missing source references [ %d, *, * ].\n", fi);
+ goto error;
+ }
+ hData->mFds[fi].mEvStart = ei;
+ for(;ei < hData->mFds[fi].mEvCount;ei++)
+ {
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ if(azd->mIrs[0] == NULL)
+ {
+ TrError(tr, "Missing source reference [ %d, %d, %d ].\n", fi, ei, ai);
+ goto error;
+ }
+ }
+ }
+ }
+ for(ti = 0;ti < channels;ti++)
{
- hData->mEvStart = ei;
- while(ei < hData->mEvCount && setCount[ei] == hData->mAzCount[ei])
- ei++;
- if(ei >= hData->mEvCount)
+ for(fi = 0;fi < hData->mFdCount;fi++)
{
- if(!TrLoad(tr))
+ for(ei = 0;ei < hData->mFds[fi].mEvCount;ei++)
{
- DestroyArray(hrir);
- free(setFlag);
- free(setCount);
- return 1;
+ for(ai = 0;ai < hData->mFds[fi].mEvs[ei].mAzCount;ai++)
+ {
+ HrirAzT *azd = &hData->mFds[fi].mEvs[ei].mAzs[ai];
+
+ azd->mIrs[ti] = &hrirs[hData->mIrSize * (ti * hData->mIrCount + azd->mIndex)];
+ }
}
- TrError(tr, "Errant data at end of source list.\n");
}
- else
- TrError(tr, "Missing sources for elevation index %d.\n", ei);
}
- else
- TrError(tr, "Missing source references.\n");
+ if(!TrLoad(tr))
+ {
+ free(hrir);
+ return 1;
+ }
+ TrError(tr, "Errant data at end of source list.\n");
error:
- DestroyArray(hrir);
- free(setFlag);
- free(setCount);
+ free(hrir);
return 0;
}
@@ -2761,7 +3222,7 @@ error:
* resulting data set as desired. If the input name is NULL it will read
* from standard input.
*/
-static int ProcessDefinition(const char *inName, const uint outRate, const uint fftSize, const int equalize, const int surface, const double limit, const uint truncSize, const HeadModelT model, const double radius, const int experimental, const char *outName)
+static int ProcessDefinition(const char *inName, const uint outRate, const uint fftSize, const int equalize, const int surface, const double limit, const uint truncSize, const HeadModelT model, const double radius, const char *outName)
{
char rateStr[8+1], expName[MAX_PATH_LEN];
TokenReaderT tr;
@@ -2769,16 +3230,7 @@ static int ProcessDefinition(const char *inName, const uint outRate, const uint
FILE *fp;
int ret;
- hData.mIrRate = 0;
- hData.mSampleType = ST_S24;
- hData.mChannelType = CT_LEFTONLY;
- hData.mIrPoints = 0;
- hData.mFftSize = 0;
- hData.mIrSize = 0;
- hData.mIrCount = 0;
- hData.mEvCount = 0;
- hData.mRadius = 0;
- hData.mDistance = 0;
+ ResetHrirData(&hData);
fprintf(stdout, "Reading HRIR definition from %s...\n", inName?inName:"stdin");
if(inName != NULL)
{
@@ -2801,12 +3253,9 @@ static int ProcessDefinition(const char *inName, const uint outRate, const uint
fclose(fp);
return 0;
}
- hData.mHrirs = CreateArray(hData.mIrCount * hData.mIrSize);
- hData.mHrtds = CreateArray(hData.mIrCount);
if(!ProcessSources(model, &tr, &hData))
{
- DestroyArray(hData.mHrtds);
- DestroyArray(hData.mHrirs);
+ FreeHrirData(&hData);
if(inName != NULL)
fclose(fp);
return 0;
@@ -2815,12 +3264,15 @@ static int ProcessDefinition(const char *inName, const uint outRate, const uint
fclose(fp);
if(equalize)
{
- double *dfa = CreateArray(1 + (hData.mFftSize/2));
+ uint c = (hData.mChannelType == CT_STEREO) ? 2 : 1;
+ uint m = 1 + hData.mFftSize / 2;
+ double *dfa = CreateDoubles(c * m);
+
fprintf(stdout, "Calculating diffuse-field average...\n");
- CalculateDiffuseFieldAverage(&hData, surface, limit, dfa);
+ CalculateDiffuseFieldAverage(&hData, c, m, surface, limit, dfa);
fprintf(stdout, "Performing diffuse-field equalization...\n");
- DiffuseFieldEqualize(dfa, &hData);
- DestroyArray(dfa);
+ DiffuseFieldEqualize(c, m, dfa, &hData);
+ free(dfa);
}
fprintf(stdout, "Performing minimum phase reconstruction...\n");
ReconstructHrirs(&hData);
@@ -2842,16 +3294,15 @@ static int ProcessDefinition(const char *inName, const uint outRate, const uint
snprintf(rateStr, 8, "%u", hData.mIrRate);
StrSubst(outName, "%r", rateStr, MAX_PATH_LEN, expName);
fprintf(stdout, "Creating MHR data set %s...\n", expName);
- ret = StoreMhr(&hData, experimental, expName);
+ ret = StoreMhr(&hData, expName);
- DestroyArray(hData.mHrtds);
- DestroyArray(hData.mHrirs);
+ FreeHrirData(&hData);
return ret;
}
static void PrintHelp(const char *argv0, FILE *ofile)
{
- fprintf(ofile, "Usage: %s <command> [<option>...]\n\n", argv0);
+ fprintf(ofile, "Usage: %s [<option>...]\n\n", argv0);
fprintf(ofile, "Options:\n");
fprintf(ofile, " -m Ignored for compatibility.\n");
fprintf(ofile, " -r <rate> Change the data set sample rate to the specified value and\n");
@@ -2867,8 +3318,8 @@ static void PrintHelp(const char *argv0, FILE *ofile)
fprintf(ofile, " sphere} values (default: %s).\n", ((DEFAULT_HEAD_MODEL == HM_DATASET) ? "dataset" : "sphere"));
fprintf(ofile, " -c <size> Use a customized head radius measured ear-to-ear in meters.\n");
fprintf(ofile, " -i <filename> Specify an HRIR definition file to use (defaults to stdin).\n");
- fprintf(ofile, " -o <filename> Specify an output file. Overrides command-selected default.\n");
- fprintf(ofile, " Use of '%%r' will be substituted with the data set sample rate.\n");
+ fprintf(ofile, " -o <filename> Specify an output file. Use of '%%r' will be substituted with\n");
+ fprintf(ofile, " the data set sample rate.\n");
}
// Standard command line dispatch.
@@ -2877,7 +3328,6 @@ int main(int argc, char *argv[])
const char *inName = NULL, *outName = NULL;
uint outRate, fftSize;
int equalize, surface;
- int experimental;
char *end = NULL;
HeadModelT model;
uint truncSize;
@@ -2903,9 +3353,8 @@ int main(int argc, char *argv[])
truncSize = DEFAULT_TRUNCSIZE;
model = DEFAULT_HEAD_MODEL;
radius = DEFAULT_CUSTOM_RADIUS;
- experimental = 0;
- while((opt=getopt(argc, argv, "mr:f:e:s:l:w:d:c:e:i:o:xh")) != -1)
+ while((opt=getopt(argc, argv, "mr:f:e:s:l:w:d:c:e:i:o:h")) != -1)
{
switch(opt)
{
@@ -3007,10 +3456,6 @@ int main(int argc, char *argv[])
outName = optarg;
break;
- case 'x':
- experimental = 1;
- break;
-
case 'h':
PrintHelp(argv[0], stdout);
exit(EXIT_SUCCESS);
@@ -3022,7 +3467,7 @@ int main(int argc, char *argv[])
}
if(!ProcessDefinition(inName, outRate, fftSize, equalize, surface, limit,
- truncSize, model, radius, experimental, outName))
+ truncSize, model, radius, outName))
return -1;
fprintf(stdout, "Operation completed.\n");