kitbash 1.9.0__tar.gz → 1.11.0__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.
- {kitbash-1.9.0 → kitbash-1.11.0}/PKG-INFO +2 -2
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/__init__.py +13 -1
- kitbash-1.11.0/kitbash/__main__.py +93 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/main_window.py +0 -2
- {kitbash-1.9.0 → kitbash-1.11.0}/pyproject.toml +2 -2
- kitbash-1.9.0/kitbash/__main__.py +0 -72
- kitbash-1.9.0/kitbash/install.py +0 -42
- {kitbash-1.9.0 → kitbash-1.11.0}/.gitignore +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/LICENSE +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/README.md +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/__init__.py +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/drumkit_widget.py +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/kit_save_dialog.py +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/gui/main_window.ui +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/jack_audio.py +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/empty.sfz +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/group_expanded.svg +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/group_hidden.svg +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/kitbash-icon.png +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/kitbash-icon.svg +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/res/save-sfz-icon.svg +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/scripts/bash_project.py +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/styles/light.css +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/styles/system.css +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/kitbash/worker_threads.py +0 -0
- {kitbash-1.9.0 → kitbash-1.11.0}/tests/file_save_dialog.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kitbash
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.11.0
|
|
4
4
|
Summary: Provides universal settings, styles, cached icons, and pixmaps, and the base
|
|
5
5
|
Author-email: Leon Dionne <ldionne@dridesign.sh.cn>
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -11,7 +11,7 @@ Requires-Dist: qt_liquid_pool >= 1.2.0
|
|
|
11
11
|
Requires-Dist: recent_items_list >= 1.1.2
|
|
12
12
|
Requires-Dist: sfzen >= 2.3.2
|
|
13
13
|
Requires-Dist: soso_qt_extras >= 1.7.0
|
|
14
|
-
Requires-Dist: xdg_soso >=
|
|
14
|
+
Requires-Dist: xdg_soso >= 1.1.0
|
|
15
15
|
Project-URL: Home, https://github.com/Zen-Master-SoSo/kitbash
|
|
16
16
|
|
|
17
17
|
# KitBash
|
|
@@ -28,8 +28,9 @@ from functools import lru_cache
|
|
|
28
28
|
from PyQt5.QtCore import QSettings
|
|
29
29
|
from PyQt5.QtWidgets import QApplication, QSplitter
|
|
30
30
|
from qt_extras import DevilBox
|
|
31
|
+
from xdg_soso import XDGSetup
|
|
31
32
|
|
|
32
|
-
__version__ = "1.
|
|
33
|
+
__version__ = "1.11.0"
|
|
33
34
|
|
|
34
35
|
APPLICATION_NAME = "kitbash"
|
|
35
36
|
PACKAGE_DIR = dirname(__file__)
|
|
@@ -132,4 +133,15 @@ class GeometrySaver:
|
|
|
132
133
|
return f'{self.__class__.__name__}/{splitter.objectName()}/geometry'
|
|
133
134
|
|
|
134
135
|
|
|
136
|
+
class KitbashSetup(XDGSetup):
|
|
137
|
+
|
|
138
|
+
def __init__(self):
|
|
139
|
+
super().__init__('kitbash', 'Kitbash')
|
|
140
|
+
self._comment = "Bash together new .SFZ drumkits from pieces of existing ones."
|
|
141
|
+
self._vendor_name = 'zen_soso'
|
|
142
|
+
self._application_icon = join(dirname(__file__), 'res', 'kitbash-icon.svg')
|
|
143
|
+
self._categories = ['AudioVideo', 'Audio']
|
|
144
|
+
self._keywords = ['Audio', 'Sound', 'midi', 'SFZ', 'Drumkit']
|
|
145
|
+
|
|
146
|
+
|
|
135
147
|
# end kitbash/kitbash/__init__.py
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# kitbash/kitbash/__init__.py
|
|
2
|
+
#
|
|
3
|
+
# Copyright 2025-2026 Leon Dionne <ldionne@dridesign.sh.cn>
|
|
4
|
+
#
|
|
5
|
+
# This program is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This program is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
# GNU General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU General Public License
|
|
16
|
+
# along with this program; if not, write to the Free Software
|
|
17
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
18
|
+
# MA 02110-1301, USA.
|
|
19
|
+
#
|
|
20
|
+
"""
|
|
21
|
+
kitbash is a program you can use to combine parts of various SFZ files into a
|
|
22
|
+
new SFZ with instruments "borrowed" from the originals.
|
|
23
|
+
"""
|
|
24
|
+
import sys, logging
|
|
25
|
+
from os import environ
|
|
26
|
+
from argparse import ArgumentParser
|
|
27
|
+
from PyQt5.QtWidgets import QApplication
|
|
28
|
+
from qt_extras import exceptions_hook
|
|
29
|
+
from xdg_soso import is_xdg
|
|
30
|
+
from kitbash import KitbashSetup
|
|
31
|
+
from kitbash.gui.main_window import MainWindow
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def main():
|
|
35
|
+
parser = ArgumentParser()
|
|
36
|
+
parser.epilog = __doc__
|
|
37
|
+
parser.add_argument('Filename', type=str, nargs='?',
|
|
38
|
+
help='SFZ file[s] to include at startup')
|
|
39
|
+
parser.add_argument("--log-file", "-l", type=str,
|
|
40
|
+
help="Log to this file")
|
|
41
|
+
if is_xdg():
|
|
42
|
+
parser.add_argument('--install', '-i', action = 'store_true',
|
|
43
|
+
help = """Install this application into your desktop
|
|
44
|
+
environment. This will create a desktop launcher so you can start KitBash from
|
|
45
|
+
your menu or Dash, and associate KitBash with SFZ files.""")
|
|
46
|
+
parser.add_argument('--uninstall', '-u', action = 'store_true',
|
|
47
|
+
help = """Remove KitBash from your desktop environment.
|
|
48
|
+
The program will still be on your computer, and can be called from the command
|
|
49
|
+
line as "kitbash", but you won't be able to see it in your desktop applications
|
|
50
|
+
menu.""")
|
|
51
|
+
parser.add_argument("--verbose", "-v", action="store_true",
|
|
52
|
+
help="Show more detailed debug information")
|
|
53
|
+
options = parser.parse_args()
|
|
54
|
+
|
|
55
|
+
log_level = logging.DEBUG if options.verbose else logging.ERROR
|
|
56
|
+
log_format = "[%(filename)24s:%(lineno)4d] %(levelname)-8s %(message)s"
|
|
57
|
+
if options.log_file:
|
|
58
|
+
logging.basicConfig(
|
|
59
|
+
filename = options.log_file,
|
|
60
|
+
filemode = 'w',
|
|
61
|
+
level = log_level,
|
|
62
|
+
format = log_format
|
|
63
|
+
)
|
|
64
|
+
else:
|
|
65
|
+
logging.basicConfig(
|
|
66
|
+
level = log_level,
|
|
67
|
+
format = log_format
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
if options.install:
|
|
71
|
+
KitbashSetup().install()
|
|
72
|
+
elif options.uninstall:
|
|
73
|
+
KitbashSetup().uninstall()
|
|
74
|
+
else:
|
|
75
|
+
#-----------------------------------------------------------------------
|
|
76
|
+
# Annoyance fix per:
|
|
77
|
+
# https://stackoverflow.com/questions/986964/qt-session-management-error
|
|
78
|
+
try:
|
|
79
|
+
del environ['SESSION_MANAGER']
|
|
80
|
+
except KeyError:
|
|
81
|
+
pass
|
|
82
|
+
#-----------------------------------------------------------------------
|
|
83
|
+
app = QApplication([])
|
|
84
|
+
sys.excepthook = exceptions_hook
|
|
85
|
+
main_window = MainWindow(options)
|
|
86
|
+
main_window.show()
|
|
87
|
+
sys.exit(app.exec())
|
|
88
|
+
|
|
89
|
+
if __name__ == "__main__":
|
|
90
|
+
sys.exit(main())
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
# end kitbash/kitbash/__init__.py
|
|
@@ -46,7 +46,6 @@ from kitbash import (
|
|
|
46
46
|
from kitbash.worker_threads import KitLoader, KitBasher
|
|
47
47
|
from kitbash.gui.drumkit_widget import DrumkitWidget
|
|
48
48
|
from kitbash.gui.kit_save_dialog import KitSaveDialog
|
|
49
|
-
from kitbash.install import install
|
|
50
49
|
|
|
51
50
|
|
|
52
51
|
UPDATES_DEBOUNCE = 680
|
|
@@ -123,7 +122,6 @@ class MainWindow(QMainWindow, GeometrySaver):
|
|
|
123
122
|
self.audio.connect()
|
|
124
123
|
if self.options.Filename:
|
|
125
124
|
self.load_project(self.options.Filename)
|
|
126
|
-
install()
|
|
127
125
|
|
|
128
126
|
def setup_kits_area(self):
|
|
129
127
|
self.drumkit_widgets = VListLayout(end_space = 10)
|
|
@@ -12,7 +12,7 @@ dependencies = [
|
|
|
12
12
|
"recent_items_list >= 1.1.2",
|
|
13
13
|
"sfzen >= 2.3.2",
|
|
14
14
|
"soso_qt_extras >= 1.7.0",
|
|
15
|
-
"xdg_soso >=
|
|
15
|
+
"xdg_soso >= 1.1.0"
|
|
16
16
|
]
|
|
17
17
|
|
|
18
18
|
[project.urls]
|
|
@@ -27,7 +27,7 @@ requires = ["flit_core >=3.2,<4"]
|
|
|
27
27
|
build-backend = "flit_core.buildapi"
|
|
28
28
|
|
|
29
29
|
[bumpver]
|
|
30
|
-
current_version = "1.
|
|
30
|
+
current_version = "1.11.0"
|
|
31
31
|
version_pattern = "MAJOR.MINOR.PATCH"
|
|
32
32
|
commit_message = "Bump version {old_version} -> {new_version}"
|
|
33
33
|
commit = true
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# kitbash/kitbash/__init__.py
|
|
2
|
-
#
|
|
3
|
-
# Copyright 2025-2026 Leon Dionne <ldionne@dridesign.sh.cn>
|
|
4
|
-
#
|
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
# GNU General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License
|
|
16
|
-
# along with this program; if not, write to the Free Software
|
|
17
|
-
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
18
|
-
# MA 02110-1301, USA.
|
|
19
|
-
#
|
|
20
|
-
"""
|
|
21
|
-
kitbash is a program you can use to combine parts of various SFZ files into a
|
|
22
|
-
new SFZ with instruments "borrowed" from the originals.
|
|
23
|
-
"""
|
|
24
|
-
import sys, os, argparse, logging
|
|
25
|
-
from PyQt5.QtWidgets import QApplication, QErrorMessage
|
|
26
|
-
from qt_extras import exceptions_hook
|
|
27
|
-
from kitbash.gui.main_window import MainWindow
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def main():
|
|
31
|
-
p = argparse.ArgumentParser()
|
|
32
|
-
p.epilog = __doc__
|
|
33
|
-
p.add_argument('Filename', type=str, nargs='?', help='SFZ file[s] to include at startup')
|
|
34
|
-
p.add_argument("--log-file", "-l", type=str, help="Log to this file")
|
|
35
|
-
p.add_argument("--verbose", "-v", action="store_true", help="Show more detailed debug information")
|
|
36
|
-
options = p.parse_args()
|
|
37
|
-
|
|
38
|
-
log_level = logging.DEBUG if options.verbose else logging.ERROR
|
|
39
|
-
log_format = "[%(filename)24s:%(lineno)4d] %(levelname)-8s %(message)s"
|
|
40
|
-
if options.log_file:
|
|
41
|
-
logging.basicConfig(
|
|
42
|
-
filename = options.log_file,
|
|
43
|
-
filemode = 'w',
|
|
44
|
-
level = log_level,
|
|
45
|
-
format = log_format
|
|
46
|
-
)
|
|
47
|
-
else:
|
|
48
|
-
logging.basicConfig(
|
|
49
|
-
level = log_level,
|
|
50
|
-
format = log_format
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
#-----------------------------------------------------------------------
|
|
54
|
-
# Annoyance fix per:
|
|
55
|
-
# https://stackoverflow.com/questions/986964/qt-session-management-error
|
|
56
|
-
try:
|
|
57
|
-
del os.environ['SESSION_MANAGER']
|
|
58
|
-
except KeyError:
|
|
59
|
-
pass
|
|
60
|
-
#-----------------------------------------------------------------------
|
|
61
|
-
|
|
62
|
-
app = QApplication([])
|
|
63
|
-
sys.excepthook = exceptions_hook
|
|
64
|
-
main_window = MainWindow(options)
|
|
65
|
-
main_window.show()
|
|
66
|
-
sys.exit(app.exec())
|
|
67
|
-
|
|
68
|
-
if __name__ == "__main__":
|
|
69
|
-
sys.exit(main())
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
# end kitbash/kitbash/__init__.py
|
kitbash-1.9.0/kitbash/install.py
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# kitbash/kitbash/install.py
|
|
2
|
-
#
|
|
3
|
-
# Copyright 2026 Leon Dionne <ldionne@dridesign.sh.cn>
|
|
4
|
-
#
|
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
# GNU General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License
|
|
16
|
-
# along with this program; if not, write to the Free Software
|
|
17
|
-
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
|
18
|
-
# MA 02110-1301, USA.
|
|
19
|
-
#
|
|
20
|
-
"""
|
|
21
|
-
Install phoney-dictate as an application on XDG-compliant systems (like gnome).
|
|
22
|
-
"""
|
|
23
|
-
import logging
|
|
24
|
-
from os.path import dirname, join
|
|
25
|
-
from xdg_soso import XDGSetup, is_xdg
|
|
26
|
-
|
|
27
|
-
def install():
|
|
28
|
-
if is_xdg():
|
|
29
|
-
xdg = XDGSetup('kitbash', 'Kitbash')
|
|
30
|
-
xdg.comment = "Bash together new .SFZ drumkits from pieces of existing ones."
|
|
31
|
-
xdg.application_icon = join(dirname(__file__), 'res', 'kitbash-icon.svg')
|
|
32
|
-
xdg.categories = ['AudioVideo', 'Audio']
|
|
33
|
-
xdg.keywords = ['Audio', 'Sound', 'midi', 'SFZ', 'Drumkit']
|
|
34
|
-
xdg.install()
|
|
35
|
-
|
|
36
|
-
if __name__ == '__main__':
|
|
37
|
-
log_format = "[%(filename)24s:%(lineno)4d] %(levelname)-8s %(message)s"
|
|
38
|
-
logging.basicConfig(level = logging.DEBUG, format = log_format)
|
|
39
|
-
install()
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
# end kitbash/kitbash/install.py
|
|
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
|