mirror of
https://github.com/love2d/megasource.git
synced 2026-08-17 11:11:35 +02:00
Added OpenAL-Soft 1.16.0.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,421 @@
|
||||
# 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.
|
||||
#
|
||||
# The data sets are available free of charge from:
|
||||
#
|
||||
# http://recherche.ircam.fr/equipes/salles/listen/index.html
|
||||
#
|
||||
# Contact for the Listen HRTF Database:
|
||||
#
|
||||
# Olivier Warusfel <olivier.warusfel@ircam.fr>,
|
||||
# Room Acoustics Team, IRCAM
|
||||
# 1, place Igor Stravinsky
|
||||
# 75004 PARIS, France
|
||||
|
||||
rate = 44100
|
||||
|
||||
# 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).
|
||||
distance = 1.95
|
||||
|
||||
# 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.
|
||||
|
||||
# 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"
|
||||
+ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
[ 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"
|
||||
|
||||
@@ -0,0 +1,823 @@
|
||||
# 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 the full set
|
||||
# of KEMAR HRIRs provided by Bill Gardner <billg@media.mit.edu> and Keith
|
||||
# Martin <kdm@media.mit.edu> of MIT Media Laboratory.
|
||||
#
|
||||
# The data (full.zip) is available from:
|
||||
#
|
||||
# http://sound.media.mit.edu/resources/KEMAR.html
|
||||
#
|
||||
# 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
|
||||
# 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.
|
||||
|
||||
# Sampling rate of the HRIR data (in hertz).
|
||||
rate = 44100
|
||||
|
||||
# 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
|
||||
# used as the default radius when the spherical model is used to calculate an
|
||||
# approximate set of delays. This should match the data set as close as
|
||||
# possible for accurate rescaling when using the measured delays (the
|
||||
# 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.
|
||||
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).
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Source specification is of the form (~BNF):
|
||||
#
|
||||
# source = '[' ev_index ',' az_index ']' '=' source_ref [ '+' source_ref ]*
|
||||
#
|
||||
# ev_index = unsigned_integer
|
||||
# az_index = unsigned_integer
|
||||
# source_ref = ref_spec ':' filename
|
||||
#
|
||||
# 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 ] )
|
||||
# filename = double_quoted_string
|
||||
#
|
||||
# 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
|
||||
#
|
||||
# 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.
|
||||
|
||||
[ 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"
|
||||
[ 5, 3 ] = wave (0) : "./MITfull/elev-40/L-40e019a.wav"
|
||||
[ 5, 4 ] = wave (0) : "./MITfull/elev-40/L-40e026a.wav"
|
||||
[ 5, 5 ] = wave (0) : "./MITfull/elev-40/L-40e032a.wav"
|
||||
[ 5, 6 ] = wave (0) : "./MITfull/elev-40/L-40e039a.wav"
|
||||
[ 5, 7 ] = wave (0) : "./MITfull/elev-40/L-40e045a.wav"
|
||||
[ 5, 8 ] = wave (0) : "./MITfull/elev-40/L-40e051a.wav"
|
||||
[ 5, 9 ] = wave (0) : "./MITfull/elev-40/L-40e058a.wav"
|
||||
[ 5, 10 ] = wave (0) : "./MITfull/elev-40/L-40e064a.wav"
|
||||
[ 5, 11 ] = wave (0) : "./MITfull/elev-40/L-40e071a.wav"
|
||||
[ 5, 12 ] = wave (0) : "./MITfull/elev-40/L-40e077a.wav"
|
||||
[ 5, 13 ] = wave (0) : "./MITfull/elev-40/L-40e084a.wav"
|
||||
[ 5, 14 ] = wave (0) : "./MITfull/elev-40/L-40e090a.wav"
|
||||
[ 5, 15 ] = wave (0) : "./MITfull/elev-40/L-40e096a.wav"
|
||||
[ 5, 16 ] = wave (0) : "./MITfull/elev-40/L-40e103a.wav"
|
||||
[ 5, 17 ] = wave (0) : "./MITfull/elev-40/L-40e109a.wav"
|
||||
[ 5, 18 ] = wave (0) : "./MITfull/elev-40/L-40e116a.wav"
|
||||
[ 5, 19 ] = wave (0) : "./MITfull/elev-40/L-40e122a.wav"
|
||||
[ 5, 20 ] = wave (0) : "./MITfull/elev-40/L-40e129a.wav"
|
||||
[ 5, 21 ] = wave (0) : "./MITfull/elev-40/L-40e135a.wav"
|
||||
[ 5, 22 ] = wave (0) : "./MITfull/elev-40/L-40e141a.wav"
|
||||
[ 5, 23 ] = wave (0) : "./MITfull/elev-40/L-40e148a.wav"
|
||||
[ 5, 24 ] = wave (0) : "./MITfull/elev-40/L-40e154a.wav"
|
||||
[ 5, 25 ] = wave (0) : "./MITfull/elev-40/L-40e161a.wav"
|
||||
[ 5, 26 ] = wave (0) : "./MITfull/elev-40/L-40e167a.wav"
|
||||
[ 5, 27 ] = wave (0) : "./MITfull/elev-40/L-40e174a.wav"
|
||||
[ 5, 28 ] = wave (0) : "./MITfull/elev-40/L-40e180a.wav"
|
||||
[ 5, 29 ] = wave (0) : "./MITfull/elev-40/L-40e186a.wav"
|
||||
[ 5, 30 ] = wave (0) : "./MITfull/elev-40/L-40e193a.wav"
|
||||
[ 5, 31 ] = wave (0) : "./MITfull/elev-40/L-40e199a.wav"
|
||||
[ 5, 32 ] = wave (0) : "./MITfull/elev-40/L-40e206a.wav"
|
||||
[ 5, 33 ] = wave (0) : "./MITfull/elev-40/L-40e212a.wav"
|
||||
[ 5, 34 ] = wave (0) : "./MITfull/elev-40/L-40e219a.wav"
|
||||
[ 5, 35 ] = wave (0) : "./MITfull/elev-40/L-40e225a.wav"
|
||||
[ 5, 36 ] = wave (0) : "./MITfull/elev-40/L-40e231a.wav"
|
||||
[ 5, 37 ] = wave (0) : "./MITfull/elev-40/L-40e238a.wav"
|
||||
[ 5, 38 ] = wave (0) : "./MITfull/elev-40/L-40e244a.wav"
|
||||
[ 5, 39 ] = wave (0) : "./MITfull/elev-40/L-40e251a.wav"
|
||||
[ 5, 40 ] = wave (0) : "./MITfull/elev-40/L-40e257a.wav"
|
||||
[ 5, 41 ] = wave (0) : "./MITfull/elev-40/L-40e264a.wav"
|
||||
[ 5, 42 ] = wave (0) : "./MITfull/elev-40/L-40e270a.wav"
|
||||
[ 5, 43 ] = wave (0) : "./MITfull/elev-40/L-40e276a.wav"
|
||||
[ 5, 44 ] = wave (0) : "./MITfull/elev-40/L-40e283a.wav"
|
||||
[ 5, 45 ] = wave (0) : "./MITfull/elev-40/L-40e289a.wav"
|
||||
[ 5, 46 ] = wave (0) : "./MITfull/elev-40/L-40e296a.wav"
|
||||
[ 5, 47 ] = wave (0) : "./MITfull/elev-40/L-40e302a.wav"
|
||||
[ 5, 48 ] = wave (0) : "./MITfull/elev-40/L-40e309a.wav"
|
||||
[ 5, 49 ] = wave (0) : "./MITfull/elev-40/L-40e315a.wav"
|
||||
[ 5, 50 ] = wave (0) : "./MITfull/elev-40/L-40e321a.wav"
|
||||
[ 5, 51 ] = wave (0) : "./MITfull/elev-40/L-40e328a.wav"
|
||||
[ 5, 52 ] = wave (0) : "./MITfull/elev-40/L-40e334a.wav"
|
||||
[ 5, 53 ] = wave (0) : "./MITfull/elev-40/L-40e341a.wav"
|
||||
[ 5, 54 ] = wave (0) : "./MITfull/elev-40/L-40e347a.wav"
|
||||
[ 5, 55 ] = wave (0) : "./MITfull/elev-40/L-40e354a.wav"
|
||||
|
||||
[ 6, 0 ] = wave (0) : "./MITfull/elev-30/L-30e000a.wav"
|
||||
[ 6, 1 ] = wave (0) : "./MITfull/elev-30/L-30e006a.wav"
|
||||
[ 6, 2 ] = wave (0) : "./MITfull/elev-30/L-30e012a.wav"
|
||||
[ 6, 3 ] = wave (0) : "./MITfull/elev-30/L-30e018a.wav"
|
||||
[ 6, 4 ] = wave (0) : "./MITfull/elev-30/L-30e024a.wav"
|
||||
[ 6, 5 ] = wave (0) : "./MITfull/elev-30/L-30e030a.wav"
|
||||
[ 6, 6 ] = wave (0) : "./MITfull/elev-30/L-30e036a.wav"
|
||||
[ 6, 7 ] = wave (0) : "./MITfull/elev-30/L-30e042a.wav"
|
||||
[ 6, 8 ] = wave (0) : "./MITfull/elev-30/L-30e048a.wav"
|
||||
[ 6, 9 ] = wave (0) : "./MITfull/elev-30/L-30e054a.wav"
|
||||
[ 6, 10 ] = wave (0) : "./MITfull/elev-30/L-30e060a.wav"
|
||||
[ 6, 11 ] = wave (0) : "./MITfull/elev-30/L-30e066a.wav"
|
||||
[ 6, 12 ] = wave (0) : "./MITfull/elev-30/L-30e072a.wav"
|
||||
[ 6, 13 ] = wave (0) : "./MITfull/elev-30/L-30e078a.wav"
|
||||
[ 6, 14 ] = wave (0) : "./MITfull/elev-30/L-30e084a.wav"
|
||||
[ 6, 15 ] = wave (0) : "./MITfull/elev-30/L-30e090a.wav"
|
||||
[ 6, 16 ] = wave (0) : "./MITfull/elev-30/L-30e096a.wav"
|
||||
[ 6, 17 ] = wave (0) : "./MITfull/elev-30/L-30e102a.wav"
|
||||
[ 6, 18 ] = wave (0) : "./MITfull/elev-30/L-30e108a.wav"
|
||||
[ 6, 19 ] = wave (0) : "./MITfull/elev-30/L-30e114a.wav"
|
||||
[ 6, 20 ] = wave (0) : "./MITfull/elev-30/L-30e120a.wav"
|
||||
[ 6, 21 ] = wave (0) : "./MITfull/elev-30/L-30e126a.wav"
|
||||
[ 6, 22 ] = wave (0) : "./MITfull/elev-30/L-30e132a.wav"
|
||||
[ 6, 23 ] = wave (0) : "./MITfull/elev-30/L-30e138a.wav"
|
||||
[ 6, 24 ] = wave (0) : "./MITfull/elev-30/L-30e144a.wav"
|
||||
[ 6, 25 ] = wave (0) : "./MITfull/elev-30/L-30e150a.wav"
|
||||
[ 6, 26 ] = wave (0) : "./MITfull/elev-30/L-30e156a.wav"
|
||||
[ 6, 27 ] = wave (0) : "./MITfull/elev-30/L-30e162a.wav"
|
||||
[ 6, 28 ] = wave (0) : "./MITfull/elev-30/L-30e168a.wav"
|
||||
[ 6, 29 ] = wave (0) : "./MITfull/elev-30/L-30e174a.wav"
|
||||
[ 6, 30 ] = wave (0) : "./MITfull/elev-30/L-30e180a.wav"
|
||||
[ 6, 31 ] = wave (0) : "./MITfull/elev-30/L-30e186a.wav"
|
||||
[ 6, 32 ] = wave (0) : "./MITfull/elev-30/L-30e192a.wav"
|
||||
[ 6, 33 ] = wave (0) : "./MITfull/elev-30/L-30e198a.wav"
|
||||
[ 6, 34 ] = wave (0) : "./MITfull/elev-30/L-30e204a.wav"
|
||||
[ 6, 35 ] = wave (0) : "./MITfull/elev-30/L-30e210a.wav"
|
||||
[ 6, 36 ] = wave (0) : "./MITfull/elev-30/L-30e216a.wav"
|
||||
[ 6, 37 ] = wave (0) : "./MITfull/elev-30/L-30e222a.wav"
|
||||
[ 6, 38 ] = wave (0) : "./MITfull/elev-30/L-30e228a.wav"
|
||||
[ 6, 39 ] = wave (0) : "./MITfull/elev-30/L-30e234a.wav"
|
||||
[ 6, 40 ] = wave (0) : "./MITfull/elev-30/L-30e240a.wav"
|
||||
[ 6, 41 ] = wave (0) : "./MITfull/elev-30/L-30e246a.wav"
|
||||
[ 6, 42 ] = wave (0) : "./MITfull/elev-30/L-30e252a.wav"
|
||||
[ 6, 43 ] = wave (0) : "./MITfull/elev-30/L-30e258a.wav"
|
||||
[ 6, 44 ] = wave (0) : "./MITfull/elev-30/L-30e264a.wav"
|
||||
[ 6, 45 ] = wave (0) : "./MITfull/elev-30/L-30e270a.wav"
|
||||
[ 6, 46 ] = wave (0) : "./MITfull/elev-30/L-30e276a.wav"
|
||||
[ 6, 47 ] = wave (0) : "./MITfull/elev-30/L-30e282a.wav"
|
||||
[ 6, 48 ] = wave (0) : "./MITfull/elev-30/L-30e288a.wav"
|
||||
[ 6, 49 ] = wave (0) : "./MITfull/elev-30/L-30e294a.wav"
|
||||
[ 6, 50 ] = wave (0) : "./MITfull/elev-30/L-30e300a.wav"
|
||||
[ 6, 51 ] = wave (0) : "./MITfull/elev-30/L-30e306a.wav"
|
||||
[ 6, 52 ] = wave (0) : "./MITfull/elev-30/L-30e312a.wav"
|
||||
[ 6, 53 ] = wave (0) : "./MITfull/elev-30/L-30e318a.wav"
|
||||
[ 6, 54 ] = wave (0) : "./MITfull/elev-30/L-30e324a.wav"
|
||||
[ 6, 55 ] = wave (0) : "./MITfull/elev-30/L-30e330a.wav"
|
||||
[ 6, 56 ] = wave (0) : "./MITfull/elev-30/L-30e336a.wav"
|
||||
[ 6, 57 ] = wave (0) : "./MITfull/elev-30/L-30e342a.wav"
|
||||
[ 6, 58 ] = wave (0) : "./MITfull/elev-30/L-30e348a.wav"
|
||||
[ 6, 59 ] = wave (0) : "./MITfull/elev-30/L-30e354a.wav"
|
||||
|
||||
[ 7, 0 ] = wave (0) : "./MITfull/elev-20/L-20e000a.wav"
|
||||
[ 7, 1 ] = wave (0) : "./MITfull/elev-20/L-20e005a.wav"
|
||||
[ 7, 2 ] = wave (0) : "./MITfull/elev-20/L-20e010a.wav"
|
||||
[ 7, 3 ] = wave (0) : "./MITfull/elev-20/L-20e015a.wav"
|
||||
[ 7, 4 ] = wave (0) : "./MITfull/elev-20/L-20e020a.wav"
|
||||
[ 7, 5 ] = wave (0) : "./MITfull/elev-20/L-20e025a.wav"
|
||||
[ 7, 6 ] = wave (0) : "./MITfull/elev-20/L-20e030a.wav"
|
||||
[ 7, 7 ] = wave (0) : "./MITfull/elev-20/L-20e035a.wav"
|
||||
[ 7, 8 ] = wave (0) : "./MITfull/elev-20/L-20e040a.wav"
|
||||
[ 7, 9 ] = wave (0) : "./MITfull/elev-20/L-20e045a.wav"
|
||||
[ 7, 10 ] = wave (0) : "./MITfull/elev-20/L-20e050a.wav"
|
||||
[ 7, 11 ] = wave (0) : "./MITfull/elev-20/L-20e055a.wav"
|
||||
[ 7, 12 ] = wave (0) : "./MITfull/elev-20/L-20e060a.wav"
|
||||
[ 7, 13 ] = wave (0) : "./MITfull/elev-20/L-20e065a.wav"
|
||||
[ 7, 14 ] = wave (0) : "./MITfull/elev-20/L-20e070a.wav"
|
||||
[ 7, 15 ] = wave (0) : "./MITfull/elev-20/L-20e075a.wav"
|
||||
[ 7, 16 ] = wave (0) : "./MITfull/elev-20/L-20e080a.wav"
|
||||
[ 7, 17 ] = wave (0) : "./MITfull/elev-20/L-20e085a.wav"
|
||||
[ 7, 18 ] = wave (0) : "./MITfull/elev-20/L-20e090a.wav"
|
||||
[ 7, 19 ] = wave (0) : "./MITfull/elev-20/L-20e095a.wav"
|
||||
[ 7, 20 ] = wave (0) : "./MITfull/elev-20/L-20e100a.wav"
|
||||
[ 7, 21 ] = wave (0) : "./MITfull/elev-20/L-20e105a.wav"
|
||||
[ 7, 22 ] = wave (0) : "./MITfull/elev-20/L-20e110a.wav"
|
||||
[ 7, 23 ] = wave (0) : "./MITfull/elev-20/L-20e115a.wav"
|
||||
[ 7, 24 ] = wave (0) : "./MITfull/elev-20/L-20e120a.wav"
|
||||
[ 7, 25 ] = wave (0) : "./MITfull/elev-20/L-20e125a.wav"
|
||||
[ 7, 26 ] = wave (0) : "./MITfull/elev-20/L-20e130a.wav"
|
||||
[ 7, 27 ] = wave (0) : "./MITfull/elev-20/L-20e135a.wav"
|
||||
[ 7, 28 ] = wave (0) : "./MITfull/elev-20/L-20e140a.wav"
|
||||
[ 7, 29 ] = wave (0) : "./MITfull/elev-20/L-20e145a.wav"
|
||||
[ 7, 30 ] = wave (0) : "./MITfull/elev-20/L-20e150a.wav"
|
||||
[ 7, 31 ] = wave (0) : "./MITfull/elev-20/L-20e155a.wav"
|
||||
[ 7, 32 ] = wave (0) : "./MITfull/elev-20/L-20e160a.wav"
|
||||
[ 7, 33 ] = wave (0) : "./MITfull/elev-20/L-20e165a.wav"
|
||||
[ 7, 34 ] = wave (0) : "./MITfull/elev-20/L-20e170a.wav"
|
||||
[ 7, 35 ] = wave (0) : "./MITfull/elev-20/L-20e175a.wav"
|
||||
[ 7, 36 ] = wave (0) : "./MITfull/elev-20/L-20e180a.wav"
|
||||
[ 7, 37 ] = wave (0) : "./MITfull/elev-20/L-20e185a.wav"
|
||||
[ 7, 38 ] = wave (0) : "./MITfull/elev-20/L-20e190a.wav"
|
||||
[ 7, 39 ] = wave (0) : "./MITfull/elev-20/L-20e195a.wav"
|
||||
[ 7, 40 ] = wave (0) : "./MITfull/elev-20/L-20e200a.wav"
|
||||
[ 7, 41 ] = wave (0) : "./MITfull/elev-20/L-20e205a.wav"
|
||||
[ 7, 42 ] = wave (0) : "./MITfull/elev-20/L-20e210a.wav"
|
||||
[ 7, 43 ] = wave (0) : "./MITfull/elev-20/L-20e215a.wav"
|
||||
[ 7, 44 ] = wave (0) : "./MITfull/elev-20/L-20e220a.wav"
|
||||
[ 7, 45 ] = wave (0) : "./MITfull/elev-20/L-20e225a.wav"
|
||||
[ 7, 46 ] = wave (0) : "./MITfull/elev-20/L-20e230a.wav"
|
||||
[ 7, 47 ] = wave (0) : "./MITfull/elev-20/L-20e235a.wav"
|
||||
[ 7, 48 ] = wave (0) : "./MITfull/elev-20/L-20e240a.wav"
|
||||
[ 7, 49 ] = wave (0) : "./MITfull/elev-20/L-20e245a.wav"
|
||||
[ 7, 50 ] = wave (0) : "./MITfull/elev-20/L-20e250a.wav"
|
||||
[ 7, 51 ] = wave (0) : "./MITfull/elev-20/L-20e255a.wav"
|
||||
[ 7, 52 ] = wave (0) : "./MITfull/elev-20/L-20e260a.wav"
|
||||
[ 7, 53 ] = wave (0) : "./MITfull/elev-20/L-20e265a.wav"
|
||||
[ 7, 54 ] = wave (0) : "./MITfull/elev-20/L-20e270a.wav"
|
||||
[ 7, 55 ] = wave (0) : "./MITfull/elev-20/L-20e275a.wav"
|
||||
[ 7, 56 ] = wave (0) : "./MITfull/elev-20/L-20e280a.wav"
|
||||
[ 7, 57 ] = wave (0) : "./MITfull/elev-20/L-20e285a.wav"
|
||||
[ 7, 58 ] = wave (0) : "./MITfull/elev-20/L-20e290a.wav"
|
||||
[ 7, 59 ] = wave (0) : "./MITfull/elev-20/L-20e295a.wav"
|
||||
[ 7, 60 ] = wave (0) : "./MITfull/elev-20/L-20e300a.wav"
|
||||
[ 7, 61 ] = wave (0) : "./MITfull/elev-20/L-20e305a.wav"
|
||||
[ 7, 62 ] = wave (0) : "./MITfull/elev-20/L-20e310a.wav"
|
||||
[ 7, 63 ] = wave (0) : "./MITfull/elev-20/L-20e315a.wav"
|
||||
[ 7, 64 ] = wave (0) : "./MITfull/elev-20/L-20e320a.wav"
|
||||
[ 7, 65 ] = wave (0) : "./MITfull/elev-20/L-20e325a.wav"
|
||||
[ 7, 66 ] = wave (0) : "./MITfull/elev-20/L-20e330a.wav"
|
||||
[ 7, 67 ] = wave (0) : "./MITfull/elev-20/L-20e335a.wav"
|
||||
[ 7, 68 ] = wave (0) : "./MITfull/elev-20/L-20e340a.wav"
|
||||
[ 7, 69 ] = wave (0) : "./MITfull/elev-20/L-20e345a.wav"
|
||||
[ 7, 70 ] = wave (0) : "./MITfull/elev-20/L-20e350a.wav"
|
||||
[ 7, 71 ] = wave (0) : "./MITfull/elev-20/L-20e355a.wav"
|
||||
|
||||
[ 8, 0 ] = wave (0) : "./MITfull/elev-10/L-10e000a.wav"
|
||||
[ 8, 1 ] = wave (0) : "./MITfull/elev-10/L-10e005a.wav"
|
||||
[ 8, 2 ] = wave (0) : "./MITfull/elev-10/L-10e010a.wav"
|
||||
[ 8, 3 ] = wave (0) : "./MITfull/elev-10/L-10e015a.wav"
|
||||
[ 8, 4 ] = wave (0) : "./MITfull/elev-10/L-10e020a.wav"
|
||||
[ 8, 5 ] = wave (0) : "./MITfull/elev-10/L-10e025a.wav"
|
||||
[ 8, 6 ] = wave (0) : "./MITfull/elev-10/L-10e030a.wav"
|
||||
[ 8, 7 ] = wave (0) : "./MITfull/elev-10/L-10e035a.wav"
|
||||
[ 8, 8 ] = wave (0) : "./MITfull/elev-10/L-10e040a.wav"
|
||||
[ 8, 9 ] = wave (0) : "./MITfull/elev-10/L-10e045a.wav"
|
||||
[ 8, 10 ] = wave (0) : "./MITfull/elev-10/L-10e050a.wav"
|
||||
[ 8, 11 ] = wave (0) : "./MITfull/elev-10/L-10e055a.wav"
|
||||
[ 8, 12 ] = wave (0) : "./MITfull/elev-10/L-10e060a.wav"
|
||||
[ 8, 13 ] = wave (0) : "./MITfull/elev-10/L-10e065a.wav"
|
||||
[ 8, 14 ] = wave (0) : "./MITfull/elev-10/L-10e070a.wav"
|
||||
[ 8, 15 ] = wave (0) : "./MITfull/elev-10/L-10e075a.wav"
|
||||
[ 8, 16 ] = wave (0) : "./MITfull/elev-10/L-10e080a.wav"
|
||||
[ 8, 17 ] = wave (0) : "./MITfull/elev-10/L-10e085a.wav"
|
||||
[ 8, 18 ] = wave (0) : "./MITfull/elev-10/L-10e090a.wav"
|
||||
[ 8, 19 ] = wave (0) : "./MITfull/elev-10/L-10e095a.wav"
|
||||
[ 8, 20 ] = wave (0) : "./MITfull/elev-10/L-10e100a.wav"
|
||||
[ 8, 21 ] = wave (0) : "./MITfull/elev-10/L-10e105a.wav"
|
||||
[ 8, 22 ] = wave (0) : "./MITfull/elev-10/L-10e110a.wav"
|
||||
[ 8, 23 ] = wave (0) : "./MITfull/elev-10/L-10e115a.wav"
|
||||
[ 8, 24 ] = wave (0) : "./MITfull/elev-10/L-10e120a.wav"
|
||||
[ 8, 25 ] = wave (0) : "./MITfull/elev-10/L-10e125a.wav"
|
||||
[ 8, 26 ] = wave (0) : "./MITfull/elev-10/L-10e130a.wav"
|
||||
[ 8, 27 ] = wave (0) : "./MITfull/elev-10/L-10e135a.wav"
|
||||
[ 8, 28 ] = wave (0) : "./MITfull/elev-10/L-10e140a.wav"
|
||||
[ 8, 29 ] = wave (0) : "./MITfull/elev-10/L-10e145a.wav"
|
||||
[ 8, 30 ] = wave (0) : "./MITfull/elev-10/L-10e150a.wav"
|
||||
[ 8, 31 ] = wave (0) : "./MITfull/elev-10/L-10e155a.wav"
|
||||
[ 8, 32 ] = wave (0) : "./MITfull/elev-10/L-10e160a.wav"
|
||||
[ 8, 33 ] = wave (0) : "./MITfull/elev-10/L-10e165a.wav"
|
||||
[ 8, 34 ] = wave (0) : "./MITfull/elev-10/L-10e170a.wav"
|
||||
[ 8, 35 ] = wave (0) : "./MITfull/elev-10/L-10e175a.wav"
|
||||
[ 8, 36 ] = wave (0) : "./MITfull/elev-10/L-10e180a.wav"
|
||||
[ 8, 37 ] = wave (0) : "./MITfull/elev-10/L-10e185a.wav"
|
||||
[ 8, 38 ] = wave (0) : "./MITfull/elev-10/L-10e190a.wav"
|
||||
[ 8, 39 ] = wave (0) : "./MITfull/elev-10/L-10e195a.wav"
|
||||
[ 8, 40 ] = wave (0) : "./MITfull/elev-10/L-10e200a.wav"
|
||||
[ 8, 41 ] = wave (0) : "./MITfull/elev-10/L-10e205a.wav"
|
||||
[ 8, 42 ] = wave (0) : "./MITfull/elev-10/L-10e210a.wav"
|
||||
[ 8, 43 ] = wave (0) : "./MITfull/elev-10/L-10e215a.wav"
|
||||
[ 8, 44 ] = wave (0) : "./MITfull/elev-10/L-10e220a.wav"
|
||||
[ 8, 45 ] = wave (0) : "./MITfull/elev-10/L-10e225a.wav"
|
||||
[ 8, 46 ] = wave (0) : "./MITfull/elev-10/L-10e230a.wav"
|
||||
[ 8, 47 ] = wave (0) : "./MITfull/elev-10/L-10e235a.wav"
|
||||
[ 8, 48 ] = wave (0) : "./MITfull/elev-10/L-10e240a.wav"
|
||||
[ 8, 49 ] = wave (0) : "./MITfull/elev-10/L-10e245a.wav"
|
||||
[ 8, 50 ] = wave (0) : "./MITfull/elev-10/L-10e250a.wav"
|
||||
[ 8, 51 ] = wave (0) : "./MITfull/elev-10/L-10e255a.wav"
|
||||
[ 8, 52 ] = wave (0) : "./MITfull/elev-10/L-10e260a.wav"
|
||||
[ 8, 53 ] = wave (0) : "./MITfull/elev-10/L-10e265a.wav"
|
||||
[ 8, 54 ] = wave (0) : "./MITfull/elev-10/L-10e270a.wav"
|
||||
[ 8, 55 ] = wave (0) : "./MITfull/elev-10/L-10e275a.wav"
|
||||
[ 8, 56 ] = wave (0) : "./MITfull/elev-10/L-10e280a.wav"
|
||||
[ 8, 57 ] = wave (0) : "./MITfull/elev-10/L-10e285a.wav"
|
||||
[ 8, 58 ] = wave (0) : "./MITfull/elev-10/L-10e290a.wav"
|
||||
[ 8, 59 ] = wave (0) : "./MITfull/elev-10/L-10e295a.wav"
|
||||
[ 8, 60 ] = wave (0) : "./MITfull/elev-10/L-10e300a.wav"
|
||||
[ 8, 61 ] = wave (0) : "./MITfull/elev-10/L-10e305a.wav"
|
||||
[ 8, 62 ] = wave (0) : "./MITfull/elev-10/L-10e310a.wav"
|
||||
[ 8, 63 ] = wave (0) : "./MITfull/elev-10/L-10e315a.wav"
|
||||
[ 8, 64 ] = wave (0) : "./MITfull/elev-10/L-10e320a.wav"
|
||||
[ 8, 65 ] = wave (0) : "./MITfull/elev-10/L-10e325a.wav"
|
||||
[ 8, 66 ] = wave (0) : "./MITfull/elev-10/L-10e330a.wav"
|
||||
[ 8, 67 ] = wave (0) : "./MITfull/elev-10/L-10e335a.wav"
|
||||
[ 8, 68 ] = wave (0) : "./MITfull/elev-10/L-10e340a.wav"
|
||||
[ 8, 69 ] = wave (0) : "./MITfull/elev-10/L-10e345a.wav"
|
||||
[ 8, 70 ] = wave (0) : "./MITfull/elev-10/L-10e350a.wav"
|
||||
[ 8, 71 ] = wave (0) : "./MITfull/elev-10/L-10e355a.wav"
|
||||
|
||||
[ 9, 0 ] = wave (0) : "./MITfull/elev0/L0e000a.wav"
|
||||
[ 9, 1 ] = wave (0) : "./MITfull/elev0/L0e005a.wav"
|
||||
[ 9, 2 ] = wave (0) : "./MITfull/elev0/L0e010a.wav"
|
||||
[ 9, 3 ] = wave (0) : "./MITfull/elev0/L0e015a.wav"
|
||||
[ 9, 4 ] = wave (0) : "./MITfull/elev0/L0e020a.wav"
|
||||
[ 9, 5 ] = wave (0) : "./MITfull/elev0/L0e025a.wav"
|
||||
[ 9, 6 ] = wave (0) : "./MITfull/elev0/L0e030a.wav"
|
||||
[ 9, 7 ] = wave (0) : "./MITfull/elev0/L0e035a.wav"
|
||||
[ 9, 8 ] = wave (0) : "./MITfull/elev0/L0e040a.wav"
|
||||
[ 9, 9 ] = wave (0) : "./MITfull/elev0/L0e045a.wav"
|
||||
[ 9, 10 ] = wave (0) : "./MITfull/elev0/L0e050a.wav"
|
||||
[ 9, 11 ] = wave (0) : "./MITfull/elev0/L0e055a.wav"
|
||||
[ 9, 12 ] = wave (0) : "./MITfull/elev0/L0e060a.wav"
|
||||
[ 9, 13 ] = wave (0) : "./MITfull/elev0/L0e065a.wav"
|
||||
[ 9, 14 ] = wave (0) : "./MITfull/elev0/L0e070a.wav"
|
||||
[ 9, 15 ] = wave (0) : "./MITfull/elev0/L0e075a.wav"
|
||||
[ 9, 16 ] = wave (0) : "./MITfull/elev0/L0e080a.wav"
|
||||
[ 9, 17 ] = wave (0) : "./MITfull/elev0/L0e085a.wav"
|
||||
[ 9, 18 ] = wave (0) : "./MITfull/elev0/L0e090a.wav"
|
||||
[ 9, 19 ] = wave (0) : "./MITfull/elev0/L0e095a.wav"
|
||||
[ 9, 20 ] = wave (0) : "./MITfull/elev0/L0e100a.wav"
|
||||
[ 9, 21 ] = wave (0) : "./MITfull/elev0/L0e105a.wav"
|
||||
[ 9, 22 ] = wave (0) : "./MITfull/elev0/L0e110a.wav"
|
||||
[ 9, 23 ] = wave (0) : "./MITfull/elev0/L0e115a.wav"
|
||||
[ 9, 24 ] = wave (0) : "./MITfull/elev0/L0e120a.wav"
|
||||
[ 9, 25 ] = wave (0) : "./MITfull/elev0/L0e125a.wav"
|
||||
[ 9, 26 ] = wave (0) : "./MITfull/elev0/L0e130a.wav"
|
||||
[ 9, 27 ] = wave (0) : "./MITfull/elev0/L0e135a.wav"
|
||||
[ 9, 28 ] = wave (0) : "./MITfull/elev0/L0e140a.wav"
|
||||
[ 9, 29 ] = wave (0) : "./MITfull/elev0/L0e145a.wav"
|
||||
[ 9, 30 ] = wave (0) : "./MITfull/elev0/L0e150a.wav"
|
||||
[ 9, 31 ] = wave (0) : "./MITfull/elev0/L0e155a.wav"
|
||||
[ 9, 32 ] = wave (0) : "./MITfull/elev0/L0e160a.wav"
|
||||
[ 9, 33 ] = wave (0) : "./MITfull/elev0/L0e165a.wav"
|
||||
[ 9, 34 ] = wave (0) : "./MITfull/elev0/L0e170a.wav"
|
||||
[ 9, 35 ] = wave (0) : "./MITfull/elev0/L0e175a.wav"
|
||||
[ 9, 36 ] = wave (0) : "./MITfull/elev0/L0e180a.wav"
|
||||
[ 9, 37 ] = wave (0) : "./MITfull/elev0/L0e185a.wav"
|
||||
[ 9, 38 ] = wave (0) : "./MITfull/elev0/L0e190a.wav"
|
||||
[ 9, 39 ] = wave (0) : "./MITfull/elev0/L0e195a.wav"
|
||||
[ 9, 40 ] = wave (0) : "./MITfull/elev0/L0e200a.wav"
|
||||
[ 9, 41 ] = wave (0) : "./MITfull/elev0/L0e205a.wav"
|
||||
[ 9, 42 ] = wave (0) : "./MITfull/elev0/L0e210a.wav"
|
||||
[ 9, 43 ] = wave (0) : "./MITfull/elev0/L0e215a.wav"
|
||||
[ 9, 44 ] = wave (0) : "./MITfull/elev0/L0e220a.wav"
|
||||
[ 9, 45 ] = wave (0) : "./MITfull/elev0/L0e225a.wav"
|
||||
[ 9, 46 ] = wave (0) : "./MITfull/elev0/L0e230a.wav"
|
||||
[ 9, 47 ] = wave (0) : "./MITfull/elev0/L0e235a.wav"
|
||||
[ 9, 48 ] = wave (0) : "./MITfull/elev0/L0e240a.wav"
|
||||
[ 9, 49 ] = wave (0) : "./MITfull/elev0/L0e245a.wav"
|
||||
[ 9, 50 ] = wave (0) : "./MITfull/elev0/L0e250a.wav"
|
||||
[ 9, 51 ] = wave (0) : "./MITfull/elev0/L0e255a.wav"
|
||||
[ 9, 52 ] = wave (0) : "./MITfull/elev0/L0e260a.wav"
|
||||
[ 9, 53 ] = wave (0) : "./MITfull/elev0/L0e265a.wav"
|
||||
[ 9, 54 ] = wave (0) : "./MITfull/elev0/L0e270a.wav"
|
||||
[ 9, 55 ] = wave (0) : "./MITfull/elev0/L0e275a.wav"
|
||||
[ 9, 56 ] = wave (0) : "./MITfull/elev0/L0e280a.wav"
|
||||
[ 9, 57 ] = wave (0) : "./MITfull/elev0/L0e285a.wav"
|
||||
[ 9, 58 ] = wave (0) : "./MITfull/elev0/L0e290a.wav"
|
||||
[ 9, 59 ] = wave (0) : "./MITfull/elev0/L0e295a.wav"
|
||||
[ 9, 60 ] = wave (0) : "./MITfull/elev0/L0e300a.wav"
|
||||
[ 9, 61 ] = wave (0) : "./MITfull/elev0/L0e305a.wav"
|
||||
[ 9, 62 ] = wave (0) : "./MITfull/elev0/L0e310a.wav"
|
||||
[ 9, 63 ] = wave (0) : "./MITfull/elev0/L0e315a.wav"
|
||||
[ 9, 64 ] = wave (0) : "./MITfull/elev0/L0e320a.wav"
|
||||
[ 9, 65 ] = wave (0) : "./MITfull/elev0/L0e325a.wav"
|
||||
[ 9, 66 ] = wave (0) : "./MITfull/elev0/L0e330a.wav"
|
||||
[ 9, 67 ] = wave (0) : "./MITfull/elev0/L0e335a.wav"
|
||||
[ 9, 68 ] = wave (0) : "./MITfull/elev0/L0e340a.wav"
|
||||
[ 9, 69 ] = wave (0) : "./MITfull/elev0/L0e345a.wav"
|
||||
[ 9, 70 ] = wave (0) : "./MITfull/elev0/L0e350a.wav"
|
||||
[ 9, 71 ] = wave (0) : "./MITfull/elev0/L0e355a.wav"
|
||||
|
||||
[ 10, 0 ] = wave (0) : "./MITfull/elev10/L10e000a.wav"
|
||||
[ 10, 1 ] = wave (0) : "./MITfull/elev10/L10e005a.wav"
|
||||
[ 10, 2 ] = wave (0) : "./MITfull/elev10/L10e010a.wav"
|
||||
[ 10, 3 ] = wave (0) : "./MITfull/elev10/L10e015a.wav"
|
||||
[ 10, 4 ] = wave (0) : "./MITfull/elev10/L10e020a.wav"
|
||||
[ 10, 5 ] = wave (0) : "./MITfull/elev10/L10e025a.wav"
|
||||
[ 10, 6 ] = wave (0) : "./MITfull/elev10/L10e030a.wav"
|
||||
[ 10, 7 ] = wave (0) : "./MITfull/elev10/L10e035a.wav"
|
||||
[ 10, 8 ] = wave (0) : "./MITfull/elev10/L10e040a.wav"
|
||||
[ 10, 9 ] = wave (0) : "./MITfull/elev10/L10e045a.wav"
|
||||
[ 10, 10 ] = wave (0) : "./MITfull/elev10/L10e050a.wav"
|
||||
[ 10, 11 ] = wave (0) : "./MITfull/elev10/L10e055a.wav"
|
||||
[ 10, 12 ] = wave (0) : "./MITfull/elev10/L10e060a.wav"
|
||||
[ 10, 13 ] = wave (0) : "./MITfull/elev10/L10e065a.wav"
|
||||
[ 10, 14 ] = wave (0) : "./MITfull/elev10/L10e070a.wav"
|
||||
[ 10, 15 ] = wave (0) : "./MITfull/elev10/L10e075a.wav"
|
||||
[ 10, 16 ] = wave (0) : "./MITfull/elev10/L10e080a.wav"
|
||||
[ 10, 17 ] = wave (0) : "./MITfull/elev10/L10e085a.wav"
|
||||
[ 10, 18 ] = wave (0) : "./MITfull/elev10/L10e090a.wav"
|
||||
[ 10, 19 ] = wave (0) : "./MITfull/elev10/L10e095a.wav"
|
||||
[ 10, 20 ] = wave (0) : "./MITfull/elev10/L10e100a.wav"
|
||||
[ 10, 21 ] = wave (0) : "./MITfull/elev10/L10e105a.wav"
|
||||
[ 10, 22 ] = wave (0) : "./MITfull/elev10/L10e110a.wav"
|
||||
[ 10, 23 ] = wave (0) : "./MITfull/elev10/L10e115a.wav"
|
||||
[ 10, 24 ] = wave (0) : "./MITfull/elev10/L10e120a.wav"
|
||||
[ 10, 25 ] = wave (0) : "./MITfull/elev10/L10e125a.wav"
|
||||
[ 10, 26 ] = wave (0) : "./MITfull/elev10/L10e130a.wav"
|
||||
[ 10, 27 ] = wave (0) : "./MITfull/elev10/L10e135a.wav"
|
||||
[ 10, 28 ] = wave (0) : "./MITfull/elev10/L10e140a.wav"
|
||||
[ 10, 29 ] = wave (0) : "./MITfull/elev10/L10e145a.wav"
|
||||
[ 10, 30 ] = wave (0) : "./MITfull/elev10/L10e150a.wav"
|
||||
[ 10, 31 ] = wave (0) : "./MITfull/elev10/L10e155a.wav"
|
||||
[ 10, 32 ] = wave (0) : "./MITfull/elev10/L10e160a.wav"
|
||||
[ 10, 33 ] = wave (0) : "./MITfull/elev10/L10e165a.wav"
|
||||
[ 10, 34 ] = wave (0) : "./MITfull/elev10/L10e170a.wav"
|
||||
[ 10, 35 ] = wave (0) : "./MITfull/elev10/L10e175a.wav"
|
||||
[ 10, 36 ] = wave (0) : "./MITfull/elev10/L10e180a.wav"
|
||||
[ 10, 37 ] = wave (0) : "./MITfull/elev10/L10e185a.wav"
|
||||
[ 10, 38 ] = wave (0) : "./MITfull/elev10/L10e190a.wav"
|
||||
[ 10, 39 ] = wave (0) : "./MITfull/elev10/L10e195a.wav"
|
||||
[ 10, 40 ] = wave (0) : "./MITfull/elev10/L10e200a.wav"
|
||||
[ 10, 41 ] = wave (0) : "./MITfull/elev10/L10e205a.wav"
|
||||
[ 10, 42 ] = wave (0) : "./MITfull/elev10/L10e210a.wav"
|
||||
[ 10, 43 ] = wave (0) : "./MITfull/elev10/L10e215a.wav"
|
||||
[ 10, 44 ] = wave (0) : "./MITfull/elev10/L10e220a.wav"
|
||||
[ 10, 45 ] = wave (0) : "./MITfull/elev10/L10e225a.wav"
|
||||
[ 10, 46 ] = wave (0) : "./MITfull/elev10/L10e230a.wav"
|
||||
[ 10, 47 ] = wave (0) : "./MITfull/elev10/L10e235a.wav"
|
||||
[ 10, 48 ] = wave (0) : "./MITfull/elev10/L10e240a.wav"
|
||||
[ 10, 49 ] = wave (0) : "./MITfull/elev10/L10e245a.wav"
|
||||
[ 10, 50 ] = wave (0) : "./MITfull/elev10/L10e250a.wav"
|
||||
[ 10, 51 ] = wave (0) : "./MITfull/elev10/L10e255a.wav"
|
||||
[ 10, 52 ] = wave (0) : "./MITfull/elev10/L10e260a.wav"
|
||||
[ 10, 53 ] = wave (0) : "./MITfull/elev10/L10e265a.wav"
|
||||
[ 10, 54 ] = wave (0) : "./MITfull/elev10/L10e270a.wav"
|
||||
[ 10, 55 ] = wave (0) : "./MITfull/elev10/L10e275a.wav"
|
||||
[ 10, 56 ] = wave (0) : "./MITfull/elev10/L10e280a.wav"
|
||||
[ 10, 57 ] = wave (0) : "./MITfull/elev10/L10e285a.wav"
|
||||
[ 10, 58 ] = wave (0) : "./MITfull/elev10/L10e290a.wav"
|
||||
[ 10, 59 ] = wave (0) : "./MITfull/elev10/L10e295a.wav"
|
||||
[ 10, 60 ] = wave (0) : "./MITfull/elev10/L10e300a.wav"
|
||||
[ 10, 61 ] = wave (0) : "./MITfull/elev10/L10e305a.wav"
|
||||
[ 10, 62 ] = wave (0) : "./MITfull/elev10/L10e310a.wav"
|
||||
[ 10, 63 ] = wave (0) : "./MITfull/elev10/L10e315a.wav"
|
||||
[ 10, 64 ] = wave (0) : "./MITfull/elev10/L10e320a.wav"
|
||||
[ 10, 65 ] = wave (0) : "./MITfull/elev10/L10e325a.wav"
|
||||
[ 10, 66 ] = wave (0) : "./MITfull/elev10/L10e330a.wav"
|
||||
[ 10, 67 ] = wave (0) : "./MITfull/elev10/L10e335a.wav"
|
||||
[ 10, 68 ] = wave (0) : "./MITfull/elev10/L10e340a.wav"
|
||||
[ 10, 69 ] = wave (0) : "./MITfull/elev10/L10e345a.wav"
|
||||
[ 10, 70 ] = wave (0) : "./MITfull/elev10/L10e350a.wav"
|
||||
[ 10, 71 ] = wave (0) : "./MITfull/elev10/L10e355a.wav"
|
||||
|
||||
[ 11, 0 ] = wave (0) : "./MITfull/elev20/L20e000a.wav"
|
||||
[ 11, 1 ] = wave (0) : "./MITfull/elev20/L20e005a.wav"
|
||||
[ 11, 2 ] = wave (0) : "./MITfull/elev20/L20e010a.wav"
|
||||
[ 11, 3 ] = wave (0) : "./MITfull/elev20/L20e015a.wav"
|
||||
[ 11, 4 ] = wave (0) : "./MITfull/elev20/L20e020a.wav"
|
||||
[ 11, 5 ] = wave (0) : "./MITfull/elev20/L20e025a.wav"
|
||||
[ 11, 6 ] = wave (0) : "./MITfull/elev20/L20e030a.wav"
|
||||
[ 11, 7 ] = wave (0) : "./MITfull/elev20/L20e035a.wav"
|
||||
[ 11, 8 ] = wave (0) : "./MITfull/elev20/L20e040a.wav"
|
||||
[ 11, 9 ] = wave (0) : "./MITfull/elev20/L20e045a.wav"
|
||||
[ 11, 10 ] = wave (0) : "./MITfull/elev20/L20e050a.wav"
|
||||
[ 11, 11 ] = wave (0) : "./MITfull/elev20/L20e055a.wav"
|
||||
[ 11, 12 ] = wave (0) : "./MITfull/elev20/L20e060a.wav"
|
||||
[ 11, 13 ] = wave (0) : "./MITfull/elev20/L20e065a.wav"
|
||||
[ 11, 14 ] = wave (0) : "./MITfull/elev20/L20e070a.wav"
|
||||
[ 11, 15 ] = wave (0) : "./MITfull/elev20/L20e075a.wav"
|
||||
[ 11, 16 ] = wave (0) : "./MITfull/elev20/L20e080a.wav"
|
||||
[ 11, 17 ] = wave (0) : "./MITfull/elev20/L20e085a.wav"
|
||||
[ 11, 18 ] = wave (0) : "./MITfull/elev20/L20e090a.wav"
|
||||
[ 11, 19 ] = wave (0) : "./MITfull/elev20/L20e095a.wav"
|
||||
[ 11, 20 ] = wave (0) : "./MITfull/elev20/L20e100a.wav"
|
||||
[ 11, 21 ] = wave (0) : "./MITfull/elev20/L20e105a.wav"
|
||||
[ 11, 22 ] = wave (0) : "./MITfull/elev20/L20e110a.wav"
|
||||
[ 11, 23 ] = wave (0) : "./MITfull/elev20/L20e115a.wav"
|
||||
[ 11, 24 ] = wave (0) : "./MITfull/elev20/L20e120a.wav"
|
||||
[ 11, 25 ] = wave (0) : "./MITfull/elev20/L20e125a.wav"
|
||||
[ 11, 26 ] = wave (0) : "./MITfull/elev20/L20e130a.wav"
|
||||
[ 11, 27 ] = wave (0) : "./MITfull/elev20/L20e135a.wav"
|
||||
[ 11, 28 ] = wave (0) : "./MITfull/elev20/L20e140a.wav"
|
||||
[ 11, 29 ] = wave (0) : "./MITfull/elev20/L20e145a.wav"
|
||||
[ 11, 30 ] = wave (0) : "./MITfull/elev20/L20e150a.wav"
|
||||
[ 11, 31 ] = wave (0) : "./MITfull/elev20/L20e155a.wav"
|
||||
[ 11, 32 ] = wave (0) : "./MITfull/elev20/L20e160a.wav"
|
||||
[ 11, 33 ] = wave (0) : "./MITfull/elev20/L20e165a.wav"
|
||||
[ 11, 34 ] = wave (0) : "./MITfull/elev20/L20e170a.wav"
|
||||
[ 11, 35 ] = wave (0) : "./MITfull/elev20/L20e175a.wav"
|
||||
[ 11, 36 ] = wave (0) : "./MITfull/elev20/L20e180a.wav"
|
||||
[ 11, 37 ] = wave (0) : "./MITfull/elev20/L20e185a.wav"
|
||||
[ 11, 38 ] = wave (0) : "./MITfull/elev20/L20e190a.wav"
|
||||
[ 11, 39 ] = wave (0) : "./MITfull/elev20/L20e195a.wav"
|
||||
[ 11, 40 ] = wave (0) : "./MITfull/elev20/L20e200a.wav"
|
||||
[ 11, 41 ] = wave (0) : "./MITfull/elev20/L20e205a.wav"
|
||||
[ 11, 42 ] = wave (0) : "./MITfull/elev20/L20e210a.wav"
|
||||
[ 11, 43 ] = wave (0) : "./MITfull/elev20/L20e215a.wav"
|
||||
[ 11, 44 ] = wave (0) : "./MITfull/elev20/L20e220a.wav"
|
||||
[ 11, 45 ] = wave (0) : "./MITfull/elev20/L20e225a.wav"
|
||||
[ 11, 46 ] = wave (0) : "./MITfull/elev20/L20e230a.wav"
|
||||
[ 11, 47 ] = wave (0) : "./MITfull/elev20/L20e235a.wav"
|
||||
[ 11, 48 ] = wave (0) : "./MITfull/elev20/L20e240a.wav"
|
||||
[ 11, 49 ] = wave (0) : "./MITfull/elev20/L20e245a.wav"
|
||||
[ 11, 50 ] = wave (0) : "./MITfull/elev20/L20e250a.wav"
|
||||
[ 11, 51 ] = wave (0) : "./MITfull/elev20/L20e255a.wav"
|
||||
[ 11, 52 ] = wave (0) : "./MITfull/elev20/L20e260a.wav"
|
||||
[ 11, 53 ] = wave (0) : "./MITfull/elev20/L20e265a.wav"
|
||||
[ 11, 54 ] = wave (0) : "./MITfull/elev20/L20e270a.wav"
|
||||
[ 11, 55 ] = wave (0) : "./MITfull/elev20/L20e275a.wav"
|
||||
[ 11, 56 ] = wave (0) : "./MITfull/elev20/L20e280a.wav"
|
||||
[ 11, 57 ] = wave (0) : "./MITfull/elev20/L20e285a.wav"
|
||||
[ 11, 58 ] = wave (0) : "./MITfull/elev20/L20e290a.wav"
|
||||
[ 11, 59 ] = wave (0) : "./MITfull/elev20/L20e295a.wav"
|
||||
[ 11, 60 ] = wave (0) : "./MITfull/elev20/L20e300a.wav"
|
||||
[ 11, 61 ] = wave (0) : "./MITfull/elev20/L20e305a.wav"
|
||||
[ 11, 62 ] = wave (0) : "./MITfull/elev20/L20e310a.wav"
|
||||
[ 11, 63 ] = wave (0) : "./MITfull/elev20/L20e315a.wav"
|
||||
[ 11, 64 ] = wave (0) : "./MITfull/elev20/L20e320a.wav"
|
||||
[ 11, 65 ] = wave (0) : "./MITfull/elev20/L20e325a.wav"
|
||||
[ 11, 66 ] = wave (0) : "./MITfull/elev20/L20e330a.wav"
|
||||
[ 11, 67 ] = wave (0) : "./MITfull/elev20/L20e335a.wav"
|
||||
[ 11, 68 ] = wave (0) : "./MITfull/elev20/L20e340a.wav"
|
||||
[ 11, 69 ] = wave (0) : "./MITfull/elev20/L20e345a.wav"
|
||||
[ 11, 70 ] = wave (0) : "./MITfull/elev20/L20e350a.wav"
|
||||
[ 11, 71 ] = wave (0) : "./MITfull/elev20/L20e355a.wav"
|
||||
|
||||
[ 12, 0 ] = wave (0) : "./MITfull/elev30/L30e000a.wav"
|
||||
[ 12, 1 ] = wave (0) : "./MITfull/elev30/L30e006a.wav"
|
||||
[ 12, 2 ] = wave (0) : "./MITfull/elev30/L30e012a.wav"
|
||||
[ 12, 3 ] = wave (0) : "./MITfull/elev30/L30e018a.wav"
|
||||
[ 12, 4 ] = wave (0) : "./MITfull/elev30/L30e024a.wav"
|
||||
[ 12, 5 ] = wave (0) : "./MITfull/elev30/L30e030a.wav"
|
||||
[ 12, 6 ] = wave (0) : "./MITfull/elev30/L30e036a.wav"
|
||||
[ 12, 7 ] = wave (0) : "./MITfull/elev30/L30e042a.wav"
|
||||
[ 12, 8 ] = wave (0) : "./MITfull/elev30/L30e048a.wav"
|
||||
[ 12, 9 ] = wave (0) : "./MITfull/elev30/L30e054a.wav"
|
||||
[ 12, 10 ] = wave (0) : "./MITfull/elev30/L30e060a.wav"
|
||||
[ 12, 11 ] = wave (0) : "./MITfull/elev30/L30e066a.wav"
|
||||
[ 12, 12 ] = wave (0) : "./MITfull/elev30/L30e072a.wav"
|
||||
[ 12, 13 ] = wave (0) : "./MITfull/elev30/L30e078a.wav"
|
||||
[ 12, 14 ] = wave (0) : "./MITfull/elev30/L30e084a.wav"
|
||||
[ 12, 15 ] = wave (0) : "./MITfull/elev30/L30e090a.wav"
|
||||
[ 12, 16 ] = wave (0) : "./MITfull/elev30/L30e096a.wav"
|
||||
[ 12, 17 ] = wave (0) : "./MITfull/elev30/L30e102a.wav"
|
||||
[ 12, 18 ] = wave (0) : "./MITfull/elev30/L30e108a.wav"
|
||||
[ 12, 19 ] = wave (0) : "./MITfull/elev30/L30e114a.wav"
|
||||
[ 12, 20 ] = wave (0) : "./MITfull/elev30/L30e120a.wav"
|
||||
[ 12, 21 ] = wave (0) : "./MITfull/elev30/L30e126a.wav"
|
||||
[ 12, 22 ] = wave (0) : "./MITfull/elev30/L30e132a.wav"
|
||||
[ 12, 23 ] = wave (0) : "./MITfull/elev30/L30e138a.wav"
|
||||
[ 12, 24 ] = wave (0) : "./MITfull/elev30/L30e144a.wav"
|
||||
[ 12, 25 ] = wave (0) : "./MITfull/elev30/L30e150a.wav"
|
||||
[ 12, 26 ] = wave (0) : "./MITfull/elev30/L30e156a.wav"
|
||||
[ 12, 27 ] = wave (0) : "./MITfull/elev30/L30e162a.wav"
|
||||
[ 12, 28 ] = wave (0) : "./MITfull/elev30/L30e168a.wav"
|
||||
[ 12, 29 ] = wave (0) : "./MITfull/elev30/L30e174a.wav"
|
||||
[ 12, 30 ] = wave (0) : "./MITfull/elev30/L30e180a.wav"
|
||||
[ 12, 31 ] = wave (0) : "./MITfull/elev30/L30e186a.wav"
|
||||
[ 12, 32 ] = wave (0) : "./MITfull/elev30/L30e192a.wav"
|
||||
[ 12, 33 ] = wave (0) : "./MITfull/elev30/L30e198a.wav"
|
||||
[ 12, 34 ] = wave (0) : "./MITfull/elev30/L30e204a.wav"
|
||||
[ 12, 35 ] = wave (0) : "./MITfull/elev30/L30e210a.wav"
|
||||
[ 12, 36 ] = wave (0) : "./MITfull/elev30/L30e216a.wav"
|
||||
[ 12, 37 ] = wave (0) : "./MITfull/elev30/L30e222a.wav"
|
||||
[ 12, 38 ] = wave (0) : "./MITfull/elev30/L30e228a.wav"
|
||||
[ 12, 39 ] = wave (0) : "./MITfull/elev30/L30e234a.wav"
|
||||
[ 12, 40 ] = wave (0) : "./MITfull/elev30/L30e240a.wav"
|
||||
[ 12, 41 ] = wave (0) : "./MITfull/elev30/L30e246a.wav"
|
||||
[ 12, 42 ] = wave (0) : "./MITfull/elev30/L30e252a.wav"
|
||||
[ 12, 43 ] = wave (0) : "./MITfull/elev30/L30e258a.wav"
|
||||
[ 12, 44 ] = wave (0) : "./MITfull/elev30/L30e264a.wav"
|
||||
[ 12, 45 ] = wave (0) : "./MITfull/elev30/L30e270a.wav"
|
||||
[ 12, 46 ] = wave (0) : "./MITfull/elev30/L30e276a.wav"
|
||||
[ 12, 47 ] = wave (0) : "./MITfull/elev30/L30e282a.wav"
|
||||
[ 12, 48 ] = wave (0) : "./MITfull/elev30/L30e288a.wav"
|
||||
[ 12, 49 ] = wave (0) : "./MITfull/elev30/L30e294a.wav"
|
||||
[ 12, 50 ] = wave (0) : "./MITfull/elev30/L30e300a.wav"
|
||||
[ 12, 51 ] = wave (0) : "./MITfull/elev30/L30e306a.wav"
|
||||
[ 12, 52 ] = wave (0) : "./MITfull/elev30/L30e312a.wav"
|
||||
[ 12, 53 ] = wave (0) : "./MITfull/elev30/L30e318a.wav"
|
||||
[ 12, 54 ] = wave (0) : "./MITfull/elev30/L30e324a.wav"
|
||||
[ 12, 55 ] = wave (0) : "./MITfull/elev30/L30e330a.wav"
|
||||
[ 12, 56 ] = wave (0) : "./MITfull/elev30/L30e336a.wav"
|
||||
[ 12, 57 ] = wave (0) : "./MITfull/elev30/L30e342a.wav"
|
||||
[ 12, 58 ] = wave (0) : "./MITfull/elev30/L30e348a.wav"
|
||||
[ 12, 59 ] = wave (0) : "./MITfull/elev30/L30e354a.wav"
|
||||
|
||||
[ 13, 0 ] = wave (0) : "./MITfull/elev40/L40e000a.wav"
|
||||
[ 13, 1 ] = wave (0) : "./MITfull/elev40/L40e006a.wav"
|
||||
[ 13, 2 ] = wave (0) : "./MITfull/elev40/L40e013a.wav"
|
||||
[ 13, 3 ] = wave (0) : "./MITfull/elev40/L40e019a.wav"
|
||||
[ 13, 4 ] = wave (0) : "./MITfull/elev40/L40e026a.wav"
|
||||
[ 13, 5 ] = wave (0) : "./MITfull/elev40/L40e032a.wav"
|
||||
[ 13, 6 ] = wave (0) : "./MITfull/elev40/L40e039a.wav"
|
||||
[ 13, 7 ] = wave (0) : "./MITfull/elev40/L40e045a.wav"
|
||||
[ 13, 8 ] = wave (0) : "./MITfull/elev40/L40e051a.wav"
|
||||
[ 13, 9 ] = wave (0) : "./MITfull/elev40/L40e058a.wav"
|
||||
[ 13, 10 ] = wave (0) : "./MITfull/elev40/L40e064a.wav"
|
||||
[ 13, 11 ] = wave (0) : "./MITfull/elev40/L40e071a.wav"
|
||||
[ 13, 12 ] = wave (0) : "./MITfull/elev40/L40e077a.wav"
|
||||
[ 13, 13 ] = wave (0) : "./MITfull/elev40/L40e084a.wav"
|
||||
[ 13, 14 ] = wave (0) : "./MITfull/elev40/L40e090a.wav"
|
||||
[ 13, 15 ] = wave (0) : "./MITfull/elev40/L40e096a.wav"
|
||||
[ 13, 16 ] = wave (0) : "./MITfull/elev40/L40e103a.wav"
|
||||
[ 13, 17 ] = wave (0) : "./MITfull/elev40/L40e109a.wav"
|
||||
[ 13, 18 ] = wave (0) : "./MITfull/elev40/L40e116a.wav"
|
||||
[ 13, 19 ] = wave (0) : "./MITfull/elev40/L40e122a.wav"
|
||||
[ 13, 20 ] = wave (0) : "./MITfull/elev40/L40e129a.wav"
|
||||
[ 13, 21 ] = wave (0) : "./MITfull/elev40/L40e135a.wav"
|
||||
[ 13, 22 ] = wave (0) : "./MITfull/elev40/L40e141a.wav"
|
||||
[ 13, 23 ] = wave (0) : "./MITfull/elev40/L40e148a.wav"
|
||||
[ 13, 24 ] = wave (0) : "./MITfull/elev40/L40e154a.wav"
|
||||
[ 13, 25 ] = wave (0) : "./MITfull/elev40/L40e161a.wav"
|
||||
[ 13, 26 ] = wave (0) : "./MITfull/elev40/L40e167a.wav"
|
||||
[ 13, 27 ] = wave (0) : "./MITfull/elev40/L40e174a.wav"
|
||||
[ 13, 28 ] = wave (0) : "./MITfull/elev40/L40e180a.wav"
|
||||
[ 13, 29 ] = wave (0) : "./MITfull/elev40/L40e186a.wav"
|
||||
[ 13, 30 ] = wave (0) : "./MITfull/elev40/L40e193a.wav"
|
||||
[ 13, 31 ] = wave (0) : "./MITfull/elev40/L40e199a.wav"
|
||||
[ 13, 32 ] = wave (0) : "./MITfull/elev40/L40e206a.wav"
|
||||
[ 13, 33 ] = wave (0) : "./MITfull/elev40/L40e212a.wav"
|
||||
[ 13, 34 ] = wave (0) : "./MITfull/elev40/L40e219a.wav"
|
||||
[ 13, 35 ] = wave (0) : "./MITfull/elev40/L40e225a.wav"
|
||||
[ 13, 36 ] = wave (0) : "./MITfull/elev40/L40e231a.wav"
|
||||
[ 13, 37 ] = wave (0) : "./MITfull/elev40/L40e238a.wav"
|
||||
[ 13, 38 ] = wave (0) : "./MITfull/elev40/L40e244a.wav"
|
||||
[ 13, 39 ] = wave (0) : "./MITfull/elev40/L40e251a.wav"
|
||||
[ 13, 40 ] = wave (0) : "./MITfull/elev40/L40e257a.wav"
|
||||
[ 13, 41 ] = wave (0) : "./MITfull/elev40/L40e264a.wav"
|
||||
[ 13, 42 ] = wave (0) : "./MITfull/elev40/L40e270a.wav"
|
||||
[ 13, 43 ] = wave (0) : "./MITfull/elev40/L40e276a.wav"
|
||||
[ 13, 44 ] = wave (0) : "./MITfull/elev40/L40e283a.wav"
|
||||
[ 13, 45 ] = wave (0) : "./MITfull/elev40/L40e289a.wav"
|
||||
[ 13, 46 ] = wave (0) : "./MITfull/elev40/L40e296a.wav"
|
||||
[ 13, 47 ] = wave (0) : "./MITfull/elev40/L40e302a.wav"
|
||||
[ 13, 48 ] = wave (0) : "./MITfull/elev40/L40e309a.wav"
|
||||
[ 13, 49 ] = wave (0) : "./MITfull/elev40/L40e315a.wav"
|
||||
[ 13, 50 ] = wave (0) : "./MITfull/elev40/L40e321a.wav"
|
||||
[ 13, 51 ] = wave (0) : "./MITfull/elev40/L40e328a.wav"
|
||||
[ 13, 52 ] = wave (0) : "./MITfull/elev40/L40e334a.wav"
|
||||
[ 13, 53 ] = wave (0) : "./MITfull/elev40/L40e341a.wav"
|
||||
[ 13, 54 ] = wave (0) : "./MITfull/elev40/L40e347a.wav"
|
||||
[ 13, 55 ] = wave (0) : "./MITfull/elev40/L40e354a.wav"
|
||||
|
||||
[ 14, 0 ] = wave (0) : "./MITfull/elev50/L50e000a.wav"
|
||||
[ 14, 1 ] = wave (0) : "./MITfull/elev50/L50e008a.wav"
|
||||
[ 14, 2 ] = wave (0) : "./MITfull/elev50/L50e016a.wav"
|
||||
[ 14, 3 ] = wave (0) : "./MITfull/elev50/L50e024a.wav"
|
||||
[ 14, 4 ] = wave (0) : "./MITfull/elev50/L50e032a.wav"
|
||||
[ 14, 5 ] = wave (0) : "./MITfull/elev50/L50e040a.wav"
|
||||
[ 14, 6 ] = wave (0) : "./MITfull/elev50/L50e048a.wav"
|
||||
[ 14, 7 ] = wave (0) : "./MITfull/elev50/L50e056a.wav"
|
||||
[ 14, 8 ] = wave (0) : "./MITfull/elev50/L50e064a.wav"
|
||||
[ 14, 9 ] = wave (0) : "./MITfull/elev50/L50e072a.wav"
|
||||
[ 14, 10 ] = wave (0) : "./MITfull/elev50/L50e080a.wav"
|
||||
[ 14, 11 ] = wave (0) : "./MITfull/elev50/L50e088a.wav"
|
||||
[ 14, 12 ] = wave (0) : "./MITfull/elev50/L50e096a.wav"
|
||||
[ 14, 13 ] = wave (0) : "./MITfull/elev50/L50e104a.wav"
|
||||
[ 14, 14 ] = wave (0) : "./MITfull/elev50/L50e112a.wav"
|
||||
[ 14, 15 ] = wave (0) : "./MITfull/elev50/L50e120a.wav"
|
||||
[ 14, 16 ] = wave (0) : "./MITfull/elev50/L50e128a.wav"
|
||||
[ 14, 17 ] = wave (0) : "./MITfull/elev50/L50e136a.wav"
|
||||
[ 14, 18 ] = wave (0) : "./MITfull/elev50/L50e144a.wav"
|
||||
[ 14, 19 ] = wave (0) : "./MITfull/elev50/L50e152a.wav"
|
||||
[ 14, 20 ] = wave (0) : "./MITfull/elev50/L50e160a.wav"
|
||||
[ 14, 21 ] = wave (0) : "./MITfull/elev50/L50e168a.wav"
|
||||
[ 14, 22 ] = wave (0) : "./MITfull/elev50/L50e176a.wav"
|
||||
[ 14, 23 ] = wave (0) : "./MITfull/elev50/L50e184a.wav"
|
||||
[ 14, 24 ] = wave (0) : "./MITfull/elev50/L50e192a.wav"
|
||||
[ 14, 25 ] = wave (0) : "./MITfull/elev50/L50e200a.wav"
|
||||
[ 14, 26 ] = wave (0) : "./MITfull/elev50/L50e208a.wav"
|
||||
[ 14, 27 ] = wave (0) : "./MITfull/elev50/L50e216a.wav"
|
||||
[ 14, 28 ] = wave (0) : "./MITfull/elev50/L50e224a.wav"
|
||||
[ 14, 29 ] = wave (0) : "./MITfull/elev50/L50e232a.wav"
|
||||
[ 14, 30 ] = wave (0) : "./MITfull/elev50/L50e240a.wav"
|
||||
[ 14, 31 ] = wave (0) : "./MITfull/elev50/L50e248a.wav"
|
||||
[ 14, 32 ] = wave (0) : "./MITfull/elev50/L50e256a.wav"
|
||||
[ 14, 33 ] = wave (0) : "./MITfull/elev50/L50e264a.wav"
|
||||
[ 14, 34 ] = wave (0) : "./MITfull/elev50/L50e272a.wav"
|
||||
[ 14, 35 ] = wave (0) : "./MITfull/elev50/L50e280a.wav"
|
||||
[ 14, 36 ] = wave (0) : "./MITfull/elev50/L50e288a.wav"
|
||||
[ 14, 37 ] = wave (0) : "./MITfull/elev50/L50e296a.wav"
|
||||
[ 14, 38 ] = wave (0) : "./MITfull/elev50/L50e304a.wav"
|
||||
[ 14, 39 ] = wave (0) : "./MITfull/elev50/L50e312a.wav"
|
||||
[ 14, 40 ] = wave (0) : "./MITfull/elev50/L50e320a.wav"
|
||||
[ 14, 41 ] = wave (0) : "./MITfull/elev50/L50e328a.wav"
|
||||
[ 14, 42 ] = wave (0) : "./MITfull/elev50/L50e336a.wav"
|
||||
[ 14, 43 ] = wave (0) : "./MITfull/elev50/L50e344a.wav"
|
||||
[ 14, 44 ] = wave (0) : "./MITfull/elev50/L50e352a.wav"
|
||||
|
||||
[ 15, 0 ] = wave (0) : "./MITfull/elev60/L60e000a.wav"
|
||||
[ 15, 1 ] = wave (0) : "./MITfull/elev60/L60e010a.wav"
|
||||
[ 15, 2 ] = wave (0) : "./MITfull/elev60/L60e020a.wav"
|
||||
[ 15, 3 ] = wave (0) : "./MITfull/elev60/L60e030a.wav"
|
||||
[ 15, 4 ] = wave (0) : "./MITfull/elev60/L60e040a.wav"
|
||||
[ 15, 5 ] = wave (0) : "./MITfull/elev60/L60e050a.wav"
|
||||
[ 15, 6 ] = wave (0) : "./MITfull/elev60/L60e060a.wav"
|
||||
[ 15, 7 ] = wave (0) : "./MITfull/elev60/L60e070a.wav"
|
||||
[ 15, 8 ] = wave (0) : "./MITfull/elev60/L60e080a.wav"
|
||||
[ 15, 9 ] = wave (0) : "./MITfull/elev60/L60e090a.wav"
|
||||
[ 15, 10 ] = wave (0) : "./MITfull/elev60/L60e100a.wav"
|
||||
[ 15, 11 ] = wave (0) : "./MITfull/elev60/L60e110a.wav"
|
||||
[ 15, 12 ] = wave (0) : "./MITfull/elev60/L60e120a.wav"
|
||||
[ 15, 13 ] = wave (0) : "./MITfull/elev60/L60e130a.wav"
|
||||
[ 15, 14 ] = wave (0) : "./MITfull/elev60/L60e140a.wav"
|
||||
[ 15, 15 ] = wave (0) : "./MITfull/elev60/L60e150a.wav"
|
||||
[ 15, 16 ] = wave (0) : "./MITfull/elev60/L60e160a.wav"
|
||||
[ 15, 17 ] = wave (0) : "./MITfull/elev60/L60e170a.wav"
|
||||
[ 15, 18 ] = wave (0) : "./MITfull/elev60/L60e180a.wav"
|
||||
[ 15, 19 ] = wave (0) : "./MITfull/elev60/L60e190a.wav"
|
||||
[ 15, 20 ] = wave (0) : "./MITfull/elev60/L60e200a.wav"
|
||||
[ 15, 21 ] = wave (0) : "./MITfull/elev60/L60e210a.wav"
|
||||
[ 15, 22 ] = wave (0) : "./MITfull/elev60/L60e220a.wav"
|
||||
[ 15, 23 ] = wave (0) : "./MITfull/elev60/L60e230a.wav"
|
||||
[ 15, 24 ] = wave (0) : "./MITfull/elev60/L60e240a.wav"
|
||||
[ 15, 25 ] = wave (0) : "./MITfull/elev60/L60e250a.wav"
|
||||
[ 15, 26 ] = wave (0) : "./MITfull/elev60/L60e260a.wav"
|
||||
[ 15, 27 ] = wave (0) : "./MITfull/elev60/L60e270a.wav"
|
||||
[ 15, 28 ] = wave (0) : "./MITfull/elev60/L60e280a.wav"
|
||||
[ 15, 29 ] = wave (0) : "./MITfull/elev60/L60e290a.wav"
|
||||
[ 15, 30 ] = wave (0) : "./MITfull/elev60/L60e300a.wav"
|
||||
[ 15, 31 ] = wave (0) : "./MITfull/elev60/L60e310a.wav"
|
||||
[ 15, 32 ] = wave (0) : "./MITfull/elev60/L60e320a.wav"
|
||||
[ 15, 33 ] = wave (0) : "./MITfull/elev60/L60e330a.wav"
|
||||
[ 15, 34 ] = wave (0) : "./MITfull/elev60/L60e340a.wav"
|
||||
[ 15, 35 ] = wave (0) : "./MITfull/elev60/L60e350a.wav"
|
||||
|
||||
[ 16, 0 ] = wave (0) : "./MITfull/elev70/L70e000a.wav"
|
||||
[ 16, 1 ] = wave (0) : "./MITfull/elev70/L70e015a.wav"
|
||||
[ 16, 2 ] = wave (0) : "./MITfull/elev70/L70e030a.wav"
|
||||
[ 16, 3 ] = wave (0) : "./MITfull/elev70/L70e045a.wav"
|
||||
[ 16, 4 ] = wave (0) : "./MITfull/elev70/L70e060a.wav"
|
||||
[ 16, 5 ] = wave (0) : "./MITfull/elev70/L70e075a.wav"
|
||||
[ 16, 6 ] = wave (0) : "./MITfull/elev70/L70e090a.wav"
|
||||
[ 16, 7 ] = wave (0) : "./MITfull/elev70/L70e105a.wav"
|
||||
[ 16, 8 ] = wave (0) : "./MITfull/elev70/L70e120a.wav"
|
||||
[ 16, 9 ] = wave (0) : "./MITfull/elev70/L70e135a.wav"
|
||||
[ 16, 10 ] = wave (0) : "./MITfull/elev70/L70e150a.wav"
|
||||
[ 16, 11 ] = wave (0) : "./MITfull/elev70/L70e165a.wav"
|
||||
[ 16, 12 ] = wave (0) : "./MITfull/elev70/L70e180a.wav"
|
||||
[ 16, 13 ] = wave (0) : "./MITfull/elev70/L70e195a.wav"
|
||||
[ 16, 14 ] = wave (0) : "./MITfull/elev70/L70e210a.wav"
|
||||
[ 16, 15 ] = wave (0) : "./MITfull/elev70/L70e225a.wav"
|
||||
[ 16, 16 ] = wave (0) : "./MITfull/elev70/L70e240a.wav"
|
||||
[ 16, 17 ] = wave (0) : "./MITfull/elev70/L70e255a.wav"
|
||||
[ 16, 18 ] = wave (0) : "./MITfull/elev70/L70e270a.wav"
|
||||
[ 16, 19 ] = wave (0) : "./MITfull/elev70/L70e285a.wav"
|
||||
[ 16, 20 ] = wave (0) : "./MITfull/elev70/L70e300a.wav"
|
||||
[ 16, 21 ] = wave (0) : "./MITfull/elev70/L70e315a.wav"
|
||||
[ 16, 22 ] = wave (0) : "./MITfull/elev70/L70e330a.wav"
|
||||
[ 16, 23 ] = wave (0) : "./MITfull/elev70/L70e345a.wav"
|
||||
|
||||
[ 17, 0 ] = wave (0) : "./MITfull/elev80/L80e000a.wav"
|
||||
[ 17, 1 ] = wave (0) : "./MITfull/elev80/L80e030a.wav"
|
||||
[ 17, 2 ] = wave (0) : "./MITfull/elev80/L80e060a.wav"
|
||||
[ 17, 3 ] = wave (0) : "./MITfull/elev80/L80e090a.wav"
|
||||
[ 17, 4 ] = wave (0) : "./MITfull/elev80/L80e120a.wav"
|
||||
[ 17, 5 ] = wave (0) : "./MITfull/elev80/L80e150a.wav"
|
||||
[ 17, 6 ] = wave (0) : "./MITfull/elev80/L80e180a.wav"
|
||||
[ 17, 7 ] = wave (0) : "./MITfull/elev80/L80e210a.wav"
|
||||
[ 17, 8 ] = wave (0) : "./MITfull/elev80/L80e240a.wav"
|
||||
[ 17, 9 ] = wave (0) : "./MITfull/elev80/L80e270a.wav"
|
||||
[ 17, 10 ] = wave (0) : "./MITfull/elev80/L80e300a.wav"
|
||||
[ 17, 11 ] = wave (0) : "./MITfull/elev80/L80e330a.wav"
|
||||
|
||||
[ 18, 0 ] = wave (0) : "./MITfull/elev90/L90e000a.wav"
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
project(alsoft-config)
|
||||
|
||||
include_directories("${alsoft-config_BINARY_DIR}")
|
||||
|
||||
# Need Qt 4.8.0 or newer for the iconset theme attribute to work
|
||||
find_package(Qt4 4.8.0 COMPONENTS QtCore QtGui)
|
||||
if(QT4_FOUND)
|
||||
include(${QT_USE_FILE})
|
||||
|
||||
set(alsoft-config_SRCS main.cpp
|
||||
mainwindow.cpp
|
||||
)
|
||||
|
||||
set(alsoft-config_UIS mainwindow.ui)
|
||||
QT4_WRAP_UI(UIS ${alsoft-config_UIS})
|
||||
|
||||
set(alsoft-config_MOCS mainwindow.h)
|
||||
QT4_WRAP_CPP(MOCS ${alsoft-config_MOCS})
|
||||
|
||||
add_executable(alsoft-config ${alsoft-config_SRCS} ${UIS} ${RSCS} ${TRS} ${MOCS})
|
||||
target_link_libraries(alsoft-config ${QT_LIBRARIES})
|
||||
set_target_properties(alsoft-config PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${OpenAL_BINARY_DIR})
|
||||
|
||||
install(TARGETS alsoft-config
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION "lib${LIB_SUFFIX}"
|
||||
ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,11 @@
|
||||
#include "mainwindow.h"
|
||||
#include <QApplication>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
MainWindow w;
|
||||
w.show();
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
@@ -0,0 +1,660 @@
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
#include <QSettings>
|
||||
#include <QtGlobal>
|
||||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
|
||||
namespace {
|
||||
static const struct {
|
||||
char backend_name[16];
|
||||
char menu_string[32];
|
||||
} backendMenuList[] = {
|
||||
#ifdef Q_OS_WIN32
|
||||
{ "mmdevapi", "Add MMDevAPI" },
|
||||
{ "dsound", "Add DirectSound" },
|
||||
{ "winmm", "Add Windows Multimedia" },
|
||||
#endif
|
||||
#ifdef Q_OS_MAC
|
||||
{ "core", "Add CoreAudio" },
|
||||
#endif
|
||||
{ "pulse", "Add PulseAudio" },
|
||||
#ifdef Q_OS_UNIX
|
||||
{ "alsa", "Add ALSA" },
|
||||
{ "oss", "Add OSS" },
|
||||
{ "solaris", "Add Solaris" },
|
||||
{ "sndio", "Add SndIO" },
|
||||
{ "qsa", "Add QSA" },
|
||||
#endif
|
||||
{ "port", "Add PortAudio" },
|
||||
{ "opensl", "Add OpenSL" },
|
||||
{ "null", "Add Null Output" },
|
||||
{ "wave", "Add Wave Writer" },
|
||||
{ "", "" }
|
||||
};
|
||||
|
||||
static QString getDefaultConfigName()
|
||||
{
|
||||
#ifdef Q_OS_WIN32
|
||||
static const char fname[] = "alsoft.ini";
|
||||
QByteArray base = qgetenv("AppData");
|
||||
#else
|
||||
static const char fname[] = "alsoft.conf";
|
||||
QByteArray base = qgetenv("XDG_CONFIG_HOME");
|
||||
if(base.isEmpty())
|
||||
{
|
||||
base = qgetenv("HOME");
|
||||
if(base.isEmpty() == false)
|
||||
base += "/.config";
|
||||
}
|
||||
#endif
|
||||
if(base.isEmpty() == false)
|
||||
return base +'/'+ fname;
|
||||
return fname;
|
||||
}
|
||||
|
||||
static QString getBaseDataPath()
|
||||
{
|
||||
#ifdef Q_OS_WIN32
|
||||
QByteArray base = qgetenv("AppData");
|
||||
#else
|
||||
QByteArray base = qgetenv("XDG_DATA_HOME");
|
||||
if(base.isEmpty())
|
||||
{
|
||||
base = qgetenv("HOME");
|
||||
if(!base.isEmpty())
|
||||
base += "/.local/share";
|
||||
}
|
||||
#endif
|
||||
return base;
|
||||
}
|
||||
|
||||
static QStringList getAllDataPaths(QString append=QString())
|
||||
{
|
||||
QStringList list;
|
||||
list.append(getBaseDataPath());
|
||||
#ifdef Q_OS_WIN32
|
||||
// TODO: Common AppData path
|
||||
#else
|
||||
QString paths = qgetenv("XDG_DATA_DIRS");
|
||||
if(paths.isEmpty())
|
||||
paths = "/usr/local/share/:/usr/share/";
|
||||
list += paths.split(QChar(':'), QString::SkipEmptyParts);
|
||||
#endif
|
||||
QStringList::iterator iter = list.begin();
|
||||
while(iter != list.end())
|
||||
{
|
||||
if(iter->isEmpty())
|
||||
iter = list.erase(iter);
|
||||
else
|
||||
{
|
||||
iter->append(append);
|
||||
iter++;
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow),
|
||||
mPeriodSizeValidator(NULL),
|
||||
mPeriodCountValidator(NULL),
|
||||
mSourceCountValidator(NULL),
|
||||
mEffectSlotValidator(NULL),
|
||||
mSourceSendValidator(NULL),
|
||||
mSampleRateValidator(NULL),
|
||||
mReverbBoostValidator(NULL)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
mPeriodSizeValidator = new QIntValidator(64, 8192, this);
|
||||
ui->periodSizeEdit->setValidator(mPeriodSizeValidator);
|
||||
mPeriodCountValidator = new QIntValidator(2, 16, this);
|
||||
ui->periodCountEdit->setValidator(mPeriodCountValidator);
|
||||
|
||||
mSourceCountValidator = new QIntValidator(0, 256, this);
|
||||
ui->srcCountLineEdit->setValidator(mSourceCountValidator);
|
||||
mEffectSlotValidator = new QIntValidator(0, 16, this);
|
||||
ui->effectSlotLineEdit->setValidator(mEffectSlotValidator);
|
||||
mSourceSendValidator = new QIntValidator(0, 4, this);
|
||||
ui->srcSendLineEdit->setValidator(mSourceSendValidator);
|
||||
mSampleRateValidator = new QIntValidator(8000, 192000, this);
|
||||
ui->sampleRateCombo->lineEdit()->setValidator(mSampleRateValidator);
|
||||
|
||||
mReverbBoostValidator = new QDoubleValidator(-12.0, +12.0, 1, this);
|
||||
ui->reverbBoostEdit->setValidator(mReverbBoostValidator);
|
||||
|
||||
connect(ui->actionLoad, SIGNAL(triggered()), this, SLOT(loadConfigFromFile()));
|
||||
connect(ui->actionSave_As, SIGNAL(triggered()), this, SLOT(saveConfigAsFile()));
|
||||
|
||||
connect(ui->applyButton, SIGNAL(clicked()), this, SLOT(saveCurrentConfig()));
|
||||
|
||||
connect(ui->periodSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updatePeriodSizeEdit(int)));
|
||||
connect(ui->periodSizeEdit, SIGNAL(editingFinished()), this, SLOT(updatePeriodSizeSlider()));
|
||||
connect(ui->periodCountSlider, SIGNAL(valueChanged(int)), this, SLOT(updatePeriodCountEdit(int)));
|
||||
connect(ui->periodCountEdit, SIGNAL(editingFinished()), this, SLOT(updatePeriodCountSlider()));
|
||||
|
||||
connect(ui->hrtfAddButton, SIGNAL(clicked()), this, SLOT(addHrtfFile()));
|
||||
connect(ui->hrtfRemoveButton, SIGNAL(clicked()), this, SLOT(removeHrtfFile()));
|
||||
connect(ui->hrtfFileList, SIGNAL(itemSelectionChanged()), this, SLOT(updateHrtfRemoveButton()));
|
||||
|
||||
ui->enabledBackendList->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(ui->enabledBackendList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showEnabledBackendMenu(QPoint)));
|
||||
|
||||
ui->disabledBackendList->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(ui->disabledBackendList, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showDisabledBackendMenu(QPoint)));
|
||||
|
||||
connect(ui->reverbBoostSlider, SIGNAL(valueChanged(int)), this, SLOT(updateReverbBoostEdit(int)));
|
||||
connect(ui->reverbBoostEdit, SIGNAL(textEdited(QString)), this, SLOT(updateReverbBoostSlider(QString)));
|
||||
|
||||
loadConfig(getDefaultConfigName());
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete ui;
|
||||
delete mPeriodSizeValidator;
|
||||
delete mPeriodCountValidator;
|
||||
delete mSourceCountValidator;
|
||||
delete mEffectSlotValidator;
|
||||
delete mSourceSendValidator;
|
||||
delete mSampleRateValidator;
|
||||
delete mReverbBoostValidator;
|
||||
}
|
||||
|
||||
void MainWindow::loadConfigFromFile()
|
||||
{
|
||||
QString fname = QFileDialog::getOpenFileName(this, tr("Select Files"));
|
||||
if(fname.isEmpty() == false)
|
||||
loadConfig(fname);
|
||||
}
|
||||
|
||||
void MainWindow::loadConfig(const QString &fname)
|
||||
{
|
||||
QSettings settings(fname, QSettings::IniFormat);
|
||||
|
||||
QString sampletype = settings.value("sample-type").toString();
|
||||
ui->sampleFormatCombo->setCurrentIndex(0);
|
||||
if(sampletype.isEmpty() == false)
|
||||
{
|
||||
for(int i = 1;i < ui->sampleFormatCombo->count();i++)
|
||||
{
|
||||
QString item = ui->sampleFormatCombo->itemText(i);
|
||||
if(item.startsWith(sampletype))
|
||||
{
|
||||
ui->sampleFormatCombo->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QString channelconfig = settings.value("channels").toString();
|
||||
ui->channelConfigCombo->setCurrentIndex(0);
|
||||
if(channelconfig.isEmpty() == false)
|
||||
{
|
||||
for(int i = 1;i < ui->channelConfigCombo->count();i++)
|
||||
{
|
||||
QString item = ui->channelConfigCombo->itemText(i);
|
||||
if(item.startsWith(channelconfig))
|
||||
{
|
||||
ui->channelConfigCombo->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QString srate = settings.value("frequency").toString();
|
||||
if(srate.isEmpty())
|
||||
ui->sampleRateCombo->setCurrentIndex(0);
|
||||
else
|
||||
{
|
||||
ui->sampleRateCombo->lineEdit()->clear();
|
||||
ui->sampleRateCombo->lineEdit()->insert(srate);
|
||||
}
|
||||
|
||||
ui->srcCountLineEdit->clear();
|
||||
ui->srcCountLineEdit->insert(settings.value("sources").toString());
|
||||
ui->effectSlotLineEdit->clear();
|
||||
ui->effectSlotLineEdit->insert(settings.value("slots").toString());
|
||||
ui->srcSendLineEdit->clear();
|
||||
ui->srcSendLineEdit->insert(settings.value("sends").toString());
|
||||
|
||||
QString resampler = settings.value("resampler").toString().trimmed();
|
||||
if(resampler.isEmpty())
|
||||
ui->resamplerComboBox->setCurrentIndex(0);
|
||||
else
|
||||
{
|
||||
for(int i = 1;i < ui->resamplerComboBox->count();i++)
|
||||
{
|
||||
QString item = ui->resamplerComboBox->itemText(i);
|
||||
int end = item.indexOf(' ');
|
||||
if(end < 0) end = item.size();
|
||||
if(resampler.size() == end && resampler.compare(item.leftRef(end), Qt::CaseInsensitive) == 0)
|
||||
{
|
||||
ui->resamplerComboBox->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int periodsize = settings.value("period_size").toInt();
|
||||
ui->periodSizeEdit->clear();
|
||||
if(periodsize >= 64)
|
||||
{
|
||||
ui->periodSizeEdit->insert(QString::number(periodsize));
|
||||
updatePeriodSizeSlider();
|
||||
}
|
||||
|
||||
int periodcount = settings.value("periods").toInt();
|
||||
ui->periodCountEdit->clear();
|
||||
if(periodcount >= 2)
|
||||
{
|
||||
ui->periodCountEdit->insert(QString::number(periodcount));
|
||||
updatePeriodCountSlider();
|
||||
}
|
||||
|
||||
QStringList disabledCpuExts = settings.value("disable-cpu-exts").toStringList();
|
||||
if(disabledCpuExts.size() == 1)
|
||||
disabledCpuExts = disabledCpuExts[0].split(QChar(','));
|
||||
std::transform(disabledCpuExts.begin(), disabledCpuExts.end(),
|
||||
disabledCpuExts.begin(), std::mem_fun_ref(&QString::trimmed));
|
||||
ui->enableSSECheckBox->setChecked(!disabledCpuExts.contains("sse", Qt::CaseInsensitive));
|
||||
ui->enableSSE2CheckBox->setChecked(!disabledCpuExts.contains("sse2", Qt::CaseInsensitive));
|
||||
ui->enableSSE41CheckBox->setChecked(!disabledCpuExts.contains("sse4.1", Qt::CaseInsensitive));
|
||||
ui->enableNeonCheckBox->setChecked(!disabledCpuExts.contains("neon", Qt::CaseInsensitive));
|
||||
|
||||
if(settings.value("hrtf").toString() == QString())
|
||||
ui->hrtfEnableButton->setChecked(true);
|
||||
else
|
||||
{
|
||||
if(settings.value("hrtf", true).toBool())
|
||||
ui->hrtfForceButton->setChecked(true);
|
||||
else
|
||||
ui->hrtfDisableButton->setChecked(true);
|
||||
}
|
||||
|
||||
QStringList hrtf_tables = settings.value("hrtf_tables").toStringList();
|
||||
if(hrtf_tables.size() == 1)
|
||||
hrtf_tables = hrtf_tables[0].split(QChar(','));
|
||||
std::transform(hrtf_tables.begin(), hrtf_tables.end(),
|
||||
hrtf_tables.begin(), std::mem_fun_ref(&QString::trimmed));
|
||||
ui->hrtfFileList->clear();
|
||||
ui->hrtfFileList->addItems(hrtf_tables);
|
||||
updateHrtfRemoveButton();
|
||||
|
||||
ui->enabledBackendList->clear();
|
||||
ui->disabledBackendList->clear();
|
||||
QStringList drivers = settings.value("drivers").toStringList();
|
||||
if(drivers.size() == 0)
|
||||
ui->backendCheckBox->setChecked(true);
|
||||
else
|
||||
{
|
||||
if(drivers.size() == 1)
|
||||
drivers = drivers[0].split(QChar(','));
|
||||
std::transform(drivers.begin(), drivers.end(),
|
||||
drivers.begin(), std::mem_fun_ref(&QString::trimmed));
|
||||
|
||||
bool lastWasEmpty = false;
|
||||
foreach(const QString &backend, drivers)
|
||||
{
|
||||
lastWasEmpty = backend.isEmpty();
|
||||
if(!backend.startsWith(QChar('-')) && !lastWasEmpty)
|
||||
ui->enabledBackendList->addItem(backend);
|
||||
else if(backend.size() > 1)
|
||||
ui->disabledBackendList->addItem(backend.right(backend.size()-1));
|
||||
}
|
||||
ui->backendCheckBox->setChecked(lastWasEmpty);
|
||||
}
|
||||
|
||||
QString defaultreverb = settings.value("default-reverb").toString().toLower();
|
||||
ui->defaultReverbComboBox->setCurrentIndex(0);
|
||||
if(defaultreverb.isEmpty() == false)
|
||||
{
|
||||
for(int i = 0;i < ui->defaultReverbComboBox->count();i++)
|
||||
{
|
||||
if(defaultreverb.compare(ui->defaultReverbComboBox->itemText(i).toLower()) == 0)
|
||||
{
|
||||
ui->defaultReverbComboBox->setCurrentIndex(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ui->emulateEaxCheckBox->setChecked(settings.value("reverb/emulate-eax", false).toBool());
|
||||
ui->reverbBoostEdit->clear();
|
||||
ui->reverbBoostEdit->insert(settings.value("reverb/boost").toString());
|
||||
|
||||
QStringList excludefx = settings.value("excludefx").toStringList();
|
||||
if(excludefx.size() == 1)
|
||||
excludefx = excludefx[0].split(QChar(','));
|
||||
std::transform(excludefx.begin(), excludefx.end(),
|
||||
excludefx.begin(), std::mem_fun_ref(&QString::trimmed));
|
||||
ui->enableEaxReverbCheck->setChecked(!excludefx.contains("eaxreverb", Qt::CaseInsensitive));
|
||||
ui->enableStdReverbCheck->setChecked(!excludefx.contains("reverb", Qt::CaseInsensitive));
|
||||
ui->enableChorusCheck->setChecked(!excludefx.contains("chorus", Qt::CaseInsensitive));
|
||||
ui->enableCompressorCheck->setChecked(!excludefx.contains("compressor", Qt::CaseInsensitive));
|
||||
ui->enableDistortionCheck->setChecked(!excludefx.contains("distortion", Qt::CaseInsensitive));
|
||||
ui->enableEchoCheck->setChecked(!excludefx.contains("echo", Qt::CaseInsensitive));
|
||||
ui->enableEqualizerCheck->setChecked(!excludefx.contains("equalizer", Qt::CaseInsensitive));
|
||||
ui->enableFlangerCheck->setChecked(!excludefx.contains("flanger", Qt::CaseInsensitive));
|
||||
ui->enableModulatorCheck->setChecked(!excludefx.contains("modulator", Qt::CaseInsensitive));
|
||||
ui->enableDedicatedCheck->setChecked(!excludefx.contains("dedicated", Qt::CaseInsensitive));
|
||||
}
|
||||
|
||||
void MainWindow::saveCurrentConfig()
|
||||
{
|
||||
saveConfig(getDefaultConfigName());
|
||||
QMessageBox::information(this, tr("Information"),
|
||||
tr("Applications using OpenAL need to be restarted for changes to take effect."));
|
||||
}
|
||||
|
||||
void MainWindow::saveConfigAsFile()
|
||||
{
|
||||
QString fname = QFileDialog::getOpenFileName(this, tr("Select Files"));
|
||||
if(fname.isEmpty() == false)
|
||||
saveConfig(fname);
|
||||
}
|
||||
|
||||
void MainWindow::saveConfig(const QString &fname) const
|
||||
{
|
||||
QSettings settings(fname, QSettings::IniFormat);
|
||||
|
||||
/* HACK: Compound any stringlist values into a comma-separated string. */
|
||||
QStringList allkeys = settings.allKeys();
|
||||
foreach(const QString &key, allkeys)
|
||||
{
|
||||
QStringList vals = settings.value(key).toStringList();
|
||||
if(vals.size() > 1)
|
||||
settings.setValue(key, vals.join(QChar(',')));
|
||||
}
|
||||
|
||||
QString str = ui->sampleFormatCombo->currentText();
|
||||
str.truncate(str.indexOf('-'));
|
||||
settings.setValue("sample-type", str.trimmed());
|
||||
|
||||
str = ui->channelConfigCombo->currentText();
|
||||
str.truncate(str.indexOf('-'));
|
||||
settings.setValue("channels", str.trimmed());
|
||||
|
||||
uint rate = ui->sampleRateCombo->currentText().toUInt();
|
||||
if(rate == 0)
|
||||
settings.setValue("frequency", QString());
|
||||
else
|
||||
settings.setValue("frequency", rate);
|
||||
|
||||
settings.setValue("period_size", ui->periodSizeEdit->text());
|
||||
settings.setValue("periods", ui->periodCountEdit->text());
|
||||
|
||||
settings.setValue("sources", ui->srcCountLineEdit->text());
|
||||
settings.setValue("slots", ui->effectSlotLineEdit->text());
|
||||
|
||||
if(ui->resamplerComboBox->currentIndex() == 0)
|
||||
settings.setValue("resampler", QString());
|
||||
else
|
||||
{
|
||||
str = ui->resamplerComboBox->currentText();
|
||||
settings.setValue("resampler", str.split(' ').first().toLower());
|
||||
}
|
||||
|
||||
QStringList strlist;
|
||||
if(!ui->enableSSECheckBox->isChecked())
|
||||
strlist.append("sse");
|
||||
if(!ui->enableSSE2CheckBox->isChecked())
|
||||
strlist.append("sse2");
|
||||
if(!ui->enableSSE41CheckBox->isChecked())
|
||||
strlist.append("sse4.1");
|
||||
if(!ui->enableNeonCheckBox->isChecked())
|
||||
strlist.append("neon");
|
||||
settings.setValue("disable-cpu-exts", strlist.join(QChar(',')));
|
||||
|
||||
if(ui->hrtfForceButton->isChecked())
|
||||
settings.setValue("hrtf", "true");
|
||||
else if(ui->hrtfDisableButton->isChecked())
|
||||
settings.setValue("hrtf", "false");
|
||||
else
|
||||
settings.setValue("hrtf", QString());
|
||||
|
||||
strlist.clear();
|
||||
QList<QListWidgetItem*> items = ui->hrtfFileList->findItems("*", Qt::MatchWildcard);
|
||||
foreach(const QListWidgetItem *item, items)
|
||||
strlist.append(item->text());
|
||||
settings.setValue("hrtf_tables", strlist.join(QChar(',')));
|
||||
|
||||
strlist.clear();
|
||||
items = ui->enabledBackendList->findItems("*", Qt::MatchWildcard);
|
||||
foreach(const QListWidgetItem *item, items)
|
||||
strlist.append(item->text());
|
||||
items = ui->disabledBackendList->findItems("*", Qt::MatchWildcard);
|
||||
foreach(const QListWidgetItem *item, items)
|
||||
strlist.append(QChar('-')+item->text());
|
||||
if(strlist.size() == 0 && !ui->backendCheckBox->isChecked())
|
||||
strlist.append("-all");
|
||||
else if(ui->backendCheckBox->isChecked())
|
||||
strlist.append(QString());
|
||||
settings.setValue("drivers", strlist.join(QChar(',')));
|
||||
|
||||
// TODO: Remove check when we can properly match global values.
|
||||
if(ui->defaultReverbComboBox->currentIndex() == 0)
|
||||
settings.setValue("default-reverb", QString());
|
||||
else
|
||||
{
|
||||
str = ui->defaultReverbComboBox->currentText().toLower();
|
||||
settings.setValue("default-reverb", str);
|
||||
}
|
||||
|
||||
if(ui->emulateEaxCheckBox->isChecked())
|
||||
settings.setValue("reverb/emulate-eax", "true");
|
||||
else
|
||||
settings.setValue("reverb/emulate-eax", QString()/*"false"*/);
|
||||
|
||||
// TODO: Remove check when we can properly match global values.
|
||||
if(ui->reverbBoostSlider->sliderPosition() == 0)
|
||||
settings.setValue("reverb/boost", QString());
|
||||
else
|
||||
settings.setValue("reverb/boost", ui->reverbBoostEdit->text());
|
||||
|
||||
strlist.clear();
|
||||
if(!ui->enableEaxReverbCheck->isChecked())
|
||||
strlist.append("eaxreverb");
|
||||
if(!ui->enableStdReverbCheck->isChecked())
|
||||
strlist.append("reverb");
|
||||
if(!ui->enableChorusCheck->isChecked())
|
||||
strlist.append("chorus");
|
||||
if(!ui->enableDistortionCheck->isChecked())
|
||||
strlist.append("distortion");
|
||||
if(!ui->enableCompressorCheck->isChecked())
|
||||
strlist.append("compressor");
|
||||
if(!ui->enableEchoCheck->isChecked())
|
||||
strlist.append("echo");
|
||||
if(!ui->enableEqualizerCheck->isChecked())
|
||||
strlist.append("equalizer");
|
||||
if(!ui->enableFlangerCheck->isChecked())
|
||||
strlist.append("flanger");
|
||||
if(!ui->enableModulatorCheck->isChecked())
|
||||
strlist.append("modulator");
|
||||
if(!ui->enableDedicatedCheck->isChecked())
|
||||
strlist.append("dedicated");
|
||||
settings.setValue("excludefx", strlist.join(QChar(',')));
|
||||
|
||||
/* Remove empty keys
|
||||
* FIXME: Should only remove keys whose value matches the globally-specified value.
|
||||
*/
|
||||
allkeys = settings.allKeys();
|
||||
foreach(const QString &key, allkeys)
|
||||
{
|
||||
str = settings.value(key).toString();
|
||||
if(str == QString())
|
||||
settings.remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::updatePeriodSizeEdit(int size)
|
||||
{
|
||||
ui->periodSizeEdit->clear();
|
||||
if(size >= 64)
|
||||
{
|
||||
size = (size+32)&~0x3f;
|
||||
ui->periodSizeEdit->insert(QString::number(size));
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::updatePeriodSizeSlider()
|
||||
{
|
||||
int pos = ui->periodSizeEdit->text().toInt();
|
||||
if(pos >= 64)
|
||||
{
|
||||
if(pos > 8192)
|
||||
pos = 8192;
|
||||
ui->periodSizeSlider->setSliderPosition(pos);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::updatePeriodCountEdit(int count)
|
||||
{
|
||||
ui->periodCountEdit->clear();
|
||||
if(count >= 2)
|
||||
ui->periodCountEdit->insert(QString::number(count));
|
||||
}
|
||||
|
||||
void MainWindow::updatePeriodCountSlider()
|
||||
{
|
||||
int pos = ui->periodCountEdit->text().toInt();
|
||||
if(pos < 2)
|
||||
pos = 0;
|
||||
else if(pos > 16)
|
||||
pos = 16;
|
||||
ui->periodCountSlider->setSliderPosition(pos);
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::addHrtfFile()
|
||||
{
|
||||
const QStringList datapaths = getAllDataPaths("/openal/hrtf");
|
||||
QStringList fnames = QFileDialog::getOpenFileNames(this, tr("Select Files"),
|
||||
datapaths.empty() ? QString() : datapaths[0],
|
||||
"HRTF Datasets(*.mhr);;All Files(*.*)");
|
||||
if(fnames.isEmpty() == false)
|
||||
{
|
||||
for(QStringList::iterator iter = fnames.begin();iter != fnames.end();iter++)
|
||||
{
|
||||
QStringList::const_iterator path = datapaths.constBegin();
|
||||
for(;path != datapaths.constEnd();path++)
|
||||
{
|
||||
QDir hrtfdir(*path);
|
||||
if(!hrtfdir.isAbsolute())
|
||||
continue;
|
||||
|
||||
const QString relname = hrtfdir.relativeFilePath(*iter);
|
||||
if(!relname.startsWith(".."))
|
||||
{
|
||||
// If filename is within this path, use the relative pathname
|
||||
ui->hrtfFileList->addItem(relname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(path == datapaths.constEnd())
|
||||
{
|
||||
// Filename is not within any data path, use the absolute pathname
|
||||
ui->hrtfFileList->addItem(*iter);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::removeHrtfFile()
|
||||
{
|
||||
QList<QListWidgetItem*> selected = ui->hrtfFileList->selectedItems();
|
||||
foreach(QListWidgetItem *item, selected)
|
||||
delete item;
|
||||
}
|
||||
|
||||
void MainWindow::updateHrtfRemoveButton()
|
||||
{
|
||||
ui->hrtfRemoveButton->setEnabled(ui->hrtfFileList->selectedItems().size() != 0);
|
||||
}
|
||||
|
||||
void MainWindow::showEnabledBackendMenu(QPoint pt)
|
||||
{
|
||||
QMap<QAction*,QString> actionMap;
|
||||
|
||||
pt = ui->enabledBackendList->mapToGlobal(pt);
|
||||
|
||||
QMenu ctxmenu;
|
||||
QAction *removeAction = ctxmenu.addAction(QIcon::fromTheme("list-remove"), "Remove");
|
||||
if(ui->enabledBackendList->selectedItems().size() == 0)
|
||||
removeAction->setEnabled(false);
|
||||
ctxmenu.addSeparator();
|
||||
for(size_t i = 0;backendMenuList[i].backend_name[0];i++)
|
||||
{
|
||||
QAction *action = ctxmenu.addAction(backendMenuList[i].menu_string);
|
||||
actionMap[action] = backendMenuList[i].backend_name;
|
||||
if(ui->enabledBackendList->findItems(backendMenuList[i].backend_name, Qt::MatchFixedString).size() != 0 ||
|
||||
ui->disabledBackendList->findItems(backendMenuList[i].backend_name, Qt::MatchFixedString).size() != 0)
|
||||
action->setEnabled(false);
|
||||
}
|
||||
|
||||
QAction *gotAction = ctxmenu.exec(pt);
|
||||
if(gotAction == removeAction)
|
||||
{
|
||||
QList<QListWidgetItem*> selected = ui->enabledBackendList->selectedItems();
|
||||
foreach(QListWidgetItem *item, selected)
|
||||
delete item;
|
||||
}
|
||||
else if(gotAction != NULL)
|
||||
{
|
||||
QMap<QAction*,QString>::const_iterator iter = actionMap.find(gotAction);
|
||||
if(iter != actionMap.end())
|
||||
ui->enabledBackendList->addItem(iter.value());
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::showDisabledBackendMenu(QPoint pt)
|
||||
{
|
||||
QMap<QAction*,QString> actionMap;
|
||||
|
||||
pt = ui->disabledBackendList->mapToGlobal(pt);
|
||||
|
||||
QMenu ctxmenu;
|
||||
QAction *removeAction = ctxmenu.addAction(QIcon::fromTheme("list-remove"), "Remove");
|
||||
if(ui->disabledBackendList->selectedItems().size() == 0)
|
||||
removeAction->setEnabled(false);
|
||||
ctxmenu.addSeparator();
|
||||
for(size_t i = 0;backendMenuList[i].backend_name[0];i++)
|
||||
{
|
||||
QAction *action = ctxmenu.addAction(backendMenuList[i].menu_string);
|
||||
actionMap[action] = backendMenuList[i].backend_name;
|
||||
if(ui->disabledBackendList->findItems(backendMenuList[i].backend_name, Qt::MatchFixedString).size() != 0 ||
|
||||
ui->enabledBackendList->findItems(backendMenuList[i].backend_name, Qt::MatchFixedString).size() != 0)
|
||||
action->setEnabled(false);
|
||||
}
|
||||
|
||||
QAction *gotAction = ctxmenu.exec(pt);
|
||||
if(gotAction == removeAction)
|
||||
{
|
||||
QList<QListWidgetItem*> selected = ui->disabledBackendList->selectedItems();
|
||||
foreach(QListWidgetItem *item, selected)
|
||||
delete item;
|
||||
}
|
||||
else if(gotAction != NULL)
|
||||
{
|
||||
QMap<QAction*,QString>::const_iterator iter = actionMap.find(gotAction);
|
||||
if(iter != actionMap.end())
|
||||
ui->disabledBackendList->addItem(iter.value());
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::updateReverbBoostEdit(int value)
|
||||
{
|
||||
ui->reverbBoostEdit->clear();
|
||||
if(value != 0)
|
||||
ui->reverbBoostEdit->insert(QString::number(value/10.0, 'f', 1));
|
||||
}
|
||||
|
||||
void MainWindow::updateReverbBoostSlider(QString value)
|
||||
{
|
||||
int pos = int(value.toFloat()*10.0f);
|
||||
ui->reverbBoostSlider->setSliderPosition(pos);
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QListWidget>
|
||||
|
||||
namespace Ui {
|
||||
class MainWindow;
|
||||
}
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(QWidget *parent = 0);
|
||||
~MainWindow();
|
||||
|
||||
private slots:
|
||||
void saveCurrentConfig();
|
||||
|
||||
void saveConfigAsFile();
|
||||
void loadConfigFromFile();
|
||||
|
||||
void updatePeriodSizeEdit(int size);
|
||||
void updatePeriodSizeSlider();
|
||||
void updatePeriodCountEdit(int size);
|
||||
void updatePeriodCountSlider();
|
||||
|
||||
void addHrtfFile();
|
||||
void removeHrtfFile();
|
||||
|
||||
void updateHrtfRemoveButton();
|
||||
|
||||
void showEnabledBackendMenu(QPoint pt);
|
||||
void showDisabledBackendMenu(QPoint pt);
|
||||
|
||||
void updateReverbBoostEdit(int size);
|
||||
void updateReverbBoostSlider(QString value);
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
|
||||
QValidator *mPeriodSizeValidator;
|
||||
QValidator *mPeriodCountValidator;
|
||||
QValidator *mSourceCountValidator;
|
||||
QValidator *mEffectSlotValidator;
|
||||
QValidator *mSourceSendValidator;
|
||||
QValidator *mSampleRateValidator;
|
||||
QValidator *mReverbBoostValidator;
|
||||
|
||||
void loadConfig(const QString &fname);
|
||||
void saveConfig(const QString &fname) const;
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,309 @@
|
||||
/*
|
||||
* OpenAL Info Utility
|
||||
*
|
||||
* Copyright (c) 2010 by Chris Robinson <chris.kcat@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "AL/alc.h"
|
||||
#include "AL/al.h"
|
||||
#include "AL/alext.h"
|
||||
|
||||
#ifndef ALC_ENUMERATE_ALL_EXT
|
||||
#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
|
||||
#define ALC_ALL_DEVICES_SPECIFIER 0x1013
|
||||
#endif
|
||||
|
||||
#ifndef ALC_EXT_EFX
|
||||
#define ALC_EFX_MAJOR_VERSION 0x20001
|
||||
#define ALC_EFX_MINOR_VERSION 0x20002
|
||||
#define ALC_MAX_AUXILIARY_SENDS 0x20003
|
||||
#endif
|
||||
|
||||
|
||||
#define MAX_WIDTH 80
|
||||
|
||||
static void printList(const char *list, char separator)
|
||||
{
|
||||
size_t col = MAX_WIDTH, len;
|
||||
const char *indent = " ";
|
||||
const char *next;
|
||||
|
||||
if(!list || *list == '\0')
|
||||
{
|
||||
fprintf(stdout, "\n%s!!! none !!!\n", indent);
|
||||
return;
|
||||
}
|
||||
|
||||
do {
|
||||
next = strchr(list, separator);
|
||||
if(next)
|
||||
{
|
||||
len = next-list;
|
||||
do {
|
||||
next++;
|
||||
} while(*next == separator);
|
||||
}
|
||||
else
|
||||
len = strlen(list);
|
||||
|
||||
if(len + col + 2 >= MAX_WIDTH)
|
||||
{
|
||||
fprintf(stdout, "\n%s", indent);
|
||||
col = strlen(indent);
|
||||
}
|
||||
else
|
||||
{
|
||||
fputc(' ', stdout);
|
||||
col++;
|
||||
}
|
||||
|
||||
len = fwrite(list, 1, len, stdout);
|
||||
col += len;
|
||||
|
||||
if(!next || *next == '\0')
|
||||
break;
|
||||
fputc(',', stdout);
|
||||
col++;
|
||||
|
||||
list = next;
|
||||
} while(1);
|
||||
fputc('\n', stdout);
|
||||
}
|
||||
|
||||
static void printDeviceList(const char *list)
|
||||
{
|
||||
if(!list || *list == '\0')
|
||||
printf(" !!! none !!!\n");
|
||||
else do {
|
||||
printf(" %s\n", list);
|
||||
list += strlen(list) + 1;
|
||||
} while(*list != '\0');
|
||||
}
|
||||
|
||||
|
||||
static ALenum checkALErrors(int linenum)
|
||||
{
|
||||
ALenum err = alGetError();
|
||||
if(err != AL_NO_ERROR)
|
||||
printf("OpenAL Error: %s (0x%x), @ %d\n", alGetString(err), err, linenum);
|
||||
return err;
|
||||
}
|
||||
#define checkALErrors() checkALErrors(__LINE__)
|
||||
|
||||
static ALCenum checkALCErrors(ALCdevice *device, int linenum)
|
||||
{
|
||||
ALCenum err = alcGetError(device);
|
||||
if(err != ALC_NO_ERROR)
|
||||
printf("ALC Error: %s (0x%x), @ %d\n", alcGetString(device, err), err, linenum);
|
||||
return err;
|
||||
}
|
||||
#define checkALCErrors(x) checkALCErrors((x),__LINE__)
|
||||
|
||||
|
||||
static void printALCInfo(ALCdevice *device)
|
||||
{
|
||||
ALCint major, minor;
|
||||
|
||||
if(device)
|
||||
{
|
||||
const ALCchar *devname = NULL;
|
||||
printf("\n");
|
||||
if(alcIsExtensionPresent(device, "ALC_ENUMERATE_ALL_EXT") != AL_FALSE)
|
||||
devname = alcGetString(device, ALC_ALL_DEVICES_SPECIFIER);
|
||||
if(checkALCErrors(device) != ALC_NO_ERROR || !devname)
|
||||
devname = alcGetString(device, ALC_DEVICE_SPECIFIER);
|
||||
printf("** Info for device \"%s\" **\n", devname);
|
||||
}
|
||||
alcGetIntegerv(device, ALC_MAJOR_VERSION, 1, &major);
|
||||
alcGetIntegerv(device, ALC_MINOR_VERSION, 1, &minor);
|
||||
if(checkALCErrors(device) == ALC_NO_ERROR)
|
||||
printf("ALC version: %d.%d\n", major, minor);
|
||||
if(device)
|
||||
{
|
||||
printf("ALC extensions:");
|
||||
printList(alcGetString(device, ALC_EXTENSIONS), ' ');
|
||||
checkALCErrors(device);
|
||||
}
|
||||
}
|
||||
|
||||
static void printALInfo(void)
|
||||
{
|
||||
printf("OpenAL vendor string: %s\n", alGetString(AL_VENDOR));
|
||||
printf("OpenAL renderer string: %s\n", alGetString(AL_RENDERER));
|
||||
printf("OpenAL version string: %s\n", alGetString(AL_VERSION));
|
||||
printf("OpenAL extensions:");
|
||||
printList(alGetString(AL_EXTENSIONS), ' ');
|
||||
checkALErrors();
|
||||
}
|
||||
|
||||
static void printEFXInfo(ALCdevice *device)
|
||||
{
|
||||
ALCint major, minor, sends;
|
||||
static const ALchar filters[][32] = {
|
||||
"AL_FILTER_LOWPASS", "AL_FILTER_HIGHPASS", "AL_FILTER_BANDPASS", ""
|
||||
};
|
||||
char filterNames[] = "Low-pass,High-pass,Band-pass,";
|
||||
static const ALchar effects[][32] = {
|
||||
"AL_EFFECT_EAXREVERB", "AL_EFFECT_REVERB", "AL_EFFECT_CHORUS",
|
||||
"AL_EFFECT_DISTORTION", "AL_EFFECT_ECHO", "AL_EFFECT_FLANGER",
|
||||
"AL_EFFECT_FREQUENCY_SHIFTER", "AL_EFFECT_VOCAL_MORPHER",
|
||||
"AL_EFFECT_PITCH_SHIFTER", "AL_EFFECT_RING_MODULATOR",
|
||||
"AL_EFFECT_AUTOWAH", "AL_EFFECT_COMPRESSOR", "AL_EFFECT_EQUALIZER", ""
|
||||
};
|
||||
static const ALchar dedeffects[][64] = {
|
||||
"AL_EFFECT_DEDICATED_DIALOGUE",
|
||||
"AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT", ""
|
||||
};
|
||||
char effectNames[] = "EAX Reverb,Reverb,Chorus,Distortion,Echo,Flanger,"
|
||||
"Frequency Shifter,Vocal Morpher,Pitch Shifter,"
|
||||
"Ring Modulator,Autowah,Compressor,Equalizer,"
|
||||
"Dedicated Dialog,Dedicated LFE,";
|
||||
char *current;
|
||||
int i;
|
||||
|
||||
if(alcIsExtensionPresent(device, "ALC_EXT_EFX") == AL_FALSE)
|
||||
{
|
||||
printf("EFX not available\n");
|
||||
return;
|
||||
}
|
||||
|
||||
alcGetIntegerv(device, ALC_EFX_MAJOR_VERSION, 1, &major);
|
||||
alcGetIntegerv(device, ALC_EFX_MINOR_VERSION, 1, &minor);
|
||||
if(checkALCErrors(device) == ALC_NO_ERROR)
|
||||
printf("EFX version: %d.%d\n", major, minor);
|
||||
alcGetIntegerv(device, ALC_MAX_AUXILIARY_SENDS, 1, &sends);
|
||||
if(checkALCErrors(device) == ALC_NO_ERROR)
|
||||
printf("Max auxiliary sends: %d\n", sends);
|
||||
|
||||
current = filterNames;
|
||||
for(i = 0;filters[i][0];i++)
|
||||
{
|
||||
char *next = strchr(current, ',');
|
||||
ALenum val;
|
||||
|
||||
val = alGetEnumValue(filters[i]);
|
||||
if(alGetError() != AL_NO_ERROR || val == 0 || val == -1)
|
||||
memmove(current, next+1, strlen(next));
|
||||
else
|
||||
current = next+1;
|
||||
}
|
||||
printf("Supported filters:");
|
||||
printList(filterNames, ',');
|
||||
|
||||
current = effectNames;
|
||||
for(i = 0;effects[i][0];i++)
|
||||
{
|
||||
char *next = strchr(current, ',');
|
||||
ALenum val;
|
||||
|
||||
val = alGetEnumValue(effects[i]);
|
||||
if(alGetError() != AL_NO_ERROR || val == 0 || val == -1)
|
||||
memmove(current, next+1, strlen(next));
|
||||
else
|
||||
current = next+1;
|
||||
}
|
||||
if(alcIsExtensionPresent(device, "ALC_EXT_DEDICATED"))
|
||||
{
|
||||
for(i = 0;dedeffects[i][0];i++)
|
||||
{
|
||||
char *next = strchr(current, ',');
|
||||
ALenum val;
|
||||
|
||||
val = alGetEnumValue(dedeffects[i]);
|
||||
if(alGetError() != AL_NO_ERROR || val == 0 || val == -1)
|
||||
memmove(current, next+1, strlen(next));
|
||||
else
|
||||
current = next+1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = 0;dedeffects[i][0];i++)
|
||||
{
|
||||
char *next = strchr(current, ',');
|
||||
memmove(current, next+1, strlen(next));
|
||||
}
|
||||
}
|
||||
printf("Supported effects:");
|
||||
printList(effectNames, ',');
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
ALCdevice *device;
|
||||
ALCcontext *context;
|
||||
|
||||
if(argc > 1 && (strcmp(argv[1], "--help") == 0 ||
|
||||
strcmp(argv[1], "-h") == 0))
|
||||
{
|
||||
printf("Usage: %s [playback device]\n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
printf("Available playback devices:\n");
|
||||
if(alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT") != AL_FALSE)
|
||||
printDeviceList(alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER));
|
||||
else
|
||||
printDeviceList(alcGetString(NULL, ALC_DEVICE_SPECIFIER));
|
||||
printf("Available capture devices:\n");
|
||||
printDeviceList(alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER));
|
||||
|
||||
if(alcIsExtensionPresent(NULL, "ALC_ENUMERATE_ALL_EXT") != AL_FALSE)
|
||||
printf("Default playback device: %s\n",
|
||||
alcGetString(NULL, ALC_DEFAULT_ALL_DEVICES_SPECIFIER));
|
||||
else
|
||||
printf("Default playback device: %s\n",
|
||||
alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER));
|
||||
printf("Default capture device: %s\n",
|
||||
alcGetString(NULL, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER));
|
||||
|
||||
printALCInfo(NULL);
|
||||
|
||||
device = alcOpenDevice((argc>1) ? argv[1] : NULL);
|
||||
if(!device)
|
||||
{
|
||||
printf("\n!!! Failed to open %s !!!\n\n", ((argc>1) ? argv[1] : "default device"));
|
||||
return 1;
|
||||
}
|
||||
printALCInfo(device);
|
||||
|
||||
context = alcCreateContext(device, NULL);
|
||||
if(!context || alcMakeContextCurrent(context) == ALC_FALSE)
|
||||
{
|
||||
if(context)
|
||||
alcDestroyContext(context);
|
||||
alcCloseDevice(device);
|
||||
printf("\n!!! Failed to set a context !!!\n\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
printALInfo();
|
||||
printEFXInfo(device);
|
||||
|
||||
alcMakeContextCurrent(NULL);
|
||||
alcDestroyContext(context);
|
||||
alcCloseDevice(device);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user