musecbox 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {musecbox-0.2.0 → musecbox-0.2.2}/PKG-INFO +1 -1
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/__init__.py +1 -1
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/missing_sfzs_dialog.py +1 -1
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_import_dialog.py +2 -2
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/balance_control_widget.py +4 -7
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/main_window.py +4 -2
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/track_widget.py +9 -7
- {musecbox-0.2.0 → musecbox-0.2.2}/pyproject.toml +1 -1
- {musecbox-0.2.0 → musecbox-0.2.2}/.gitignore +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/LICENSE +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/README.md +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/__main__.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/audio_recorder.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/__init__ +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/add_group_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/add_group_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/connection_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/connection_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/copy_sfz_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/copy_sfz_paths_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/copy_sfzs_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/copy_sfzs_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/generic_plugin_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/instrument_selection_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/instrument_selection_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/project_info_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/project_info_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/project_load_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/project_load_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/project_save_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/record_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/record_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_apply_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_apply_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_import_channel_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_import_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_import_part_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_info_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_info_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/score_load_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/sfz_file_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/sfz_file_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/sfzdb_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/sfzdb_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/track_creation_dialog.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/dialogs/track_creation_dialog.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/__init__.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/horizontal_port_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/horizontal_track_plugin_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/horizontal_track_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/main_window.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/plugin_widgets.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/port_widget.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/shared_plugin_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/vertical_port_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/vertical_track_plugin_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/gui/vertical_track_widget.ui +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/liquidsfz.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/Theremin/Stereo-Theremin.sfz +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/Theremin/Thick-Theremin.sfz +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/Theremin/Thin-Theremin.sfz +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/Theremin/samples/SINUS.wav +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/Theremin/samples/U-sinewave.wav +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/audio-icon-off.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/audio-icon-on.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/balance_control_widget.h +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/collapse-vertical.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/collapse.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/control-icon-off.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/control-icon-on.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/disable-off.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/disable-on.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/empty.sfz +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/expand-vertical.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/expand.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/lock.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/menu.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/meter.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/midi-icon-off.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/midi-icon-on.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/minus.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/musecbox-icon.png +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/musescore_score.mscx +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/mute.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/narrow-menu.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/plus.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/render.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/solo.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/res/unlock.svg +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/score_fixer.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/scripts/__init__.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/scripts/mbx_apply.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/scripts/mbx_project_info.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/scripts/mbx_track_setup.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/sfz_previewer.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/sfzdb.py +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/styles/dark.css +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/styles/light.css +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/styles/system.css +0 -0
- {musecbox-0.2.0 → musecbox-0.2.2}/musecbox/xdg/install.sh +0 -0
|
@@ -127,7 +127,7 @@ class MissingSFZ(QFrame):
|
|
|
127
127
|
def slot_select(self):
|
|
128
128
|
sfz_dialog = SFZFileDialog(self.track_widget.voice_name)
|
|
129
129
|
if sfz_dialog.exec():
|
|
130
|
-
self.track_widget.synth.
|
|
130
|
+
self.track_widget.synth.load_sfz(sfz_dialog.sfz_filename)
|
|
131
131
|
self.lbl_filename.setText(self.track_widget.synth.sfz_filename)
|
|
132
132
|
self.lbl_icon.setText(CHAR_OKAY)
|
|
133
133
|
self.is_missing = False
|
|
@@ -22,7 +22,7 @@ Provides a dialog used for importing MuseScore3 files
|
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
24
|
import logging
|
|
25
|
-
from os.path import join, basename, dirname, splitext
|
|
25
|
+
from os.path import join, basename, dirname, realpath, splitext
|
|
26
26
|
from functools import partial, reduce
|
|
27
27
|
from collections import defaultdict
|
|
28
28
|
from operator import and_
|
|
@@ -58,7 +58,7 @@ class ScoreImportDialog(QDialog):
|
|
|
58
58
|
super().__init__(parent)
|
|
59
59
|
with ShutUpQT():
|
|
60
60
|
uic.loadUi(join(dirname(__file__), 'score_import_dialog.ui'), self)
|
|
61
|
-
self.filename = filename
|
|
61
|
+
self.filename = realpath(filename)
|
|
62
62
|
self.restore_geometry()
|
|
63
63
|
self.setFixedWidth(704)
|
|
64
64
|
self.finished.connect(self.save_geometry)
|
|
@@ -131,15 +131,10 @@ class BalanceControlWidget(QWidget):
|
|
|
131
131
|
# Screen / internal plugin value conversions
|
|
132
132
|
|
|
133
133
|
def resizeEvent(self, event):
|
|
134
|
-
# Returns a new rectangle with dx1, dy1, dx2 and dy2 added respectively to the
|
|
135
|
-
# existing coordinates of this rectangle.
|
|
136
134
|
self.bounds_rect = QRect(QPoint(0, 0), event.size()).adjusted(
|
|
137
135
|
TRACK_HALF_WIDTH + 1, 1, -TRACK_HALF_WIDTH - 1, -1)
|
|
138
136
|
self.center_x = self.bounds_rect.center().x()
|
|
139
|
-
# f_scale is what you divide event x by in order to get a value in a range
|
|
140
|
-
# from -1.0 to 1.0 (proportion)
|
|
141
137
|
self.f_scale = float(self.bounds_rect.width() / 2)
|
|
142
|
-
self.f_track_half_width = TRACK_HALF_WIDTH / self.f_scale
|
|
143
138
|
for group in self._groups.values():
|
|
144
139
|
group.reposition()
|
|
145
140
|
self.update()
|
|
@@ -304,7 +299,8 @@ class BalanceControlWidget(QWidget):
|
|
|
304
299
|
"""
|
|
305
300
|
Called from TrackWidget when mouse hovers over it
|
|
306
301
|
"""
|
|
307
|
-
self.
|
|
302
|
+
if pan_group_key in self._groups:
|
|
303
|
+
self.change_focused_group(self._groups[pan_group_key], False)
|
|
308
304
|
|
|
309
305
|
def hover_out(self):
|
|
310
306
|
"""
|
|
@@ -342,7 +338,8 @@ class BalanceControlWidget(QWidget):
|
|
|
342
338
|
|
|
343
339
|
def _create_group(self, key, track):
|
|
344
340
|
self._groups[key] = BCGroup(self, key, track)
|
|
345
|
-
self.
|
|
341
|
+
if self.isVisible():
|
|
342
|
+
self._groups[key].reposition()
|
|
346
343
|
self._groups[key].show()
|
|
347
344
|
|
|
348
345
|
def orphan(self, track):
|
|
@@ -30,7 +30,7 @@ from signal import signal, SIGINT, SIGTERM
|
|
|
30
30
|
from socket import socket, AF_UNIX, SOCK_DGRAM, SOL_SOCKET, SO_REUSEADDR
|
|
31
31
|
from qt_extras import SigBlock, ShutUpQT, DevilBox
|
|
32
32
|
from qt_extras.list_layout import HListLayout, VListLayout
|
|
33
|
-
from sfzen import SFZ
|
|
33
|
+
from sfzen import SFZ, SAMPLES_ABSPATH
|
|
34
34
|
from sfzen.cleaners.liquidsfz import clean as liquid_clean
|
|
35
35
|
from mscore import VoiceName
|
|
36
36
|
from simple_carla import Plugin, Parameter, \
|
|
@@ -470,6 +470,7 @@ class MainWindow(QMainWindow):
|
|
|
470
470
|
self.source_score = self.project_definition['source_score']
|
|
471
471
|
set_application_style()
|
|
472
472
|
self.show_hide_window_elements()
|
|
473
|
+
self.balance_control_widget.slot_set_lines(setting(KEY_BCWIDGET_LINES, int, 3))
|
|
473
474
|
if 'exported_wav_file' in self.project_definition:
|
|
474
475
|
self.wav_filename = self.project_definition['exported_wav_file']
|
|
475
476
|
if ProjectLoadDialog(self, self.project_definition).exec():
|
|
@@ -587,7 +588,8 @@ class MainWindow(QMainWindow):
|
|
|
587
588
|
|
|
588
589
|
def copy_sfzs(self):
|
|
589
590
|
self.setCursor(Qt.WaitCursor)
|
|
590
|
-
samples_mode = setting(KEY_SAMPLES_MODE,
|
|
591
|
+
samples_mode = setting(KEY_SAMPLES_MODE, int, SAMPLES_ABSPATH)
|
|
592
|
+
logging.debug('Copying SFZs; samples_mode is %d', samples_mode)
|
|
591
593
|
clean_sfzs = setting(KEY_CLEAN_SFZS, bool)
|
|
592
594
|
title, _ = splitext(basename(self.project_filename))
|
|
593
595
|
sfz_dir = join(self.project_dir(), title)
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
Provides vertical and horizontal track widgets.
|
|
22
22
|
"""
|
|
23
23
|
import logging, os
|
|
24
|
-
from os.path import join, dirname, relpath,
|
|
24
|
+
from os.path import join, dirname, relpath, realpath, exists
|
|
25
25
|
from math import floor
|
|
26
26
|
from functools import partial
|
|
27
27
|
from itertools import chain
|
|
@@ -751,9 +751,8 @@ class TrackSynth(LiquidSFZ):
|
|
|
751
751
|
def __init__(self, port, slot, sfz_filename, *, saved_state = None):
|
|
752
752
|
self.port = port
|
|
753
753
|
self.slot = slot
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
super().__init__(sfz_filename, saved_state = saved_state)
|
|
754
|
+
super().__init__(self._get_real(sfz_filename), saved_state = saved_state)
|
|
755
|
+
logging.debug('Loaded synth "%s"; SFZ filename: %s', self, self.sfz_filename)
|
|
757
756
|
|
|
758
757
|
def track_widget(self):
|
|
759
758
|
return main_window().port_widget(self.port).track_widget(self.slot)
|
|
@@ -764,13 +763,16 @@ class TrackSynth(LiquidSFZ):
|
|
|
764
763
|
|
|
765
764
|
def load_sfz(self, sfz_filename):
|
|
766
765
|
oldpath = self.sfz_filename
|
|
767
|
-
|
|
768
|
-
sfz_filename = abspath(join(main_window().project_dir(), sfz_filename))
|
|
769
|
-
super().load_sfz(sfz_filename)
|
|
766
|
+
super().load_sfz(self._get_real(sfz_filename))
|
|
770
767
|
if oldpath != self.sfz_filename:
|
|
771
768
|
main_window().unwatch(oldpath)
|
|
772
769
|
main_window().watch(self.sfz_filename)
|
|
773
770
|
|
|
771
|
+
def _get_real(self, sfz_filename):
|
|
772
|
+
if exists(sfz_filename):
|
|
773
|
+
return realpath(sfz_filename)
|
|
774
|
+
return realpath(join(main_window().project_dir(), sfz_filename))
|
|
775
|
+
|
|
774
776
|
def auto_load_complete(self):
|
|
775
777
|
super().auto_load_complete()
|
|
776
778
|
self.sig_sfz_loaded.emit(self.sfz_filename)
|
|
@@ -31,7 +31,7 @@ requires = ["flit_core >=3.2,<4"]
|
|
|
31
31
|
build-backend = "flit_core.buildapi"
|
|
32
32
|
|
|
33
33
|
[bumpver]
|
|
34
|
-
current_version = "0.2.
|
|
34
|
+
current_version = "0.2.2"
|
|
35
35
|
version_pattern = "MAJOR.MINOR.PATCH"
|
|
36
36
|
commit_message = "Bump version {old_version} -> {new_version}"
|
|
37
37
|
commit = true
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|