コード例 #1
0
class LooperBehavior(SourceBehavior):
    def __init__(self):
        super(LooperBehavior, self).__init__("looper/looper.pd")
        global behavior_name
        self.display_name = behavior_name
        self.samples = []
        for file in os.listdir(
                os.path.abspath(
                    os.path.join(os.path.dirname(__file__), 'loops'))):
            if file.endswith(".wav"):
                self.samples.append(os.path.basename(file))
        self.time_last_impulse = 0
        self.needs_to_reappear = False

    def has_just_attached(self, object):
        super(LooperBehavior, self).has_just_attached(object)
        self.generate_audio_menu()

    def generate_audio_menu(self):
        items = []
        # print samples
        for sample in self.samples:
            samplename = os.path.splitext(sample)[0]
            items.append(
                ShakeMenuItem(samplename, self.audio_menu_select_sample,
                              "loops/" + sample))
        if len(items) == 0:
            # Can't create any sample, so go back to the default behavior
            director.app.play_scene.messages.show("No loop in directory.")
            self.object.attach_behavior(DefaultBehavior.DefaultBehavior())
        self.menu = ShakeMenu(self.object, *items, no_shake=True)

    def audio_menu_select_sample(self, spl):
        self.menu = None
        self.symbol_to_patch("load", spl)
        self.bang()

    def update(self):
        super(LooperBehavior, self).update()
        if self.menu:
            self.menu.update()

    def draw_3d(self):
        super(LooperBehavior, self).draw_3d()
        if self.menu:
            self.menu.draw_3d()

    def draw_background(self):
        super(LooperBehavior, self).draw_background()
        if self.menu:
            self.menu.draw_background()

    def draw_foreground(self):
        super(LooperBehavior, self).draw_foreground()
        if self.menu:
            self.menu.draw_foreground()
コード例 #2
0
ファイル: looper.py プロジェクト: ice3/Glovebox
class LooperBehavior(SourceBehavior):
	def __init__(self):
		super(LooperBehavior, self).__init__("looper/looper.pd")
		global behavior_name
		self.display_name = behavior_name
		self.samples = []
		for file in os.listdir(os.path.abspath(os.path.join(os.path.dirname(__file__), 'loops'))):
			if file.endswith(".wav"):
				self.samples.append(os.path.basename(file))
		self.time_last_impulse = 0
		self.needs_to_reappear = False
	
	def has_just_attached(self, object):
		super(LooperBehavior, self).has_just_attached(object)
		self.generate_audio_menu()

	def generate_audio_menu(self):
		items = []
		# print samples
		for sample in self.samples:
			samplename = os.path.splitext(sample)[0]
			items.append(ShakeMenuItem(samplename, self.audio_menu_select_sample, "loops/"+sample))
		if len(items) == 0:
			# Can't create any sample, so go back to the default behavior
			director.app.play_scene.messages.show("No loop in directory.")
			self.object.attach_behavior(DefaultBehavior.DefaultBehavior())
		self.menu = ShakeMenu(self.object, *items, no_shake=True)

	def audio_menu_select_sample(self, spl):
		self.menu = None
		self.symbol_to_patch("load", spl)
		self.bang()

	def update(self):
		super(LooperBehavior, self).update()
		if self.menu:
			self.menu.update()

	def draw_3d(self):
		super(LooperBehavior, self).draw_3d()
		if self.menu:
			self.menu.draw_3d()

	def draw_background(self):
		super(LooperBehavior, self).draw_background()
		if self.menu:
			self.menu.draw_background()

	def draw_foreground(self):
		super(LooperBehavior, self).draw_foreground()
		if self.menu:
			self.menu.draw_foreground()
