fmod 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|