Example #1
0
	def __init__(self):
		super(AudioInBehavior, self).__init__("audio_in/audio_in.pd")
		global behavior_name
		self.display_name = behavior_name
		self.sprite = ObjectSprite("maracas.png")
		self.menu = None
		self.init_attribute('volume', 'Volume', (0.0, 10.0), 'audio_in_behavior_default_volume', 0.5)
Example #2
0
class MaracasBehavior(SourceBehavior):
    def __init__(self):
        super(MaracasBehavior, self).__init__("maracas/maracas.pd")
        global behavior_name
        self.display_name = behavior_name
        self.last_position = libglovebox.Vec3f(0, 0, 0)
        self.last_speed = 0
        self.hysteresis = False
        self.last_ok_speed = 0
        self.speed_limit = 0.53
        self.speed_limit2 = 2.25
        self.speed_max = 2.3
        self.filter = Filter.SimpleInterpolator(0.8, 0)
        self.sprite = ObjectSprite("maracas.png")

        self.init_attribute('attack', 'AttackTime', (0, 200),
                            'maracas_behavior_attack_time', 50, format_time_ms)
        self.init_attribute('sustain', 'SustainTime', (0, 2000),
                            'maracas_behavior_sustain_time', 50,
                            format_time_ms)
        self.init_attribute('release', 'ReleaseTime', (0, 2000),
                            'maracas_behavior_release_time', 50,
                            format_time_ms)

    def has_just_attached(self, object):
        super(MaracasBehavior, self).has_just_attached(object)
        self.last_position = object.raw_translation

    def update(self):
        super(MaracasBehavior, self).update()
        self.filter.filter(self.object.raw_translation,
                           libglovebox.Quaternion(0, 0, 0, 0))

        speed = self.filter.translation.distance(self.last_position)
        self.last_position = libglovebox.Vec3f(self.filter.translation.x,
                                               self.filter.translation.y,
                                               self.filter.translation.z)
        self.last_speed = speed

        force = min(self.speed_max, speed - self.speed_limit) / self.speed_max

        if speed < self.speed_limit2 and self.hysteresis:
            self.hysteresis = False

        if force > 0 and not self.hysteresis:
            self.number_to_patch('impulse', force)
            self.hysteresis = True

    def draw_3d(self):
        super(MaracasBehavior, self).draw_3d()
        self.sprite.opacity = self.object.alpha() * 255
        self.sprite.draw()
Example #3
0
class AudioInBehavior(SourceBehavior):
	def __init__(self):
		super(AudioInBehavior, self).__init__("audio_in/audio_in.pd")
		global behavior_name
		self.display_name = behavior_name
		self.sprite = ObjectSprite("maracas.png")
		self.menu = None
		self.init_attribute('volume', 'Volume', (0.0, 10.0), 'audio_in_behavior_default_volume', 0.5)
	
	def has_just_attached(self, object):
		super(AudioInBehavior, self).has_just_attached(object)
		self.generate_audio_menu()
	
	def generate_audio_menu(self):
		items = []
		for i in range(0, director.app.audio.input_device.nb_input_channels):
			items.append(ShakeMenuItem("Input %d" % (i+1), self.audio_menu_select_input, i+1))
		if len(items) == 0:
			# Can't create any input, so go back to the default behavior
			director.app.play_scene.messages.show("No input device in your system.")
			self.object.attach_behavior(DefaultBehavior.DefaultBehavior())
		self.menu = ShakeMenu(self.object, *items, no_shake=True)
	
	def audio_menu_select_input(self, i):
		self.menu = None
		self.symbol_to_patch("input", "in%d" % i)
	
	def update(self):
		super(AudioInBehavior, self).update()
		if self.menu:
			self.menu.update()
	
	def draw_3d(self):
		super(AudioInBehavior, self).draw_3d()
		if self.menu:
			self.menu.draw_3d()
		else:
			self.sprite.opacity = self.object.alpha() * 255
			self.sprite.draw()
	
	def draw_background(self):
		super(AudioInBehavior, self).draw_background()
		if self.menu:
			self.menu.draw_background()
	
	def draw_foreground(self):
		super(AudioInBehavior, self).draw_foreground()
		if self.menu:
			self.menu.draw_foreground()
