X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=helpers%2F__init__.py;h=9d6663893bc32634b1163f7a525b8b04a7bdf9a5;hb=2e4049036ec4d90a9daeff606d821d2ac2d023ce;hp=863a23b06cccb0eeb4159ddef6fcaf45ba1da908;hpb=af27d78259265bdada147757cd64488f44dd524d;p=perso%2FImmae%2FProjets%2FPython%2FMusicSampler.git diff --git a/helpers/__init__.py b/helpers/__init__.py index 863a23b..9d66638 100644 --- a/helpers/__init__.py +++ b/helpers/__init__.py @@ -4,6 +4,7 @@ import sys import os import math import sounddevice as sd +import logging class Config: pass @@ -16,12 +17,12 @@ def path(): return path + "/../" def parse_args(): - argv = sys.argv[1:] - sys.argv = sys.argv[:1] + argv = sys.argv[1 :] + sys.argv = sys.argv[: 1] if "--" in argv: index = argv.index("--") - kivy_args = argv[index+1:] - argv = argv[:index] + kivy_args = argv[index+1 :] + argv = argv[: index] sys.argv.extend(kivy_args) @@ -32,9 +33,14 @@ def parse_args(): default="config.yml", required=False, help="Config file to load") - parser.add_argument("-m", "--no-mixing", + parser.add_argument("-d", "--debug", + nargs=0, + action=DebugModeAction, + help="Print messages in console") + parser.add_argument("-m", "--builtin-mixing", action="store_true", - help="Don't make the mixing of sounds manually and let the sound system do it") + help="Make the mixing of sounds manually\ + (do it if the system cannot handle it correctly)") parser.add_argument("-l", "--latency", default="high", required=False, @@ -43,7 +49,8 @@ def parse_args(): default=0, type=int, required=False, - help="Blocksize: If not 0, the numbe of frames to take at each step for the mixer") + help="Blocksize: If not 0, the number of frames to take\ + at each step for the mixer") parser.add_argument("-f", "--frame-rate", default=44100, type=int, @@ -61,7 +68,8 @@ def parse_args(): help="Sample width (number of bytes for each frame)") parser.add_argument("-V", "--version", action="version", - help="Displays the current version and exits. Only use in bundled package", + help="Displays the current version and exits. Only use\ + in bundled package", version=show_version()) parser.add_argument("--device", action=SelectDeviceAction, @@ -74,16 +82,27 @@ def parse_args(): ) parser.add_argument('--', dest="args", - help="Kivy arguments. All arguments after this are interpreted by Kivy. Pass \"-- --help\" to get Kivy's usage.") + help="Kivy arguments. All arguments after this are interpreted\ + by Kivy. Pass \"-- --help\" to get Kivy's usage.") + + from kivy.logger import Logger + Logger.setLevel(logging.ERROR) + args = parser.parse_args(argv) Config.yml_file = args.config + Config.latency = args.latency Config.blocksize = args.blocksize Config.frame_rate = args.frame_rate Config.channels = args.channels Config.sample_width = args.sample_width - Config.no_mixing = args.no_mixing + Config.builtin_mixing = args.builtin_mixing + +class DebugModeAction(argparse.Action): + def __call__(self, parser, namespace, values, option_string=None): + from kivy.logger import Logger + Logger.setLevel(logging.DEBUG) class SelectDeviceAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): @@ -110,9 +129,18 @@ def duration_to_min_sec(duration): else: return "{}:{:0>2}".format(minutes, seconds) -def gain(volume, old_volume = None): +def gain(volume, old_volume=None): if old_volume is None: return 20 * math.log10(volume / 100) else: - return [20 * math.log10(max(volume, 0.1) / max(old_volume, 0.1)), max(volume, 0)] + return [ + 20 * math.log10(max(volume, 0.1) / max(old_volume, 0.1)), + max(volume, 0)] + +def debug_print(message): + from kivy.logger import Logger + Logger.debug('MusicSampler: ' + message) +def error_print(message): + from kivy.logger import Logger + Logger.error('MusicSampler: ' + message)