Class: NativeAudio::AudioSource

Inherits:
Object
  • Object
show all
Defined in:
lib/native_audio.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(clip) ⇒ AudioSource

Returns a new instance of AudioSource.



55
56
57
58
59
60
# File 'lib/native_audio.rb', line 55

def initialize(clip)
  @clip = clip
  @channel = AudioSource.channels.count
  @delay_taps = []
  AudioSource.channels << self
end

Instance Attribute Details

#channelObject (readonly)

Returns the value of attribute channel.



53
54
55
# File 'lib/native_audio.rb', line 53

def channel
  @channel
end

Class Method Details

.channelsObject



117
118
119
# File 'lib/native_audio.rb', line 117

def self.channels
  @channels ||= []
end

Instance Method Details

#add_delay_tap(time_ms:, volume:) ⇒ Object



94
95
96
97
98
99
# File 'lib/native_audio.rb', line 94

def add_delay_tap(time_ms:, volume:)
  tap_id = NativeAudio.audio_driver.add_delay_tap(@channel, time_ms, volume)
  tap = DelayTap.new(self, tap_id, time_ms, volume)
  @delay_taps << tap
  tap
end

#delay_tapsObject



113
114
115
# File 'lib/native_audio.rb', line 113

def delay_taps
  @delay_taps
end

#enable_reverb(enabled = true) ⇒ Object



101
102
103
# File 'lib/native_audio.rb', line 101

def enable_reverb(enabled = true)
  NativeAudio.audio_driver.enable_reverb(@channel, enabled)
end

#pauseObject



70
71
72
# File 'lib/native_audio.rb', line 70

def pause
  NativeAudio.audio_driver.pause(@channel)
end

#playObject



62
63
64
# File 'lib/native_audio.rb', line 62

def play
  NativeAudio.audio_driver.play(@channel, @clip.clip)
end

#resumeObject



74
75
76
# File 'lib/native_audio.rb', line 74

def resume
  NativeAudio.audio_driver.resume(@channel)
end

#set_looping(looping) ⇒ Object



90
91
92
# File 'lib/native_audio.rb', line 90

def set_looping(looping)
  NativeAudio.audio_driver.set_looping(@channel, looping)
end

#set_pitch(pitch) ⇒ Object



86
87
88
# File 'lib/native_audio.rb', line 86

def set_pitch(pitch)
  NativeAudio.audio_driver.set_pitch(@channel, pitch)
end

#set_pos(angle, distance) ⇒ Object



78
79
80
# File 'lib/native_audio.rb', line 78

def set_pos(angle, distance)
  NativeAudio.audio_driver.set_pos(@channel, angle, distance)
end

#set_reverb(room_size: 0.5, damping: 0.3, wet: 0.3, dry: 1.0) ⇒ Object



105
106
107
108
109
110
111
# File 'lib/native_audio.rb', line 105

def set_reverb(room_size: 0.5, damping: 0.3, wet: 0.3, dry: 1.0)
  NativeAudio.audio_driver.enable_reverb(@channel, true)
  NativeAudio.audio_driver.set_reverb_room_size(@channel, room_size)
  NativeAudio.audio_driver.set_reverb_damping(@channel, damping)
  NativeAudio.audio_driver.set_reverb_wet(@channel, wet)
  NativeAudio.audio_driver.set_reverb_dry(@channel, dry)
end

#set_volume(volume) ⇒ Object



82
83
84
# File 'lib/native_audio.rb', line 82

def set_volume(volume)
  NativeAudio.audio_driver.set_volume(@channel, volume)
end

#stopObject



66
67
68
# File 'lib/native_audio.rb', line 66

def stop
  NativeAudio.audio_driver.stop(@channel)
end