Example #4
0
class MaracasBehavior(SourceBehavior):
	def __init__(self):
		super(MaracasBehavior, self).__init__("maracas/maracas.pd")
		global behavior_name
		self.display_name = behavior_name
		self.last_position = libglovebox.Vec3f(0,0,0)
		self.last_speed = 0
		self.hysteresis = False
		self.last_ok_speed = 0
		self.speed_limit = 0.53
		self.speed_limit2 = 2.25
		self.speed_max = 2.3
		self.filter = Filter.SimpleInterpolator(0.8, 0)
		self.sprite = ObjectSprite("maracas.png")
		
		self.init_attribute('attack', 'AttackTime', (0,200), 'maracas_behavior_attack_time', 50, format_time_ms)
		self.init_attribute('sustain', 'SustainTime', (0,2000), 'maracas_behavior_sustain_time', 50, format_time_ms)
		self.init_attribute('release', 'ReleaseTime', (0,2000), 'maracas_behavior_release_time', 50, format_time_ms)
	
	def has_just_attached(self, object):
		super(MaracasBehavior, self).has_just_attached(object)
		self.last_position = object.raw_translation
	
	def update(self):
		super(MaracasBehavior, self).update()
		self.filter.filter(self.object.raw_translation, libglovebox.Quaternion(0, 0, 0, 0))
		
		speed = self.filter.translation.distance(self.last_position)
		self.last_position = libglovebox.Vec3f(self.filter.translation.x, self.filter.translation.y, self.filter.translation.z)
		self.last_speed = speed
		
		force = min(self.speed_max, speed - self.speed_limit) / self.speed_max
		
		if speed < self.speed_limit2 and self.hysteresis:
			self.hysteresis = False
		
		if force > 0 and not self.hysteresis:
			self.number_to_patch('impulse', force)
			self.hysteresis = True
	
	def draw_3d(self):
		super(MaracasBehavior, self).draw_3d()
		self.sprite.opacity = self.object.alpha() * 255
		self.sprite.draw()
Example #5
0
    def __init__(self):
        super(MaracasBehavior, self).__init__("maracas/maracas.pd")
        global behavior_name
        self.display_name = behavior_name
        self.last_position = libglovebox.Vec3f(0, 0, 0)
        self.last_speed = 0
        self.hysteresis = False
        self.last_ok_speed = 0
        self.speed_limit = 0.53
        self.speed_limit2 = 2.25
        self.speed_max = 2.3
        self.filter = Filter.SimpleInterpolator(0.8, 0)
        self.sprite = ObjectSprite("maracas.png")

        self.init_attribute('attack', 'AttackTime', (0, 200),
                            'maracas_behavior_attack_time', 50, format_time_ms)
        self.init_attribute('sustain', 'SustainTime', (0, 2000),
                            'maracas_behavior_sustain_time', 50,
                            format_time_ms)
        self.init_attribute('release', 'ReleaseTime', (0, 2000),
                            'maracas_behavior_release_time', 50,
                            format_time_ms)
Example #6
0
	def __init__(self):
		super(MaracasBehavior, self).__init__("maracas/maracas.pd")
		global behavior_name
		self.display_name = behavior_name
		self.last_position = libglovebox.Vec3f(0,0,0)
		self.last_speed = 0
		self.hysteresis = False
		self.last_ok_speed = 0
		self.speed_limit = 0.53
		self.speed_limit2 = 2.25
		self.speed_max = 2.3
		self.filter = Filter.SimpleInterpolator(0.8, 0)
		self.sprite = ObjectSprite("maracas.png")
		
		self.init_attribute('attack', 'AttackTime', (0,200), 'maracas_behavior_attack_time', 50, format_time_ms)
		self.init_attribute('sustain', 'SustainTime', (0,2000), 'maracas_behavior_sustain_time', 50, format_time_ms)
		self.init_attribute('release', 'ReleaseTime', (0,2000), 'maracas_behavior_release_time', 50, format_time_ms)