Ejemplo n.º 1
0
 def __init__(self,
              width,
              height,
              lowFreq=500,
              highFreq=5000,
              sweepDelay=0.5,
              sweepDuration=4,
              sweepCount=4,
              reverseBrightness=False):
     self.width = width
     self.height = height
     self.baseFreq = lowFreq
     self.octiveCount = math.log(highFreq / lowFreq, 2)
     self.sweepDelay = sweepDelay
     self.sweepDuration = sweepDuration
     self.sweepCount = sweepCount
     self.reverseBrightness = reverseBrightness
     self.lavSim = libaudioverse.Simulation()
     self.lavPanner = libaudioverse.MultipannerNode(self.lavSim, "default")
     self.lavPanner.strategy = libaudioverse.PanningStrategies.hrtf
     self.lavPanner.should_crossfade = False
     self.lavPanner.connect_simulation(0)
     self.lavWaves = []
     for x in xrange(self.height):
         lavPanner = libaudioverse.AmplitudePannerNode(self.lavSim)
         lavPanner.should_crossfade = False
         lavPanner.connect_simulation(0)
         lavWave = libaudioverse.SineNode(self.lavSim)
         lavWave.mul = 0
         lavWave.frequency.value = self.baseFreq * (
             (2**self.octiveCount)**(x / self.height))
         lavWave.connect(0, lavPanner, 0)
         lavWave.connect(0, self.lavPanner, 0)
         self.lavWaves.append((lavWave, lavPanner))
     self.lavSim.set_output_device(-1)
Ejemplo n.º 2
0
 def __init__(self, width, height, lowFreq=90, highFreq=4000):
     self.width = width
     self.height = height
     self.lowFreq = lowFreq
     self.highFreq = highFreq
     self.lavSim = libaudioverse.Simulation()
     self.lavWave = libaudioverse.AdditiveSawNode(self.lavSim)
     self.lavWave.mul = 0
     self.lavWave.frequency.value = lowFreq
     self.lavWave.connect_simulation(0)
     self.lavWave2 = libaudioverse.SineNode(self.lavSim)
     self.lavWave2.mul = 0
     self.lavWave2.frequency.value = lowFreq * (highFreq / lowFreq)
     self.lavWave2.connect_simulation(0)
     self.lavNoise = libaudioverse.NoiseNode(self.lavSim)
     self.lavNoise.mul.value = 0
     self.lavNoise.noise_type.value = libaudioverse.NoiseTypes.brown
     self.lavNoise.connect_simulation(0)
     self.lavSim.set_output_device(-1)
Ejemplo n.º 3
0
 def __init__(self, *args, **kwargs):
     super(GlobalPlugin, self).__init__(*args, **kwargs)
     addonGui.initialize()
     config.conf.spec["unspoken"] = {"sayAll": "boolean(default=False)"}
     self.simulation = libaudioverse.Simulation(block_size=1024)
     self.make_sound_objects()
     self.hrtf_panner = libaudioverse.HrtfNode(self.simulation, "default")
     self.hrtf_panner.should_crossfade = False
     self.hrtf_panner.connect_simulation(0)
     # Hook to keep NVDA from announcing roles.
     self._NVDA_getSpeechTextForProperties = speech.getSpeechTextForProperties
     speech.getSpeechTextForProperties = self._hook_getSpeechTextForProperties
     self._previous_mouse_object = None
     self._last_played_object = None
     self._last_played_time = 0
     #these are in degrees.
     self._display_width = 180.0
     self._display_height_min = -40.0
     self._display_height_magnitude = 50.0
     #the mixer feeds us through NVDA.
     self.mixer = mixer.Mixer(self.simulation, 1)
Ejemplo n.º 4
0
import libaudioverse
import os.path
import time
time_per_demo = 5.0

libaudioverse.initialize()
sim = libaudioverse.Simulation()
sim.set_output_device()
print("""Biquad demo.
Please enter the path to a file in a format supported by Libsndfile: typically wave or ogg."""
      )
filepath = input()
filepath = os.path.abspath(filepath)
filenode = libaudioverse.BufferNode(sim)
buffer = libaudioverse.Buffer(sim)
buffer.load_from_file(filepath)
filenode.buffer = buffer
bq = libaudioverse.BiquadNode(sim, 2)
filenode.connect(0, bq, 0)
bq.connect_simulation(0)

print("Sweeping lowpass from 0.0 hz to 10000 hz over", time_per_demo,
      "seconds:")
resolution = 10
for i in range(10000 // resolution):
    bq.frequency.value = i * resolution
    time.sleep(time_per_demo / (10000 / resolution))

print("Sweeping Highpass from 0 to 10000 over", time_per_demo, "seconds:")
bq.filter_type.value = libaudioverse.BiquadTypes.highpass
for i in range(10000 // resolution):
Ejemplo n.º 5
0
import libaudioverse
import math
import time
import random

libaudioverse.initialize()

simulation = libaudioverse.Simulation(block_size=128)


def make_fm(carrier, ratio, index):
    carrier_node = libaudioverse.SineNode(simulation)
    modulator_node = libaudioverse.SineNode(simulation)
    modulator_frequency = ratio * carrier
    modulator_amplitude = index * modulator_frequency
    carrier_node.frequency.value = carrier
    modulator_node.frequency.value = modulator_frequency
    modulator_node.mul.value = modulator_amplitude
    modulator_node.connect_property(0, carrier_node.frequency)
    return carrier_node


fm1 = make_fm(carrier=50, ratio=0.5, index=50)
fm2 = make_fm(carrier=90, ratio=1.03, index=15)

#A bit of noise makes the HRTF much more obvious.
noise = libaudioverse.NoiseNode(simulation)
noise.noise_type.value = libaudioverse.NoiseTypes.pink

fm1.mul.value = 0.1
fm2.mul.value = 0.1