]> git.immae.eu Git - perso/Immae/Projets/Python/MusicSampler.git/blobdiff - music_sampler/__init__.py
Use pip setup file
[perso/Immae/Projets/Python/MusicSampler.git] / music_sampler / __init__.py
index 4827e6c1af392acf8614008c1e1d9749e54a0190..aa551fb8c21b13a054c44c5d84a7465938408a6c 100644 (file)
@@ -1,192 +1 @@
-# -*- coding: utf-8 -*-
-import argparse
-import sys
-import os
-import math
-import sounddevice as sd
-import logging
-
-from . import sysfont
-
-class Config:
-    pass
-
-def find_font(name, style=sysfont.STYLE_NONE):
-    if getattr(sys, 'frozen', False):
-        font = sys._MEIPASS + "/fonts/{}_{}.ttf".format(name, style)
-    else:
-        font = sysfont.get_font(name, style=style)
-        if font is not None:
-            font = font[4]
-    return font
-
-def register_fonts():
-    from kivy.core.text import LabelBase
-
-    ubuntu_regular = find_font("Ubuntu", style=sysfont.STYLE_NORMAL)
-    ubuntu_bold = find_font("Ubuntu", style=sysfont.STYLE_BOLD)
-    symbola = find_font("Symbola")
-
-    if ubuntu_regular is None:
-        error_print("Font Ubuntu regular could not be found, please install it.")
-        sys.exit()
-    if symbola is None:
-        error_print("Font Symbola could not be found, please install it.")
-        sys.exit()
-    if ubuntu_bold is None:
-        warn_print("Font Ubuntu Bold could not be found.")
-
-    LabelBase.register(name="Ubuntu",
-            fn_regular=ubuntu_regular,
-            fn_bold=ubuntu_bold)
-    LabelBase.register(name="Symbola",
-            fn_regular=symbola)
-
-
-def path():
-    if getattr(sys, 'frozen', False):
-        return sys._MEIPASS + "/"
-    else:
-        path = os.path.dirname(os.path.realpath(__file__))
-        return path + "/../"
-
-def parse_args():
-    argv = sys.argv[1 :]
-    sys.argv = sys.argv[: 1]
-    if "--" in argv:
-        index = argv.index("--")
-        kivy_args = argv[index+1 :]
-        argv = argv[: index]
-
-        sys.argv.extend(kivy_args)
-
-    parser = argparse.ArgumentParser(
-            description="A Music Sampler application.",
-            formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    parser.add_argument("-c", "--config",
-            default="config.yml",
-            required=False,
-            help="Config file to load")
-    parser.add_argument("-p", "--music-path",
-            default=".",
-            required=False,
-            help="Folder in which to find the music files")
-    parser.add_argument("-d", "--debug",
-            nargs=0,
-            action=DebugModeAction,
-            help="Print messages in console")
-    parser.add_argument("-m", "--builtin-mixing",
-            action="store_true",
-            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,
-            help="Latency: low, high or number of seconds")
-    parser.add_argument("-b", "--blocksize",
-            default=0,
-            type=int,
-            required=False,
-            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,
-            required=False,
-            help="Frame rate to play the musics")
-    parser.add_argument("-x", "--channels",
-            default=2,
-            type=int,
-            required=False,
-            help="Number of channels to use")
-    parser.add_argument("-s", "--sample-width",
-            default=2,
-            type=int,
-            required=False,
-            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",
-            version=show_version())
-    parser.add_argument("--device",
-            action=SelectDeviceAction,
-            help="Select this sound device"
-            )
-    parser.add_argument("--list-devices",
-            nargs=0,
-            action=ListDevicesAction,
-            help="List available sound devices"
-            )
-    parser.add_argument('--',
-            dest="args",
-            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.WARN)
-
-    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.builtin_mixing = args.builtin_mixing
-    if args.music_path.endswith("/"):
-        Config.music_path = args.music_path
-    else:
-        Config.music_path = args.music_path + "/"
-
-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):
-        sd.default.device = values
-
-class ListDevicesAction(argparse.Action):
-    nargs = 0
-    def __call__(self, parser, namespace, values, option_string=None):
-        print(sd.query_devices())
-        sys.exit()
-
-def show_version():
-    if getattr(sys, 'frozen', False):
-        with open(path() + ".pyinstaller_commit", "r") as f:
-            return f.read()
-    else:
-        return "option '-v' can only be used in bundled package"
-
-def duration_to_min_sec(duration):
-    minutes = int(duration / 60)
-    seconds = int(duration) % 60
-    if minutes < 100:
-        return "{:2}:{:0>2}".format(minutes, seconds)
-    else:
-        return "{}:{:0>2}".format(minutes, seconds)
-
-def gain(volume, old_volume=None):
-    if old_volume is None:
-        return 20 * math.log10(max(volume, 0.1) / 100)
-    else:
-        return [
-                20 * math.log10(max(volume, 0.1) / max(old_volume, 0.1)),
-                max(volume, 0)]
-
-def debug_print(message, with_trace=False):
-    from kivy.logger import Logger
-    Logger.debug('MusicSampler: ' + message, exc_info=with_trace)
-
-def error_print(message, with_trace=False):
-    from kivy.logger import Logger
-    Logger.error('MusicSampler: ' + message, exc_info=with_trace)
-
-def warn_print(message, with_trace=False):
-    from kivy.logger import Logger
-    Logger.warn('MusicSampler: ' + message, exc_info=with_trace)
+from . import app