aboutsummaryrefslogtreecommitdiff
path: root/helpers/mapping.py
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2016-07-14 22:18:51 +0200
committerIsmaël Bouya <ismael.bouya@normalesup.org>2016-07-14 22:18:51 +0200
commit1b4b78f5b6df7182ac066fcc26a7b4f0e8586a47 (patch)
treeef2bddec7b9f09c614012ac6ee2588cd732242ee /helpers/mapping.py
parent71715c049145a074b0f2b8d90c8c8c47830323c3 (diff)
downloadMusicSampler-1b4b78f5b6df7182ac066fcc26a7b4f0e8586a47.tar.gz
MusicSampler-1b4b78f5b6df7182ac066fcc26a7b4f0e8586a47.tar.zst
MusicSampler-1b4b78f5b6df7182ac066fcc26a7b4f0e8586a47.zip
Some new features:
- gain function moved to helpers/__init__ - cleanup some unused functions - stop can now wait for fade_out to finish before returning - volume can be incremented - master volume
Diffstat (limited to 'helpers/mapping.py')
-rw-r--r--helpers/mapping.py24
1 files changed, 13 insertions, 11 deletions
diff --git a/helpers/mapping.py b/helpers/mapping.py
index ea9d075..d9b7ba0 100644
--- a/helpers/mapping.py
+++ b/helpers/mapping.py
@@ -8,10 +8,11 @@ import yaml
8import sys 8import sys
9 9
10from .music_file import * 10from .music_file import *
11from . import yml_file 11from . import yml_file,gain
12 12
13class Mapping(RelativeLayout): 13class Mapping(RelativeLayout):
14 expected_keys = NumericProperty(0) 14 expected_keys = NumericProperty(0)
15 master_volume = NumericProperty(100)
15 ready_color = ListProperty([1, 165/255, 0, 1]) 16 ready_color = ListProperty([1, 165/255, 0, 1])
16 17
17 def __init__(self, **kwargs): 18 def __init__(self, **kwargs):
@@ -23,6 +24,15 @@ class Mapping(RelativeLayout):
23 Clock.schedule_interval(self.not_all_keys_ready, 1) 24 Clock.schedule_interval(self.not_all_keys_ready, 1)
24 25
25 26
27 @property
28 def master_gain(self):
29 return gain(self.master_volume)
30
31 def set_master_volume(self, value, add = False):
32 [db_gain, self.master_volume] = gain(value + int(add) * self.master_volume, self.master_volume)
33 for music in self.open_files.values():
34 music.set_gain(db_gain)
35
26 def _keyboard_closed(self): 36 def _keyboard_closed(self):
27 self._keyboard.unbind(on_key_down=self._on_keyboard_down) 37 self._keyboard.unbind(on_key_down=self._on_keyboard_down)
28 self._keyboard = None 38 self._keyboard = None
@@ -45,16 +55,6 @@ class Mapping(RelativeLayout):
45 return self.ids["Key_" + str(key_code[0])] 55 return self.ids["Key_" + str(key_code[0])]
46 return None 56 return None
47 57
48 def find_by_unicode(self, key_sym):
49 for key in self.children:
50 if not type(key).__name__ == "Key":
51 continue
52 print(key.key_sym, key_sym)
53 if key.key_sym == key_sym:
54 print("found")
55 return key
56 return None
57
58 def not_all_keys_ready(self, dt): 58 def not_all_keys_ready(self, dt):
59 for key in self.children: 59 for key in self.children:
60 if not type(key).__name__ == "Key": 60 if not type(key).__name__ == "Key":
@@ -139,9 +139,11 @@ class Mapping(RelativeLayout):
139 if filename in config['music_properties']: 139 if filename in config['music_properties']:
140 seen_files[filename] = MusicFile( 140 seen_files[filename] = MusicFile(
141 filename, 141 filename,
142 self,
142 **config['music_properties'][filename]) 143 **config['music_properties'][filename])
143 else: 144 else:
144 seen_files[filename] = MusicFile( 145 seen_files[filename] = MusicFile(
146 self,
145 filename) 147 filename)
146 148
147 if filename not in key_properties[mapped_key]['files']: 149 if filename not in key_properties[mapped_key]['files']: