diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2016-07-14 22:18:51 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2016-07-14 22:18:51 +0200 |
commit | 1b4b78f5b6df7182ac066fcc26a7b4f0e8586a47 (patch) | |
tree | ef2bddec7b9f09c614012ac6ee2588cd732242ee /helpers/mapping.py | |
parent | 71715c049145a074b0f2b8d90c8c8c47830323c3 (diff) | |
download | MusicSampler-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.py | 24 |
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 | |||
8 | import sys | 8 | import sys |
9 | 9 | ||
10 | from .music_file import * | 10 | from .music_file import * |
11 | from . import yml_file | 11 | from . import yml_file,gain |
12 | 12 | ||
13 | class Mapping(RelativeLayout): | 13 | class 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']: |