fmod 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/.travis.yml +5 -0
- data/.yardopts +2 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +21 -0
- data/README.md +96 -0
- data/Rakefile +1 -0
- data/bin/console +28 -0
- data/bin/setup +8 -0
- data/ext/fmod.dll +0 -0
- data/ext/fmod64.dll +0 -0
- data/ext/libfmod.dylib +0 -0
- data/ext/llbfmod.zip +0 -0
- data/extras/FMOD Studio Programmers API for Windows.chm +0 -0
- data/fmod.gemspec +58 -0
- data/lib/fmod.rb +564 -0
- data/lib/fmod/channel.rb +151 -0
- data/lib/fmod/channel_control.rb +821 -0
- data/lib/fmod/channel_group.rb +61 -0
- data/lib/fmod/core.rb +35 -0
- data/lib/fmod/core/bool_description.rb +18 -0
- data/lib/fmod/core/channel_mask.rb +24 -0
- data/lib/fmod/core/data_description.rb +14 -0
- data/lib/fmod/core/driver.rb +59 -0
- data/lib/fmod/core/dsp_description.rb +7 -0
- data/lib/fmod/core/dsp_index.rb +9 -0
- data/lib/fmod/core/dsp_type.rb +43 -0
- data/lib/fmod/core/extensions.rb +28 -0
- data/lib/fmod/core/file_system.rb +86 -0
- data/lib/fmod/core/filter_type.rb +19 -0
- data/lib/fmod/core/float_description.rb +16 -0
- data/lib/fmod/core/guid.rb +50 -0
- data/lib/fmod/core/init_flags.rb +19 -0
- data/lib/fmod/core/integer_description.rb +26 -0
- data/lib/fmod/core/mode.rb +36 -0
- data/lib/fmod/core/output_type.rb +30 -0
- data/lib/fmod/core/parameter_info.rb +41 -0
- data/lib/fmod/core/parameter_type.rb +10 -0
- data/lib/fmod/core/result.rb +88 -0
- data/lib/fmod/core/reverb.rb +217 -0
- data/lib/fmod/core/sound_ex_info.rb +7 -0
- data/lib/fmod/core/sound_format.rb +30 -0
- data/lib/fmod/core/sound_group_behavior.rb +9 -0
- data/lib/fmod/core/sound_type.rb +80 -0
- data/lib/fmod/core/speaker_index.rb +18 -0
- data/lib/fmod/core/speaker_mode.rb +16 -0
- data/lib/fmod/core/spectrum_data.rb +12 -0
- data/lib/fmod/core/structure.rb +23 -0
- data/lib/fmod/core/structures.rb +41 -0
- data/lib/fmod/core/tag.rb +51 -0
- data/lib/fmod/core/tag_data_type.rb +14 -0
- data/lib/fmod/core/time_unit.rb +40 -0
- data/lib/fmod/core/vector.rb +42 -0
- data/lib/fmod/core/window_type.rb +12 -0
- data/lib/fmod/dsp.rb +510 -0
- data/lib/fmod/dsp_connection.rb +113 -0
- data/lib/fmod/effects.rb +38 -0
- data/lib/fmod/effects/channel_mix.rb +101 -0
- data/lib/fmod/effects/chorus.rb +30 -0
- data/lib/fmod/effects/compressor.rb +52 -0
- data/lib/fmod/effects/convolution_reverb.rb +31 -0
- data/lib/fmod/effects/delay.rb +44 -0
- data/lib/fmod/effects/distortion.rb +16 -0
- data/lib/fmod/effects/dsps.rb +10 -0
- data/lib/fmod/effects/echo.rb +37 -0
- data/lib/fmod/effects/envelope_follower.rb +31 -0
- data/lib/fmod/effects/fader.rb +16 -0
- data/lib/fmod/effects/fft.rb +38 -0
- data/lib/fmod/effects/flange.rb +37 -0
- data/lib/fmod/effects/high_pass.rb +24 -0
- data/lib/fmod/effects/high_pass_simple.rb +25 -0
- data/lib/fmod/effects/it_echo.rb +56 -0
- data/lib/fmod/effects/it_lowpass.rb +36 -0
- data/lib/fmod/effects/ladspa_plugin.rb +14 -0
- data/lib/fmod/effects/limiter.rb +32 -0
- data/lib/fmod/effects/loudness_meter.rb +19 -0
- data/lib/fmod/effects/low_pass.rb +25 -0
- data/lib/fmod/effects/low_pass_simple.rb +26 -0
- data/lib/fmod/effects/mixer.rb +11 -0
- data/lib/fmod/effects/multiband_eq.rb +153 -0
- data/lib/fmod/effects/normalize.rb +47 -0
- data/lib/fmod/effects/object_pan.rb +62 -0
- data/lib/fmod/effects/oscillator.rb +52 -0
- data/lib/fmod/effects/pan.rb +166 -0
- data/lib/fmod/effects/param_eq.rb +36 -0
- data/lib/fmod/effects/pitch_shift.rb +47 -0
- data/lib/fmod/effects/return.rb +18 -0
- data/lib/fmod/effects/send.rb +21 -0
- data/lib/fmod/effects/sfx_reverb.rb +87 -0
- data/lib/fmod/effects/three_eq.rb +41 -0
- data/lib/fmod/effects/transceiver.rb +57 -0
- data/lib/fmod/effects/tremolo.rb +67 -0
- data/lib/fmod/effects/vst_plugin.rb +12 -0
- data/lib/fmod/effects/winamp_plugin.rb +12 -0
- data/lib/fmod/error.rb +108 -0
- data/lib/fmod/geometry.rb +380 -0
- data/lib/fmod/handle.rb +129 -0
- data/lib/fmod/reverb3D.rb +98 -0
- data/lib/fmod/sound.rb +810 -0
- data/lib/fmod/sound_group.rb +54 -0
- data/lib/fmod/system.rb +1242 -0
- data/lib/fmod/version.rb +3 -0
- metadata +220 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
module FMOD
|
2
|
+
module Core
|
3
|
+
module InitFlags
|
4
|
+
NORMAL = 0x00000000
|
5
|
+
STREAM_FROM_UPDATE = 0x00000001
|
6
|
+
MIX_FROM_UPDATE = 0x00000002
|
7
|
+
RIGHT_HANDED_3D = 0x00000004
|
8
|
+
CHANNEL_LOW_PASS = 0x00000100
|
9
|
+
CHANNEL_DISTANCE_FILTER = 0x00000200
|
10
|
+
PROFILE_ENABLE = 0x00010000
|
11
|
+
VOL0_BECOMES_VIRTUAL = 0x00020000
|
12
|
+
GEOMETRY_USE_CLOSEST = 0x00040000
|
13
|
+
PREFER_DOLBY_DOWN_MIX = 0x00080000
|
14
|
+
THREAD_UNSAFE = 0x00100000
|
15
|
+
PROFILE_METER_ALL = 0x00200000
|
16
|
+
DISABLE_SRS_HIGH_PASS_FILTER = 0x00400000
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module FMOD
|
2
|
+
module Core
|
3
|
+
class IntegerDescription < Structure
|
4
|
+
|
5
|
+
def initialize(address = nil)
|
6
|
+
types = [TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_VOIDP]
|
7
|
+
members = [:min, :max, :default, :infinite, :names]
|
8
|
+
super(address, types, members)
|
9
|
+
end
|
10
|
+
|
11
|
+
[:min, :max, :default].each do |symbol|
|
12
|
+
define_method(symbol) { self[symbol] }
|
13
|
+
end
|
14
|
+
|
15
|
+
def infinite
|
16
|
+
self[:infinite] != 0
|
17
|
+
end
|
18
|
+
|
19
|
+
def names
|
20
|
+
return [] if self[:names].null?
|
21
|
+
count = max - min + 1
|
22
|
+
(0...count).map { |i| (self[:names] + (i * SIZEOF_INTPTR_T)).ptr.to_s }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module FMOD
|
2
|
+
module Core
|
3
|
+
module Mode
|
4
|
+
DEFAULT = 0x00000000
|
5
|
+
LOOP_OFF = 0x00000001
|
6
|
+
LOOP_NORMAL= 0x00000002
|
7
|
+
LOOP_BIDI = 0x00000004
|
8
|
+
TWO_D = 0x00000008
|
9
|
+
THREE_D = 0x00000010
|
10
|
+
CREATE_STREAM = 0x00000080
|
11
|
+
CREATE_SAMPLE = 0x00000100
|
12
|
+
CREATE_COMPRESSED_SAMPLE = 0x00000200
|
13
|
+
OPEN_USER = 0x00000400
|
14
|
+
OPEN_MEMORY = 0x00000800
|
15
|
+
OPEN_MEMORY_POINT = 0x10000000
|
16
|
+
OPEN_RAW = 0x00001000
|
17
|
+
OPEN_ONLY = 0x00002000
|
18
|
+
ACCURATE_TIME = 0x00004000
|
19
|
+
MPEG_SEARCH = 0x00008000
|
20
|
+
NON_BLOCKING = 0x00010000
|
21
|
+
UNIQUE = 0x00020000
|
22
|
+
HEAD_RELATIVE_3D = 0x00040000
|
23
|
+
WORLD_RELATIVE_3D = 0x00080000
|
24
|
+
INVERSE_ROLLOFF_3D = 0x00100000
|
25
|
+
LINEAR_ROLLOFF_3D = 0x00200000
|
26
|
+
LINEAR_SQUARE_ROLLOFF_3D = 0x00400000
|
27
|
+
INVERSE_TAPERED_ROLLOFF_3D = 0x00800000
|
28
|
+
CUSTOM_ROLLOFF_3D = 0x04000000
|
29
|
+
IGNORE_GEOMETRY_3D = 0x40000000
|
30
|
+
IGNORE_TAGS = 0x02000000
|
31
|
+
LOW_MEM = 0x08000000
|
32
|
+
LOAD_SECONDARY_RAM = 0x20000000
|
33
|
+
VIRTUAL_PLAY_FROM_START = 0x80000000
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module FMOD
|
2
|
+
module Core
|
3
|
+
module OutputType
|
4
|
+
AUTODETECT = 0
|
5
|
+
UNKNOWN = 1
|
6
|
+
NO_SOUND = 2
|
7
|
+
WAV_WRITER = 3
|
8
|
+
NOSOUND_NRT = 4
|
9
|
+
WAV_WRITER_NRT = 5
|
10
|
+
DSOUND = 6
|
11
|
+
WINMM = 7
|
12
|
+
WASAPI = 8
|
13
|
+
ASIO = 9
|
14
|
+
PULSE_AUDIO = 10
|
15
|
+
ALSA = 11
|
16
|
+
CORE_AUDIO = 12
|
17
|
+
X_AUDIO = 13
|
18
|
+
PS3 = 14
|
19
|
+
AUDIO_TRACK = 15
|
20
|
+
OPEN_SL = 16
|
21
|
+
WII_U = 17
|
22
|
+
AUDIO_OUT, = 18
|
23
|
+
AUDIO3D = 19
|
24
|
+
ATMOS = 20
|
25
|
+
WEB_AUDIO = 21
|
26
|
+
NN_AUDIO = 22
|
27
|
+
WIN_SONIC = 23
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module FMOD
|
2
|
+
module Core
|
3
|
+
class ParameterInfo < Structure
|
4
|
+
|
5
|
+
include Fiddle
|
6
|
+
|
7
|
+
def initialize(address = nil)
|
8
|
+
types = [TYPE_INT, [TYPE_CHAR, 16], [TYPE_CHAR, 16], TYPE_VOIDP, TYPE_VOIDP]
|
9
|
+
members = [:type, :name, :label, :description, :info]
|
10
|
+
super(address, types, members)
|
11
|
+
end
|
12
|
+
|
13
|
+
def type
|
14
|
+
self[:type]
|
15
|
+
end
|
16
|
+
|
17
|
+
def name
|
18
|
+
(self + SIZEOF_INT).to_s(16).delete("\0").force_encoding('UTF-8')
|
19
|
+
end
|
20
|
+
|
21
|
+
def label
|
22
|
+
(self + SIZEOF_INT + 16).to_s(16).delete("\0")
|
23
|
+
end
|
24
|
+
|
25
|
+
def description
|
26
|
+
self[:description].to_s
|
27
|
+
end
|
28
|
+
|
29
|
+
def info
|
30
|
+
pointer = self + SIZEOF_INT + (SIZEOF_CHAR * 32) + SIZEOF_INTPTR_T
|
31
|
+
case self[:type]
|
32
|
+
when ParameterType::FLOAT then FloatDescription.new(pointer)
|
33
|
+
when ParameterType::INT then IntegerDescription.new(pointer)
|
34
|
+
when ParameterType::BOOL then BoolDescription.new(pointer)
|
35
|
+
when ParameterType::DATA then DataDescription.new(pointer)
|
36
|
+
else raise RangeError, "Invalid data type for parameter."
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
module FMOD
|
2
|
+
module Core
|
3
|
+
module Result
|
4
|
+
OK = 0
|
5
|
+
BAD_COMMAND = 1
|
6
|
+
CHANNEL_ALLOC = 2
|
7
|
+
CHANNEL_STOLEN = 3
|
8
|
+
DMA = 4
|
9
|
+
DSP_CONNECTION = 5
|
10
|
+
DSP_DONT_PROCESS = 6
|
11
|
+
DSP_FORMAT = 7
|
12
|
+
DSP_IN_USE = 8
|
13
|
+
DSP_NOT_FOUND = 9
|
14
|
+
DSP_RESERVED = 10
|
15
|
+
DSP_SILENCE = 11
|
16
|
+
DSP_TYPE = 12
|
17
|
+
FILE_BAD = 13
|
18
|
+
FILE_COULD__SEEK = 14
|
19
|
+
FILE_DISK_EJECTED = 15
|
20
|
+
FILE_EOF = 16
|
21
|
+
FILE_END_OF_DATA = 17
|
22
|
+
FILE_NOT_FOUND = 18
|
23
|
+
FORMAT = 19
|
24
|
+
HEADER_MISMATCH = 20
|
25
|
+
HTTP = 21
|
26
|
+
HTTP_ACCESS = 22
|
27
|
+
HTTP_PROXY_AUTH = 23
|
28
|
+
HTTP_SERVER_ERROR = 24
|
29
|
+
HTTP_TIMEOUT = 25
|
30
|
+
INITIALIZATION = 26
|
31
|
+
INITIALIZED = 27
|
32
|
+
INTERNAL = 28
|
33
|
+
INVALID_FLOAT = 29
|
34
|
+
INVALID_HANDLE = 30
|
35
|
+
INVALID_PARAM = 31
|
36
|
+
INVALID_POSITION = 32
|
37
|
+
INVALID_SPEAKER = 33
|
38
|
+
INVALID_SYNC_POINT = 34
|
39
|
+
INVALID_THREAD = 35
|
40
|
+
INVALID_VECTOR = 36
|
41
|
+
MAX_AUDIBLE = 37
|
42
|
+
MEMORY = 38
|
43
|
+
MEMORY_CANT_POINT = 39
|
44
|
+
NEEDS_3D = 40
|
45
|
+
NEEDS_HARDWARE = 41
|
46
|
+
NET_CONNECT = 42
|
47
|
+
NET_SOCKET_ERROR = 43
|
48
|
+
NET_URL = 44
|
49
|
+
NET_WOULD_BLOCK = 45
|
50
|
+
NOT_READY = 46
|
51
|
+
OUTPUT_ALLOCATED = 47
|
52
|
+
OUTPUT_CREATE_BUFFER = 48
|
53
|
+
OUTPUT_DRIVER_CALL = 49
|
54
|
+
OUTPUT_FORMAT = 50
|
55
|
+
OUTPUT_INIT = 51
|
56
|
+
OUTPUT_NO_DRIVERS = 52
|
57
|
+
PLUGIN = 53
|
58
|
+
PLUGIN_MISSING = 54
|
59
|
+
PLUGIN_RESOURCE = 55
|
60
|
+
PLUGIN_VERSION = 56
|
61
|
+
RECORD = 57
|
62
|
+
REVERB_CHANNEL_GROUP = 58
|
63
|
+
REVERB_INSTANCE = 59
|
64
|
+
SUBSOUNDS = 60
|
65
|
+
SUBSOUND_ALLOCATED = 61
|
66
|
+
SUBSOUND_CANT_MOVE = 62
|
67
|
+
TAG_NOT_FOUND = 63
|
68
|
+
TOO_MANY_CHANNELS = 64
|
69
|
+
TRUNCATED = 65
|
70
|
+
UNIMPLEMENTED = 66
|
71
|
+
UNINITIALIZED = 67
|
72
|
+
UNSUPPORTED = 68
|
73
|
+
VERSION = 69
|
74
|
+
EVENT_ALREADY_LOADED = 70
|
75
|
+
EVENT_LIVE_UPDATE_BUSY = 71
|
76
|
+
EVENT_LIVE_UPDATE_MISMATCH = 72
|
77
|
+
EVENT_LIVE_UPDATE_TIMEOUT = 73
|
78
|
+
EVENT_NOT_FOUND = 74
|
79
|
+
STUDIO_UNINITIALIZED = 75
|
80
|
+
STUDIO_NOT_LOADED = 76
|
81
|
+
INVALID_STRING = 77
|
82
|
+
ALREADY_LOCKED = 78
|
83
|
+
NOT_LOCKED = 79
|
84
|
+
RECORD_DISCONNECTED = 80
|
85
|
+
TOO_MANY_SAMPLES = 81
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,217 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module FMOD
|
4
|
+
|
5
|
+
module Core
|
6
|
+
##
|
7
|
+
# Structure defining a reverb environment.
|
8
|
+
class Reverb < Structure
|
9
|
+
|
10
|
+
def initialize(address = nil)
|
11
|
+
types = Array.new(12, TYPE_FLOAT)
|
12
|
+
members = [:decay_time, :early_delay, :late_delay,
|
13
|
+
:hf_reference, :hf_decay_ratio, :diffusion, :density, :low_shelf_freq,
|
14
|
+
:low_shelf_gain, :high_cut, :early_late_mix, :wet_level]
|
15
|
+
super(address, types, members)
|
16
|
+
end
|
17
|
+
|
18
|
+
[:decay_time, :early_delay, :late_delay, :hf_reference, :hf_decay_ratio,
|
19
|
+
:diffusion, :density, :low_shelf_freq, :low_shelf_gain, :high_cut,
|
20
|
+
:early_late_mix, :wet_level].each do |symbol|
|
21
|
+
define_method(symbol) {self[symbol]}
|
22
|
+
end
|
23
|
+
|
24
|
+
def decay_time=(value)
|
25
|
+
self[:decay_time] = value.clamp(0.0, 20000.0)
|
26
|
+
end
|
27
|
+
|
28
|
+
def early_delay=(value)
|
29
|
+
self[:early_delay] = value.clamp(0.0, 300.0)
|
30
|
+
end
|
31
|
+
|
32
|
+
def late_delay=(value)
|
33
|
+
self[:late_delay] = value.clamp(0.0, 100.0)
|
34
|
+
end
|
35
|
+
|
36
|
+
def hf_reference=(value)
|
37
|
+
self[:hf_reference] = value.clamp(20.0, 20000.0)
|
38
|
+
end
|
39
|
+
|
40
|
+
def hf_decay_ratio=(value)
|
41
|
+
self[:hf_decay_ratio] = value.clamp(10.0, 100.0)
|
42
|
+
end
|
43
|
+
|
44
|
+
def diffusion=(value)
|
45
|
+
self[:diffusion] = value.clamp(0.0, 100.0)
|
46
|
+
end
|
47
|
+
|
48
|
+
def density=(value)
|
49
|
+
self[:density] = value.clamp(0.0, 100.0)
|
50
|
+
end
|
51
|
+
|
52
|
+
def low_shelf_freq=(value)
|
53
|
+
self[:low_shelf_freq] = value.clamp(20.0, 1000.0)
|
54
|
+
end
|
55
|
+
|
56
|
+
def low_shelf_gain=(value)
|
57
|
+
self[:low_shelf_gain] = value.clamp(-36.0, 12.0)
|
58
|
+
end
|
59
|
+
|
60
|
+
def high_cut=(value)
|
61
|
+
self[:high_cut] = value.clamp(20.0, 20000.0)
|
62
|
+
end
|
63
|
+
|
64
|
+
def early_late_mix=(value)
|
65
|
+
self[:early_late_mix] = value.clamp(0.0, 100.0)
|
66
|
+
end
|
67
|
+
|
68
|
+
def wet_level=(value)
|
69
|
+
self[:wet_level] = value.clamp(-80.0, 20.0)
|
70
|
+
end
|
71
|
+
|
72
|
+
##
|
73
|
+
# @return [Reverb] no reverberation.
|
74
|
+
def self.off
|
75
|
+
new [1000, 7, 11, 5000, 100, 100, 100, 250, 0, 20, 96, -80.0].pack('f*')
|
76
|
+
end
|
77
|
+
|
78
|
+
##
|
79
|
+
# @return [Reverb] a generic reverb environment.
|
80
|
+
def self.generic
|
81
|
+
new [1500, 7, 11, 5000, 83, 100, 100, 250, 0, 14500, 96, -8.0].pack('f*')
|
82
|
+
end
|
83
|
+
|
84
|
+
##
|
85
|
+
# @return [Reverb] a padded cell environment.
|
86
|
+
def self.padded_cell
|
87
|
+
new [170, 1, 2, 5000, 10, 100, 100, 250, 0, 160, 84, -7.8].pack('f*')
|
88
|
+
end
|
89
|
+
|
90
|
+
##
|
91
|
+
# @return [Reverb] a room environment.
|
92
|
+
def self.room
|
93
|
+
new [400, 2, 3, 5000, 83, 100, 100, 250, 0, 6050, 88, -9.4].pack('f*')
|
94
|
+
end
|
95
|
+
|
96
|
+
##
|
97
|
+
# @return [Reverb] a bathroom environment.
|
98
|
+
def self.bathroom
|
99
|
+
new [1500, 7, 11, 5000, 54, 100, 60, 250, 0, 2900, 83, 0.5].pack('f*')
|
100
|
+
end
|
101
|
+
|
102
|
+
##
|
103
|
+
# @return [Reverb] a living room environment.
|
104
|
+
def self.living_room
|
105
|
+
new [500, 3, 4, 5000, 10, 100, 100, 250, 0, 160, 58, -19.0].pack('f*')
|
106
|
+
end
|
107
|
+
|
108
|
+
##
|
109
|
+
# @return [Reverb] a stone room environment.
|
110
|
+
def self.stone_room
|
111
|
+
new [2300, 12, 17, 5000, 64, 100, 100, 250, 0, 7800, 71, -8.5].pack('f*')
|
112
|
+
end
|
113
|
+
|
114
|
+
##
|
115
|
+
# @return [Reverb] an auditorium environment.
|
116
|
+
def self.auditorium
|
117
|
+
new [4300, 20, 30, 5000, 59, 100, 100, 250, 0, 5850, 64, -11.7].pack('f*')
|
118
|
+
end
|
119
|
+
|
120
|
+
##
|
121
|
+
# @return [Reverb] a concert hall environment.
|
122
|
+
def self.concert_hall
|
123
|
+
new [3900, 20, 29, 5000, 70, 100, 100, 250, 0, 5650, 80, -9.8].pack('f*')
|
124
|
+
end
|
125
|
+
|
126
|
+
##
|
127
|
+
# @return [Reverb] a cave environment.
|
128
|
+
def self.cave
|
129
|
+
new [2900, 15, 22, 5000, 100, 100, 100, 250, 0, 20000, 59, -11.3].pack('f*')
|
130
|
+
end
|
131
|
+
|
132
|
+
##
|
133
|
+
# @return [Reverb] an arena environment.
|
134
|
+
def self.arena
|
135
|
+
new [7200, 20, 30, 5000, 33, 100, 100, 250, 0, 4500, 80, -9.6].pack('f*')
|
136
|
+
end
|
137
|
+
|
138
|
+
##
|
139
|
+
# @return [Reverb] a hangar environment.
|
140
|
+
def self.hangar
|
141
|
+
new [10000, 20, 30, 5000, 23, 100, 100, 250, 0, 3400, 72, -7.4].pack('f*')
|
142
|
+
end
|
143
|
+
|
144
|
+
##
|
145
|
+
# @return [Reverb] a carpeted hallway environment.
|
146
|
+
def self.carpeted_hallway
|
147
|
+
new [300, 2, 30, 5000, 10, 100, 100, 250, 0, 500, 56, -24.0].pack('f*')
|
148
|
+
end
|
149
|
+
|
150
|
+
##
|
151
|
+
# @return [Reverb] a hallway environment.
|
152
|
+
def self.hallway
|
153
|
+
new [1500, 7, 11, 5000, 59, 100, 100, 250, 0, 7800, 87, -5.5].pack('f*')
|
154
|
+
end
|
155
|
+
|
156
|
+
##
|
157
|
+
# @return [Reverb] a stone corridor environment.
|
158
|
+
def self.stone_corridor
|
159
|
+
new [270, 13, 20, 5000, 79, 100, 100, 250, 0, 9000, 86, -6.0].pack('f*')
|
160
|
+
end
|
161
|
+
|
162
|
+
##
|
163
|
+
# @return [Reverb] an alley environment.
|
164
|
+
def self.alley
|
165
|
+
new [1500, 7, 11, 5000, 86, 100, 100, 250, 0, 8300, 80, -9.8].pack('f*')
|
166
|
+
end
|
167
|
+
|
168
|
+
##
|
169
|
+
# @return [Reverb] a forest environment.
|
170
|
+
def self.forest
|
171
|
+
new [1500, 162, 88, 5000, 54, 79, 100, 250, 0, 760, 94, -12.3].pack('f*')
|
172
|
+
end
|
173
|
+
|
174
|
+
##
|
175
|
+
# @return [Reverb] a city environment.
|
176
|
+
def self.city
|
177
|
+
new [1500, 7, 11, 5000, 67, 50, 100, 250, 0, 4050, 66, -26.0].pack('f*')
|
178
|
+
end
|
179
|
+
|
180
|
+
##
|
181
|
+
# @return [Reverb] a mountain environment.
|
182
|
+
def self.mountains
|
183
|
+
new [1500, 300, 100, 5000, 21, 27, 100, 250, 0, 1220, 82, -24.0].pack('f*')
|
184
|
+
end
|
185
|
+
|
186
|
+
##
|
187
|
+
# @return [Reverb] a quarry environment.
|
188
|
+
def self.quarry
|
189
|
+
new [1500, 61, 25, 5000, 83, 100, 100, 250, 0, 3400, 100, -5.0].pack('f*')
|
190
|
+
end
|
191
|
+
|
192
|
+
##
|
193
|
+
# @return [Reverb] a plain environment.
|
194
|
+
def self.plain
|
195
|
+
new [1500, 179, 100, 5000, 50, 21, 100, 250, 0, 1670, 65, -28.0].pack('f*')
|
196
|
+
end
|
197
|
+
|
198
|
+
##
|
199
|
+
# @return [Reverb] a parking lot environment.
|
200
|
+
def self.parking_lot
|
201
|
+
new [1700, 8, 12, 5000, 100, 100, 100, 250, 0, 20000, 56, -19.5].pack('f*')
|
202
|
+
end
|
203
|
+
|
204
|
+
##
|
205
|
+
# @return [Reverb] a sewer-pipe environment.
|
206
|
+
def self.sewer_pipe
|
207
|
+
new [2800, 14, 21, 5000, 14, 80, 60, 250, 0, 3400, 66, 1.2].pack('f*')
|
208
|
+
end
|
209
|
+
|
210
|
+
##
|
211
|
+
# @return [Reverb] an underwater environment.
|
212
|
+
def self.underwater
|
213
|
+
new [1500, 7, 11, 5000, 10, 100, 100, 250, 0, 500, 92, 7.0].pack('f*')
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|