コード例 #3
0
ファイル: audio_in.py プロジェクト: ice3/Glovebox
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()
コード例 #4
0
ファイル: sampler.py プロジェクト: ice3/Glovebox
class SamplerBehavior(SourceBehavior):
	def __init__(self):
		super(SamplerBehavior, self).__init__("sampler/sampler.pd")
		global behavior_name
		self.display_name = behavior_name
		self.samples = []
		for file in os.listdir(os.path.abspath(os.path.join(os.path.dirname(__file__), 'samples'))):
			if file.endswith(".wav"):
				self.samples.append(os.path.basename(file))
		# [os.path.basename(f) for f in glob.glob(os.path.abspath(os.path.join(os.path.dirname(__file__), 'samples', '*.wav')))]
		self.time_last_impulse = 0
		self.needs_to_reappear = False
	
	def has_just_attached(self, object):
		super(SamplerBehavior, self).has_just_attached(object)
		self.generate_audio_menu()

	def generate_audio_menu(self):
		items = []
		# print samples
		for sample in self.samples:
			samplename = os.path.splitext(sample)[0]
			items.append(ShakeMenuItem(samplename, self.audio_menu_select_sample, "samples/"+sample))
		if len(items) == 0:
			# Can't create any sample, so go back to the default behavior
			director.app.play_scene.messages.show("No sample in directory.")
			self.object.attach_behavior(DefaultBehavior.DefaultBehavior())
		self.menu = ShakeMenu(self.object, *items, no_shake=True)

	def audio_menu_select_sample(self, spl):
		self.menu = None
		self.symbol_to_patch("load", spl)

	def update(self):
		super(SamplerBehavior, self).update()
		if self.menu:
			self.menu.update()
		else:
			time = director.app.time
			if time - self.time_last_impulse > 0.1:
				if self.object.absent_amount() > 0.25:
					self.needs_to_reappear = True
			if self.needs_to_reappear:
				if self.object.absent_amount() == 0:
					self.needs_to_reappear = False
					self.number_to_patch("impulse", 1)
					self.time_last_impulse = time
					director.app.play_scene.do(ScaleTo(1.5, duration=0.1) + ScaleTo(1, duration=0.1), self.display_name_label)

	def draw_3d(self):
		super(SamplerBehavior, self).draw_3d()
		if self.menu:
			self.menu.draw_3d()

	def draw_background(self):
		super(SamplerBehavior, self).draw_background()
		if self.menu:
			self.menu.draw_background()

	def draw_foreground(self):
		super(SamplerBehavior, self).draw_foreground()
		if self.menu:
			self.menu.draw_foreground()
コード例 #5
0
class SamplerBehavior(SourceBehavior):
    def __init__(self):
        super(SamplerBehavior, self).__init__("sampler/sampler.pd")
        global behavior_name
        self.display_name = behavior_name
        self.samples = []
        for file in os.listdir(
                os.path.abspath(
                    os.path.join(os.path.dirname(__file__), 'samples'))):
            if file.endswith(".wav"):
                self.samples.append(os.path.basename(file))
        # [os.path.basename(f) for f in glob.glob(os.path.abspath(os.path.join(os.path.dirname(__file__), 'samples', '*.wav')))]
        self.time_last_impulse = 0
        self.needs_to_reappear = False

    def has_just_attached(self, object):
        super(SamplerBehavior, self).has_just_attached(object)
        self.generate_audio_menu()

    def generate_audio_menu(self):
        items = []
        # print samples
        for sample in self.samples:
            samplename = os.path.splitext(sample)[0]
            items.append(
                ShakeMenuItem(samplename, self.audio_menu_select_sample,
                              "samples/" + sample))
        if len(items) == 0:
            # Can't create any sample, so go back to the default behavior
            director.app.play_scene.messages.show("No sample in directory.")
            self.object.attach_behavior(DefaultBehavior.DefaultBehavior())
        self.menu = ShakeMenu(self.object, *items, no_shake=True)

    def audio_menu_select_sample(self, spl):
        self.menu = None
        self.symbol_to_patch("load", spl)

    def update(self):
        super(SamplerBehavior, self).update()
        if self.menu:
            self.menu.update()
        else:
            time = director.app.time
            if time - self.time_last_impulse > 0.1:
                if self.object.absent_amount() > 0.25:
                    self.needs_to_reappear = True
            if self.needs_to_reappear:
                if self.object.absent_amount() == 0:
                    self.needs_to_reappear = False
                    self.number_to_patch("impulse", 1)
                    self.time_last_impulse = time
                    director.app.play_scene.do(
                        ScaleTo(1.5, duration=0.1) + ScaleTo(1, duration=0.1),
                        self.display_name_label)

    def draw_3d(self):
        super(SamplerBehavior, self).draw_3d()
        if self.menu:
            self.menu.draw_3d()

    def draw_background(self):
        super(SamplerBehavior, self).draw_background()
        if self.menu:
            self.menu.draw_background()

    def draw_foreground(self):
        super(SamplerBehavior, self).draw_foreground()
        if self.menu:
            self.menu.draw_foreground()