The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── README.md
├── UVR.py
├── __version__.py
├── demucs
    ├── __init__.py
    ├── __main__.py
    ├── apply.py
    ├── demucs.py
    ├── filtering.py
    ├── hdemucs.py
    ├── htdemucs.py
    ├── model.py
    ├── model_v2.py
    ├── pretrained.py
    ├── repo.py
    ├── spec.py
    ├── states.py
    ├── tasnet.py
    ├── tasnet_v2.py
    ├── transformer.py
    └── utils.py
├── gui_data
    ├── app_size_values.py
    ├── change_log.txt
    ├── complete_chime.wav
    ├── constants.py
    ├── error_handling.py
    ├── fail_chime.wav
    ├── fonts
    │   ├── Montserrat
    │   │   └── Montserrat.ttf
    │   ├── centurygothic
    │   │   └── GOTHIC.ttf
    │   └── other
    │   │   └── own_font_goes_here.txt
    ├── img
    │   ├── File.png
    │   ├── GUI-Icon.ico
    │   ├── GUI-Icon.png
    │   ├── UVR-banner.png
    │   ├── UVR.icns
    │   ├── UVR_v5.6.png
    │   ├── clear.png
    │   ├── copy.png
    │   ├── credits.png
    │   ├── donate.png
    │   ├── down.png
    │   ├── download.png
    │   ├── help.png
    │   ├── key.png
    │   ├── left.png
    │   ├── pause.png
    │   ├── play.png
    │   ├── right.png
    │   ├── splash.bmp
    │   ├── stop.png
    │   ├── stop_player.png
    │   └── up.png
    ├── model_manual_download.json
    ├── old_data_check.py
    ├── own_font.json
    ├── saved_ensembles
    │   └── saved_ensembles_go_here.txt
    ├── saved_settings
    │   └── saved_settings_go_here.txt
    ├── sv_ttk
    │   ├── __init__.py
    │   ├── sun-valley.tcl
    │   ├── sun-valley_darwin.tcl
    │   └── theme
    │   │   ├── dark.tcl
    │   │   └── dark
    │   │       ├── arrow-down.png
    │   │       ├── arrow-right.png
    │   │       ├── arrow-up.png
    │   │       ├── button-accent-disabled.png
    │   │       ├── button-accent-hover.png
    │   │       ├── button-accent-pressed.png
    │   │       ├── button-accent-rest.png
    │   │       ├── button-close-hover.png
    │   │       ├── button-close-pressed.png
    │   │       ├── button-disabled.png
    │   │       ├── button-hover.png
    │   │       ├── button-pressed.png
    │   │       ├── button-rest.png
    │   │       ├── button-titlebar-hover.png
    │   │       ├── button-titlebar-pressed.png
    │   │       ├── card.png
    │   │       ├── check-disabled.png
    │   │       ├── check-hover.png
    │   │       ├── check-pressed.png
    │   │       ├── check-rest.png
    │   │       ├── check-tri-disabled.png
    │   │       ├── check-tri-hover.png
    │   │       ├── check-tri-pressed.png
    │   │       ├── check-tri-rest.png
    │   │       ├── check-unsel-disabled.png
    │   │       ├── check-unsel-hover.png
    │   │       ├── check-unsel-pressed.png
    │   │       ├── check-unsel-rest.png
    │   │       ├── combo-disabled.png
    │   │       ├── empty.png
    │   │       ├── entry-disabled.png
    │   │       ├── entry-focus.png
    │   │       ├── entry-hover.png
    │   │       ├── entry-invalid.png
    │   │       ├── entry-rest-combo.png
    │   │       ├── entry-rest.png
    │   │       ├── notebook-border.png
    │   │       ├── notebook.png
    │   │       ├── progress-pbar-hor.png
    │   │       ├── progress-pbar-vert.png
    │   │       ├── progress-trough-hor.png
    │   │       ├── progress-trough-vert.png
    │   │       ├── radio-disabled.png
    │   │       ├── radio-hover.png
    │   │       ├── radio-pressed.png
    │   │       ├── radio-rest.png
    │   │       ├── radio-unsel-disabled.png
    │   │       ├── radio-unsel-hover.png
    │   │       ├── radio-unsel-pressed.png
    │   │       ├── radio-unsel-rest.png
    │   │       ├── scale-thumb-disabled.png
    │   │       ├── scale-thumb-hover.png
    │   │       ├── scale-thumb-pressed.png
    │   │       ├── scale-thumb-rest.png
    │   │       ├── scale-trough-hor.png
    │   │       ├── scale-trough-vert.png
    │   │       ├── scroll-down.png
    │   │       ├── scroll-hor-thumb.png
    │   │       ├── scroll-hor-trough.png
    │   │       ├── scroll-left.png
    │   │       ├── scroll-right.png
    │   │       ├── scroll-up.png
    │   │       ├── scroll-vert-thumb.png
    │   │       ├── scroll-vert-trough.png
    │   │       ├── separator.png
    │   │       ├── sizegrip.png
    │   │       ├── switch-off-disabled.png
    │   │       ├── switch-off-hover.png
    │   │       ├── switch-off-pressed.png
    │   │       ├── switch-off-rest.png
    │   │       ├── switch-on-disabled.png
    │   │       ├── switch-on-hover.png
    │   │       ├── switch-on-pressed.png
    │   │       ├── switch-on-rest.png
    │   │       ├── tab-hover.png
    │   │       ├── tab-rest.png
    │   │       ├── tab-selected.png
    │   │       ├── treeheading-hover.png
    │   │       ├── treeheading-pressed.png
    │   │       └── treeheading-rest.png
    └── tkinterdnd2
    │   ├── TkinterDnD.py
    │   ├── __init__.py
    │   └── tkdnd
    │       ├── linux64
    │           ├── libtkdnd2.9.2.so
    │           ├── pkgIndex.tcl
    │           ├── tkdnd.tcl
    │           ├── tkdnd_compat.tcl
    │           ├── tkdnd_generic.tcl
    │           ├── tkdnd_macosx.tcl
    │           ├── tkdnd_unix.tcl
    │           ├── tkdnd_utils.tcl
    │           └── tkdnd_windows.tcl
    │       ├── osx64
    │           ├── libtkdnd2.9.2.dylib
    │           ├── pkgIndex.tcl
    │           ├── tkdnd.tcl
    │           ├── tkdnd_compat.tcl
    │           ├── tkdnd_generic.tcl
    │           ├── tkdnd_macosx.tcl
    │           ├── tkdnd_unix.tcl
    │           ├── tkdnd_utils.tcl
    │           └── tkdnd_windows.tcl
    │       ├── osx_arm
    │           ├── libtkdnd2.9.3.dylib
    │           ├── pkgIndex.tcl
    │           ├── tkdnd.tcl
    │           ├── tkdnd_compat.tcl
    │           ├── tkdnd_generic.tcl
    │           ├── tkdnd_macosx.tcl
    │           ├── tkdnd_unix.tcl
    │           ├── tkdnd_utils.tcl
    │           └── tkdnd_windows.tcl
    │       └── win64
    │           ├── libtkdnd2.9.2.dll
    │           ├── pkgIndex.tcl
    │           ├── tkdnd.tcl
    │           ├── tkdnd2.9.2.lib
    │           ├── tkdnd_compat.tcl
    │           ├── tkdnd_generic.tcl
    │           ├── tkdnd_macosx.tcl
    │           ├── tkdnd_unix.tcl
    │           ├── tkdnd_utils.tcl
    │           └── tkdnd_windows.tcl
├── install_packages.sh
├── lib_v5
    ├── mdxnet.py
    ├── mixer.ckpt
    ├── modules.py
    ├── pyrb.py
    ├── results.py
    ├── spec_utils.py
    ├── tfc_tdf_v3.py
    └── vr_network
    │   ├── __init__.py
    │   ├── layers.py
    │   ├── layers_new.py
    │   ├── model_param_init.py
    │   ├── modelparams
    │       ├── 1band_sr16000_hl512.json
    │       ├── 1band_sr32000_hl512.json
    │       ├── 1band_sr33075_hl384.json
    │       ├── 1band_sr44100_hl1024.json
    │       ├── 1band_sr44100_hl256.json
    │       ├── 1band_sr44100_hl512.json
    │       ├── 1band_sr44100_hl512_cut.json
    │       ├── 1band_sr44100_hl512_nf1024.json
    │       ├── 2band_32000.json
    │       ├── 2band_44100_lofi.json
    │       ├── 2band_48000.json
    │       ├── 3band_44100.json
    │       ├── 3band_44100_mid.json
    │       ├── 3band_44100_msb2.json
    │       ├── 4band_44100.json
    │       ├── 4band_44100_mid.json
    │       ├── 4band_44100_msb.json
    │       ├── 4band_44100_msb2.json
    │       ├── 4band_44100_reverse.json
    │       ├── 4band_44100_sw.json
    │       ├── 4band_v2.json
    │       ├── 4band_v2_sn.json
    │       ├── 4band_v3.json
    │       ├── 4band_v3_sn.json
    │       └── ensemble.json
    │   ├── nets.py
    │   └── nets_new.py
├── models
    ├── Demucs_Models
    │   ├── model_data
    │   │   └── model_name_mapper.json
    │   └── v3_v4_repo
    │   │   └── demucs_models.txt
    ├── MDX_Net_Models
    │   └── model_data
    │   │   ├── mdx_c_configs
    │   │       ├── model1.yaml
    │   │       ├── model2.yaml
    │   │       ├── model3.yaml
    │   │       ├── modelA.yaml
    │   │       ├── modelB.yaml
    │   │       ├── model_2_stem_061321.yaml
    │   │       ├── model_2_stem_full_band.yaml
    │   │       ├── model_2_stem_full_band_2.yaml
    │   │       ├── model_2_stem_full_band_3.yaml
    │   │       ├── model_2_stem_full_band_4.yaml
    │   │       ├── model_2_stem_full_band_8k.yaml
    │   │       └── sndfx.yaml
    │   │   ├── model_data.json
    │   │   └── model_name_mapper.json
    └── VR_Models
    │   ├── UVR-DeNoise-Lite.pth
    │   └── model_data
    │       └── model_data.json
├── requirements.txt
└── separate.py


/__version__.py:
--------------------------------------------------------------------------------
1 | VERSION = 'v5.6.0'
2 | PATCH = 'UVR_Patch_9_29_23_1_39'
3 | PATCH_MAC = 'UVR_Patch_9_29_23_1_39'
4 | PATCH_LINUX = 'UVR_Patch_9_29_23_1_39'
5 | 


--------------------------------------------------------------------------------
/demucs/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) Facebook, Inc. and its affiliates.
2 | # All rights reserved.
3 | #
4 | # This source code is licensed under the license found in the
5 | # LICENSE file in the root directory of this source tree.
6 | 


--------------------------------------------------------------------------------
/demucs/pretrained.py:
--------------------------------------------------------------------------------
  1 | # Copyright (c) Facebook, Inc. and its affiliates.
  2 | # All rights reserved.
  3 | #
  4 | # This source code is licensed under the license found in the
  5 | # LICENSE file in the root directory of this source tree.
  6 | """Loading pretrained models.
  7 | """
  8 | 
  9 | import logging
 10 | from pathlib import Path
 11 | import typing as tp
 12 | 
 13 | #from dora.log import fatal
 14 | 
 15 | import logging
 16 | 
 17 | from diffq import DiffQuantizer
 18 | import torch.hub
 19 | 
 20 | from .model import Demucs
 21 | from .tasnet_v2 import ConvTasNet
 22 | from .utils import set_state
 23 | 
 24 | from .hdemucs import HDemucs
 25 | from .repo import RemoteRepo, LocalRepo, ModelOnlyRepo, BagOnlyRepo, AnyModelRepo, ModelLoadingError  # noqa
 26 | 
 27 | logger = logging.getLogger(__name__)
 28 | ROOT_URL = "https://dl.fbaipublicfiles.com/demucs/mdx_final/"
 29 | REMOTE_ROOT = Path(__file__).parent / 'remote'
 30 | 
 31 | SOURCES = ["drums", "bass", "other", "vocals"]
 32 | 
 33 | 
 34 | def demucs_unittest():
 35 |     model = HDemucs(channels=4, sources=SOURCES)
 36 |     return model
 37 | 
 38 | 
 39 | def add_model_flags(parser):
 40 |     group = parser.add_mutually_exclusive_group(required=False)
 41 |     group.add_argument("-s", "--sig", help="Locally trained XP signature.")
 42 |     group.add_argument("-n", "--name", default="mdx_extra_q",
 43 |                        help="Pretrained model name or signature. Default is mdx_extra_q.")
 44 |     parser.add_argument("--repo", type=Path,
 45 |                         help="Folder containing all pre-trained models for use with -n.")
 46 | 
 47 | 
 48 | def _parse_remote_files(remote_file_list) -> tp.Dict[str, str]:
 49 |     root: str = ''
 50 |     models: tp.Dict[str, str] = {}
 51 |     for line in remote_file_list.read_text().split('\n'):
 52 |         line = line.strip()
 53 |         if line.startswith('#'):
 54 |             continue
 55 |         elif line.startswith('root:'):
 56 |             root = line.split(':', 1)[1].strip()
 57 |         else:
 58 |             sig = line.split('-', 1)[0]
 59 |             assert sig not in models
 60 |             models[sig] = ROOT_URL + root + line
 61 |     return models
 62 | 
 63 | def get_model(name: str,
 64 |               repo: tp.Optional[Path] = None):
 65 |     """`name` must be a bag of models name or a pretrained signature
 66 |     from the remote AWS model repo or the specified local repo if `repo` is not None.
 67 |     """
 68 |     if name == 'demucs_unittest':
 69 |         return demucs_unittest()
 70 |     model_repo: ModelOnlyRepo
 71 |     if repo is None:
 72 |         models = _parse_remote_files(REMOTE_ROOT / 'files.txt')
 73 |         model_repo = RemoteRepo(models)
 74 |         bag_repo = BagOnlyRepo(REMOTE_ROOT, model_repo)
 75 |     else:
 76 |         if not repo.is_dir():
 77 |             fatal(f"{repo} must exist and be a directory.")
 78 |         model_repo = LocalRepo(repo)
 79 |         bag_repo = BagOnlyRepo(repo, model_repo)
 80 |     any_repo = AnyModelRepo(model_repo, bag_repo)
 81 |     model = any_repo.get_model(name)
 82 |     model.eval()
 83 |     return model
 84 | 
 85 | def get_model_from_args(args):
 86 |     """
 87 |     Load local model package or pre-trained model.
 88 |     """
 89 |     return get_model(name=args.name, repo=args.repo)
 90 | 
 91 | logger = logging.getLogger(__name__)
 92 | ROOT = "https://dl.fbaipublicfiles.com/demucs/v3.0/"
 93 | 
 94 | PRETRAINED_MODELS = {
 95 |     'demucs': 'e07c671f',
 96 |     'demucs48_hq': '28a1282c',
 97 |     'demucs_extra': '3646af93',
 98 |     'demucs_quantized': '07afea75',
 99 |     'tasnet': 'beb46fac',
100 |     'tasnet_extra': 'df3777b2',
101 |     'demucs_unittest': '09ebc15f',
102 | }
103 | 
104 | SOURCES = ["drums", "bass", "other", "vocals"]
105 | 
106 | 
107 | def get_url(name):
108 |     sig = PRETRAINED_MODELS[name]
109 |     return ROOT + name + "-" + sig[:8] + ".th"
110 | 
111 | def is_pretrained(name):
112 |     return name in PRETRAINED_MODELS
113 | 
114 | 
115 | def load_pretrained(name):
116 |     if name == "demucs":
117 |         return demucs(pretrained=True)
118 |     elif name == "demucs48_hq":
119 |         return demucs(pretrained=True, hq=True, channels=48)
120 |     elif name == "demucs_extra":
121 |         return demucs(pretrained=True, extra=True)
122 |     elif name == "demucs_quantized":
123 |         return demucs(pretrained=True, quantized=True)
124 |     elif name == "demucs_unittest":
125 |         return demucs_unittest(pretrained=True)
126 |     elif name == "tasnet":
127 |         return tasnet(pretrained=True)
128 |     elif name == "tasnet_extra":
129 |         return tasnet(pretrained=True, extra=True)
130 |     else:
131 |         raise ValueError(f"Invalid pretrained name {name}")
132 | 
133 | 
134 | def _load_state(name, model, quantizer=None):
135 |     url = get_url(name)
136 |     state = torch.hub.load_state_dict_from_url(url, map_location='cpu', check_hash=True)
137 |     set_state(model, quantizer, state)
138 |     if quantizer:
139 |         quantizer.detach()
140 | 
141 | 
142 | def demucs_unittest(pretrained=True):
143 |     model = Demucs(channels=4, sources=SOURCES)
144 |     if pretrained:
145 |         _load_state('demucs_unittest', model)
146 |     return model
147 | 
148 | 
149 | def demucs(pretrained=True, extra=False, quantized=False, hq=False, channels=64):
150 |     if not pretrained and (extra or quantized or hq):
151 |         raise ValueError("if extra or quantized is True, pretrained must be True.")
152 |     model = Demucs(sources=SOURCES, channels=channels)
153 |     if pretrained:
154 |         name = 'demucs'
155 |         if channels != 64:
156 |             name += str(channels)
157 |         quantizer = None
158 |         if sum([extra, quantized, hq]) > 1:
159 |             raise ValueError("Only one of extra, quantized, hq, can be True.")
160 |         if quantized:
161 |             quantizer = DiffQuantizer(model, group_size=8, min_size=1)
162 |             name += '_quantized'
163 |         if extra:
164 |             name += '_extra'
165 |         if hq:
166 |             name += '_hq'
167 |         _load_state(name, model, quantizer)
168 |     return model
169 | 
170 | 
171 | def tasnet(pretrained=True, extra=False):
172 |     if not pretrained and extra:
173 |         raise ValueError("if extra is True, pretrained must be True.")
174 |     model = ConvTasNet(X=10, sources=SOURCES)
175 |     if pretrained:
176 |         name = 'tasnet'
177 |         if extra:
178 |             name = 'tasnet_extra'
179 |         _load_state(name, model)
180 |     return model


--------------------------------------------------------------------------------
/demucs/repo.py:
--------------------------------------------------------------------------------
  1 | # Copyright (c) Facebook, Inc. and its affiliates.
  2 | # All rights reserved.
  3 | #
  4 | # This source code is licensed under the license found in the
  5 | # LICENSE file in the root directory of this source tree.
  6 | """Represents a model repository, including pre-trained models and bags of models.
  7 | A repo can either be the main remote repository stored in AWS, or a local repository
  8 | with your own models.
  9 | """
 10 | 
 11 | from hashlib import sha256
 12 | from pathlib import Path
 13 | import typing as tp
 14 | 
 15 | import torch
 16 | import yaml
 17 | 
 18 | from .apply import BagOfModels, Model
 19 | from .states import load_model
 20 | 
 21 | 
 22 | AnyModel = tp.Union[Model, BagOfModels]
 23 | 
 24 | 
 25 | class ModelLoadingError(RuntimeError):
 26 |     pass
 27 | 
 28 | 
 29 | def check_checksum(path: Path, checksum: str):
 30 |     sha = sha256()
 31 |     with open(path, 'rb') as file:
 32 |         while True:
 33 |             buf = file.read(2**20)
 34 |             if not buf:
 35 |                 break
 36 |             sha.update(buf)
 37 |     actual_checksum = sha.hexdigest()[:len(checksum)]
 38 |     if actual_checksum != checksum:
 39 |         raise ModelLoadingError(f'Invalid checksum for file {path}, '
 40 |                                 f'expected {checksum} but got {actual_checksum}')
 41 | 
 42 | class ModelOnlyRepo:
 43 |     """Base class for all model only repos.
 44 |     """
 45 |     def has_model(self, sig: str) -> bool:
 46 |         raise NotImplementedError()
 47 | 
 48 |     def get_model(self, sig: str) -> Model:
 49 |         raise NotImplementedError()
 50 | 
 51 | 
 52 | class RemoteRepo(ModelOnlyRepo):
 53 |     def __init__(self, models: tp.Dict[str, str]):
 54 |         self._models = models
 55 | 
 56 |     def has_model(self, sig: str) -> bool:
 57 |         return sig in self._models
 58 | 
 59 |     def get_model(self, sig: str) -> Model:
 60 |         try:
 61 |             url = self._models[sig]
 62 |         except KeyError:
 63 |             raise ModelLoadingError(f'Could not find a pre-trained model with signature {sig}.')
 64 |         pkg = torch.hub.load_state_dict_from_url(url, map_location='cpu', check_hash=True)
 65 |         return load_model(pkg)
 66 | 
 67 | 
 68 | class LocalRepo(ModelOnlyRepo):
 69 |     def __init__(self, root: Path):
 70 |         self.root = root
 71 |         self.scan()
 72 | 
 73 |     def scan(self):
 74 |         self._models = {}
 75 |         self._checksums = {}
 76 |         for file in self.root.iterdir():
 77 |             if file.suffix == '.th':
 78 |                 if '-' in file.stem:
 79 |                     xp_sig, checksum = file.stem.split('-')
 80 |                     self._checksums[xp_sig] = checksum
 81 |                 else:
 82 |                     xp_sig = file.stem
 83 |                 if xp_sig in self._models:
 84 |                     print('Whats xp? ', xp_sig)
 85 |                     raise ModelLoadingError(
 86 |                         f'Duplicate pre-trained model exist for signature {xp_sig}. '
 87 |                         'Please delete all but one.')
 88 |                 self._models[xp_sig] = file
 89 | 
 90 |     def has_model(self, sig: str) -> bool:
 91 |         return sig in self._models
 92 | 
 93 |     def get_model(self, sig: str) -> Model:
 94 |         try:
 95 |             file = self._models[sig]
 96 |         except KeyError:
 97 |             raise ModelLoadingError(f'Could not find pre-trained model with signature {sig}.')
 98 |         if sig in self._checksums:
 99 |             check_checksum(file, self._checksums[sig])
100 |         return load_model(file)
101 | 
102 | 
103 | class BagOnlyRepo:
104 |     """Handles only YAML files containing bag of models, leaving the actual
105 |     model loading to some Repo.
106 |     """
107 |     def __init__(self, root: Path, model_repo: ModelOnlyRepo):
108 |         self.root = root
109 |         self.model_repo = model_repo
110 |         self.scan()
111 | 
112 |     def scan(self):
113 |         self._bags = {}
114 |         for file in self.root.iterdir():
115 |             if file.suffix == '.yaml':
116 |                 self._bags[file.stem] = file
117 | 
118 |     def has_model(self, name: str) -> bool:
119 |         return name in self._bags
120 | 
121 |     def get_model(self, name: str) -> BagOfModels:
122 |         try:
123 |             yaml_file = self._bags[name]
124 |         except KeyError:
125 |             raise ModelLoadingError(f'{name} is neither a single pre-trained model or '
126 |                                     'a bag of models.')
127 |         bag = yaml.safe_load(open(yaml_file))
128 |         signatures = bag['models']
129 |         models = [self.model_repo.get_model(sig) for sig in signatures]
130 |         weights = bag.get('weights')
131 |         segment = bag.get('segment')
132 |         return BagOfModels(models, weights, segment)
133 | 
134 | 
135 | class AnyModelRepo:
136 |     def __init__(self, model_repo: ModelOnlyRepo, bag_repo: BagOnlyRepo):
137 |         self.model_repo = model_repo
138 |         self.bag_repo = bag_repo
139 | 
140 |     def has_model(self, name_or_sig: str) -> bool:
141 |         return self.model_repo.has_model(name_or_sig) or self.bag_repo.has_model(name_or_sig)
142 | 
143 |     def get_model(self, name_or_sig: str) -> AnyModel:
144 |         print('name_or_sig: ', name_or_sig)
145 |         if self.model_repo.has_model(name_or_sig):
146 |             return self.model_repo.get_model(name_or_sig)
147 |         else:
148 |             return self.bag_repo.get_model(name_or_sig)
149 | 


--------------------------------------------------------------------------------
/demucs/spec.py:
--------------------------------------------------------------------------------
 1 | # Copyright (c) Meta Platforms, Inc. and affiliates.
 2 | # All rights reserved.
 3 | #
 4 | # This source code is licensed under the license found in the
 5 | # LICENSE file in the root directory of this source tree.
 6 | """Conveniance wrapper to perform STFT and iSTFT"""
 7 | 
 8 | import torch as th
 9 | 
10 | 
11 | def spectro(x, n_fft=512, hop_length=None, pad=0):
12 |     *other, length = x.shape
13 |     x = x.reshape(-1, length)
14 |     
15 |     device_type = x.device.type
16 |     is_other_gpu = not device_type in ["cuda", "cpu"]
17 | 
18 |     if is_other_gpu:
19 |         x = x.cpu()
20 |     z = th.stft(x,
21 |                 n_fft * (1 + pad),
22 |                 hop_length or n_fft // 4,
23 |                 window=th.hann_window(n_fft).to(x),
24 |                 win_length=n_fft,
25 |                 normalized=True,
26 |                 center=True,
27 |                 return_complex=True,
28 |                 pad_mode='reflect')
29 |     _, freqs, frame = z.shape
30 |     return z.view(*other, freqs, frame)
31 | 
32 | 
33 | def ispectro(z, hop_length=None, length=None, pad=0):
34 |     *other, freqs, frames = z.shape
35 |     n_fft = 2 * freqs - 2
36 |     z = z.view(-1, freqs, frames)
37 |     win_length = n_fft // (1 + pad)
38 |     
39 |     device_type = z.device.type
40 |     is_other_gpu = not device_type in ["cuda", "cpu"]
41 |     
42 |     if is_other_gpu:
43 |         z = z.cpu()
44 |     x = th.istft(z,
45 |                  n_fft,
46 |                  hop_length,
47 |                  window=th.hann_window(win_length).to(z.real),
48 |                  win_length=win_length,
49 |                  normalized=True,
50 |                  length=length,
51 |                  center=True)
52 |     _, length = x.shape
53 |     return x.view(*other, length)
54 | 


--------------------------------------------------------------------------------
/demucs/states.py:
--------------------------------------------------------------------------------
  1 | # Copyright (c) Facebook, Inc. and its affiliates.
  2 | # All rights reserved.
  3 | #
  4 | # This source code is licensed under the license found in the
  5 | # LICENSE file in the root directory of this source tree.
  6 | """
  7 | Utilities to save and load models.
  8 | """
  9 | from contextlib import contextmanager
 10 | 
 11 | import functools
 12 | import hashlib
 13 | import inspect
 14 | import io
 15 | from pathlib import Path
 16 | import warnings
 17 | 
 18 | from omegaconf import OmegaConf
 19 | from diffq import DiffQuantizer, UniformQuantizer, restore_quantized_state
 20 | import torch
 21 | 
 22 | 
 23 | def get_quantizer(model, args, optimizer=None):
 24 |     """Return the quantizer given the XP quantization args."""
 25 |     quantizer = None
 26 |     if args.diffq:
 27 |         quantizer = DiffQuantizer(
 28 |             model, min_size=args.min_size, group_size=args.group_size)
 29 |         if optimizer is not None:
 30 |             quantizer.setup_optimizer(optimizer)
 31 |     elif args.qat:
 32 |         quantizer = UniformQuantizer(
 33 |                 model, bits=args.qat, min_size=args.min_size)
 34 |     return quantizer
 35 | 
 36 | 
 37 | def load_model(path_or_package, strict=False):
 38 |     """Load a model from the given serialized model, either given as a dict (already loaded)
 39 |     or a path to a file on disk."""
 40 |     if isinstance(path_or_package, dict):
 41 |         package = path_or_package
 42 |     elif isinstance(path_or_package, (str, Path)):
 43 |         with warnings.catch_warnings():
 44 |             warnings.simplefilter("ignore")
 45 |             path = path_or_package
 46 |             package = torch.load(path, 'cpu')
 47 |     else:
 48 |         raise ValueError(f"Invalid type for {path_or_package}.")
 49 | 
 50 |     klass = package["klass"]
 51 |     args = package["args"]
 52 |     kwargs = package["kwargs"]
 53 | 
 54 |     if strict:
 55 |         model = klass(*args, **kwargs)
 56 |     else:
 57 |         sig = inspect.signature(klass)
 58 |         for key in list(kwargs):
 59 |             if key not in sig.parameters:
 60 |                 warnings.warn("Dropping inexistant parameter " + key)
 61 |                 del kwargs[key]
 62 |         model = klass(*args, **kwargs)
 63 | 
 64 |     state = package["state"]
 65 | 
 66 |     set_state(model, state)
 67 |     return model
 68 | 
 69 | 
 70 | def get_state(model, quantizer, half=False):
 71 |     """Get the state from a model, potentially with quantization applied.
 72 |     If `half` is True, model are stored as half precision, which shouldn't impact performance
 73 |     but half the state size."""
 74 |     if quantizer is None:
 75 |         dtype = torch.half if half else None
 76 |         state = {k: p.data.to(device='cpu', dtype=dtype) for k, p in model.state_dict().items()}
 77 |     else:
 78 |         state = quantizer.get_quantized_state()
 79 |         state['__quantized'] = True
 80 |     return state
 81 | 
 82 | 
 83 | def set_state(model, state, quantizer=None):
 84 |     """Set the state on a given model."""
 85 |     if state.get('__quantized'):
 86 |         if quantizer is not None:
 87 |             quantizer.restore_quantized_state(model, state['quantized'])
 88 |         else:
 89 |             restore_quantized_state(model, state)
 90 |     else:
 91 |         model.load_state_dict(state)
 92 |     return state
 93 | 
 94 | 
 95 | def save_with_checksum(content, path):
 96 |     """Save the given value on disk, along with a sha256 hash.
 97 |     Should be used with the output of either `serialize_model` or `get_state`."""
 98 |     buf = io.BytesIO()
 99 |     torch.save(content, buf)
100 |     sig = hashlib.sha256(buf.getvalue()).hexdigest()[:8]
101 | 
102 |     path = path.parent / (path.stem + "-" + sig + path.suffix)
103 |     path.write_bytes(buf.getvalue())
104 | 
105 | 
106 | def serialize_model(model, training_args, quantizer=None, half=True):
107 |     args, kwargs = model._init_args_kwargs
108 |     klass = model.__class__
109 | 
110 |     state = get_state(model, quantizer, half)
111 |     return {
112 |         'klass': klass,
113 |         'args': args,
114 |         'kwargs': kwargs,
115 |         'state': state,
116 |         'training_args': OmegaConf.to_container(training_args, resolve=True),
117 |     }
118 | 
119 | 
120 | def copy_state(state):
121 |     return {k: v.cpu().clone() for k, v in state.items()}
122 | 
123 | 
124 | @contextmanager
125 | def swap_state(model, state):
126 |     """
127 |     Context manager that swaps the state of a model, e.g:
128 | 
129 |         # model is in old state
130 |         with swap_state(model, new_state):
131 |             # model in new state
132 |         # model back to old state
133 |     """
134 |     old_state = copy_state(model.state_dict())
135 |     model.load_state_dict(state, strict=False)
136 |     try:
137 |         yield
138 |     finally:
139 |         model.load_state_dict(old_state)
140 | 
141 | 
142 | def capture_init(init):
143 |     @functools.wraps(init)
144 |     def __init__(self, *args, **kwargs):
145 |         self._init_args_kwargs = (args, kwargs)
146 |         init(self, *args, **kwargs)
147 | 
148 |     return __init__
149 | 


--------------------------------------------------------------------------------
/gui_data/change_log.txt:
--------------------------------------------------------------------------------
 1 | Most Recent Changes:
 2 | 
 3 | ~ Fixed Download Center model list issue.
 4 | ~ Fixed audio clip in ensemble mode.
 5 | ~ Fixed output model name issue in ensemble mode.
 6 | ~ Added "Batch Mode" for MDX-Net to increase performance.
 7 |     ~ Batch Mode is more memory efficient.
 8 |     ~ Batch Mode produces the best output, regardless of batch size.
 9 | ~ Added Batch Mode for VR Architecture.
10 | ~ Added Mixer Mode for Demucs.
11 |     ~ This option may improve separation for some 4-stem models.
12 | 
13 | Fixes & Changes going from UVR v5.4 to v5.5:
14 | 
15 | ~ The progress bar is now fully synced up with every process in the application.
16 | ~ Fixed low-resolution icon.
17 | ~ Added the ability to download models manually if the application can't connect 
18 |    to the internet.
19 | ~ Drag-n-drop is functional across all os platforms.
20 | ~ Resolved mp3 tag issue in MacOS version.
21 | 
22 | Performance:
23 | 
24 | ~ Model load times are faster.
25 | ~ Importing/exporting audio files is faster.
26 | 
27 | MacOS M1 Notes:
28 | 
29 | ~ The GPU Conversion checkbox will enable MPS for GPU acceleration. However,
30 |    only the VR Architecture models are currently compatible with it.
31 | 
32 | New Options:
33 | 
34 | ~ Select Saved Settings option - Allows the user to save the current settings 
35 |    of the whole application. You can also load a saved setting or reset them to 
36 |    the default.
37 | ~ Right-click menu - Allows for quick access to important options.
38 | ~ Help Hints option - When enabled, users can hover over options to see a pop-up 
39 |    text that describes that option. The right-clicking option also allows copying 
40 |    the "Help Hint" text.
41 | ~ Secondary Model Mode - This option is an expanded version of the "Demucs Model" 
42 |    option that was only available to MDX-Net. Except now, this option is available 
43 |    in all three AI Networks and for any stem. Any model can now be Secondary, and 
44 |    the user can choose the amount of influence it has on the final result.
45 | ~ Robust caching for ensemble mode, allowing for much faster processing times.
46 | ~ Clicking the "Input" field will pop up a window allowing the user to review the selected audio inputs. Within this menu, users can:
47 |     ~ Remove inputs.
48 |     ~ Verify inputs.
49 |     ~ Create samples of chosen inputs.
50 | ~ "Sample Mode" option - Allows the user to process only part of a track to sample 
51 |    settings or a model without running a full conversion.
52 |     ~ The number in the parentheses is the current number of seconds the generated 
53 |        sample will be.
54 |     ~ You can choose the number of seconds to extract from the track in the "Additional 
55 |        Settings" menu.
56 | 
57 | VR Architecture:
58 | 
59 | ~ Ability to toggle "High-End Processing."
60 | ~ Ability to change the post-processing threshold.
61 | ~ Support for the latest VR architecture
62 |     ~ Crop Size and Batch Size are specifically for models using the latest 
63 |        architecture only.
64 | 
65 | MDX-NET:
66 | 
67 | ~ Denoise Output option results in cleaner results, 
68 |    but the processing time will be longer. This option has replaced Noise Reduction.
69 | ~ Spectral Inversion option uses spectral inversion techniques for a 
70 |    cleaner secondary stem result. This option may slow down the audio export process.
71 | ~ Secondary stem now has the same frequency cut-off as the main stem.
72 | 
73 | Demucs:
74 | 
75 | ~ Demucs v4 models are now supported, including the 6-stem model.
76 | ~ Ability to combine remaining stems instead of inverting selected stem with the 
77 |    mixture only when a user does not select "All Stems".
78 | ~ A Pre-process model that allows the user to run an inference through a robust 
79 |    vocal or instrumental model and separate the remaining stems from its generated 
80 |    instrumental mix. This option can significantly reduce vocal bleed in other 
81 |    Demucs-generated non-vocal stems.
82 |     ~ The Pre-process model is intended for Demucs separations for all stems except
83 |        vocals and instrumentals.
84 | 
85 | Ensemble Mode: 
86 | 
87 | ~ Ensemble Mode has been extended to include the following:
88 |     ~ Averaging is a new algorithm that averages the final results.
89 |     ~ Unlimited models in the ensemble.
90 |     ~ Ability to save different ensembles.
91 |     ~ Ability to ensemble outputs for all individual stem types.
92 |     ~ Ability to choose unique ensemble algorithms.
93 |     ~ Ability to ensemble all 4 Demucs stems at once.


--------------------------------------------------------------------------------
/gui_data/complete_chime.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/complete_chime.wav


--------------------------------------------------------------------------------
/gui_data/error_handling.py:
--------------------------------------------------------------------------------
  1 | from datetime import datetime
  2 | import traceback
  3 | 
  4 | CUDA_MEMORY_ERROR = "CUDA out of memory"
  5 | CUDA_RUNTIME_ERROR = "CUDNN error executing cudnnSetTensorNdDescriptor"
  6 | DEMUCS_MODEL_MISSING_ERROR = "is neither a single pre-trained model or a bag of models."
  7 | ENSEMBLE_MISSING_MODEL_ERROR = "local variable \'enseExport\' referenced before assignment"
  8 | FFMPEG_MISSING_ERROR = """audioread\__init__.py", line 116, in audio_open"""
  9 | FILE_MISSING_ERROR = "FileNotFoundError"
 10 | MDX_MEMORY_ERROR = "onnxruntime::CudaCall CUDA failure 2: out of memory"
 11 | MDX_MODEL_MISSING = "[ONNXRuntimeError] : 3 : NO_SUCHFILE"
 12 | MDX_MODEL_SETTINGS_ERROR = "Got invalid dimensions for input"
 13 | MDX_RUNTIME_ERROR = "onnxruntime::BFCArena::AllocateRawInternal"
 14 | MODULE_ERROR = "ModuleNotFoundError"
 15 | WINDOW_SIZE_ERROR = "h1_shape[3] must be greater than h2_shape[3]"
 16 | SF_WRITE_ERROR = "sf.write"
 17 | SYSTEM_MEMORY_ERROR = "DefaultCPUAllocator: not enough memory"
 18 | MISSING_MODEL_ERROR = "'NoneType\' object has no attribute \'model_basename\'"
 19 | ARRAY_SIZE_ERROR = "ValueError: \"array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\""
 20 | GPU_INCOMPATIBLE_ERROR = "no kernel image is available for execution on the device"
 21 | SELECT_CORRECT_GPU = "CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect."
 22 | 
 23 | CONTACT_DEV = 'If this error persists, please contact the developers with the error details.'
 24 | 
 25 | ERROR_MAPPER = {
 26 |     CUDA_MEMORY_ERROR:
 27 |                         ('The application was unable to allocate enough GPU memory to use this model. ' + 
 28 |                         'Please close any GPU intensive applications and try again.\n' + 
 29 |                         'If the error persists, your GPU might not be supported.') ,
 30 |     CUDA_RUNTIME_ERROR:
 31 |                         (f'Your PC cannot process this audio file with the segment size selected. Please lower the segment size and try again.\n\n{CONTACT_DEV}'),
 32 |     DEMUCS_MODEL_MISSING_ERROR:
 33 |                         ('The selected Demucs model is missing. ' + 
 34 |                         'Please download the model or make sure it is in the correct directory.'),
 35 |     ENSEMBLE_MISSING_MODEL_ERROR:
 36 |                         ('The application was unable to locate a model you selected for this ensemble.\n\n' + 
 37 |                         'Please do the following to use all compatible models:\n\n1. Navigate to the \"Updates\" tab in the Help Guide.\n2. Download and install the model expansion pack.\n3. Then try again.\n\n' + 
 38 |                         'If the error persists, please verify all models are present.'),
 39 |     FFMPEG_MISSING_ERROR:
 40 |                         ('The input file type is not supported or FFmpeg is missing. Please select a file type supported by FFmpeg and try again. ' + 
 41 |                         'If FFmpeg is missing or not installed, you will only be able to process \".wav\" files until it is available on this system. ' + 
 42 |                         f'See the \"More Info\" tab in the Help Guide.\n\n{CONTACT_DEV}'),
 43 |     FILE_MISSING_ERROR:
 44 |                         (f'Missing file error raised. Please address the error and try again.\n\n{CONTACT_DEV}'),
 45 |     MDX_MEMORY_ERROR:
 46 |                         ('The application was unable to allocate enough GPU memory to use this model.\n\n' + 
 47 |                         'Please do the following:\n\n1. Close any GPU intensive applications.\n2. Lower the set segment size.\n3. Then try again.\n\n' + 
 48 |                         'If the error persists, your GPU might not be supported.'),
 49 |     MDX_MODEL_MISSING:
 50 |                         ('The application could not detect this MDX-Net model on your system. ' + 
 51 |                         'Please make sure all the models are present in the correct directory.\n\n' + 
 52 |                         'If the error persists, please reinstall application or contact the developers.'),
 53 |     MDX_RUNTIME_ERROR:
 54 |                         ('The application was unable to allocate enough GPU memory to use this model.\n\n' + 
 55 |                         'Please do the following:\n\n1. Close any GPU intensive applications.\n2. Lower the set segment size.\n3. Then try again.\n\n' + 
 56 |                         'If the error persists, your GPU might not be supported.'),
 57 |     WINDOW_SIZE_ERROR:
 58 |                         ('Invalid window size.\n\n' + 
 59 |                         'The chosen window size is likely not compatible with this model. Please select a different size and try again.'),
 60 |     SF_WRITE_ERROR:
 61 |                         ('Could not write audio file.\n\n' + 
 62 |                         'This could be due to one of the following:\n\n1. Low storage on target device.\n2. The export directory no longer exists.\n3. A system permissions issue.'),
 63 |     SYSTEM_MEMORY_ERROR:
 64 |                         ('The application was unable to allocate enough system memory to use this model.\n\n' + 
 65 |                         'Please do the following:\n\n1. Restart this application.\n2. Ensure any CPU intensive applications are closed.\n3. Then try again.\n\n' + 
 66 |                         'Please Note: Intel Pentium and Intel Celeron processors do not work well with this application.\n\n' +
 67 |                         'If the error persists, the system may not have enough RAM, or your CPU might not be supported.'),
 68 |     MISSING_MODEL_ERROR:
 69 |                         ('Model Missing: The application was unable to locate the chosen model.\n\n' + 
 70 |                         'If the error persists, please verify any selected models are present.'),
 71 |     GPU_INCOMPATIBLE_ERROR:
 72 |                         ('This process is not compatible with your GPU.\n\n' + 
 73 |                         'Please uncheck \"GPU Conversion\" and try again'),
 74 |     SELECT_CORRECT_GPU:
 75 |                         ('Make sure you\'ve chosen the correct GPU.\n\n'
 76 |                         'Go to the "Settings Guide", click the "Additional Settings" tab and select the correct GPU device.'),
 77 |     ARRAY_SIZE_ERROR:
 78 |                         ('The application was not able to process the given audiofile. Please convert the audiofile to another format and try again.'),
 79 | }
 80 | 
 81 | def error_text(process_method, exception):
 82 |                  
 83 |     traceback_text = ''.join(traceback.format_tb(exception.__traceback__))
 84 |     message = f'{type(exception).__name__}: "{exception}"\nTraceback Error: "\n{traceback_text}"\n'
 85 |     error_message = f'\n\nRaw Error Details:\n\n{message}\nError Time Stamp [{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}]\n'
 86 |     process = f'Last Error Received:\n\nProcess: {process_method}\n\n'
 87 | 
 88 |     for error_type, full_text in ERROR_MAPPER.items():
 89 |         if error_type in message:
 90 |             final_message = full_text
 91 |             break
 92 |     else:
 93 |         final_message = (CONTACT_DEV) 
 94 |         
 95 |     return f"{process}{final_message}{error_message}"
 96 | 
 97 | def error_dialouge(exception):
 98 |     
 99 |     error_name = f'{type(exception).__name__}'
100 |     traceback_text = ''.join(traceback.format_tb(exception.__traceback__))
101 |     message = f'{error_name}: "{exception}"\n{traceback_text}"'
102 |     
103 |     for error_type, full_text in ERROR_MAPPER.items():
104 |         if error_type in message:
105 |             final_message = full_text
106 |             break
107 |     else:
108 |         final_message = (f'An Error Occurred: {error_name}\n\n{CONTACT_DEV}') 
109 |     
110 |     return final_message
111 | 


--------------------------------------------------------------------------------
/gui_data/fail_chime.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/fail_chime.wav


--------------------------------------------------------------------------------
/gui_data/fonts/Montserrat/Montserrat.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/fonts/Montserrat/Montserrat.ttf


--------------------------------------------------------------------------------
/gui_data/fonts/centurygothic/GOTHIC.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/fonts/centurygothic/GOTHIC.ttf


--------------------------------------------------------------------------------
/gui_data/fonts/other/own_font_goes_here.txt:
--------------------------------------------------------------------------------
1 | 0


--------------------------------------------------------------------------------
/gui_data/img/File.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/File.png


--------------------------------------------------------------------------------
/gui_data/img/GUI-Icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/GUI-Icon.ico


--------------------------------------------------------------------------------
/gui_data/img/GUI-Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/GUI-Icon.png


--------------------------------------------------------------------------------
/gui_data/img/UVR-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/UVR-banner.png


--------------------------------------------------------------------------------
/gui_data/img/UVR.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/UVR.icns


--------------------------------------------------------------------------------
/gui_data/img/UVR_v5.6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/UVR_v5.6.png


--------------------------------------------------------------------------------
/gui_data/img/clear.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/clear.png


--------------------------------------------------------------------------------
/gui_data/img/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/copy.png


--------------------------------------------------------------------------------
/gui_data/img/credits.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/credits.png


--------------------------------------------------------------------------------
/gui_data/img/donate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/donate.png


--------------------------------------------------------------------------------
/gui_data/img/down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/down.png


--------------------------------------------------------------------------------
/gui_data/img/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/download.png


--------------------------------------------------------------------------------
/gui_data/img/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/help.png


--------------------------------------------------------------------------------
/gui_data/img/key.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/key.png


--------------------------------------------------------------------------------
/gui_data/img/left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/left.png


--------------------------------------------------------------------------------
/gui_data/img/pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/pause.png


--------------------------------------------------------------------------------
/gui_data/img/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/play.png


--------------------------------------------------------------------------------
/gui_data/img/right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/right.png


--------------------------------------------------------------------------------
/gui_data/img/splash.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/splash.bmp


--------------------------------------------------------------------------------
/gui_data/img/stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/stop.png


--------------------------------------------------------------------------------
/gui_data/img/stop_player.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/stop_player.png


--------------------------------------------------------------------------------
/gui_data/img/up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/img/up.png


--------------------------------------------------------------------------------
/gui_data/old_data_check.py:
--------------------------------------------------------------------------------
 1 | import os
 2 | import shutil
 3 | 
 4 | def file_check(original_dir, new_dir):
 5 |     
 6 |     if os.path.isdir(original_dir):
 7 |         for file in os.listdir(original_dir):
 8 |             shutil.move(os.path.join(original_dir, file), os.path.join(new_dir, file))
 9 |           
10 |         if len(os.listdir(original_dir)) == 0:
11 |             shutil.rmtree(original_dir) 
12 |             
13 | def remove_unneeded_yamls(demucs_dir):
14 |     
15 |     for file in os.listdir(demucs_dir):
16 |         if file.endswith('.yaml'):
17 |             if os.path.isfile(os.path.join(demucs_dir, file)):
18 |                 os.remove(os.path.join(demucs_dir, file))
19 |     
20 | def remove_temps(remove_dir):
21 |     
22 |     if os.path.isdir(remove_dir):
23 |         try:
24 |             shutil.rmtree(remove_dir) 
25 |         except Exception as e:
26 |             print(e)
27 |             


--------------------------------------------------------------------------------
/gui_data/own_font.json:
--------------------------------------------------------------------------------
1 | {
2 |     "font_name": null,
3 |     "font_file": null
4 | }


--------------------------------------------------------------------------------
/gui_data/saved_ensembles/saved_ensembles_go_here.txt:
--------------------------------------------------------------------------------
1 | saved_ensembles_go_here


--------------------------------------------------------------------------------
/gui_data/saved_settings/saved_settings_go_here.txt:
--------------------------------------------------------------------------------
1 | saved_settings_go_here


--------------------------------------------------------------------------------
/gui_data/sv_ttk/__init__.py:
--------------------------------------------------------------------------------
 1 | from pathlib import Path
 2 | import platform
 3 | 
 4 | if platform.system() == "Darwin":
 5 |     sun_valley_tcl = "sun-valley_darwin.tcl"
 6 | else:
 7 |     sun_valley_tcl = "sun-valley.tcl"
 8 | 
 9 | inited = False
10 | root = None
11 | 
12 | 
13 | def init(func):
14 |     def wrapper(*args, **kwargs):
15 |         global inited
16 |         global root
17 | 
18 |         if not inited:
19 |             from tkinter import _default_root
20 | 
21 |             path = (Path(__file__).parent / sun_valley_tcl).resolve()
22 | 
23 |             try:
24 |                 _default_root.tk.call("source", str(path))
25 |             except AttributeError:
26 |                 raise RuntimeError(
27 |                     "can't set theme. "
28 |                     "Tk is not initialized. "
29 |                     "Please first create a tkinter.Tk instance, then set the theme."
30 |                 ) from None
31 |             else:
32 |                 inited = True
33 |                 root = _default_root
34 | 
35 |         return func(*args, **kwargs)
36 | 
37 |     return wrapper
38 | 
39 | 
40 | @init
41 | def set_theme(theme, font_name="Century Gothic", f_size=10, fg_color_set="#F6F6F7"):
42 |     if theme not in {"dark", "light"}:
43 |         raise RuntimeError(f"not a valid theme name: {theme}")
44 | 
45 |     root.globalsetvar("fontName", (font_name, f_size))
46 |     root.globalsetvar("fgcolorset", (fg_color_set))
47 |     root.tk.call("set_theme", theme)
48 | 
49 | 
50 | @init
51 | def get_theme():
52 |     theme = root.tk.call("ttk::style", "theme", "use")
53 | 
54 |     try:
55 |         return {"sun-valley-dark": "dark", "sun-valley-light": "light"}[theme]
56 |     except KeyError:
57 |         return theme
58 | 
59 | 
60 | @init
61 | def toggle_theme():
62 |     if get_theme() == "dark":
63 |         use_light_theme()
64 |     else:
65 |         use_dark_theme()
66 | 
67 | 
68 | use_dark_theme = lambda: set_theme("dark")
69 | use_light_theme = lambda: set_theme("light")
70 | 


--------------------------------------------------------------------------------
/gui_data/sv_ttk/sun-valley.tcl:
--------------------------------------------------------------------------------
 1 | # Copyright © 2021 rdbende <rdbende@gmail.com>
 2 | 
 3 | source [file join [file dirname [info script]] theme dark.tcl]
 4 | 
 5 | option add *tearOff 0
 6 | 
 7 | proc set_theme {mode} {
 8 | 	if {$mode == "dark"} {
 9 | 		ttk::style theme use "sun-valley-dark"
10 | 
11 |         set fontString "$::fontName"
12 |         set fgSet "$::fgcolorset"
13 | 
14 | 		array set colors {
15 | 		    -fg             "#F6F6F7"
16 | 		    -bg             "#0e0e0f"
17 | 		    -disabledfg     "#F6F6F7"
18 | 		    -selectfg       "#F6F6F7"
19 | 		    -selectbg       "#003b50"
20 | 		}
21 |         
22 |         ttk::style configure . \
23 |             -background $colors(-bg) \
24 |             -foreground $fgSet \
25 |             -troughcolor $colors(-bg) \
26 |             -focuscolor $colors(-selectbg) \
27 |             -selectbackground $colors(-selectbg) \
28 |             -selectforeground $colors(-selectfg) \
29 |             -insertwidth 0 \
30 |             -insertcolor $colors(-fg) \
31 |             -fieldbackground $colors(-selectbg) \
32 |             -font $fontString \
33 |             -borderwidth 0 \
34 |             -relief flat
35 | 
36 |         tk_setPalette \
37 |         	background [ttk::style lookup . -background] \
38 |             foreground [ttk::style lookup . -foreground] \
39 |             highlightColor [ttk::style lookup . -focuscolor] \
40 |             selectBackground [ttk::style lookup . -selectbackground] \
41 |             selectForeground [ttk::style lookup . -selectforeground] \
42 |             activeBackground [ttk::style lookup . -selectbackground] \
43 |             activeForeground [ttk::style lookup . -selectforeground]
44 |         
45 |         ttk::style map . -foreground [list disabled $colors(-disabledfg)]
46 | 
47 |         option add *font [ttk::style lookup . -font]
48 |         option add *Menu.selectcolor $colors(-fg)
49 |         option add *Menu.background #0e0e0f
50 |     
51 | 	} 
52 | }
53 | 


--------------------------------------------------------------------------------
/gui_data/sv_ttk/sun-valley_darwin.tcl:
--------------------------------------------------------------------------------
 1 | # Copyright © 2021 rdbende <rdbende@gmail.com>
 2 | 
 3 | source [file join [file dirname [info script]] theme dark.tcl]
 4 | 
 5 | option add *tearOff 0
 6 | 
 7 | proc set_theme {mode} {
 8 | 	if {$mode == "dark"} {
 9 | 		ttk::style theme use "sun-valley-dark"
10 | 
11 | 		array set colors {
12 | 		    -fg             "#F6F6F7"
13 | 		    -bg             "#0e0e0f"
14 | 		    -disabledfg     "#F6F6F7"
15 | 		    -selectfg       "#F6F6F7"
16 | 		    -selectbg       "#003b50"
17 | 		}
18 |         
19 |         ttk::style configure . \
20 |             -background $colors(-bg) \
21 |             -foreground $colors(-fg) \
22 |             -troughcolor $colors(-bg) \
23 |             -focuscolor $colors(-selectbg) \
24 |             -selectbackground $colors(-selectbg) \
25 |             -selectforeground $colors(-selectfg) \
26 |             -insertwidth 0 \
27 |             -insertcolor $colors(-fg) \
28 |             -fieldbackground $colors(-selectbg) \
29 |             -font {"Century Gothic" 13} \
30 |             -borderwidth 0 \
31 |             -relief flat
32 | 
33 |         tk_setPalette \
34 |         	background [ttk::style lookup . -background] \
35 |             foreground [ttk::style lookup . -foreground] \
36 |             highlightColor [ttk::style lookup . -focuscolor] \
37 |             selectBackground [ttk::style lookup . -selectbackground] \
38 |             selectForeground [ttk::style lookup . -selectforeground] \
39 |             activeBackground [ttk::style lookup . -selectbackground] \
40 |             activeForeground [ttk::style lookup . -selectforeground]
41 |         
42 |         ttk::style map . -foreground [list disabled $colors(-disabledfg)]
43 | 
44 |         option add *font [ttk::style lookup . -font]
45 |         option add *Menu.selectcolor $colors(-fg)
46 |         option add *Menu.background #0e0e0f
47 |     
48 | 	} 
49 | }
50 | 


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/arrow-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/arrow-down.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/arrow-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/arrow-right.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/arrow-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/arrow-up.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-accent-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-accent-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-accent-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-accent-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-accent-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-accent-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-accent-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-accent-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-close-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-close-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-close-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-close-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-titlebar-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-titlebar-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/card.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-tri-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-tri-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-tri-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-tri-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-tri-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-tri-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-tri-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-tri-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-unsel-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-unsel-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-unsel-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-unsel-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-unsel-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-unsel-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/check-unsel-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/check-unsel-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/combo-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/combo-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/empty.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/entry-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/entry-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/entry-focus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/entry-focus.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/entry-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/entry-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/entry-invalid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/entry-invalid.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/entry-rest-combo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/entry-rest-combo.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/entry-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/entry-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/notebook-border.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/notebook-border.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/notebook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/notebook.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/progress-pbar-hor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/progress-pbar-hor.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/progress-pbar-vert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/progress-pbar-vert.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/progress-trough-hor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/progress-trough-hor.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/progress-trough-vert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/progress-trough-vert.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-unsel-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-unsel-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-unsel-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-unsel-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-unsel-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-unsel-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/radio-unsel-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/radio-unsel-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scale-thumb-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scale-thumb-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scale-thumb-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scale-thumb-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scale-trough-hor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scale-trough-hor.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scale-trough-vert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scale-trough-vert.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-down.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-hor-thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-hor-thumb.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-left.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-right.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-up.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/separator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/separator.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/sizegrip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/sizegrip.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-off-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-off-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-off-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-off-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-off-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-off-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-off-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-off-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-on-disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-on-disabled.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-on-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-on-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-on-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-on-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/switch-on-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/switch-on-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/tab-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/tab-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/tab-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/tab-rest.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/tab-selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/tab-selected.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/treeheading-hover.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/treeheading-hover.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/treeheading-pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/treeheading-pressed.png


--------------------------------------------------------------------------------
/gui_data/sv_ttk/theme/dark/treeheading-rest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/sv_ttk/theme/dark/treeheading-rest.png


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/__init__.py:
--------------------------------------------------------------------------------
 1 | # dnd actions
 2 | PRIVATE = 'private'
 3 | NONE = 'none'
 4 | ASK = 'ask'
 5 | COPY = 'copy'
 6 | MOVE = 'move'
 7 | LINK = 'link'
 8 | REFUSE_DROP = 'refuse_drop'
 9 | 
10 | # dnd types
11 | DND_TEXT = 'DND_Text'
12 | DND_FILES = 'DND_Files'
13 | DND_ALL = '*'
14 | CF_UNICODETEXT = 'CF_UNICODETEXT'
15 | CF_TEXT = 'CF_TEXT'
16 | CF_HDROP = 'CF_HDROP'
17 | 
18 | FileGroupDescriptor = 'FileGroupDescriptor - FileContents'# ??
19 | FileGroupDescriptorW = 'FileGroupDescriptorW - FileContents'# ??
20 | 
21 | from . import TkinterDnD
22 | from .TkinterDnD import Tk
23 | from .TkinterDnD import TixTk
24 | 
25 | 
26 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/linux64/libtkdnd2.9.2.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/tkinterdnd2/tkdnd/linux64/libtkdnd2.9.2.so


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/linux64/pkgIndex.tcl:
--------------------------------------------------------------------------------
 1 | #
 2 | # Tcl package index file
 3 | #
 4 | package ifneeded tkdnd 2.9.2 \
 5 |   "source \{$dir/tkdnd.tcl\} ; \
 6 |    tkdnd::initialise \{$dir\} libtkdnd2.9.2.so tkdnd"
 7 | 
 8 | package ifneeded tkdnd::utils 2.9.2 \
 9 |   "source \{$dir/tkdnd_utils.tcl\} ; \
10 |    package provide tkdnd::utils 2.9.2"
11 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_compat.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_compat.tcl --
  3 | # 
  4 | #    This file implements some utility procedures, to support older versions
  5 | #    of the TkDND package.
  6 | #
  7 | # This software is copyrighted by:
  8 | # George Petasis, National Centre for Scientific Research "Demokritos",
  9 | # Aghia Paraskevi, Athens, Greece.
 10 | # e-mail: petasis@iit.demokritos.gr
 11 | #
 12 | # The following terms apply to all files associated
 13 | # with the software unless explicitly disclaimed in individual files.
 14 | #
 15 | # The authors hereby grant permission to use, copy, modify, distribute,
 16 | # and license this software and its documentation for any purpose, provided
 17 | # that existing copyright notices are retained in all copies and that this
 18 | # notice is included verbatim in any distributions. No written agreement,
 19 | # license, or royalty fee is required for any of the authorized uses.
 20 | # Modifications to this software may be copyrighted by their authors
 21 | # and need not follow the licensing terms described here, provided that
 22 | # the new terms are clearly indicated on the first page of each file where
 23 | # they apply.
 24 | # 
 25 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 26 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 27 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 28 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 29 | # POSSIBILITY OF SUCH DAMAGE.
 30 | # 
 31 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 32 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 33 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 34 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 35 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 36 | # MODIFICATIONS.
 37 | #
 38 | 
 39 | namespace eval compat {
 40 | 
 41 | };# namespace compat
 42 | 
 43 | # ----------------------------------------------------------------------------
 44 | #  Command ::dnd
 45 | # ----------------------------------------------------------------------------
 46 | proc ::dnd {method window args} {
 47 |   switch $method {
 48 |     bindtarget {
 49 |       switch [llength $args] {
 50 |         0 {return [tkdnd::compat::bindtarget0 $window]}
 51 |         1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]}
 52 |         2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \
 53 |                                                       [lindex $args 1]]}
 54 |         3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \
 55 |                                      [lindex $args 1] [lindex $args 2]]}
 56 |         4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \
 57 |                     [lindex $args 1] [lindex $args 2] [lindex $args 3]]}
 58 |       }
 59 |     }
 60 |     cleartarget {
 61 |       return [tkdnd::compat::cleartarget $window]
 62 |     }
 63 |     bindsource {
 64 |       switch [llength $args] {
 65 |         0 {return [tkdnd::compat::bindsource0 $window]}
 66 |         1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]}
 67 |         2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \
 68 |                                                       [lindex $args 1]]}
 69 |         3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \
 70 |                                      [lindex $args 1] [lindex $args 2]]}
 71 |       }
 72 |     }
 73 |     clearsource {
 74 |       return [tkdnd::compat::clearsource $window]
 75 |     }
 76 |     drag {
 77 |       return [tkdnd::_init_drag 1 $window "press" 0 0 0 0]
 78 |     }
 79 |   }
 80 |   error "invalid number of arguments!"
 81 | };# ::dnd
 82 | 
 83 | # ----------------------------------------------------------------------------
 84 | #  Command compat::bindtarget
 85 | # ----------------------------------------------------------------------------
 86 | proc compat::bindtarget0 {window} {
 87 |   return [bind $window <<DropTargetTypes>>]
 88 | };# compat::bindtarget0
 89 | 
 90 | proc compat::bindtarget1 {window type} {
 91 |   return [bindtarget2 $window $type <Drop>]
 92 | };# compat::bindtarget1
 93 | 
 94 | proc compat::bindtarget2 {window type event} {
 95 |   switch $event {
 96 |     <DragEnter> {return [bind $window <<DropEnter>>]}
 97 |     <Drag>      {return [bind $window <<DropPosition>>]}
 98 |     <DragLeave> {return [bind $window <<DropLeave>>]}
 99 |     <Drop>      {return [bind $window <<Drop>>]}
100 |   }
101 | };# compat::bindtarget2
102 | 
103 | proc compat::bindtarget3 {window type event script} {
104 |   set type [normalise_type $type]
105 |   ::tkdnd::drop_target register $window [list $type]
106 |   switch $event {
107 |     <DragEnter> {return [bind $window <<DropEnter>> $script]}
108 |     <Drag>      {return [bind $window <<DropPosition>> $script]}
109 |     <DragLeave> {return [bind $window <<DropLeave>> $script]}
110 |     <Drop>      {return [bind $window <<Drop>> $script]}
111 |   }
112 | };# compat::bindtarget3
113 | 
114 | proc compat::bindtarget4 {window type event script priority} {
115 |   return [bindtarget3 $window $type $event $script]
116 | };# compat::bindtarget4
117 | 
118 | proc compat::normalise_type { type } {
119 |   switch $type {
120 |     text/plain -
121 |     {text/plain;charset=UTF-8} -
122 |     Text                       {return DND_Text}
123 |     text/uri-list -
124 |     Files                      {return DND_Files}
125 |     default                    {return $type}
126 |   }
127 | };# compat::normalise_type
128 | 
129 | # ----------------------------------------------------------------------------
130 | #  Command compat::bindsource
131 | # ----------------------------------------------------------------------------
132 | proc compat::bindsource0 {window} {
133 |   return [bind $window <<DropTargetTypes>>]
134 | };# compat::bindsource0
135 | 
136 | proc compat::bindsource1 {window type} {
137 |   return [bindsource2 $window $type <Drop>]
138 | };# compat::bindsource1
139 | 
140 | proc compat::bindsource2 {window type script} {
141 |   set type [normalise_type $type]
142 |   ::tkdnd::drag_source register $window $type
143 |   bind $window <<DragInitCmd>> "list {copy} {%t} \[$script\]"
144 | };# compat::bindsource2
145 | 
146 | proc compat::bindsource3 {window type script priority} {
147 |   return [bindsource2 $window $type $script]
148 | };# compat::bindsource3
149 | 
150 | # ----------------------------------------------------------------------------
151 | #  Command compat::cleartarget
152 | # ----------------------------------------------------------------------------
153 | proc compat::cleartarget {window} {
154 | };# compat::cleartarget
155 | 
156 | # ----------------------------------------------------------------------------
157 | #  Command compat::clearsource
158 | # ----------------------------------------------------------------------------
159 | proc compat::clearsource {window} {
160 | };# compat::clearsource
161 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_macosx.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_macosx.tcl --
  3 | #
  4 | #    This file implements some utility procedures that are used by the TkDND
  5 | #    package.
  6 | 
  7 | #   This software is copyrighted by:
  8 | #   Georgios Petasis, Athens, Greece.
  9 | #   e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr
 10 | #
 11 | #   Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC,
 12 | #   kw@codebykevin.com
 13 | #
 14 | #
 15 | # The following terms apply to all files associated
 16 | # with the software unless explicitly disclaimed in individual files.
 17 | #
 18 | # The authors hereby grant permission to use, copy, modify, distribute,
 19 | # and license this software and its documentation for any purpose, provided
 20 | # that existing copyright notices are retained in all copies and that this
 21 | # notice is included verbatim in any distributions. No written agreement,
 22 | # license, or royalty fee is required for any of the authorized uses.
 23 | # Modifications to this software may be copyrighted by their authors
 24 | # and need not follow the licensing terms described here, provided that
 25 | # the new terms are clearly indicated on the first page of each file where
 26 | # they apply.
 27 | #
 28 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 29 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 30 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 31 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 32 | # POSSIBILITY OF SUCH DAMAGE.
 33 | #
 34 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 35 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 36 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 37 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 38 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 39 | # MODIFICATIONS.
 40 | #
 41 | 
 42 | #basic API for Mac Drag and Drop
 43 | 
 44 | #two data types supported: strings and file paths
 45 | 
 46 | #two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget
 47 | 
 48 | #data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list
 49 | 
 50 | if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} {
 51 |   error {TkAqua Cocoa required}
 52 | }
 53 | 
 54 | namespace eval macdnd {
 55 | 
 56 |   proc initialise { } {
 57 |      ## Mapping from platform types to TkDND types...
 58 |     ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \
 59 |        NSPasteboardTypeString  DND_Text  \
 60 |        NSFilenamesPboardType   DND_Files \
 61 |        NSPasteboardTypeHTML    DND_HTML  \
 62 |     ]
 63 |   };# initialise
 64 | 
 65 | };# namespace macdnd
 66 | 
 67 | # ----------------------------------------------------------------------------
 68 | #  Command macdnd::HandleEnter
 69 | # ----------------------------------------------------------------------------
 70 | proc macdnd::HandleEnter { path drag_source typelist { data {} } } {
 71 |   variable _pressedkeys
 72 |   variable _actionlist
 73 |   set _pressedkeys 1
 74 |   set _actionlist  { copy move link ask private }
 75 |   ::tkdnd::generic::SetDroppedData $data
 76 |   ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \
 77 |            $_actionlist $_pressedkeys
 78 | };# macdnd::HandleEnter
 79 | 
 80 | # ----------------------------------------------------------------------------
 81 | #  Command macdnd::HandlePosition
 82 | # ----------------------------------------------------------------------------
 83 | proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } {
 84 |   variable _pressedkeys
 85 |   variable _last_mouse_root_x; set _last_mouse_root_x $rootX
 86 |   variable _last_mouse_root_y; set _last_mouse_root_y $rootY
 87 |   ::tkdnd::generic::HandlePosition $drop_target $drag_source \
 88 |                                    $_pressedkeys $rootX $rootY
 89 | };# macdnd::HandlePosition
 90 | 
 91 | # ----------------------------------------------------------------------------
 92 | #  Command macdnd::HandleLeave
 93 | # ----------------------------------------------------------------------------
 94 | proc macdnd::HandleLeave { args } {
 95 |   ::tkdnd::generic::HandleLeave
 96 | };# macdnd::HandleLeave
 97 | 
 98 | # ----------------------------------------------------------------------------
 99 | #  Command macdnd::HandleDrop
100 | # ----------------------------------------------------------------------------
101 | proc macdnd::HandleDrop { drop_target data args } {
102 |   variable _pressedkeys
103 |   variable _last_mouse_root_x
104 |   variable _last_mouse_root_y
105 |   ## Get the dropped data...
106 |   ::tkdnd::generic::SetDroppedData $data
107 |   ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \
108 |                                $_last_mouse_root_x $_last_mouse_root_y 0
109 | };# macdnd::HandleDrop
110 | 
111 | # ----------------------------------------------------------------------------
112 | #  Command macdnd::GetDragSourceCommonTypes
113 | # ----------------------------------------------------------------------------
114 | proc macdnd::GetDragSourceCommonTypes { } {
115 |   ::tkdnd::generic::GetDragSourceCommonTypes
116 | };# macdnd::GetDragSourceCommonTypes
117 | 
118 | # ----------------------------------------------------------------------------
119 | #  Command macdnd::platform_specific_types
120 | # ----------------------------------------------------------------------------
121 | proc macdnd::platform_specific_types { types } {
122 |   ::tkdnd::generic::platform_specific_types $types
123 | }; # macdnd::platform_specific_types
124 | 
125 | # ----------------------------------------------------------------------------
126 | #  Command macdnd::platform_specific_type
127 | # ----------------------------------------------------------------------------
128 | proc macdnd::platform_specific_type { type } {
129 |   ::tkdnd::generic::platform_specific_type $type
130 | }; # macdnd::platform_specific_type
131 | 
132 | # ----------------------------------------------------------------------------
133 | #  Command tkdnd::platform_independent_types
134 | # ----------------------------------------------------------------------------
135 | proc ::tkdnd::platform_independent_types { types } {
136 |   ::tkdnd::generic::platform_independent_types $types
137 | }; # tkdnd::platform_independent_types
138 | 
139 | # ----------------------------------------------------------------------------
140 | #  Command macdnd::platform_independent_type
141 | # ----------------------------------------------------------------------------
142 | proc macdnd::platform_independent_type { type } {
143 |   ::tkdnd::generic::platform_independent_type $type
144 | }; # macdnd::platform_independent_type
145 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx64/libtkdnd2.9.2.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/tkinterdnd2/tkdnd/osx64/libtkdnd2.9.2.dylib


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx64/pkgIndex.tcl:
--------------------------------------------------------------------------------
 1 | #
 2 | # Tcl package index file
 3 | #
 4 | package ifneeded tkdnd 2.9.2 \
 5 |   "source \{$dir/tkdnd.tcl\} ; \
 6 |    tkdnd::initialise \{$dir\} libtkdnd2.9.2.dylib tkdnd"
 7 | 
 8 | package ifneeded tkdnd::utils 2.9.2 \
 9 |   "source \{$dir/tkdnd_utils.tcl\} ; \
10 |    package provide tkdnd::utils 2.9.2"
11 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_compat.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_compat.tcl --
  3 | # 
  4 | #    This file implements some utility procedures, to support older versions
  5 | #    of the TkDND package.
  6 | #
  7 | # This software is copyrighted by:
  8 | # George Petasis, National Centre for Scientific Research "Demokritos",
  9 | # Aghia Paraskevi, Athens, Greece.
 10 | # e-mail: petasis@iit.demokritos.gr
 11 | #
 12 | # The following terms apply to all files associated
 13 | # with the software unless explicitly disclaimed in individual files.
 14 | #
 15 | # The authors hereby grant permission to use, copy, modify, distribute,
 16 | # and license this software and its documentation for any purpose, provided
 17 | # that existing copyright notices are retained in all copies and that this
 18 | # notice is included verbatim in any distributions. No written agreement,
 19 | # license, or royalty fee is required for any of the authorized uses.
 20 | # Modifications to this software may be copyrighted by their authors
 21 | # and need not follow the licensing terms described here, provided that
 22 | # the new terms are clearly indicated on the first page of each file where
 23 | # they apply.
 24 | # 
 25 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 26 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 27 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 28 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 29 | # POSSIBILITY OF SUCH DAMAGE.
 30 | # 
 31 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 32 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 33 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 34 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 35 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 36 | # MODIFICATIONS.
 37 | #
 38 | 
 39 | namespace eval compat {
 40 | 
 41 | };# namespace compat
 42 | 
 43 | # ----------------------------------------------------------------------------
 44 | #  Command ::dnd
 45 | # ----------------------------------------------------------------------------
 46 | proc ::dnd {method window args} {
 47 |   switch $method {
 48 |     bindtarget {
 49 |       switch [llength $args] {
 50 |         0 {return [tkdnd::compat::bindtarget0 $window]}
 51 |         1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]}
 52 |         2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \
 53 |                                                       [lindex $args 1]]}
 54 |         3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \
 55 |                                      [lindex $args 1] [lindex $args 2]]}
 56 |         4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \
 57 |                     [lindex $args 1] [lindex $args 2] [lindex $args 3]]}
 58 |       }
 59 |     }
 60 |     cleartarget {
 61 |       return [tkdnd::compat::cleartarget $window]
 62 |     }
 63 |     bindsource {
 64 |       switch [llength $args] {
 65 |         0 {return [tkdnd::compat::bindsource0 $window]}
 66 |         1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]}
 67 |         2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \
 68 |                                                       [lindex $args 1]]}
 69 |         3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \
 70 |                                      [lindex $args 1] [lindex $args 2]]}
 71 |       }
 72 |     }
 73 |     clearsource {
 74 |       return [tkdnd::compat::clearsource $window]
 75 |     }
 76 |     drag {
 77 |       return [tkdnd::_init_drag 1 $window "press" 0 0 0 0]
 78 |     }
 79 |   }
 80 |   error "invalid number of arguments!"
 81 | };# ::dnd
 82 | 
 83 | # ----------------------------------------------------------------------------
 84 | #  Command compat::bindtarget
 85 | # ----------------------------------------------------------------------------
 86 | proc compat::bindtarget0 {window} {
 87 |   return [bind $window <<DropTargetTypes>>]
 88 | };# compat::bindtarget0
 89 | 
 90 | proc compat::bindtarget1 {window type} {
 91 |   return [bindtarget2 $window $type <Drop>]
 92 | };# compat::bindtarget1
 93 | 
 94 | proc compat::bindtarget2 {window type event} {
 95 |   switch $event {
 96 |     <DragEnter> {return [bind $window <<DropEnter>>]}
 97 |     <Drag>      {return [bind $window <<DropPosition>>]}
 98 |     <DragLeave> {return [bind $window <<DropLeave>>]}
 99 |     <Drop>      {return [bind $window <<Drop>>]}
100 |   }
101 | };# compat::bindtarget2
102 | 
103 | proc compat::bindtarget3 {window type event script} {
104 |   set type [normalise_type $type]
105 |   ::tkdnd::drop_target register $window [list $type]
106 |   switch $event {
107 |     <DragEnter> {return [bind $window <<DropEnter>> $script]}
108 |     <Drag>      {return [bind $window <<DropPosition>> $script]}
109 |     <DragLeave> {return [bind $window <<DropLeave>> $script]}
110 |     <Drop>      {return [bind $window <<Drop>> $script]}
111 |   }
112 | };# compat::bindtarget3
113 | 
114 | proc compat::bindtarget4 {window type event script priority} {
115 |   return [bindtarget3 $window $type $event $script]
116 | };# compat::bindtarget4
117 | 
118 | proc compat::normalise_type { type } {
119 |   switch $type {
120 |     text/plain -
121 |     {text/plain;charset=UTF-8} -
122 |     Text                       {return DND_Text}
123 |     text/uri-list -
124 |     Files                      {return DND_Files}
125 |     default                    {return $type}
126 |   }
127 | };# compat::normalise_type
128 | 
129 | # ----------------------------------------------------------------------------
130 | #  Command compat::bindsource
131 | # ----------------------------------------------------------------------------
132 | proc compat::bindsource0 {window} {
133 |   return [bind $window <<DropTargetTypes>>]
134 | };# compat::bindsource0
135 | 
136 | proc compat::bindsource1 {window type} {
137 |   return [bindsource2 $window $type <Drop>]
138 | };# compat::bindsource1
139 | 
140 | proc compat::bindsource2 {window type script} {
141 |   set type [normalise_type $type]
142 |   ::tkdnd::drag_source register $window $type
143 |   bind $window <<DragInitCmd>> "list {copy} {%t} \[$script\]"
144 | };# compat::bindsource2
145 | 
146 | proc compat::bindsource3 {window type script priority} {
147 |   return [bindsource2 $window $type $script]
148 | };# compat::bindsource3
149 | 
150 | # ----------------------------------------------------------------------------
151 | #  Command compat::cleartarget
152 | # ----------------------------------------------------------------------------
153 | proc compat::cleartarget {window} {
154 | };# compat::cleartarget
155 | 
156 | # ----------------------------------------------------------------------------
157 | #  Command compat::clearsource
158 | # ----------------------------------------------------------------------------
159 | proc compat::clearsource {window} {
160 | };# compat::clearsource
161 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_macosx.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_macosx.tcl --
  3 | #
  4 | #    This file implements some utility procedures that are used by the TkDND
  5 | #    package.
  6 | 
  7 | #   This software is copyrighted by:
  8 | #   Georgios Petasis, Athens, Greece.
  9 | #   e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr
 10 | #
 11 | #   Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC,
 12 | #   kw@codebykevin.com
 13 | #
 14 | #
 15 | # The following terms apply to all files associated
 16 | # with the software unless explicitly disclaimed in individual files.
 17 | #
 18 | # The authors hereby grant permission to use, copy, modify, distribute,
 19 | # and license this software and its documentation for any purpose, provided
 20 | # that existing copyright notices are retained in all copies and that this
 21 | # notice is included verbatim in any distributions. No written agreement,
 22 | # license, or royalty fee is required for any of the authorized uses.
 23 | # Modifications to this software may be copyrighted by their authors
 24 | # and need not follow the licensing terms described here, provided that
 25 | # the new terms are clearly indicated on the first page of each file where
 26 | # they apply.
 27 | #
 28 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 29 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 30 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 31 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 32 | # POSSIBILITY OF SUCH DAMAGE.
 33 | #
 34 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 35 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 36 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 37 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 38 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 39 | # MODIFICATIONS.
 40 | #
 41 | 
 42 | #basic API for Mac Drag and Drop
 43 | 
 44 | #two data types supported: strings and file paths
 45 | 
 46 | #two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget
 47 | 
 48 | #data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list
 49 | 
 50 | if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} {
 51 |   error {TkAqua Cocoa required}
 52 | }
 53 | 
 54 | namespace eval macdnd {
 55 | 
 56 |   proc initialise { } {
 57 |      ## Mapping from platform types to TkDND types...
 58 |     ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \
 59 |        NSPasteboardTypeString  DND_Text  \
 60 |        NSFilenamesPboardType   DND_Files \
 61 |        NSPasteboardTypeHTML    DND_HTML  \
 62 |     ]
 63 |   };# initialise
 64 | 
 65 | };# namespace macdnd
 66 | 
 67 | # ----------------------------------------------------------------------------
 68 | #  Command macdnd::HandleEnter
 69 | # ----------------------------------------------------------------------------
 70 | proc macdnd::HandleEnter { path drag_source typelist { data {} } } {
 71 |   variable _pressedkeys
 72 |   variable _actionlist
 73 |   set _pressedkeys 1
 74 |   set _actionlist  { copy move link ask private }
 75 |   ::tkdnd::generic::SetDroppedData $data
 76 |   ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \
 77 |            $_actionlist $_pressedkeys
 78 | };# macdnd::HandleEnter
 79 | 
 80 | # ----------------------------------------------------------------------------
 81 | #  Command macdnd::HandlePosition
 82 | # ----------------------------------------------------------------------------
 83 | proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } {
 84 |   variable _pressedkeys
 85 |   variable _last_mouse_root_x; set _last_mouse_root_x $rootX
 86 |   variable _last_mouse_root_y; set _last_mouse_root_y $rootY
 87 |   ::tkdnd::generic::HandlePosition $drop_target $drag_source \
 88 |                                    $_pressedkeys $rootX $rootY
 89 | };# macdnd::HandlePosition
 90 | 
 91 | # ----------------------------------------------------------------------------
 92 | #  Command macdnd::HandleLeave
 93 | # ----------------------------------------------------------------------------
 94 | proc macdnd::HandleLeave { args } {
 95 |   ::tkdnd::generic::HandleLeave
 96 | };# macdnd::HandleLeave
 97 | 
 98 | # ----------------------------------------------------------------------------
 99 | #  Command macdnd::HandleDrop
100 | # ----------------------------------------------------------------------------
101 | proc macdnd::HandleDrop { drop_target data args } {
102 |   variable _pressedkeys
103 |   variable _last_mouse_root_x
104 |   variable _last_mouse_root_y
105 |   ## Get the dropped data...
106 |   ::tkdnd::generic::SetDroppedData $data
107 |   ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \
108 |                                $_last_mouse_root_x $_last_mouse_root_y 0
109 | };# macdnd::HandleDrop
110 | 
111 | # ----------------------------------------------------------------------------
112 | #  Command macdnd::GetDragSourceCommonTypes
113 | # ----------------------------------------------------------------------------
114 | proc macdnd::GetDragSourceCommonTypes { } {
115 |   ::tkdnd::generic::GetDragSourceCommonTypes
116 | };# macdnd::GetDragSourceCommonTypes
117 | 
118 | # ----------------------------------------------------------------------------
119 | #  Command macdnd::platform_specific_types
120 | # ----------------------------------------------------------------------------
121 | proc macdnd::platform_specific_types { types } {
122 |   ::tkdnd::generic::platform_specific_types $types
123 | }; # macdnd::platform_specific_types
124 | 
125 | # ----------------------------------------------------------------------------
126 | #  Command macdnd::platform_specific_type
127 | # ----------------------------------------------------------------------------
128 | proc macdnd::platform_specific_type { type } {
129 |   ::tkdnd::generic::platform_specific_type $type
130 | }; # macdnd::platform_specific_type
131 | 
132 | # ----------------------------------------------------------------------------
133 | #  Command tkdnd::platform_independent_types
134 | # ----------------------------------------------------------------------------
135 | proc ::tkdnd::platform_independent_types { types } {
136 |   ::tkdnd::generic::platform_independent_types $types
137 | }; # tkdnd::platform_independent_types
138 | 
139 | # ----------------------------------------------------------------------------
140 | #  Command macdnd::platform_independent_type
141 | # ----------------------------------------------------------------------------
142 | proc macdnd::platform_independent_type { type } {
143 |   ::tkdnd::generic::platform_independent_type $type
144 | }; # macdnd::platform_independent_type
145 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_windows.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_windows.tcl --
  3 | #
  4 | #    This file implements some utility procedures that are used by the TkDND
  5 | #    package.
  6 | #
  7 | # This software is copyrighted by:
  8 | # George Petasis, National Centre for Scientific Research "Demokritos",
  9 | # Aghia Paraskevi, Athens, Greece.
 10 | # e-mail: petasis@iit.demokritos.gr
 11 | #
 12 | # The following terms apply to all files associated
 13 | # with the software unless explicitly disclaimed in individual files.
 14 | #
 15 | # The authors hereby grant permission to use, copy, modify, distribute,
 16 | # and license this software and its documentation for any purpose, provided
 17 | # that existing copyright notices are retained in all copies and that this
 18 | # notice is included verbatim in any distributions. No written agreement,
 19 | # license, or royalty fee is required for any of the authorized uses.
 20 | # Modifications to this software may be copyrighted by their authors
 21 | # and need not follow the licensing terms described here, provided that
 22 | # the new terms are clearly indicated on the first page of each file where
 23 | # they apply.
 24 | #
 25 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 26 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 27 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 28 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 29 | # POSSIBILITY OF SUCH DAMAGE.
 30 | #
 31 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 32 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 33 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 34 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 35 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 36 | # MODIFICATIONS.
 37 | #
 38 | 
 39 | namespace eval olednd {
 40 | 
 41 |   proc initialise { } {
 42 |     ## Mapping from platform types to TkDND types...
 43 |     ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \
 44 |        CF_UNICODETEXT          DND_Text  \
 45 |        CF_TEXT                 DND_Text  \
 46 |        CF_HDROP                DND_Files \
 47 |        UniformResourceLocator  DND_URL   \
 48 |        CF_HTML                 DND_HTML  \
 49 |        {HTML Format}           DND_HTML  \
 50 |        CF_RTF                  DND_RTF   \
 51 |        CF_RTFTEXT              DND_RTF   \
 52 |        {Rich Text Format}      DND_RTF   \
 53 |     ]
 54 |     # FileGroupDescriptorW    DND_Files \
 55 |     # FileGroupDescriptor     DND_Files \
 56 | 
 57 |     ## Mapping from TkDND types to platform types...
 58 |     ::tkdnd::generic::initialise_tkdnd_to_platform_types [list \
 59 |        DND_Text  {CF_UNICODETEXT CF_TEXT}               \
 60 |        DND_Files {CF_HDROP}                             \
 61 |        DND_URL   {UniformResourceLocator UniformResourceLocatorW} \
 62 |        DND_HTML  {CF_HTML {HTML Format}}                \
 63 |        DND_RTF   {CF_RTF CF_RTFTEXT {Rich Text Format}} \
 64 |     ]
 65 |   };# initialise
 66 | 
 67 | };# namespace olednd
 68 | 
 69 | # ----------------------------------------------------------------------------
 70 | #  Command olednd::HandleDragEnter
 71 | # ----------------------------------------------------------------------------
 72 | proc olednd::HandleDragEnter { drop_target typelist actionlist pressedkeys
 73 |                                rootX rootY codelist { data {} } } {
 74 |   ::tkdnd::generic::SetDroppedData $data
 75 |   focus $drop_target
 76 |   ::tkdnd::generic::HandleEnter $drop_target 0 $typelist \
 77 |                                 $codelist $actionlist $pressedkeys
 78 |   set action [::tkdnd::generic::HandlePosition $drop_target {} \
 79 |                                                $pressedkeys $rootX $rootY]
 80 |   if {$::tkdnd::_auto_update} {update idletasks}
 81 |   return $action
 82 | };# olednd::HandleDragEnter
 83 | 
 84 | # ----------------------------------------------------------------------------
 85 | #  Command olednd::HandleDragOver
 86 | # ----------------------------------------------------------------------------
 87 | proc olednd::HandleDragOver { drop_target pressedkeys rootX rootY } {
 88 |   set action [::tkdnd::generic::HandlePosition $drop_target {} \
 89 |                                                $pressedkeys $rootX $rootY]
 90 |   if {$::tkdnd::_auto_update} {update idletasks}
 91 |   return $action
 92 | };# olednd::HandleDragOver
 93 | 
 94 | # ----------------------------------------------------------------------------
 95 | #  Command olednd::HandleDragLeave
 96 | # ----------------------------------------------------------------------------
 97 | proc olednd::HandleDragLeave { drop_target } {
 98 |   ::tkdnd::generic::HandleLeave
 99 |   if {$::tkdnd::_auto_update} {update idletasks}
100 | };# olednd::HandleDragLeave
101 | 
102 | # ----------------------------------------------------------------------------
103 | #  Command olednd::HandleDrop
104 | # ----------------------------------------------------------------------------
105 | proc olednd::HandleDrop { drop_target pressedkeys rootX rootY type data } {
106 |   ::tkdnd::generic::SetDroppedData [normalise_data $type $data]
107 |   set action [::tkdnd::generic::HandleDrop $drop_target {} \
108 |                                            $pressedkeys $rootX $rootY 0]
109 |   if {$::tkdnd::_auto_update} {update idletasks}
110 |   return $action
111 | };# olednd::HandleDrop
112 | 
113 | # ----------------------------------------------------------------------------
114 | #  Command olednd::GetDataType
115 | # ----------------------------------------------------------------------------
116 | proc olednd::GetDataType { drop_target typelist } {
117 |   foreach {drop_target common_drag_source_types common_drop_target_types} \
118 |     [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break}
119 |   lindex $common_drag_source_types 0
120 | };# olednd::GetDataType
121 | 
122 | # ----------------------------------------------------------------------------
123 | #  Command olednd::GetDragSourceCommonTypes
124 | # ----------------------------------------------------------------------------
125 | proc olednd::GetDragSourceCommonTypes { drop_target } {
126 |   ::tkdnd::generic::GetDragSourceCommonTypes
127 | };# olednd::GetDragSourceCommonTypes
128 | 
129 | # ----------------------------------------------------------------------------
130 | #  Command olednd::platform_specific_types
131 | # ----------------------------------------------------------------------------
132 | proc olednd::platform_specific_types { types } {
133 |   ::tkdnd::generic::platform_specific_types $types
134 | }; # olednd::platform_specific_types
135 | 
136 | # ----------------------------------------------------------------------------
137 | #  Command olednd::platform_specific_type
138 | # ----------------------------------------------------------------------------
139 | proc olednd::platform_specific_type { type } {
140 |   ::tkdnd::generic::platform_specific_type $type
141 | }; # olednd::platform_specific_type
142 | 
143 | # ----------------------------------------------------------------------------
144 | #  Command tkdnd::platform_independent_types
145 | # ----------------------------------------------------------------------------
146 | proc ::tkdnd::platform_independent_types { types } {
147 |   ::tkdnd::generic::platform_independent_types $types
148 | }; # tkdnd::platform_independent_types
149 | 
150 | # ----------------------------------------------------------------------------
151 | #  Command olednd::platform_independent_type
152 | # ----------------------------------------------------------------------------
153 | proc olednd::platform_independent_type { type } {
154 |   ::tkdnd::generic::platform_independent_type $type
155 | }; # olednd::platform_independent_type
156 | 
157 | # ----------------------------------------------------------------------------
158 | #  Command olednd::normalise_data
159 | # ----------------------------------------------------------------------------
160 | proc olednd::normalise_data { type data } {
161 |   switch [lindex [::tkdnd::generic::platform_independent_type $type] 0] {
162 |     DND_Text   {return $data}
163 |     DND_Files  {return $data}
164 |     DND_HTML   {return [encoding convertfrom utf-8 $data]}
165 |     default    {return $data}
166 |   }
167 | }; # olednd::normalise_data
168 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx_arm/libtkdnd2.9.3.dylib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/tkinterdnd2/tkdnd/osx_arm/libtkdnd2.9.3.dylib


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx_arm/pkgIndex.tcl:
--------------------------------------------------------------------------------
 1 | #
 2 | # Tcl package index file
 3 | #
 4 | 
 5 | namespace eval ::tkdnd {
 6 |   ## Check if a debug level must be set...
 7 |   if {[info exists ::TKDND_DEBUG_LEVEL]} {
 8 |     variable _debug_level $::TKDND_DEBUG_LEVEL
 9 |   } elseif {[info exists ::env(TKDND_DEBUG_LEVEL)]} {
10 |     variable _debug_level $::env(TKDND_DEBUG_LEVEL)
11 |   } else {
12 |     variable _debug_level 0
13 |   }
14 | 
15 |   # ----------------------------------------------------------------------------
16 |   #  Command tkdnd::debug_enabled: returns the requested debug level (0 = no debug).
17 |   # ----------------------------------------------------------------------------
18 |   proc debug_enabled { {level {}} } {
19 |     variable _debug_level
20 |     if {$level != {}} {
21 |       if {[string is integer -strict $level]} {
22 |         set _debug_level $level
23 |       } elseif {[string is true $level]} {
24 |         set _debug_level 1
25 |       }
26 |     }
27 |     return $_debug_level
28 |   };# debug_enabled
29 | 
30 |   # ----------------------------------------------------------------------------
31 |   #  Command tkdnd::source: source a Tcl fileInitialise the TkDND package.
32 |   # ----------------------------------------------------------------------------
33 |   proc source { filename { encoding utf-8 } } {
34 |     variable _package_dir
35 |     # If in debug mode, enable debug statements...
36 |     set dbg_lvl [debug_enabled]
37 |     if {$dbg_lvl} {
38 |       puts "tkdnd::source (debug level $dbg_lvl) $filename"
39 |       set fd [open $filename r]
40 |       fconfigure $fd -encoding $encoding
41 |       set script [read $fd]
42 |       close $fd
43 |       set map {}
44 |       for {set lvl 0} {$lvl <= $dbg_lvl} {incr lvl} {
45 |         lappend map "#DBG$lvl " {}
46 |       }
47 |       lappend map {#DBG } {}
48 |       set script [string map $map $script]
49 |       return [eval $script]
50 |     }
51 |     ::source -encoding $encoding $filename
52 |   };# source
53 | 
54 | }; # namespace ::tkdnd
55 | 
56 | package ifneeded tkdnd 2.9.3 \
57 |   "tkdnd::source \{$dir/tkdnd.tcl\} ; \
58 |    tkdnd::initialise \{$dir\} libtkdnd2.9.3.dylib tkdnd"
59 | 
60 | package ifneeded tkdnd::utils 2.9.3 \
61 |   "tkdnd::source \{$dir/tkdnd_utils.tcl\} ; \
62 |    package provide tkdnd::utils 2.9.3"
63 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_compat.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_compat.tcl --
  3 | # 
  4 | #    This file implements some utility procedures, to support older versions
  5 | #    of the TkDND package.
  6 | #
  7 | # This software is copyrighted by:
  8 | # George Petasis, National Centre for Scientific Research "Demokritos",
  9 | # Aghia Paraskevi, Athens, Greece.
 10 | # e-mail: petasis@iit.demokritos.gr
 11 | #
 12 | # The following terms apply to all files associated
 13 | # with the software unless explicitly disclaimed in individual files.
 14 | #
 15 | # The authors hereby grant permission to use, copy, modify, distribute,
 16 | # and license this software and its documentation for any purpose, provided
 17 | # that existing copyright notices are retained in all copies and that this
 18 | # notice is included verbatim in any distributions. No written agreement,
 19 | # license, or royalty fee is required for any of the authorized uses.
 20 | # Modifications to this software may be copyrighted by their authors
 21 | # and need not follow the licensing terms described here, provided that
 22 | # the new terms are clearly indicated on the first page of each file where
 23 | # they apply.
 24 | # 
 25 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 26 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 27 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 28 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 29 | # POSSIBILITY OF SUCH DAMAGE.
 30 | # 
 31 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 32 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 33 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 34 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 35 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 36 | # MODIFICATIONS.
 37 | #
 38 | 
 39 | namespace eval compat {
 40 | 
 41 | };# namespace compat
 42 | 
 43 | # ----------------------------------------------------------------------------
 44 | #  Command ::dnd
 45 | # ----------------------------------------------------------------------------
 46 | proc ::dnd {method window args} {
 47 |   switch $method {
 48 |     bindtarget {
 49 |       switch [llength $args] {
 50 |         0 {return [tkdnd::compat::bindtarget0 $window]}
 51 |         1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]}
 52 |         2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \
 53 |                                                       [lindex $args 1]]}
 54 |         3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \
 55 |                                      [lindex $args 1] [lindex $args 2]]}
 56 |         4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \
 57 |                     [lindex $args 1] [lindex $args 2] [lindex $args 3]]}
 58 |       }
 59 |     }
 60 |     cleartarget {
 61 |       return [tkdnd::compat::cleartarget $window]
 62 |     }
 63 |     bindsource {
 64 |       switch [llength $args] {
 65 |         0 {return [tkdnd::compat::bindsource0 $window]}
 66 |         1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]}
 67 |         2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \
 68 |                                                       [lindex $args 1]]}
 69 |         3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \
 70 |                                      [lindex $args 1] [lindex $args 2]]}
 71 |       }
 72 |     }
 73 |     clearsource {
 74 |       return [tkdnd::compat::clearsource $window]
 75 |     }
 76 |     drag {
 77 |       return [tkdnd::_init_drag 1 $window "press" 0 0 0 0]
 78 |     }
 79 |   }
 80 |   error "invalid number of arguments!"
 81 | };# ::dnd
 82 | 
 83 | # ----------------------------------------------------------------------------
 84 | #  Command compat::bindtarget
 85 | # ----------------------------------------------------------------------------
 86 | proc compat::bindtarget0 {window} {
 87 |   return [bind $window <<DropTargetTypes>>]
 88 | };# compat::bindtarget0
 89 | 
 90 | proc compat::bindtarget1 {window type} {
 91 |   return [bindtarget2 $window $type <Drop>]
 92 | };# compat::bindtarget1
 93 | 
 94 | proc compat::bindtarget2 {window type event} {
 95 |   switch $event {
 96 |     <DragEnter> {return [bind $window <<DropEnter>>]}
 97 |     <Drag>      {return [bind $window <<DropPosition>>]}
 98 |     <DragLeave> {return [bind $window <<DropLeave>>]}
 99 |     <Drop>      {return [bind $window <<Drop>>]}
100 |   }
101 | };# compat::bindtarget2
102 | 
103 | proc compat::bindtarget3 {window type event script} {
104 |   set type [normalise_type $type]
105 |   ::tkdnd::drop_target register $window [list $type]
106 |   switch $event {
107 |     <DragEnter> {return [bind $window <<DropEnter>> $script]}
108 |     <Drag>      {return [bind $window <<DropPosition>> $script]}
109 |     <DragLeave> {return [bind $window <<DropLeave>> $script]}
110 |     <Drop>      {return [bind $window <<Drop>> $script]}
111 |   }
112 | };# compat::bindtarget3
113 | 
114 | proc compat::bindtarget4 {window type event script priority} {
115 |   return [bindtarget3 $window $type $event $script]
116 | };# compat::bindtarget4
117 | 
118 | proc compat::normalise_type { type } {
119 |   switch $type {
120 |     text/plain -
121 |     {text/plain;charset=UTF-8} -
122 |     Text                       {return DND_Text}
123 |     text/uri-list -
124 |     Files                      {return DND_Files}
125 |     default                    {return $type}
126 |   }
127 | };# compat::normalise_type
128 | 
129 | # ----------------------------------------------------------------------------
130 | #  Command compat::bindsource
131 | # ----------------------------------------------------------------------------
132 | proc compat::bindsource0 {window} {
133 |   return [bind $window <<DropTargetTypes>>]
134 | };# compat::bindsource0
135 | 
136 | proc compat::bindsource1 {window type} {
137 |   return [bindsource2 $window $type <Drop>]
138 | };# compat::bindsource1
139 | 
140 | proc compat::bindsource2 {window type script} {
141 |   set type [normalise_type $type]
142 |   ::tkdnd::drag_source register $window $type
143 |   bind $window <<DragInitCmd>> "list {copy} {%t} \[$script\]"
144 | };# compat::bindsource2
145 | 
146 | proc compat::bindsource3 {window type script priority} {
147 |   return [bindsource2 $window $type $script]
148 | };# compat::bindsource3
149 | 
150 | # ----------------------------------------------------------------------------
151 | #  Command compat::cleartarget
152 | # ----------------------------------------------------------------------------
153 | proc compat::cleartarget {window} {
154 | };# compat::cleartarget
155 | 
156 | # ----------------------------------------------------------------------------
157 | #  Command compat::clearsource
158 | # ----------------------------------------------------------------------------
159 | proc compat::clearsource {window} {
160 | };# compat::clearsource
161 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_macosx.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_macosx.tcl --
  3 | #
  4 | #    This file implements some utility procedures that are used by the TkDND
  5 | #    package.
  6 | 
  7 | #   This software is copyrighted by:
  8 | #   Georgios Petasis, Athens, Greece.
  9 | #   e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr
 10 | #
 11 | #   Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC,
 12 | #   kw@codebykevin.com
 13 | #
 14 | #
 15 | # The following terms apply to all files associated
 16 | # with the software unless explicitly disclaimed in individual files.
 17 | #
 18 | # The authors hereby grant permission to use, copy, modify, distribute,
 19 | # and license this software and its documentation for any purpose, provided
 20 | # that existing copyright notices are retained in all copies and that this
 21 | # notice is included verbatim in any distributions. No written agreement,
 22 | # license, or royalty fee is required for any of the authorized uses.
 23 | # Modifications to this software may be copyrighted by their authors
 24 | # and need not follow the licensing terms described here, provided that
 25 | # the new terms are clearly indicated on the first page of each file where
 26 | # they apply.
 27 | #
 28 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 29 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 30 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 31 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 32 | # POSSIBILITY OF SUCH DAMAGE.
 33 | #
 34 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 35 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 36 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 37 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 38 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 39 | # MODIFICATIONS.
 40 | #
 41 | 
 42 | #basic API for Mac Drag and Drop
 43 | 
 44 | #two data types supported: strings and file paths
 45 | 
 46 | #two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget
 47 | 
 48 | #data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list
 49 | 
 50 | if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} {
 51 |   error {TkAqua Cocoa required}
 52 | }
 53 | 
 54 | namespace eval macdnd {
 55 | 
 56 |   proc initialise { } {
 57 |      ## Mapping from platform types to TkDND types...
 58 |     ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \
 59 |        NSPasteboardTypeString  DND_Text  \
 60 |        NSFilenamesPboardType   DND_Files \
 61 |        NSPasteboardTypeHTML    DND_HTML  \
 62 |     ]
 63 |   };# initialise
 64 | 
 65 | };# namespace macdnd
 66 | 
 67 | # ----------------------------------------------------------------------------
 68 | #  Command macdnd::HandleEnter
 69 | # ----------------------------------------------------------------------------
 70 | proc macdnd::HandleEnter { path drag_source typelist { data {} } } {
 71 |   variable _pressedkeys
 72 |   variable _actionlist
 73 |   set _pressedkeys 1
 74 |   set _actionlist  { copy move link ask private }
 75 |   ::tkdnd::generic::SetDroppedData $data
 76 |   ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \
 77 |            $_actionlist $_pressedkeys
 78 | };# macdnd::HandleEnter
 79 | 
 80 | # ----------------------------------------------------------------------------
 81 | #  Command macdnd::HandlePosition
 82 | # ----------------------------------------------------------------------------
 83 | proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } {
 84 |   variable _pressedkeys
 85 |   variable _last_mouse_root_x; set _last_mouse_root_x $rootX
 86 |   variable _last_mouse_root_y; set _last_mouse_root_y $rootY
 87 |   ::tkdnd::generic::HandlePosition $drop_target $drag_source \
 88 |                                    $_pressedkeys $rootX $rootY
 89 | };# macdnd::HandlePosition
 90 | 
 91 | # ----------------------------------------------------------------------------
 92 | #  Command macdnd::HandleLeave
 93 | # ----------------------------------------------------------------------------
 94 | proc macdnd::HandleLeave { args } {
 95 |   ::tkdnd::generic::HandleLeave
 96 | };# macdnd::HandleLeave
 97 | 
 98 | # ----------------------------------------------------------------------------
 99 | #  Command macdnd::HandleDrop
100 | # ----------------------------------------------------------------------------
101 | proc macdnd::HandleDrop { drop_target data args } {
102 |   variable _pressedkeys
103 |   variable _last_mouse_root_x
104 |   variable _last_mouse_root_y
105 |   ## Get the dropped data...
106 |   ::tkdnd::generic::SetDroppedData $data
107 |   ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \
108 |                                $_last_mouse_root_x $_last_mouse_root_y 0
109 | };# macdnd::HandleDrop
110 | 
111 | # ----------------------------------------------------------------------------
112 | #  Command macdnd::GetDragSourceCommonTypes
113 | # ----------------------------------------------------------------------------
114 | proc macdnd::GetDragSourceCommonTypes { } {
115 |   ::tkdnd::generic::GetDragSourceCommonTypes
116 | };# macdnd::GetDragSourceCommonTypes
117 | 
118 | # ----------------------------------------------------------------------------
119 | #  Command macdnd::platform_specific_types
120 | # ----------------------------------------------------------------------------
121 | proc macdnd::platform_specific_types { types } {
122 |   ::tkdnd::generic::platform_specific_types $types
123 | }; # macdnd::platform_specific_types
124 | 
125 | # ----------------------------------------------------------------------------
126 | #  Command macdnd::platform_specific_type
127 | # ----------------------------------------------------------------------------
128 | proc macdnd::platform_specific_type { type } {
129 |   ::tkdnd::generic::platform_specific_type $type
130 | }; # macdnd::platform_specific_type
131 | 
132 | # ----------------------------------------------------------------------------
133 | #  Command tkdnd::platform_independent_types
134 | # ----------------------------------------------------------------------------
135 | proc ::tkdnd::platform_independent_types { types } {
136 |   ::tkdnd::generic::platform_independent_types $types
137 | }; # tkdnd::platform_independent_types
138 | 
139 | # ----------------------------------------------------------------------------
140 | #  Command macdnd::platform_independent_type
141 | # ----------------------------------------------------------------------------
142 | proc macdnd::platform_independent_type { type } {
143 |   ::tkdnd::generic::platform_independent_type $type
144 | }; # macdnd::platform_independent_type
145 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dll


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/win64/pkgIndex.tcl:
--------------------------------------------------------------------------------
1 | package ifneeded tkdnd 2.9.2 \
2 |   "source \{$dir/tkdnd.tcl\} ; \
3 |    tkdnd::initialise \{$dir\} libtkdnd2.9.2[info sharedlibextension] tkdnd"
4 | 
5 | package ifneeded tkdnd::utils 2.9.2 \
6 |   "source \{$dir/tkdnd_utils.tcl\} ; \
7 |    package provide tkdnd::utils 2.9.2"


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/win64/tkdnd2.9.2.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/gui_data/tkinterdnd2/tkdnd/win64/tkdnd2.9.2.lib


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_compat.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_compat.tcl --
  3 | # 
  4 | #    This file implements some utility procedures, to support older versions
  5 | #    of the TkDND package.
  6 | #
  7 | # This software is copyrighted by:
  8 | # George Petasis, National Centre for Scientific Research "Demokritos",
  9 | # Aghia Paraskevi, Athens, Greece.
 10 | # e-mail: petasis@iit.demokritos.gr
 11 | #
 12 | # The following terms apply to all files associated
 13 | # with the software unless explicitly disclaimed in individual files.
 14 | #
 15 | # The authors hereby grant permission to use, copy, modify, distribute,
 16 | # and license this software and its documentation for any purpose, provided
 17 | # that existing copyright notices are retained in all copies and that this
 18 | # notice is included verbatim in any distributions. No written agreement,
 19 | # license, or royalty fee is required for any of the authorized uses.
 20 | # Modifications to this software may be copyrighted by their authors
 21 | # and need not follow the licensing terms described here, provided that
 22 | # the new terms are clearly indicated on the first page of each file where
 23 | # they apply.
 24 | # 
 25 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 26 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 27 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 28 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 29 | # POSSIBILITY OF SUCH DAMAGE.
 30 | # 
 31 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 32 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 33 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 34 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 35 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 36 | # MODIFICATIONS.
 37 | #
 38 | 
 39 | namespace eval compat {
 40 | 
 41 | };# namespace compat
 42 | 
 43 | # ----------------------------------------------------------------------------
 44 | #  Command ::dnd
 45 | # ----------------------------------------------------------------------------
 46 | proc ::dnd {method window args} {
 47 |   switch $method {
 48 |     bindtarget {
 49 |       switch [llength $args] {
 50 |         0 {return [tkdnd::compat::bindtarget0 $window]}
 51 |         1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]}
 52 |         2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \
 53 |                                                       [lindex $args 1]]}
 54 |         3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \
 55 |                                      [lindex $args 1] [lindex $args 2]]}
 56 |         4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \
 57 |                     [lindex $args 1] [lindex $args 2] [lindex $args 3]]}
 58 |       }
 59 |     }
 60 |     cleartarget {
 61 |       return [tkdnd::compat::cleartarget $window]
 62 |     }
 63 |     bindsource {
 64 |       switch [llength $args] {
 65 |         0 {return [tkdnd::compat::bindsource0 $window]}
 66 |         1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]}
 67 |         2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \
 68 |                                                       [lindex $args 1]]}
 69 |         3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \
 70 |                                      [lindex $args 1] [lindex $args 2]]}
 71 |       }
 72 |     }
 73 |     clearsource {
 74 |       return [tkdnd::compat::clearsource $window]
 75 |     }
 76 |     drag {
 77 |       return [tkdnd::_init_drag 1 $window "press" 0 0 0 0]
 78 |     }
 79 |   }
 80 |   error "invalid number of arguments!"
 81 | };# ::dnd
 82 | 
 83 | # ----------------------------------------------------------------------------
 84 | #  Command compat::bindtarget
 85 | # ----------------------------------------------------------------------------
 86 | proc compat::bindtarget0 {window} {
 87 |   return [bind $window <<DropTargetTypes>>]
 88 | };# compat::bindtarget0
 89 | 
 90 | proc compat::bindtarget1 {window type} {
 91 |   return [bindtarget2 $window $type <Drop>]
 92 | };# compat::bindtarget1
 93 | 
 94 | proc compat::bindtarget2 {window type event} {
 95 |   switch $event {
 96 |     <DragEnter> {return [bind $window <<DropEnter>>]}
 97 |     <Drag>      {return [bind $window <<DropPosition>>]}
 98 |     <DragLeave> {return [bind $window <<DropLeave>>]}
 99 |     <Drop>      {return [bind $window <<Drop>>]}
100 |   }
101 | };# compat::bindtarget2
102 | 
103 | proc compat::bindtarget3 {window type event script} {
104 |   set type [normalise_type $type]
105 |   ::tkdnd::drop_target register $window [list $type]
106 |   switch $event {
107 |     <DragEnter> {return [bind $window <<DropEnter>> $script]}
108 |     <Drag>      {return [bind $window <<DropPosition>> $script]}
109 |     <DragLeave> {return [bind $window <<DropLeave>> $script]}
110 |     <Drop>      {return [bind $window <<Drop>> $script]}
111 |   }
112 | };# compat::bindtarget3
113 | 
114 | proc compat::bindtarget4 {window type event script priority} {
115 |   return [bindtarget3 $window $type $event $script]
116 | };# compat::bindtarget4
117 | 
118 | proc compat::normalise_type { type } {
119 |   switch $type {
120 |     text/plain -
121 |     {text/plain;charset=UTF-8} -
122 |     Text                       {return DND_Text}
123 |     text/uri-list -
124 |     Files                      {return DND_Files}
125 |     default                    {return $type}
126 |   }
127 | };# compat::normalise_type
128 | 
129 | # ----------------------------------------------------------------------------
130 | #  Command compat::bindsource
131 | # ----------------------------------------------------------------------------
132 | proc compat::bindsource0 {window} {
133 |   return [bind $window <<DropTargetTypes>>]
134 | };# compat::bindsource0
135 | 
136 | proc compat::bindsource1 {window type} {
137 |   return [bindsource2 $window $type <Drop>]
138 | };# compat::bindsource1
139 | 
140 | proc compat::bindsource2 {window type script} {
141 |   set type [normalise_type $type]
142 |   ::tkdnd::drag_source register $window $type
143 |   bind $window <<DragInitCmd>> "list {copy} {%t} \[$script\]"
144 | };# compat::bindsource2
145 | 
146 | proc compat::bindsource3 {window type script priority} {
147 |   return [bindsource2 $window $type $script]
148 | };# compat::bindsource3
149 | 
150 | # ----------------------------------------------------------------------------
151 | #  Command compat::cleartarget
152 | # ----------------------------------------------------------------------------
153 | proc compat::cleartarget {window} {
154 | };# compat::cleartarget
155 | 
156 | # ----------------------------------------------------------------------------
157 | #  Command compat::clearsource
158 | # ----------------------------------------------------------------------------
159 | proc compat::clearsource {window} {
160 | };# compat::clearsource
161 | 


--------------------------------------------------------------------------------
/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_macosx.tcl:
--------------------------------------------------------------------------------
  1 | #
  2 | # tkdnd_macosx.tcl --
  3 | #
  4 | #    This file implements some utility procedures that are used by the TkDND
  5 | #    package.
  6 | 
  7 | #   This software is copyrighted by:
  8 | #   Georgios Petasis, Athens, Greece.
  9 | #   e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr
 10 | #
 11 | #   Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC,
 12 | #   kw@codebykevin.com
 13 | #
 14 | #
 15 | # The following terms apply to all files associated
 16 | # with the software unless explicitly disclaimed in individual files.
 17 | #
 18 | # The authors hereby grant permission to use, copy, modify, distribute,
 19 | # and license this software and its documentation for any purpose, provided
 20 | # that existing copyright notices are retained in all copies and that this
 21 | # notice is included verbatim in any distributions. No written agreement,
 22 | # license, or royalty fee is required for any of the authorized uses.
 23 | # Modifications to this software may be copyrighted by their authors
 24 | # and need not follow the licensing terms described here, provided that
 25 | # the new terms are clearly indicated on the first page of each file where
 26 | # they apply.
 27 | #
 28 | # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
 29 | # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
 30 | # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
 31 | # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
 32 | # POSSIBILITY OF SUCH DAMAGE.
 33 | #
 34 | # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
 35 | # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
 36 | # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.  THIS SOFTWARE
 37 | # IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
 38 | # NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
 39 | # MODIFICATIONS.
 40 | #
 41 | 
 42 | #basic API for Mac Drag and Drop
 43 | 
 44 | #two data types supported: strings and file paths
 45 | 
 46 | #two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget
 47 | 
 48 | #data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list
 49 | 
 50 | if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} {
 51 |   error {TkAqua Cocoa required}
 52 | }
 53 | 
 54 | namespace eval macdnd {
 55 | 
 56 |   proc initialise { } {
 57 |      ## Mapping from platform types to TkDND types...
 58 |     ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \
 59 |        NSPasteboardTypeString  DND_Text  \
 60 |        NSFilenamesPboardType   DND_Files \
 61 |        NSPasteboardTypeHTML    DND_HTML  \
 62 |     ]
 63 |   };# initialise
 64 | 
 65 | };# namespace macdnd
 66 | 
 67 | # ----------------------------------------------------------------------------
 68 | #  Command macdnd::HandleEnter
 69 | # ----------------------------------------------------------------------------
 70 | proc macdnd::HandleEnter { path drag_source typelist { data {} } } {
 71 |   variable _pressedkeys
 72 |   variable _actionlist
 73 |   set _pressedkeys 1
 74 |   set _actionlist  { copy move link ask private }
 75 |   ::tkdnd::generic::SetDroppedData $data
 76 |   ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \
 77 |            $_actionlist $_pressedkeys
 78 | };# macdnd::HandleEnter
 79 | 
 80 | # ----------------------------------------------------------------------------
 81 | #  Command macdnd::HandlePosition
 82 | # ----------------------------------------------------------------------------
 83 | proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } {
 84 |   variable _pressedkeys
 85 |   variable _last_mouse_root_x; set _last_mouse_root_x $rootX
 86 |   variable _last_mouse_root_y; set _last_mouse_root_y $rootY
 87 |   ::tkdnd::generic::HandlePosition $drop_target $drag_source \
 88 |                                    $_pressedkeys $rootX $rootY
 89 | };# macdnd::HandlePosition
 90 | 
 91 | # ----------------------------------------------------------------------------
 92 | #  Command macdnd::HandleLeave
 93 | # ----------------------------------------------------------------------------
 94 | proc macdnd::HandleLeave { args } {
 95 |   ::tkdnd::generic::HandleLeave
 96 | };# macdnd::HandleLeave
 97 | 
 98 | # ----------------------------------------------------------------------------
 99 | #  Command macdnd::HandleDrop
100 | # ----------------------------------------------------------------------------
101 | proc macdnd::HandleDrop { drop_target data args } {
102 |   variable _pressedkeys
103 |   variable _last_mouse_root_x
104 |   variable _last_mouse_root_y
105 |   ## Get the dropped data...
106 |   ::tkdnd::generic::SetDroppedData $data
107 |   ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \
108 |                                $_last_mouse_root_x $_last_mouse_root_y 0
109 | };# macdnd::HandleDrop
110 | 
111 | # ----------------------------------------------------------------------------
112 | #  Command macdnd::GetDragSourceCommonTypes
113 | # ----------------------------------------------------------------------------
114 | proc macdnd::GetDragSourceCommonTypes { } {
115 |   ::tkdnd::generic::GetDragSourceCommonTypes
116 | };# macdnd::GetDragSourceCommonTypes
117 | 
118 | # ----------------------------------------------------------------------------
119 | #  Command macdnd::platform_specific_types
120 | # ----------------------------------------------------------------------------
121 | proc macdnd::platform_specific_types { types } {
122 |   ::tkdnd::generic::platform_specific_types $types
123 | }; # macdnd::platform_specific_types
124 | 
125 | # ----------------------------------------------------------------------------
126 | #  Command macdnd::platform_specific_type
127 | # ----------------------------------------------------------------------------
128 | proc macdnd::platform_specific_type { type } {
129 |   ::tkdnd::generic::platform_specific_type $type
130 | }; # macdnd::platform_specific_type
131 | 
132 | # ----------------------------------------------------------------------------
133 | #  Command tkdnd::platform_independent_types
134 | # ----------------------------------------------------------------------------
135 | proc ::tkdnd::platform_independent_types { types } {
136 |   ::tkdnd::generic::platform_independent_types $types
137 | }; # tkdnd::platform_independent_types
138 | 
139 | # ----------------------------------------------------------------------------
140 | #  Command macdnd::platform_independent_type
141 | # ----------------------------------------------------------------------------
142 | proc macdnd::platform_independent_type { type } {
143 |   ::tkdnd::generic::platform_independent_type $type
144 | }; # macdnd::platform_independent_type
145 | 


--------------------------------------------------------------------------------
/install_packages.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | 
3 | while read package; do
4 |     pip install "$package"
5 | done < requirements.txt
6 | 


--------------------------------------------------------------------------------
/lib_v5/mdxnet.py:
--------------------------------------------------------------------------------
  1 | import torch
  2 | import torch.nn as nn
  3 | from .modules import TFC_TDF
  4 | from pytorch_lightning import LightningModule
  5 | 
  6 | dim_s = 4
  7 | 
  8 | class AbstractMDXNet(LightningModule):
  9 |     def __init__(self, target_name, lr, optimizer, dim_c, dim_f, dim_t, n_fft, hop_length, overlap):
 10 |         super().__init__()
 11 |         self.target_name = target_name
 12 |         self.lr = lr
 13 |         self.optimizer = optimizer
 14 |         self.dim_c = dim_c
 15 |         self.dim_f = dim_f
 16 |         self.dim_t = dim_t
 17 |         self.n_fft = n_fft
 18 |         self.n_bins = n_fft // 2 + 1
 19 |         self.hop_length = hop_length
 20 |         self.window = nn.Parameter(torch.hann_window(window_length=self.n_fft, periodic=True), requires_grad=False)
 21 |         self.freq_pad = nn.Parameter(torch.zeros([1, dim_c, self.n_bins - self.dim_f, self.dim_t]), requires_grad=False)
 22 | 
 23 |     def get_optimizer(self):
 24 |         if self.optimizer == 'rmsprop':
 25 |             return torch.optim.RMSprop(self.parameters(), self.lr)
 26 |         
 27 |         if self.optimizer == 'adamw':
 28 |             return torch.optim.AdamW(self.parameters(), self.lr)
 29 | 
 30 | class ConvTDFNet(AbstractMDXNet):
 31 |     def __init__(self, target_name, lr, optimizer, dim_c, dim_f, dim_t, n_fft, hop_length,
 32 |                  num_blocks, l, g, k, bn, bias, overlap):
 33 | 
 34 |         super(ConvTDFNet, self).__init__(
 35 |             target_name, lr, optimizer, dim_c, dim_f, dim_t, n_fft, hop_length, overlap)
 36 |         #self.save_hyperparameters()
 37 | 
 38 |         self.num_blocks = num_blocks
 39 |         self.l = l
 40 |         self.g = g
 41 |         self.k = k
 42 |         self.bn = bn
 43 |         self.bias = bias
 44 | 
 45 |         if optimizer == 'rmsprop':
 46 |             norm = nn.BatchNorm2d
 47 |             
 48 |         if optimizer == 'adamw':
 49 |             norm = lambda input:nn.GroupNorm(2, input)
 50 |             
 51 |         self.n = num_blocks // 2
 52 |         scale = (2, 2)
 53 | 
 54 |         self.first_conv = nn.Sequential(
 55 |             nn.Conv2d(in_channels=self.dim_c, out_channels=g, kernel_size=(1, 1)),
 56 |             norm(g),
 57 |             nn.ReLU(),
 58 |         )
 59 | 
 60 |         f = self.dim_f
 61 |         c = g
 62 |         self.encoding_blocks = nn.ModuleList()
 63 |         self.ds = nn.ModuleList()
 64 |         for i in range(self.n):
 65 |             self.encoding_blocks.append(TFC_TDF(c, l, f, k, bn, bias=bias, norm=norm))
 66 |             self.ds.append(
 67 |                 nn.Sequential(
 68 |                     nn.Conv2d(in_channels=c, out_channels=c + g, kernel_size=scale, stride=scale),
 69 |                     norm(c + g),
 70 |                     nn.ReLU()
 71 |                 )
 72 |             )
 73 |             f = f // 2
 74 |             c += g
 75 | 
 76 |         self.bottleneck_block = TFC_TDF(c, l, f, k, bn, bias=bias, norm=norm)
 77 | 
 78 |         self.decoding_blocks = nn.ModuleList()
 79 |         self.us = nn.ModuleList()
 80 |         for i in range(self.n):
 81 |             self.us.append(
 82 |                 nn.Sequential(
 83 |                     nn.ConvTranspose2d(in_channels=c, out_channels=c - g, kernel_size=scale, stride=scale),
 84 |                     norm(c - g),
 85 |                     nn.ReLU()
 86 |                 )
 87 |             )
 88 |             f = f * 2
 89 |             c -= g
 90 | 
 91 |             self.decoding_blocks.append(TFC_TDF(c, l, f, k, bn, bias=bias, norm=norm))
 92 | 
 93 |         self.final_conv = nn.Sequential(
 94 |             nn.Conv2d(in_channels=c, out_channels=self.dim_c, kernel_size=(1, 1)),
 95 |         )
 96 | 
 97 |     def forward(self, x):
 98 | 
 99 |         x = self.first_conv(x)
100 | 
101 |         x = x.transpose(-1, -2)
102 | 
103 |         ds_outputs = []
104 |         for i in range(self.n):
105 |             x = self.encoding_blocks[i](x)
106 |             ds_outputs.append(x)
107 |             x = self.ds[i](x)
108 | 
109 |         x = self.bottleneck_block(x)
110 | 
111 |         for i in range(self.n):
112 |             x = self.us[i](x)
113 |             x *= ds_outputs[-i - 1]
114 |             x = self.decoding_blocks[i](x)
115 | 
116 |         x = x.transpose(-1, -2)
117 | 
118 |         x = self.final_conv(x)
119 | 
120 |         return x
121 |     
122 | class Mixer(nn.Module):
123 |     def __init__(self, device, mixer_path):
124 |         
125 |         super(Mixer, self).__init__()
126 |         
127 |         self.linear = nn.Linear((dim_s+1)*2, dim_s*2, bias=False)
128 |         
129 |         self.load_state_dict(
130 |             torch.load(mixer_path, map_location=device)
131 |         )
132 | 
133 |     def forward(self, x):
134 |         x = x.reshape(1,(dim_s+1)*2,-1).transpose(-1,-2)
135 |         x = self.linear(x)
136 |         return x.transpose(-1,-2).reshape(dim_s,2,-1)


--------------------------------------------------------------------------------
/lib_v5/mixer.ckpt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/lib_v5/mixer.ckpt


--------------------------------------------------------------------------------
/lib_v5/modules.py:
--------------------------------------------------------------------------------
 1 | import torch
 2 | import torch.nn as nn
 3 | 
 4 | 
 5 | class TFC(nn.Module):
 6 |     def __init__(self, c, l, k, norm):
 7 |         super(TFC, self).__init__()
 8 | 
 9 |         self.H = nn.ModuleList()
10 |         for i in range(l):
11 |             self.H.append(
12 |                 nn.Sequential(
13 |                     nn.Conv2d(in_channels=c, out_channels=c, kernel_size=k, stride=1, padding=k // 2),
14 |                     norm(c),
15 |                     nn.ReLU(),
16 |                 )
17 |             )
18 | 
19 |     def forward(self, x):
20 |         for h in self.H:
21 |             x = h(x)
22 |         return x
23 | 
24 | 
25 | class DenseTFC(nn.Module):
26 |     def __init__(self, c, l, k, norm):
27 |         super(DenseTFC, self).__init__()
28 | 
29 |         self.conv = nn.ModuleList()
30 |         for i in range(l):
31 |             self.conv.append(
32 |                 nn.Sequential(
33 |                     nn.Conv2d(in_channels=c, out_channels=c, kernel_size=k, stride=1, padding=k // 2),
34 |                     norm(c),
35 |                     nn.ReLU(),
36 |                 )
37 |             )
38 | 
39 |     def forward(self, x):
40 |         for layer in self.conv[:-1]:
41 |             x = torch.cat([layer(x), x], 1)
42 |         return self.conv[-1](x)
43 | 
44 | 
45 | class TFC_TDF(nn.Module):
46 |     def __init__(self, c, l, f, k, bn, dense=False, bias=True, norm=nn.BatchNorm2d):
47 | 
48 |         super(TFC_TDF, self).__init__()
49 | 
50 |         self.use_tdf = bn is not None
51 | 
52 |         self.tfc = DenseTFC(c, l, k, norm) if dense else TFC(c, l, k, norm)
53 | 
54 |         if self.use_tdf:
55 |             if bn == 0:
56 |                 self.tdf = nn.Sequential(
57 |                     nn.Linear(f, f, bias=bias),
58 |                     norm(c),
59 |                     nn.ReLU()
60 |                 )
61 |             else:
62 |                 self.tdf = nn.Sequential(
63 |                     nn.Linear(f, f // bn, bias=bias),
64 |                     norm(c),
65 |                     nn.ReLU(),
66 |                     nn.Linear(f // bn, f, bias=bias),
67 |                     norm(c),
68 |                     nn.ReLU()
69 |                 )
70 | 
71 |     def forward(self, x):
72 |         x = self.tfc(x)
73 |         return x + self.tdf(x) if self.use_tdf else x
74 | 
75 | 


--------------------------------------------------------------------------------
/lib_v5/pyrb.py:
--------------------------------------------------------------------------------
 1 | import os
 2 | import subprocess
 3 | import tempfile
 4 | import six
 5 | import numpy as np
 6 | import soundfile as sf
 7 | import sys
 8 | 
 9 | if getattr(sys, 'frozen', False):
10 |     BASE_PATH_RUB = sys._MEIPASS
11 | else:
12 |     BASE_PATH_RUB = os.path.dirname(os.path.abspath(__file__))
13 | 
14 | __all__ = ['time_stretch', 'pitch_shift']
15 | 
16 | __RUBBERBAND_UTIL = os.path.join(BASE_PATH_RUB, 'rubberband')
17 | 
18 | if six.PY2:
19 |     DEVNULL = open(os.devnull, 'w')
20 | else:
21 |     DEVNULL = subprocess.DEVNULL
22 | 
23 | def __rubberband(y, sr, **kwargs):
24 | 
25 |     assert sr > 0
26 | 
27 |     # Get the input and output tempfile
28 |     fd, infile = tempfile.mkstemp(suffix='.wav')
29 |     os.close(fd)
30 |     fd, outfile = tempfile.mkstemp(suffix='.wav')
31 |     os.close(fd)
32 | 
33 |     # dump the audio
34 |     sf.write(infile, y, sr)
35 | 
36 |     try:
37 |         # Execute rubberband
38 |         arguments = [__RUBBERBAND_UTIL, '-q']
39 | 
40 |         for key, value in six.iteritems(kwargs):
41 |             arguments.append(str(key))
42 |             arguments.append(str(value))
43 | 
44 |         arguments.extend([infile, outfile])
45 | 
46 |         subprocess.check_call(arguments, stdout=DEVNULL, stderr=DEVNULL)
47 | 
48 |         # Load the processed audio.
49 |         y_out, _ = sf.read(outfile, always_2d=True)
50 | 
51 |         # make sure that output dimensions matches input
52 |         if y.ndim == 1:
53 |             y_out = np.squeeze(y_out)
54 | 
55 |     except OSError as exc:
56 |         six.raise_from(RuntimeError('Failed to execute rubberband. '
57 |                                     'Please verify that rubberband-cli '
58 |                                     'is installed.'),
59 |                        exc)
60 | 
61 |     finally:
62 |         # Remove temp files
63 |         os.unlink(infile)
64 |         os.unlink(outfile)
65 | 
66 |     return y_out
67 | 
68 | def time_stretch(y, sr, rate, rbargs=None):
69 |     if rate <= 0:
70 |         raise ValueError('rate must be strictly positive')
71 | 
72 |     if rate == 1.0:
73 |         return y
74 | 
75 |     if rbargs is None:
76 |         rbargs = dict()
77 | 
78 |     rbargs.setdefault('--tempo', rate)
79 | 
80 |     return __rubberband(y, sr, **rbargs)
81 | 
82 | def pitch_shift(y, sr, n_steps, rbargs=None):
83 | 
84 |     if n_steps == 0:
85 |         return y
86 | 
87 |     if rbargs is None:
88 |         rbargs = dict()
89 | 
90 |     rbargs.setdefault('--pitch', n_steps)
91 | 
92 |     return __rubberband(y, sr, **rbargs)
93 | 


--------------------------------------------------------------------------------
/lib_v5/results.py:
--------------------------------------------------------------------------------
 1 | # -*- coding: utf-8 -*-
 2 | 
 3 | """
 4 | Matchering - Audio Matching and Mastering Python Library
 5 | Copyright (C) 2016-2022 Sergree
 6 | 
 7 | This program is free software: you can redistribute it and/or modify
 8 | it under the terms of the GNU General Public License as published by
 9 | the Free Software Foundation, either version 3 of the License, or
10 | (at your option) any later version.
11 | 
12 | This program is distributed in the hope that it will be useful,
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 | GNU General Public License for more details.
16 | 
17 | You should have received a copy of the GNU General Public License
18 | along with this program.  If not, see <https://www.gnu.org/licenses/>.
19 | """
20 | 
21 | import os
22 | import soundfile as sf
23 | 
24 | 
25 | class Result:
26 |     def __init__(
27 |         self, file: str, subtype: str, use_limiter: bool = True, normalize: bool = True
28 |     ):
29 |         _, file_ext = os.path.splitext(file)
30 |         file_ext = file_ext[1:].upper()
31 |         if not sf.check_format(file_ext):
32 |             raise TypeError(f"{file_ext} format is not supported")
33 |         if not sf.check_format(file_ext, subtype):
34 |             raise TypeError(f"{file_ext} format does not have {subtype} subtype")
35 |         self.file = file
36 |         self.subtype = subtype
37 |         self.use_limiter = use_limiter
38 |         self.normalize = normalize
39 | 
40 | 
41 | def pcm16(file: str) -> Result:
42 |     return Result(file, "PCM_16")
43 | 
44 | def pcm24(file: str) -> Result:
45 |     return Result(file, "FLOAT")
46 | 
47 | def save_audiofile(file: str, wav_set="PCM_16") -> Result:
48 |     return Result(file, wav_set)
49 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/__init__.py:
--------------------------------------------------------------------------------
1 | # VR init.
2 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/layers.py:
--------------------------------------------------------------------------------
  1 | import torch
  2 | from torch import nn
  3 | import torch.nn.functional as F
  4 | 
  5 | from lib_v5 import spec_utils
  6 | 
  7 | class Conv2DBNActiv(nn.Module):
  8 | 
  9 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU):
 10 |         super(Conv2DBNActiv, self).__init__()
 11 |         self.conv = nn.Sequential(
 12 |             nn.Conv2d(
 13 |                 nin, nout,
 14 |                 kernel_size=ksize,
 15 |                 stride=stride,
 16 |                 padding=pad,
 17 |                 dilation=dilation,
 18 |                 bias=False),
 19 |             nn.BatchNorm2d(nout),
 20 |             activ()
 21 |         )
 22 | 
 23 |     def __call__(self, x):
 24 |         return self.conv(x)
 25 | 
 26 | class SeperableConv2DBNActiv(nn.Module):
 27 | 
 28 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU):
 29 |         super(SeperableConv2DBNActiv, self).__init__()
 30 |         self.conv = nn.Sequential(
 31 |             nn.Conv2d(
 32 |                 nin, nin,
 33 |                 kernel_size=ksize,
 34 |                 stride=stride,
 35 |                 padding=pad,
 36 |                 dilation=dilation,
 37 |                 groups=nin,
 38 |                 bias=False),
 39 |             nn.Conv2d(
 40 |                 nin, nout,
 41 |                 kernel_size=1,
 42 |                 bias=False),
 43 |             nn.BatchNorm2d(nout),
 44 |             activ()
 45 |         )
 46 | 
 47 |     def __call__(self, x):
 48 |         return self.conv(x)
 49 | 
 50 | 
 51 | class Encoder(nn.Module):
 52 | 
 53 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU):
 54 |         super(Encoder, self).__init__()
 55 |         self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ)
 56 |         self.conv2 = Conv2DBNActiv(nout, nout, ksize, stride, pad, activ=activ)
 57 | 
 58 |     def __call__(self, x):
 59 |         skip = self.conv1(x)
 60 |         h = self.conv2(skip)
 61 | 
 62 |         return h, skip
 63 | 
 64 | 
 65 | class Decoder(nn.Module):
 66 | 
 67 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False):
 68 |         super(Decoder, self).__init__()
 69 |         self.conv = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ)
 70 |         self.dropout = nn.Dropout2d(0.1) if dropout else None
 71 | 
 72 |     def __call__(self, x, skip=None):
 73 |         x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True)
 74 |         if skip is not None:
 75 |             skip = spec_utils.crop_center(skip, x)
 76 |             x = torch.cat([x, skip], dim=1)
 77 |         h = self.conv(x)
 78 | 
 79 |         if self.dropout is not None:
 80 |             h = self.dropout(h)
 81 | 
 82 |         return h
 83 | 
 84 | 
 85 | class ASPPModule(nn.Module):
 86 | 
 87 |     def __init__(self, nn_architecture, nin, nout, dilations=(4, 8, 16), activ=nn.ReLU):
 88 |         super(ASPPModule, self).__init__()
 89 |         self.conv1 = nn.Sequential(
 90 |             nn.AdaptiveAvgPool2d((1, None)),
 91 |             Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ)
 92 |         )
 93 |         
 94 |         self.nn_architecture = nn_architecture
 95 |         self.six_layer = [129605]
 96 |         self.seven_layer = [537238, 537227, 33966]
 97 |         
 98 |         extra_conv = SeperableConv2DBNActiv(
 99 |             nin, nin, 3, 1, dilations[2], dilations[2], activ=activ)
100 |         
101 |         self.conv2 = Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ)
102 |         self.conv3 = SeperableConv2DBNActiv(
103 |             nin, nin, 3, 1, dilations[0], dilations[0], activ=activ)
104 |         self.conv4 = SeperableConv2DBNActiv(
105 |             nin, nin, 3, 1, dilations[1], dilations[1], activ=activ)
106 |         self.conv5 = SeperableConv2DBNActiv(
107 |             nin, nin, 3, 1, dilations[2], dilations[2], activ=activ)
108 |         
109 |         if self.nn_architecture in self.six_layer:
110 |             self.conv6 = extra_conv
111 |             nin_x = 6
112 |         elif self.nn_architecture in self.seven_layer:
113 |             self.conv6 = extra_conv
114 |             self.conv7 = extra_conv
115 |             nin_x = 7
116 |         else:
117 |             nin_x = 5
118 |             
119 |         self.bottleneck = nn.Sequential(
120 |             Conv2DBNActiv(nin * nin_x, nout, 1, 1, 0, activ=activ),
121 |             nn.Dropout2d(0.1)
122 |         )
123 | 
124 |     def forward(self, x):
125 |         _, _, h, w = x.size()
126 |         feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True)
127 |         feat2 = self.conv2(x)
128 |         feat3 = self.conv3(x)
129 |         feat4 = self.conv4(x)
130 |         feat5 = self.conv5(x)
131 |         
132 |         if self.nn_architecture in self.six_layer:
133 |             feat6 = self.conv6(x)
134 |             out = torch.cat((feat1, feat2, feat3, feat4, feat5, feat6), dim=1)
135 |         elif self.nn_architecture in self.seven_layer:
136 |             feat6 = self.conv6(x)
137 |             feat7 = self.conv7(x)
138 |             out = torch.cat((feat1, feat2, feat3, feat4, feat5, feat6, feat7), dim=1)
139 |         else:
140 |             out = torch.cat((feat1, feat2, feat3, feat4, feat5), dim=1)
141 |             
142 |         bottle = self.bottleneck(out)
143 |         return bottle
144 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/layers_new.py:
--------------------------------------------------------------------------------
  1 | import torch
  2 | from torch import nn
  3 | import torch.nn.functional as F
  4 | 
  5 | from lib_v5 import spec_utils
  6 | 
  7 | class Conv2DBNActiv(nn.Module):
  8 | 
  9 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU):
 10 |         super(Conv2DBNActiv, self).__init__()
 11 |         self.conv = nn.Sequential(
 12 |             nn.Conv2d(
 13 |                 nin, nout,
 14 |                 kernel_size=ksize,
 15 |                 stride=stride,
 16 |                 padding=pad,
 17 |                 dilation=dilation,
 18 |                 bias=False),
 19 |             nn.BatchNorm2d(nout),
 20 |             activ()
 21 |         )
 22 | 
 23 |     def __call__(self, x):
 24 |         return self.conv(x)
 25 | 
 26 | class Encoder(nn.Module):
 27 | 
 28 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU):
 29 |         super(Encoder, self).__init__()
 30 |         self.conv1 = Conv2DBNActiv(nin, nout, ksize, stride, pad, activ=activ)
 31 |         self.conv2 = Conv2DBNActiv(nout, nout, ksize, 1, pad, activ=activ)
 32 | 
 33 |     def __call__(self, x):
 34 |         h = self.conv1(x)
 35 |         h = self.conv2(h)
 36 | 
 37 |         return h
 38 | 
 39 | 
 40 | class Decoder(nn.Module):
 41 | 
 42 |     def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False):
 43 |         super(Decoder, self).__init__()
 44 |         self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ)
 45 |         # self.conv2 = Conv2DBNActiv(nout, nout, ksize, 1, pad, activ=activ)
 46 |         self.dropout = nn.Dropout2d(0.1) if dropout else None
 47 | 
 48 |     def __call__(self, x, skip=None):
 49 |         x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True)
 50 | 
 51 |         if skip is not None:
 52 |             skip = spec_utils.crop_center(skip, x)
 53 |             x = torch.cat([x, skip], dim=1)
 54 | 
 55 |         h = self.conv1(x)
 56 |         # h = self.conv2(h)
 57 | 
 58 |         if self.dropout is not None:
 59 |             h = self.dropout(h)
 60 | 
 61 |         return h
 62 | 
 63 | 
 64 | class ASPPModule(nn.Module):
 65 | 
 66 |     def __init__(self, nin, nout, dilations=(4, 8, 12), activ=nn.ReLU, dropout=False):
 67 |         super(ASPPModule, self).__init__()
 68 |         self.conv1 = nn.Sequential(
 69 |             nn.AdaptiveAvgPool2d((1, None)),
 70 |             Conv2DBNActiv(nin, nout, 1, 1, 0, activ=activ)
 71 |         )
 72 |         self.conv2 = Conv2DBNActiv(nin, nout, 1, 1, 0, activ=activ)
 73 |         self.conv3 = Conv2DBNActiv(
 74 |             nin, nout, 3, 1, dilations[0], dilations[0], activ=activ
 75 |         )
 76 |         self.conv4 = Conv2DBNActiv(
 77 |             nin, nout, 3, 1, dilations[1], dilations[1], activ=activ
 78 |         )
 79 |         self.conv5 = Conv2DBNActiv(
 80 |             nin, nout, 3, 1, dilations[2], dilations[2], activ=activ
 81 |         )
 82 |         self.bottleneck = Conv2DBNActiv(nout * 5, nout, 1, 1, 0, activ=activ)
 83 |         self.dropout = nn.Dropout2d(0.1) if dropout else None
 84 | 
 85 |     def forward(self, x):
 86 |         _, _, h, w = x.size()
 87 |         feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True)
 88 |         feat2 = self.conv2(x)
 89 |         feat3 = self.conv3(x)
 90 |         feat4 = self.conv4(x)
 91 |         feat5 = self.conv5(x)
 92 |         out = torch.cat((feat1, feat2, feat3, feat4, feat5), dim=1)
 93 |         out = self.bottleneck(out)
 94 | 
 95 |         if self.dropout is not None:
 96 |             out = self.dropout(out)
 97 | 
 98 |         return out
 99 | 
100 | 
101 | class LSTMModule(nn.Module):
102 | 
103 |     def __init__(self, nin_conv, nin_lstm, nout_lstm):
104 |         super(LSTMModule, self).__init__()
105 |         self.conv = Conv2DBNActiv(nin_conv, 1, 1, 1, 0)
106 |         self.lstm = nn.LSTM(
107 |             input_size=nin_lstm,
108 |             hidden_size=nout_lstm // 2,
109 |             bidirectional=True
110 |         )
111 |         self.dense = nn.Sequential(
112 |             nn.Linear(nout_lstm, nin_lstm),
113 |             nn.BatchNorm1d(nin_lstm),
114 |             nn.ReLU()
115 |         )
116 | 
117 |     def forward(self, x):
118 |         N, _, nbins, nframes = x.size()
119 |         h = self.conv(x)[:, 0]  # N, nbins, nframes
120 |         h = h.permute(2, 0, 1)  # nframes, N, nbins
121 |         h, _ = self.lstm(h)
122 |         h = self.dense(h.reshape(-1, h.size()[-1]))  # nframes * N, nbins
123 |         h = h.reshape(nframes, N, 1, nbins)
124 |         h = h.permute(1, 2, 3, 0)
125 | 
126 |         return h
127 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/model_param_init.py:
--------------------------------------------------------------------------------
 1 | import json
 2 | 
 3 | default_param = {}
 4 | default_param['bins'] = -1
 5 | default_param['unstable_bins'] = -1 # training only
 6 | default_param['stable_bins'] = -1 # training only
 7 | default_param['sr'] = 44100
 8 | default_param['pre_filter_start'] = -1
 9 | default_param['pre_filter_stop'] = -1
10 | default_param['band'] = {}
11 | 
12 | N_BINS = 'n_bins'
13 | 
14 | def int_keys(d):
15 |     r = {}
16 |     for k, v in d:
17 |         if k.isdigit():
18 |             k = int(k)
19 |         r[k] = v
20 |     return r
21 |     
22 | class ModelParameters(object):
23 |     def __init__(self, config_path=''):
24 |         with open(config_path, 'r') as f:
25 |                 self.param = json.loads(f.read(), object_pairs_hook=int_keys)
26 |                 
27 |         for k in ['mid_side', 'mid_side_b', 'mid_side_b2', 'stereo_w', 'stereo_n', 'reverse']:
28 |             if not k in self.param:
29 |                 self.param[k] = False
30 |                 
31 |         if N_BINS in self.param:
32 |             self.param['bins'] = self.param[N_BINS]


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr16000_hl512.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 1024,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 16000,
 8 | 			"hl": 512,
 9 | 			"n_fft": 2048,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 1024,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 16000,
17 | 	"pre_filter_start": 1023,
18 | 	"pre_filter_stop": 1024
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr32000_hl512.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 1024,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 32000,
 8 | 			"hl": 512,
 9 | 			"n_fft": 2048,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 1024,
12 | 			"hpf_start": -1,
13 | 			"res_type": "kaiser_fast"
14 | 		}
15 | 	},
16 | 	"sr": 32000,
17 | 	"pre_filter_start": 1000,
18 | 	"pre_filter_stop": 1021
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr33075_hl384.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 1024,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 33075,
 8 | 			"hl": 384,
 9 | 			"n_fft": 2048,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 1024,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 33075,
17 | 	"pre_filter_start": 1000,
18 | 	"pre_filter_stop": 1021
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr44100_hl1024.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 1024,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 44100,
 8 | 			"hl": 1024,
 9 | 			"n_fft": 2048,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 1024,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 44100,
17 | 	"pre_filter_start": 1023,
18 | 	"pre_filter_stop": 1024
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr44100_hl256.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 256,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 44100,
 8 | 			"hl": 256,
 9 | 			"n_fft": 512,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 256,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 44100,
17 | 	"pre_filter_start": 256,
18 | 	"pre_filter_stop": 256
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr44100_hl512.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 1024,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 44100,
 8 | 			"hl": 512,
 9 | 			"n_fft": 2048,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 1024,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 44100,
17 | 	"pre_filter_start": 1023,
18 | 	"pre_filter_stop": 1024
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr44100_hl512_cut.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 1024,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 44100,
 8 | 			"hl": 512,
 9 | 			"n_fft": 2048,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 700,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 44100,
17 | 	"pre_filter_start": 1023,
18 | 	"pre_filter_stop": 700
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/1band_sr44100_hl512_nf1024.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 512,
 3 | 	"unstable_bins": 0,
 4 | 	"reduction_bins": 0,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 44100,
 8 | 			"hl": 512,
 9 | 			"n_fft": 1024,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 512,
12 | 			"hpf_start": -1,
13 | 			"res_type": "sinc_best"
14 | 		}
15 | 	},
16 | 	"sr": 44100,
17 | 	"pre_filter_start": 511,
18 | 	"pre_filter_stop": 512
19 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/2band_32000.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 768,
 3 | 	"unstable_bins": 7,
 4 | 	"reduction_bins": 705,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 6000,
 8 | 			"hl": 66,
 9 | 			"n_fft": 512,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 240,
12 | 			"lpf_start": 60,
13 | 			"lpf_stop": 118,
14 | 			"res_type": "sinc_fastest"
15 | 		},
16 | 		"2": {
17 | 			"sr": 32000,
18 | 			"hl": 352,
19 | 			"n_fft": 1024,
20 | 			"crop_start": 22,
21 | 			"crop_stop": 505,
22 | 			"hpf_start": 44,
23 | 			"hpf_stop": 23,
24 | 			"res_type": "sinc_medium"
25 | 		}
26 | 	},
27 | 	"sr": 32000,
28 | 	"pre_filter_start": 710,
29 | 	"pre_filter_stop": 731
30 | }
31 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/2band_44100_lofi.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 512,
 3 | 	"unstable_bins": 7,
 4 | 	"reduction_bins": 510,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 11025,
 8 | 			"hl": 160,
 9 | 			"n_fft": 768,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 192,
12 | 			"lpf_start": 41,
13 | 			"lpf_stop": 139,
14 | 			"res_type": "sinc_fastest"
15 | 		},
16 | 		"2": {
17 | 			"sr": 44100,
18 | 			"hl": 640,
19 | 			"n_fft": 1024,
20 | 			"crop_start": 10,
21 | 			"crop_stop": 320,
22 | 			"hpf_start": 47,
23 | 			"hpf_stop": 15,
24 | 			"res_type": "sinc_medium"
25 | 		}
26 | 	},
27 | 	"sr": 44100,
28 | 	"pre_filter_start": 510,
29 | 	"pre_filter_stop": 512
30 | }
31 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/2band_48000.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 768,
 3 | 	"unstable_bins": 7,
 4 | 	"reduction_bins": 705,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 6000,
 8 | 			"hl": 66,
 9 | 			"n_fft": 512,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 240,
12 | 			"lpf_start": 60,
13 | 			"lpf_stop": 240,
14 | 			"res_type": "sinc_fastest"
15 | 		},
16 | 		"2": {
17 | 			"sr": 48000,
18 | 			"hl": 528,
19 | 			"n_fft": 1536,
20 | 			"crop_start": 22,
21 | 			"crop_stop": 505,
22 | 			"hpf_start": 82,
23 | 			"hpf_stop": 22,
24 | 			"res_type": "sinc_medium"
25 | 		}
26 | 	},
27 | 	"sr": 48000,
28 | 	"pre_filter_start": 710,
29 | 	"pre_filter_stop": 731
30 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/3band_44100.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 768,
 3 | 	"unstable_bins": 5,
 4 | 	"reduction_bins": 733,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 11025,
 8 | 			"hl": 128,
 9 | 			"n_fft": 768,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 278,
12 | 			"lpf_start": 28,
13 | 			"lpf_stop": 140,
14 | 			"res_type": "polyphase"
15 | 		},
16 | 		"2": {
17 | 			"sr": 22050,
18 | 			"hl": 256,
19 | 			"n_fft": 768,
20 | 			"crop_start": 14,
21 | 			"crop_stop": 322,
22 | 			"hpf_start": 70,
23 | 			"hpf_stop": 14,
24 | 			"lpf_start": 283,
25 | 			"lpf_stop": 314,
26 | 			"res_type": "polyphase"
27 | 		},	
28 | 		"3": {
29 | 			"sr": 44100,
30 | 			"hl": 512,
31 | 			"n_fft": 768,
32 | 			"crop_start": 131,
33 | 			"crop_stop": 313,
34 | 			"hpf_start": 154,
35 | 			"hpf_stop": 141,
36 | 			"res_type": "sinc_medium"
37 | 		}
38 | 	},
39 | 	"sr": 44100,
40 | 	"pre_filter_start": 757,
41 | 	"pre_filter_stop": 768
42 | }
43 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/3band_44100_mid.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"mid_side": true,
 3 | 	"bins": 768,
 4 | 	"unstable_bins": 5,
 5 | 	"reduction_bins": 733,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 128,
10 | 			"n_fft": 768,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 278,
13 | 			"lpf_start": 28,
14 | 			"lpf_stop": 140,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 22050,
19 | 			"hl": 256,
20 | 			"n_fft": 768,
21 | 			"crop_start": 14,
22 | 			"crop_stop": 322,
23 | 			"hpf_start": 70,
24 | 			"hpf_stop": 14,
25 | 			"lpf_start": 283,
26 | 			"lpf_stop": 314,
27 | 			"res_type": "polyphase"
28 | 		},	
29 | 		"3": {
30 | 			"sr": 44100,
31 | 			"hl": 512,
32 | 			"n_fft": 768,
33 | 			"crop_start": 131,
34 | 			"crop_stop": 313,
35 | 			"hpf_start": 154,
36 | 			"hpf_stop": 141,
37 | 			"res_type": "sinc_medium"
38 | 		}
39 | 	},
40 | 	"sr": 44100,
41 | 	"pre_filter_start": 757,
42 | 	"pre_filter_stop": 768
43 | }
44 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/3band_44100_msb2.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"mid_side_b2": true,
 3 | 	"bins": 640,
 4 | 	"unstable_bins": 7,
 5 | 	"reduction_bins": 565,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 108,
10 | 			"n_fft": 1024,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 187,
13 | 			"lpf_start": 92,
14 | 			"lpf_stop": 186,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 22050,
19 | 			"hl": 216,
20 | 			"n_fft": 768,
21 | 			"crop_start": 0,
22 | 			"crop_stop": 212,
23 | 			"hpf_start": 68,
24 | 			"hpf_stop": 34,
25 | 			"lpf_start": 174,
26 | 			"lpf_stop": 209,
27 | 			"res_type": "polyphase"
28 | 		},	
29 | 		"3": {
30 | 			"sr": 44100,
31 | 			"hl": 432,
32 | 			"n_fft": 640,
33 | 			"crop_start": 66,
34 | 			"crop_stop": 307,
35 | 			"hpf_start": 86,
36 | 			"hpf_stop": 72,
37 | 			"res_type": "kaiser_fast"
38 | 		}
39 | 	},
40 | 	"sr": 44100,
41 | 	"pre_filter_start": 639,
42 | 	"pre_filter_stop": 640
43 | }
44 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_44100.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 768,
 3 | 	"unstable_bins": 7,
 4 | 	"reduction_bins": 668,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 11025,
 8 | 			"hl": 128,
 9 | 			"n_fft": 1024,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 186,
12 | 			"lpf_start": 37,
13 | 			"lpf_stop": 73,
14 | 			"res_type": "polyphase"
15 | 		},
16 | 		"2": {
17 | 			"sr": 11025,
18 | 			"hl": 128,
19 | 			"n_fft": 512,
20 | 			"crop_start": 4,
21 | 			"crop_stop": 185,			
22 | 			"hpf_start": 36,
23 | 			"hpf_stop": 18,
24 | 			"lpf_start": 93,
25 | 			"lpf_stop": 185,
26 | 			"res_type": "polyphase"
27 | 		},
28 | 		"3": {
29 | 			"sr": 22050,
30 | 			"hl": 256,
31 | 			"n_fft": 512,
32 | 			"crop_start": 46,
33 | 			"crop_stop": 186,
34 | 			"hpf_start": 93,
35 | 			"hpf_stop": 46,
36 | 			"lpf_start": 164,
37 | 			"lpf_stop": 186,
38 | 			"res_type": "polyphase"
39 | 		},	
40 | 		"4": {
41 | 			"sr": 44100,
42 | 			"hl": 512,
43 | 			"n_fft": 768,
44 | 			"crop_start": 121,
45 | 			"crop_stop": 382,
46 | 			"hpf_start": 138,
47 | 			"hpf_stop": 123,
48 | 			"res_type": "sinc_medium"
49 | 		}
50 | 	},
51 | 	"sr": 44100,
52 | 	"pre_filter_start": 740,
53 | 	"pre_filter_stop": 768
54 | }
55 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_44100_mid.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 768,
 3 | 	"unstable_bins": 7,
 4 | 	"mid_side": true,
 5 | 	"reduction_bins": 668,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 128,
10 | 			"n_fft": 1024,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 186,
13 | 			"lpf_start": 37,
14 | 			"lpf_stop": 73,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 11025,
19 | 			"hl": 128,
20 | 			"n_fft": 512,
21 | 			"crop_start": 4,
22 | 			"crop_stop": 185,			
23 | 			"hpf_start": 36,
24 | 			"hpf_stop": 18,
25 | 			"lpf_start": 93,
26 | 			"lpf_stop": 185,
27 | 			"res_type": "polyphase"
28 | 		},
29 | 		"3": {
30 | 			"sr": 22050,
31 | 			"hl": 256,
32 | 			"n_fft": 512,
33 | 			"crop_start": 46,
34 | 			"crop_stop": 186,
35 | 			"hpf_start": 93,
36 | 			"hpf_stop": 46,
37 | 			"lpf_start": 164,
38 | 			"lpf_stop": 186,
39 | 			"res_type": "polyphase"
40 | 		},	
41 | 		"4": {
42 | 			"sr": 44100,
43 | 			"hl": 512,
44 | 			"n_fft": 768,
45 | 			"crop_start": 121,
46 | 			"crop_stop": 382,
47 | 			"hpf_start": 138,
48 | 			"hpf_stop": 123,
49 | 			"res_type": "sinc_medium"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 740,
54 | 	"pre_filter_stop": 768
55 | }
56 | 


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_44100_msb.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"mid_side_b": true,
 3 | 	"bins": 768,
 4 | 	"unstable_bins": 7,
 5 | 	"reduction_bins": 668,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 128,
10 | 			"n_fft": 1024,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 186,
13 | 			"lpf_start": 37,
14 | 			"lpf_stop": 73,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 11025,
19 | 			"hl": 128,
20 | 			"n_fft": 512,
21 | 			"crop_start": 4,
22 | 			"crop_stop": 185,			
23 | 			"hpf_start": 36,
24 | 			"hpf_stop": 18,
25 | 			"lpf_start": 93,
26 | 			"lpf_stop": 185,
27 | 			"res_type": "polyphase"
28 | 		},
29 | 		"3": {
30 | 			"sr": 22050,
31 | 			"hl": 256,
32 | 			"n_fft": 512,
33 | 			"crop_start": 46,
34 | 			"crop_stop": 186,
35 | 			"hpf_start": 93,
36 | 			"hpf_stop": 46,
37 | 			"lpf_start": 164,
38 | 			"lpf_stop": 186,
39 | 			"res_type": "polyphase"
40 | 		},	
41 | 		"4": {
42 | 			"sr": 44100,
43 | 			"hl": 512,
44 | 			"n_fft": 768,
45 | 			"crop_start": 121,
46 | 			"crop_stop": 382,
47 | 			"hpf_start": 138,
48 | 			"hpf_stop": 123,
49 | 			"res_type": "sinc_medium"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 740,
54 | 	"pre_filter_stop": 768
55 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_44100_msb2.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"mid_side_b": true,
 3 | 	"bins": 768,
 4 | 	"unstable_bins": 7,
 5 | 	"reduction_bins": 668,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 128,
10 | 			"n_fft": 1024,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 186,
13 | 			"lpf_start": 37,
14 | 			"lpf_stop": 73,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 11025,
19 | 			"hl": 128,
20 | 			"n_fft": 512,
21 | 			"crop_start": 4,
22 | 			"crop_stop": 185,			
23 | 			"hpf_start": 36,
24 | 			"hpf_stop": 18,
25 | 			"lpf_start": 93,
26 | 			"lpf_stop": 185,
27 | 			"res_type": "polyphase"
28 | 		},
29 | 		"3": {
30 | 			"sr": 22050,
31 | 			"hl": 256,
32 | 			"n_fft": 512,
33 | 			"crop_start": 46,
34 | 			"crop_stop": 186,
35 | 			"hpf_start": 93,
36 | 			"hpf_stop": 46,
37 | 			"lpf_start": 164,
38 | 			"lpf_stop": 186,
39 | 			"res_type": "polyphase"
40 | 		},	
41 | 		"4": {
42 | 			"sr": 44100,
43 | 			"hl": 512,
44 | 			"n_fft": 768,
45 | 			"crop_start": 121,
46 | 			"crop_stop": 382,
47 | 			"hpf_start": 138,
48 | 			"hpf_stop": 123,
49 | 			"res_type": "sinc_medium"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 740,
54 | 	"pre_filter_stop": 768
55 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_44100_reverse.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"reverse": true,
 3 | 	"bins": 768,
 4 | 	"unstable_bins": 7,
 5 | 	"reduction_bins": 668,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 128,
10 | 			"n_fft": 1024,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 186,
13 | 			"lpf_start": 37,
14 | 			"lpf_stop": 73,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 11025,
19 | 			"hl": 128,
20 | 			"n_fft": 512,
21 | 			"crop_start": 4,
22 | 			"crop_stop": 185,			
23 | 			"hpf_start": 36,
24 | 			"hpf_stop": 18,
25 | 			"lpf_start": 93,
26 | 			"lpf_stop": 185,
27 | 			"res_type": "polyphase"
28 | 		},
29 | 		"3": {
30 | 			"sr": 22050,
31 | 			"hl": 256,
32 | 			"n_fft": 512,
33 | 			"crop_start": 46,
34 | 			"crop_stop": 186,
35 | 			"hpf_start": 93,
36 | 			"hpf_stop": 46,
37 | 			"lpf_start": 164,
38 | 			"lpf_stop": 186,
39 | 			"res_type": "polyphase"
40 | 		},	
41 | 		"4": {
42 | 			"sr": 44100,
43 | 			"hl": 512,
44 | 			"n_fft": 768,
45 | 			"crop_start": 121,
46 | 			"crop_stop": 382,
47 | 			"hpf_start": 138,
48 | 			"hpf_stop": 123,
49 | 			"res_type": "sinc_medium"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 740,
54 | 	"pre_filter_stop": 768
55 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_44100_sw.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"stereo_w": true,
 3 | 	"bins": 768,
 4 | 	"unstable_bins": 7,
 5 | 	"reduction_bins": 668,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 128,
10 | 			"n_fft": 1024,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 186,
13 | 			"lpf_start": 37,
14 | 			"lpf_stop": 73,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 11025,
19 | 			"hl": 128,
20 | 			"n_fft": 512,
21 | 			"crop_start": 4,
22 | 			"crop_stop": 185,			
23 | 			"hpf_start": 36,
24 | 			"hpf_stop": 18,
25 | 			"lpf_start": 93,
26 | 			"lpf_stop": 185,
27 | 			"res_type": "polyphase"
28 | 		},
29 | 		"3": {
30 | 			"sr": 22050,
31 | 			"hl": 256,
32 | 			"n_fft": 512,
33 | 			"crop_start": 46,
34 | 			"crop_stop": 186,
35 | 			"hpf_start": 93,
36 | 			"hpf_stop": 46,
37 | 			"lpf_start": 164,
38 | 			"lpf_stop": 186,
39 | 			"res_type": "polyphase"
40 | 		},	
41 | 		"4": {
42 | 			"sr": 44100,
43 | 			"hl": 512,
44 | 			"n_fft": 768,
45 | 			"crop_start": 121,
46 | 			"crop_stop": 382,
47 | 			"hpf_start": 138,
48 | 			"hpf_stop": 123,
49 | 			"res_type": "sinc_medium"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 740,
54 | 	"pre_filter_stop": 768
55 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_v2.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 672,
 3 | 	"unstable_bins": 8,
 4 | 	"reduction_bins": 637,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 7350,
 8 | 			"hl": 80,
 9 | 			"n_fft": 640,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 85,
12 | 			"lpf_start": 25,
13 | 			"lpf_stop": 53,
14 | 			"res_type": "polyphase"
15 | 		},
16 | 		"2": {
17 | 			"sr": 7350,
18 | 			"hl": 80,
19 | 			"n_fft": 320,
20 | 			"crop_start": 4,
21 | 			"crop_stop": 87,
22 | 			"hpf_start": 25,
23 | 			"hpf_stop": 12,
24 | 			"lpf_start": 31,
25 | 			"lpf_stop": 62,
26 | 			"res_type": "polyphase"
27 | 		},		
28 | 		"3": {
29 | 			"sr": 14700,
30 | 			"hl": 160,
31 | 			"n_fft": 512,
32 | 			"crop_start": 17,
33 | 			"crop_stop": 216,
34 | 			"hpf_start": 48,
35 | 			"hpf_stop": 24,
36 | 			"lpf_start": 139,
37 | 			"lpf_stop": 210,
38 | 			"res_type": "polyphase"
39 | 		},	
40 | 		"4": {
41 | 			"sr": 44100,
42 | 			"hl": 480,
43 | 			"n_fft": 960,
44 | 			"crop_start": 78,
45 | 			"crop_stop": 383,
46 | 			"hpf_start": 130,
47 | 			"hpf_stop": 86,
48 | 			"res_type": "kaiser_fast"
49 | 		}
50 | 	},
51 | 	"sr": 44100,
52 | 	"pre_filter_start": 668,
53 | 	"pre_filter_stop": 672
54 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_v2_sn.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 672,
 3 | 	"unstable_bins": 8,
 4 | 	"reduction_bins": 637,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 7350,
 8 | 			"hl": 80,
 9 | 			"n_fft": 640,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 85,
12 | 			"lpf_start": 25,
13 | 			"lpf_stop": 53,
14 | 			"res_type": "polyphase"
15 | 		},
16 | 		"2": {
17 | 			"sr": 7350,
18 | 			"hl": 80,
19 | 			"n_fft": 320,
20 | 			"crop_start": 4,
21 | 			"crop_stop": 87,
22 | 			"hpf_start": 25,
23 | 			"hpf_stop": 12,
24 | 			"lpf_start": 31,
25 | 			"lpf_stop": 62,
26 | 			"res_type": "polyphase"
27 | 		},		
28 | 		"3": {
29 | 			"sr": 14700,
30 | 			"hl": 160,
31 | 			"n_fft": 512,
32 | 			"crop_start": 17,
33 | 			"crop_stop": 216,
34 | 			"hpf_start": 48,
35 | 			"hpf_stop": 24,
36 | 			"lpf_start": 139,
37 | 			"lpf_stop": 210,
38 | 			"res_type": "polyphase"
39 | 		},	
40 | 		"4": {
41 | 			"sr": 44100,
42 | 			"hl": 480,
43 | 			"n_fft": 960,
44 | 			"crop_start": 78,
45 | 			"crop_stop": 383,
46 | 			"hpf_start": 130,
47 | 			"hpf_stop": 86,
48 | 			"convert_channels": "stereo_n",
49 | 			"res_type": "kaiser_fast"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 668,
54 | 	"pre_filter_stop": 672
55 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_v3.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"bins": 672,
 3 | 	"unstable_bins": 8,
 4 | 	"reduction_bins": 530,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 7350,
 8 | 			"hl": 80,
 9 | 			"n_fft": 640,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 85,
12 | 			"lpf_start": 25,
13 | 			"lpf_stop": 53,
14 | 			"res_type": "polyphase"
15 | 		},
16 | 		"2": {
17 | 			"sr": 7350,
18 | 			"hl": 80,
19 | 			"n_fft": 320,
20 | 			"crop_start": 4,
21 | 			"crop_stop": 87,
22 | 			"hpf_start": 25,
23 | 			"hpf_stop": 12,
24 | 			"lpf_start": 31,
25 | 			"lpf_stop": 62,
26 | 			"res_type": "polyphase"
27 | 		},
28 | 		"3": {
29 | 			"sr": 14700,
30 | 			"hl": 160,
31 | 			"n_fft": 512,
32 | 			"crop_start": 17,
33 | 			"crop_stop": 216,
34 | 			"hpf_start": 48,
35 | 			"hpf_stop": 24,
36 | 			"lpf_start": 139,
37 | 			"lpf_stop": 210,
38 | 			"res_type": "polyphase"
39 | 		},
40 | 		"4": {
41 | 			"sr": 44100,
42 | 			"hl": 480,
43 | 			"n_fft": 960,
44 | 			"crop_start": 78,
45 | 			"crop_stop": 383,
46 | 			"hpf_start": 130,
47 | 			"hpf_stop": 86,
48 | 			"res_type": "kaiser_fast"
49 | 		}
50 | 	},
51 | 	"sr": 44100,
52 | 	"pre_filter_start": 668,
53 | 	"pre_filter_stop": 672
54 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/4band_v3_sn.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"n_bins": 672,
 3 | 	"unstable_bins": 8,
 4 | 	"stable_bins": 530,
 5 | 	"band": {
 6 | 		"1": {
 7 | 			"sr": 7350,
 8 | 			"hl": 80,
 9 | 			"n_fft": 640,
10 | 			"crop_start": 0,
11 | 			"crop_stop": 85,
12 | 			"lpf_start": 25,
13 | 			"lpf_stop": 53,
14 | 			"res_type": "polyphase"
15 | 		},
16 | 		"2": {
17 | 			"sr": 7350,
18 | 			"hl": 80,
19 | 			"n_fft": 320,
20 | 			"crop_start": 4,
21 | 			"crop_stop": 87,
22 | 			"hpf_start": 25,
23 | 			"hpf_stop": 12,
24 | 			"lpf_start": 31,
25 | 			"lpf_stop": 62,
26 | 			"res_type": "polyphase"
27 | 		},
28 | 		"3": {
29 | 			"sr": 14700,
30 | 			"hl": 160,
31 | 			"n_fft": 512,
32 | 			"crop_start": 17,
33 | 			"crop_stop": 216,
34 | 			"hpf_start": 48,
35 | 			"hpf_stop": 24,
36 | 			"lpf_start": 139,
37 | 			"lpf_stop": 210,
38 | 			"res_type": "polyphase"
39 | 		},
40 | 		"4": {
41 | 			"sr": 44100,
42 | 			"hl": 480,
43 | 			"n_fft": 960,
44 | 			"crop_start": 78,
45 | 			"crop_stop": 383,
46 | 			"hpf_start": 130,
47 | 			"hpf_stop": 86,
48 | 			"convert_channels": "stereo_n",
49 | 			"res_type": "kaiser_fast"
50 | 		}
51 | 	},
52 | 	"sr": 44100,
53 | 	"pre_filter_start": 668,
54 | 	"pre_filter_stop": 672
55 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/modelparams/ensemble.json:
--------------------------------------------------------------------------------
 1 | {
 2 | 	"mid_side_b2": true,
 3 | 	"bins": 1280,
 4 | 	"unstable_bins": 7,
 5 | 	"reduction_bins": 565,
 6 | 	"band": {
 7 | 		"1": {
 8 | 			"sr": 11025,
 9 | 			"hl": 108,
10 | 			"n_fft": 2048,
11 | 			"crop_start": 0,
12 | 			"crop_stop": 374,
13 | 			"lpf_start": 92,
14 | 			"lpf_stop": 186,
15 | 			"res_type": "polyphase"
16 | 		},
17 | 		"2": {
18 | 			"sr": 22050,
19 | 			"hl": 216,
20 | 			"n_fft": 1536,
21 | 			"crop_start": 0,
22 | 			"crop_stop": 424,
23 | 			"hpf_start": 68,
24 | 			"hpf_stop": 34,
25 | 			"lpf_start": 348,
26 | 			"lpf_stop": 418,
27 | 			"res_type": "polyphase"
28 | 		},	
29 | 		"3": {
30 | 			"sr": 44100,
31 | 			"hl": 432,
32 | 			"n_fft": 1280,
33 | 			"crop_start": 132,
34 | 			"crop_stop": 614,
35 | 			"hpf_start": 172,
36 | 			"hpf_stop": 144,
37 | 			"res_type": "polyphase"
38 | 		}
39 | 	},
40 | 	"sr": 44100,
41 | 	"pre_filter_start": 1280,
42 | 	"pre_filter_stop": 1280
43 | }


--------------------------------------------------------------------------------
/lib_v5/vr_network/nets.py:
--------------------------------------------------------------------------------
  1 | import torch
  2 | from torch import nn
  3 | import torch.nn.functional as F
  4 | 
  5 | from . import layers
  6 | 
  7 | class BaseASPPNet(nn.Module):
  8 | 
  9 |     def __init__(self, nn_architecture, nin, ch, dilations=(4, 8, 16)):
 10 |         super(BaseASPPNet, self).__init__()
 11 |         self.nn_architecture = nn_architecture
 12 |         self.enc1 = layers.Encoder(nin, ch, 3, 2, 1)
 13 |         self.enc2 = layers.Encoder(ch, ch * 2, 3, 2, 1)
 14 |         self.enc3 = layers.Encoder(ch * 2, ch * 4, 3, 2, 1)
 15 |         self.enc4 = layers.Encoder(ch * 4, ch * 8, 3, 2, 1)
 16 |         
 17 |         if self.nn_architecture == 129605:
 18 |             self.enc5 = layers.Encoder(ch * 8, ch * 16, 3, 2, 1)
 19 |             self.aspp = layers.ASPPModule(nn_architecture, ch * 16, ch * 32, dilations)
 20 |             self.dec5 = layers.Decoder(ch * (16 + 32), ch * 16, 3, 1, 1)
 21 |         else:
 22 |             self.aspp = layers.ASPPModule(nn_architecture, ch * 8, ch * 16, dilations)
 23 |             
 24 |         self.dec4 = layers.Decoder(ch * (8 + 16), ch * 8, 3, 1, 1)
 25 |         self.dec3 = layers.Decoder(ch * (4 + 8), ch * 4, 3, 1, 1)
 26 |         self.dec2 = layers.Decoder(ch * (2 + 4), ch * 2, 3, 1, 1)
 27 |         self.dec1 = layers.Decoder(ch * (1 + 2), ch, 3, 1, 1)
 28 | 
 29 |     def __call__(self, x):
 30 |         h, e1 = self.enc1(x)
 31 |         h, e2 = self.enc2(h)
 32 |         h, e3 = self.enc3(h)
 33 |         h, e4 = self.enc4(h)
 34 |         
 35 |         if self.nn_architecture == 129605:
 36 |             h, e5 = self.enc5(h)
 37 |             h = self.aspp(h)
 38 |             h = self.dec5(h, e5)
 39 |         else:
 40 |             h = self.aspp(h)
 41 |             
 42 |         h = self.dec4(h, e4)
 43 |         h = self.dec3(h, e3)
 44 |         h = self.dec2(h, e2)
 45 |         h = self.dec1(h, e1)
 46 | 
 47 |         return h
 48 | 
 49 | def determine_model_capacity(n_fft_bins, nn_architecture):
 50 |     
 51 |     sp_model_arch = [31191, 33966, 129605]
 52 |     hp_model_arch = [123821, 123812]
 53 |     hp2_model_arch = [537238, 537227]
 54 |     
 55 |     if nn_architecture in sp_model_arch:
 56 |         model_capacity_data = [
 57 |             (2, 16),
 58 |             (2, 16),
 59 |             (18, 8, 1, 1, 0),
 60 |             (8, 16),
 61 |             (34, 16, 1, 1, 0),
 62 |             (16, 32),
 63 |             (32, 2, 1),
 64 |             (16, 2, 1),
 65 |             (16, 2, 1),
 66 |         ]
 67 |     
 68 |     if nn_architecture in hp_model_arch:
 69 |         model_capacity_data = [
 70 |             (2, 32),
 71 |             (2, 32),
 72 |             (34, 16, 1, 1, 0),
 73 |             (16, 32),
 74 |             (66, 32, 1, 1, 0),
 75 |             (32, 64),
 76 |             (64, 2, 1),
 77 |             (32, 2, 1),
 78 |             (32, 2, 1),
 79 |         ]
 80 |        
 81 |     if nn_architecture in hp2_model_arch: 
 82 |         model_capacity_data = [
 83 |             (2, 64),
 84 |             (2, 64),
 85 |             (66, 32, 1, 1, 0),
 86 |             (32, 64),
 87 |             (130, 64, 1, 1, 0),
 88 |             (64, 128),
 89 |             (128, 2, 1),
 90 |             (64, 2, 1),
 91 |             (64, 2, 1),
 92 |         ]
 93 | 
 94 |     cascaded = CascadedASPPNet
 95 |     model = cascaded(n_fft_bins, model_capacity_data, nn_architecture)
 96 |     
 97 |     return model
 98 | 
 99 | class CascadedASPPNet(nn.Module):
100 | 
101 |     def __init__(self, n_fft, model_capacity_data, nn_architecture):
102 |         super(CascadedASPPNet, self).__init__()
103 |         self.stg1_low_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[0])
104 |         self.stg1_high_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[1])
105 | 
106 |         self.stg2_bridge = layers.Conv2DBNActiv(*model_capacity_data[2])
107 |         self.stg2_full_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[3])
108 | 
109 |         self.stg3_bridge = layers.Conv2DBNActiv(*model_capacity_data[4])
110 |         self.stg3_full_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[5])
111 | 
112 |         self.out = nn.Conv2d(*model_capacity_data[6], bias=False)
113 |         self.aux1_out = nn.Conv2d(*model_capacity_data[7], bias=False)
114 |         self.aux2_out = nn.Conv2d(*model_capacity_data[8], bias=False)
115 | 
116 |         self.max_bin = n_fft // 2
117 |         self.output_bin = n_fft // 2 + 1
118 | 
119 |         self.offset = 128
120 | 
121 |     def forward(self, x):
122 |         mix = x.detach()
123 |         x = x.clone()
124 | 
125 |         x = x[:, :, :self.max_bin]
126 | 
127 |         bandw = x.size()[2] // 2
128 |         aux1 = torch.cat([
129 |             self.stg1_low_band_net(x[:, :, :bandw]),
130 |             self.stg1_high_band_net(x[:, :, bandw:])
131 |         ], dim=2)
132 | 
133 |         h = torch.cat([x, aux1], dim=1)
134 |         aux2 = self.stg2_full_band_net(self.stg2_bridge(h))
135 | 
136 |         h = torch.cat([x, aux1, aux2], dim=1)
137 |         h = self.stg3_full_band_net(self.stg3_bridge(h))
138 | 
139 |         mask = torch.sigmoid(self.out(h))
140 |         mask = F.pad(
141 |             input=mask,
142 |             pad=(0, 0, 0, self.output_bin - mask.size()[2]),
143 |             mode='replicate')
144 |  
145 |         if self.training:
146 |             aux1 = torch.sigmoid(self.aux1_out(aux1))
147 |             aux1 = F.pad(
148 |                 input=aux1,
149 |                 pad=(0, 0, 0, self.output_bin - aux1.size()[2]),
150 |                 mode='replicate')
151 |             aux2 = torch.sigmoid(self.aux2_out(aux2))
152 |             aux2 = F.pad(
153 |                 input=aux2,
154 |                 pad=(0, 0, 0, self.output_bin - aux2.size()[2]),
155 |                 mode='replicate')
156 |             return mask * mix, aux1 * mix, aux2 * mix
157 |         else:
158 |             return mask# * mix
159 | 
160 |     def predict_mask(self, x):
161 |         mask = self.forward(x)
162 | 
163 |         if self.offset > 0:
164 |             mask = mask[:, :, :, self.offset:-self.offset]
165 | 
166 |         return mask


--------------------------------------------------------------------------------
/lib_v5/vr_network/nets_new.py:
--------------------------------------------------------------------------------
  1 | import torch
  2 | from torch import nn
  3 | import torch.nn.functional as F
  4 | from . import layers_new as layers
  5 | 
  6 | class BaseNet(nn.Module):
  7 | 
  8 |     def __init__(self, nin, nout, nin_lstm, nout_lstm, dilations=((4, 2), (8, 4), (12, 6))):
  9 |         super(BaseNet, self).__init__()
 10 |         self.enc1 = layers.Conv2DBNActiv(nin, nout, 3, 1, 1)
 11 |         self.enc2 = layers.Encoder(nout, nout * 2, 3, 2, 1)
 12 |         self.enc3 = layers.Encoder(nout * 2, nout * 4, 3, 2, 1)
 13 |         self.enc4 = layers.Encoder(nout * 4, nout * 6, 3, 2, 1)
 14 |         self.enc5 = layers.Encoder(nout * 6, nout * 8, 3, 2, 1)
 15 | 
 16 |         self.aspp = layers.ASPPModule(nout * 8, nout * 8, dilations, dropout=True)
 17 | 
 18 |         self.dec4 = layers.Decoder(nout * (6 + 8), nout * 6, 3, 1, 1)
 19 |         self.dec3 = layers.Decoder(nout * (4 + 6), nout * 4, 3, 1, 1)
 20 |         self.dec2 = layers.Decoder(nout * (2 + 4), nout * 2, 3, 1, 1)
 21 |         self.lstm_dec2 = layers.LSTMModule(nout * 2, nin_lstm, nout_lstm)
 22 |         self.dec1 = layers.Decoder(nout * (1 + 2) + 1, nout * 1, 3, 1, 1)
 23 | 
 24 |     def __call__(self, x):
 25 |         e1 = self.enc1(x)
 26 |         e2 = self.enc2(e1)
 27 |         e3 = self.enc3(e2)
 28 |         e4 = self.enc4(e3)
 29 |         e5 = self.enc5(e4)
 30 | 
 31 |         h = self.aspp(e5)
 32 | 
 33 |         h = self.dec4(h, e4)
 34 |         h = self.dec3(h, e3)
 35 |         h = self.dec2(h, e2)
 36 |         h = torch.cat([h, self.lstm_dec2(h)], dim=1)
 37 |         h = self.dec1(h, e1)
 38 | 
 39 |         return h
 40 | 
 41 | class CascadedNet(nn.Module):
 42 | 
 43 |     def __init__(self, n_fft, nn_arch_size=51000, nout=32, nout_lstm=128):
 44 |         super(CascadedNet, self).__init__()
 45 |         self.max_bin = n_fft // 2
 46 |         self.output_bin = n_fft // 2 + 1
 47 |         self.nin_lstm = self.max_bin // 2
 48 |         self.offset = 64
 49 |         nout = 64 if nn_arch_size == 218409 else nout
 50 | 
 51 |         #print(nout, nout_lstm, n_fft)
 52 | 
 53 |         self.stg1_low_band_net = nn.Sequential(
 54 |             BaseNet(2, nout // 2, self.nin_lstm // 2, nout_lstm),
 55 |             layers.Conv2DBNActiv(nout // 2, nout // 4, 1, 1, 0)
 56 |         )
 57 |         self.stg1_high_band_net = BaseNet(2, nout // 4, self.nin_lstm // 2, nout_lstm // 2)
 58 | 
 59 |         self.stg2_low_band_net = nn.Sequential(
 60 |             BaseNet(nout // 4 + 2, nout, self.nin_lstm // 2, nout_lstm),
 61 |             layers.Conv2DBNActiv(nout, nout // 2, 1, 1, 0)
 62 |         )
 63 |         self.stg2_high_band_net = BaseNet(nout // 4 + 2, nout // 2, self.nin_lstm // 2, nout_lstm // 2)
 64 | 
 65 |         self.stg3_full_band_net = BaseNet(3 * nout // 4 + 2, nout, self.nin_lstm, nout_lstm)
 66 | 
 67 |         self.out = nn.Conv2d(nout, 2, 1, bias=False)
 68 |         self.aux_out = nn.Conv2d(3 * nout // 4, 2, 1, bias=False)
 69 | 
 70 |     def forward(self, x):
 71 |         x = x[:, :, :self.max_bin]
 72 | 
 73 |         bandw = x.size()[2] // 2
 74 |         l1_in = x[:, :, :bandw]
 75 |         h1_in = x[:, :, bandw:]
 76 |         l1 = self.stg1_low_band_net(l1_in)
 77 |         h1 = self.stg1_high_band_net(h1_in)
 78 |         aux1 = torch.cat([l1, h1], dim=2)
 79 | 
 80 |         l2_in = torch.cat([l1_in, l1], dim=1)
 81 |         h2_in = torch.cat([h1_in, h1], dim=1)
 82 |         l2 = self.stg2_low_band_net(l2_in)
 83 |         h2 = self.stg2_high_band_net(h2_in)
 84 |         aux2 = torch.cat([l2, h2], dim=2)
 85 | 
 86 |         f3_in = torch.cat([x, aux1, aux2], dim=1)
 87 |         f3 = self.stg3_full_band_net(f3_in)
 88 | 
 89 |         mask = torch.sigmoid(self.out(f3))
 90 |         mask = F.pad(
 91 |             input=mask,
 92 |             pad=(0, 0, 0, self.output_bin - mask.size()[2]),
 93 |             mode='replicate'
 94 |         )
 95 | 
 96 |         if self.training:
 97 |             aux = torch.cat([aux1, aux2], dim=1)
 98 |             aux = torch.sigmoid(self.aux_out(aux))
 99 |             aux = F.pad(
100 |                 input=aux,
101 |                 pad=(0, 0, 0, self.output_bin - aux.size()[2]),
102 |                 mode='replicate'
103 |             )
104 |             return mask, aux
105 |         else:
106 |             return mask
107 | 
108 |     def predict_mask(self, x):
109 |         mask = self.forward(x)
110 | 
111 |         if self.offset > 0:
112 |             mask = mask[:, :, :, self.offset:-self.offset]
113 |             assert mask.size()[3] > 0
114 | 
115 |         return mask
116 | 
117 |     def predict(self, x):
118 |         mask = self.forward(x)
119 |         pred_mag = x * mask
120 | 
121 |         if self.offset > 0:
122 |             pred_mag = pred_mag[:, :, :, self.offset:-self.offset]
123 |             assert pred_mag.size()[3] > 0
124 | 
125 |         return pred_mag
126 | 


--------------------------------------------------------------------------------
/models/Demucs_Models/model_data/model_name_mapper.json:
--------------------------------------------------------------------------------
 1 | {
 2 |     "tasnet.th": "v1 | Tasnet",
 3 |     "tasnet_extra.th": "v1 | Tasnet_extra",
 4 |     "demucs.th": "v1 | Demucs",
 5 |     "demucs_extra.th": "v1 | Demucs_extra",
 6 |     "light.th": "v1 | Light",
 7 |     "light_extra.th": "v1 | Light_extra",
 8 |     "tasnet.th.gz": "v1 | Tasnet.gz",
 9 |     "tasnet_extra.th.gz": "v1 | Tasnet_extra.gz",
10 |     "demucs.th.gz": "v1 | Demucs_extra.gz",
11 |     "light.th.gz": "v1 | Light.gz",
12 |     "light_extra.th.gz": "v1 | Light_extra.gz",
13 |     "tasnet-beb46fac.th": "v2 | Tasnet",
14 |     "tasnet_extra-df3777b2.th": "v2 | Tasnet_extra",
15 |     "demucs48_hq-28a1282c.th": "v2 | Demucs48_hq",
16 |     "demucs-e07c671f.th": "v2 | Demucs",
17 |     "demucs_extra-3646af93.th": "v2 | Demucs_extra",
18 |     "demucs_unittest-09ebc15f.th": "v2 | Demucs_unittest",
19 |     "mdx.yaml": "v3 | mdx",
20 |     "mdx_extra.yaml": "v3 | mdx_extra",
21 |     "mdx_extra_q.yaml": "v3 | mdx_extra_q",
22 |     "mdx_q.yaml": "v3 | mdx_q",
23 |     "repro_mdx_a.yaml": "v3 | repro_mdx_a",
24 |     "repro_mdx_a_hybrid_only.yaml": "v3 | repro_mdx_a_hybrid",
25 |     "repro_mdx_a_time_only.yaml": "v3 | repro_mdx_a_time",
26 |     "UVR_Demucs_Model_1.yaml": "v3 | UVR_Model_1",
27 |     "UVR_Demucs_Model_2.yaml": "v3 | UVR_Model_2",
28 |     "UVR_Demucs_Model_Bag.yaml": "v3 | UVR_Model_Bag",
29 |     "hdemucs_mmi.yaml": "v4 | hdemucs_mmi",
30 |     "htdemucs.yaml": "v4 | htdemucs",
31 |     "htdemucs_ft.yaml": "v4 | htdemucs_ft",
32 |     "htdemucs_6s.yaml": "v4 | htdemucs_6s",
33 |     "UVR_Demucs_Model_ht.yaml": "v4 | UVR_Model_ht"
34 | }


--------------------------------------------------------------------------------
/models/Demucs_Models/v3_v4_repo/demucs_models.txt:
--------------------------------------------------------------------------------
1 | Demucs v3 and v4 models go here.


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model1.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 260096
 3 |   dim_f: 4096
 4 |   dim_t: 128
 5 |   hop_length: 2048
 6 |   n_fft: 8192
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 | model:
10 |   act: gelu
11 |   bottleneck_factor: 4
12 |   growth: 64
13 |   norm: InstanceNorm
14 |   num_blocks_per_scale: 2
15 |   num_channels: 128
16 |   num_scales: 5
17 |   num_subbands: 4
18 |   scale:
19 |   - 2
20 |   - 2
21 | training:
22 |   batch_size: 8
23 |   grad_clip: 0
24 |   instruments:
25 |   - Vocals
26 |   - Drums
27 |   - Bass
28 |   - Other
29 |   lr: 5.0e-05
30 |   target_instrument: null
31 | inference:
32 |   batch_size: 1
33 |   dim_t: 256
34 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model2.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 260096
 3 |   dim_f: 4096
 4 |   dim_t: 128
 5 |   hop_length: 2048
 6 |   n_fft: 8192
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 | model:
10 |   act: gelu
11 |   bottleneck_factor: 4
12 |   growth: 64
13 |   norm: InstanceNorm
14 |   num_blocks_per_scale: 2
15 |   num_channels: 256
16 |   num_scales: 5
17 |   num_subbands: 4
18 |   scale:
19 |   - 2
20 |   - 2
21 | training:
22 |   batch_size: 8
23 |   grad_clip: 0
24 |   instruments:
25 |   - Vocals
26 |   - Drums
27 |   - Bass
28 |   - Other
29 |   lr: 3.0e-05
30 |   target_instrument: null
31 | inference:
32 |   batch_size: 1
33 |   dim_t: 256
34 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model3.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 260096
 3 |   dim_f: 4096
 4 |   dim_t: 128
 5 |   hop_length: 2048
 6 |   n_fft: 12288
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 | model:
10 |   act: gelu
11 |   bottleneck_factor: 4
12 |   growth: 64
13 |   norm: InstanceNorm
14 |   num_blocks_per_scale: 2
15 |   num_channels: 128
16 |   num_scales: 5
17 |   num_subbands: 4
18 |   scale:
19 |   - 2
20 |   - 2
21 | training:
22 |   batch_size: 8
23 |   grad_clip: 0
24 |   instruments:
25 |   - Vocals
26 |   - Drums
27 |   - Bass
28 |   - Other
29 |   lr: 5.0e-05
30 |   target_instrument: Vocals
31 | inference:
32 |   batch_size: 1
33 |   dim_t: 256
34 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/modelA.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 261120
 3 |   dim_f: 4096
 4 |   dim_t: 256
 5 |   hop_length: 1024
 6 |   min_mean_abs: 0.01
 7 |   n_fft: 8192
 8 |   num_channels: 2
 9 |   sample_rate: 44100
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 64
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 64
17 |   num_scales: 5
18 |   num_subbands: 4
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 6
24 |   coarse_loss_clip: true
25 |   ema_momentum: 0.999
26 |   grad_clip: null
27 |   instruments:
28 |   - Vocals
29 |   - Drums
30 |   - Bass
31 |   - Other
32 |   lr: 0.0001
33 |   num_steps: 100000
34 |   q: 0.4
35 |   target_instrument: null
36 | inference:
37 |   batch_size: 2
38 |   dim_t: 256
39 |   num_overlap: 8
40 | 


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/modelB.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 261120
 3 |   dim_f: 4096
 4 |   dim_t: 256
 5 |   hop_length: 1024
 6 |   min_mean_abs: 0.01
 7 |   n_fft: 8192
 8 |   num_channels: 2
 9 |   sample_rate: 44100
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 64
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 64
17 |   num_scales: 5
18 |   num_subbands: 4
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 6
24 |   coarse_loss_clip: false
25 |   datasets:
26 |   - ../data/moises/bleeding
27 |   ema_momentum: 0.999
28 |   grad_clip: null
29 |   instruments:
30 |   - Vocals
31 |   - Drums
32 |   - Bass
33 |   - Other
34 |   lr: 0.0001
35 |   num_steps: 150000
36 |   q: 0.93
37 |   target_instrument: null
38 | inference:
39 |   batch_size: 2
40 |   dim_t: 256
41 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_061321.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 260096
 3 |   dim_f: 4096
 4 |   dim_t: 256
 5 |   hop_length: 2048
 6 |   n_fft: 12288
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 |   min_mean_abs: 0.001
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 64
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 128
17 |   num_scales: 5
18 |   num_subbands: 4
19 |   scale:
20 |   - 2
21 |   - 2
22 |   name: epoch_10.ckpt
23 | training:
24 |   batch_size: 16
25 |   grad_clip: 0
26 |   instruments:
27 |   - Vocals
28 |   - Instrumental
29 |   lr: 5.0e-05
30 |   target_instrument: null
31 |   num_epochs: 100
32 |   num_steps: 1000
33 | inference:
34 |   batch_size: 1
35 |   dim_t: 256
36 |   num_overlap: 8
37 | 


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 260096
 3 |   dim_f: 6144
 4 |   dim_t: 128
 5 |   hop_length: 2048
 6 |   n_fft: 12288
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 |   min_mean_abs: 0.001
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 64
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 128
17 |   num_scales: 5
18 |   num_subbands: 6
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 14
24 |   grad_clip: 0
25 |   instruments:
26 |   - Vocals
27 |   - Instrumental
28 |   lr: 3.0e-05
29 |   target_instrument: null
30 |   num_epochs: 1000
31 |   num_steps: 1000
32 |   augmentation: 1
33 | inference:
34 |   batch_size: 1
35 |   dim_t: 256
36 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_2.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 260096
 3 |   dim_f: 6144
 4 |   dim_t: 128
 5 |   hop_length: 2048
 6 |   n_fft: 12288
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 |   min_mean_abs: 0.001
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 128
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 128
17 |   num_scales: 5
18 |   num_subbands: 6
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 14
24 |   grad_clip: 0
25 |   instruments:
26 |   - Vocals
27 |   - Instrumental
28 |   lr: 2.0e-05
29 |   target_instrument: null
30 |   num_epochs: 1000
31 |   num_steps: 1000
32 |   augmentation: 1
33 | inference:
34 |   batch_size: 1
35 |   dim_t: 256
36 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_3.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 261120
 3 |   dim_f: 6144
 4 |   dim_t: 256
 5 |   hop_length: 1024
 6 |   n_fft: 12288
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 |   min_mean_abs: 0.001
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 128
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 128
17 |   num_scales: 5
18 |   num_subbands: 6
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 6
24 |   grad_clip: 0
25 |   instruments:
26 |   - Vocals
27 |   - Instrumental
28 |   lr: 1.0e-05
29 |   target_instrument: null
30 |   num_epochs: 1000
31 |   num_steps: 1000
32 |   augmentation: 1
33 |   q: 0.95
34 |   coarse_loss_clip: true
35 |   ema_momentum: 0.999
36 | inference:
37 |   batch_size: 1
38 |   dim_t: 256
39 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_4.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 261120
 3 |   dim_f: 6144
 4 |   dim_t: 256
 5 |   hop_length: 1024
 6 |   n_fft: 12288
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 |   min_mean_abs: 0.001
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 128
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 128
17 |   num_scales: 5
18 |   num_subbands: 6
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 6
24 |   grad_clip: 0
25 |   instruments:
26 |   - Vocals
27 |   - Instrumental
28 |   lr: 0.7e-05
29 |   patience: 2
30 |   target_instrument: null
31 |   num_epochs: 1000
32 |   num_steps: 1000
33 |   augmentation: 1
34 |   q: 0.95
35 |   coarse_loss_clip: true
36 |   ema_momentum: 0.999
37 | inference:
38 |   batch_size: 1
39 |   dim_t: 256
40 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_8k.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 261120
 3 |   dim_f: 4096
 4 |   dim_t: 256
 5 |   hop_length: 1024
 6 |   n_fft: 8192
 7 |   num_channels: 2
 8 |   sample_rate: 44100
 9 |   min_mean_abs: 0.001
10 | model:
11 |   act: gelu
12 |   bottleneck_factor: 4
13 |   growth: 128
14 |   norm: InstanceNorm
15 |   num_blocks_per_scale: 2
16 |   num_channels: 128
17 |   num_scales: 5
18 |   num_subbands: 4
19 |   scale:
20 |   - 2
21 |   - 2
22 | training:
23 |   batch_size: 6
24 |   grad_clip: 0
25 |   instruments:
26 |   - Vocals
27 |   - Instrumental
28 |   lr: 1.0e-05
29 |   patience: 2
30 |   reduce_factor: 0.95
31 |   target_instrument: null
32 |   num_epochs: 1000
33 |   num_steps: 1000
34 |   augmentation: 1
35 |   augmentation_type: simple1
36 |   augmentation_mix: true
37 |   q: 0.95
38 |   coarse_loss_clip: true
39 |   ema_momentum: 0.999
40 | inference:
41 |   batch_size: 1
42 |   dim_t: 256
43 |   num_overlap: 8


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/mdx_c_configs/sndfx.yaml:
--------------------------------------------------------------------------------
 1 | audio:
 2 |   chunk_size: 261120
 3 |   dim_f: 1024
 4 |   dim_t: 256
 5 |   hop_length: 1024
 6 |   min_mean_abs: 0.01
 7 |   n_fft: 2048
 8 |   num_channels: 2
 9 |   sample_rate: 44100
10 |   stereo_prob: 0.7
11 | model:
12 |   act: gelu
13 |   bottleneck_factor: 4
14 |   growth: 64
15 |   norm: InstanceNorm
16 |   num_blocks_per_scale: 2
17 |   num_channels: 64
18 |   num_scales: 5
19 |   num_subbands: 4
20 |   scale:
21 |   - 2
22 |   - 2
23 | training:
24 |   batch_size: 8
25 |   ema_momentum: 0.999
26 |   grad_clip: null
27 |   instruments:
28 |   - Music
29 |   - Speech
30 |   - SFX
31 |   lr: 0.0001
32 |   num_steps: 30000
33 |   target_instrument: null
34 | inference:
35 |   batch_size: 8
36 |   dim_t: 256
37 |   instruments:
38 |   - Music
39 |   - Dialog
40 |   - Effect
41 |   num_overlap: 8
42 | 


--------------------------------------------------------------------------------
/models/MDX_Net_Models/model_data/model_name_mapper.json:
--------------------------------------------------------------------------------
 1 | {
 2 |     "UVR_MDXNET_1_9703": "UVR-MDX-NET 1",
 3 |     "UVR_MDXNET_2_9682": "UVR-MDX-NET 2",
 4 |     "UVR_MDXNET_3_9662": "UVR-MDX-NET 3",
 5 |     "UVR_MDXNET_KARA": "UVR-MDX-NET Karaoke",
 6 |     "UVR_MDXNET_Main": "UVR-MDX-NET Main",
 7 |     "UVR-MDX-NET-Inst_1": "UVR-MDX-NET Inst 1",
 8 |     "UVR-MDX-NET-Inst_2": "UVR-MDX-NET Inst 2",
 9 |     "UVR-MDX-NET-Inst_3": "UVR-MDX-NET Inst 3",
10 |     "UVR-MDX-NET-Inst_4": "UVR-MDX-NET Inst 4",
11 |     "UVR-MDX-NET-Inst_Main": "UVR-MDX-NET Inst Main",
12 |     "UVR-MDX-NET-Inst_Main_2": "UVR-MDX-NET Inst Main 2",
13 |     "UVR-MDX-NET-Inst_HQ_1": "UVR-MDX-NET Inst HQ 1",
14 |     "UVR-MDX-NET-Inst_HQ_2": "UVR-MDX-NET Inst HQ 2",
15 |     "UVR-MDX-NET-Inst_HQ_3": "UVR-MDX-NET Inst HQ 3",
16 |     "UVR_MDXNET_KARA_2": "UVR-MDX-NET Karaoke 2",
17 |     "Kim_Vocal_1": "Kim Vocal 1",
18 |     "Kim_Vocal_2": "Kim Vocal 2",
19 |     "Kim_Inst": "Kim Inst",
20 |     "MDX23C-8KFFT-InstVoc_HQ.ckpt": "MDX23C-InstVoc HQ",
21 |     "Reverb_HQ_By_FoxJoy": "Reverb HQ"
22 | }


--------------------------------------------------------------------------------
/models/VR_Models/UVR-DeNoise-Lite.pth:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Anjok07/ultimatevocalremovergui/5517e0cf0d1acd16a1618eeedec596957523f9e1/models/VR_Models/UVR-DeNoise-Lite.pth


--------------------------------------------------------------------------------
/models/VR_Models/model_data/model_data.json:
--------------------------------------------------------------------------------
  1 | {
  2 |     "0d0e6d143046b0eecc41a22e60224582": {
  3 |         "vr_model_param": "3band_44100_mid",
  4 |         "primary_stem": "Instrumental"
  5 |     },
  6 |     "18b52f873021a0af556fb4ecd552bb8e": {
  7 |         "vr_model_param": "2band_32000",
  8 |         "primary_stem": "Instrumental"
  9 |     },
 10 |     "1fc66027c82b499c7d8f55f79e64cadc": {
 11 |         "vr_model_param": "2band_32000",
 12 |         "primary_stem": "Instrumental"
 13 |     },
 14 |     "2aa34fbc01f8e6d2bf509726481e7142": {
 15 |         "vr_model_param": "4band_44100",
 16 |         "primary_stem": "No Piano"
 17 |     },
 18 |     "3e18f639b11abea7361db1a4a91c2559": {
 19 |         "vr_model_param": "4band_44100",
 20 |         "primary_stem": "Instrumental"
 21 |     },
 22 |     "570b5f50054609a17741369a35007ddd": {
 23 |         "vr_model_param": "4band_v3",
 24 |         "primary_stem": "Instrumental"
 25 |     },
 26 |     "5a6e24c1b530f2dab045a522ef89b751": {
 27 |         "vr_model_param": "1band_sr44100_hl512",
 28 |         "primary_stem": "Instrumental"
 29 |     },
 30 |     "6b5916069a49be3fe29d4397ecfd73fa": {
 31 |         "vr_model_param": "3band_44100_msb2",
 32 |         "primary_stem": "Instrumental",
 33 |         "is_karaoke": true
 34 |     },
 35 |     "74b3bc5fa2b69f29baf7839b858bc679": {
 36 |         "vr_model_param": "4band_44100",
 37 |         "primary_stem": "Instrumental"
 38 |     },
 39 |     "827213b316df36b52a1f3d04fec89369": {
 40 |         "vr_model_param": "4band_44100",
 41 |         "primary_stem": "Instrumental"
 42 |     },
 43 |     "911d4048eee7223eca4ee0efb7d29256": {
 44 |         "vr_model_param": "4band_44100",
 45 |         "primary_stem": "Vocals"
 46 |     },
 47 |     "941f3f7f0b0341f12087aacdfef644b1": {
 48 |         "vr_model_param": "4band_v2",
 49 |         "primary_stem": "Instrumental"
 50 |     },
 51 |     "a02827cf69d75781a35c0e8a327f3195": {
 52 |         "vr_model_param": "1band_sr33075_hl384",
 53 |         "primary_stem": "Instrumental"
 54 |     },
 55 |     "b165fbff113c959dba5303b74c6484bc": {
 56 |         "vr_model_param": "3band_44100",
 57 |         "primary_stem": "Instrumental"
 58 |     },
 59 |     "b5f988cd3e891dca7253bf5f0f3427c7": {
 60 |         "vr_model_param": "4band_44100",
 61 |         "primary_stem": "Instrumental"
 62 |     },
 63 |     "b99c35723bc35cb11ed14a4780006a80": {
 64 |         "vr_model_param": "1band_sr44100_hl1024",
 65 |         "primary_stem": "Instrumental"
 66 |     },
 67 |     "ba02fd25b71d620eebbdb49e18e4c336": {
 68 |         "vr_model_param": "3band_44100_mid",
 69 |         "primary_stem": "Instrumental"
 70 |     },
 71 |     "c4476ef424d8cba65f38d8d04e8514e2": {
 72 |         "vr_model_param": "3band_44100_msb2",
 73 |         "primary_stem": "Instrumental"
 74 |     },
 75 |     "da2d37b8be2972e550a409bae08335aa": {
 76 |         "vr_model_param": "4band_44100",
 77 |         "primary_stem": "Vocals"
 78 |     },
 79 |     "db57205d3133e39df8e050b435a78c80": {
 80 |         "vr_model_param": "4band_44100",
 81 |         "primary_stem": "Instrumental"
 82 |     },
 83 |     "ea83b08e32ec2303456fe50659035f69": {
 84 |         "vr_model_param": "4band_v3",
 85 |         "primary_stem": "Instrumental"
 86 |     },
 87 |     "f6ea8473ff86017b5ebd586ccacf156b": {
 88 |         "vr_model_param": "4band_v2_sn",
 89 |         "primary_stem": "Instrumental",
 90 |         "is_karaoke": true
 91 |     },
 92 |     "fd297a61eafc9d829033f8b987c39a3d": {
 93 |         "vr_model_param": "1band_sr32000_hl512",
 94 |         "primary_stem": "Instrumental"
 95 |     },
 96 |     "0ec76fd9e65f81d8b4fbd13af4826ed8": {
 97 |         "vr_model_param": "4band_v3",
 98 |         "primary_stem": "No Woodwinds"
 99 |     },
100 |     "0fb9249ffe4ffc38d7b16243f394c0ff": {
101 |         "vr_model_param": "4band_v3",
102 |         "primary_stem": "No Reverb"
103 |     },
104 |     "6857b2972e1754913aad0c9a1678c753": {
105 |         "vr_model_param": "4band_v3",
106 |         "primary_stem": "Echo",
107 |         "nout": 48,
108 |         "nout_lstm": 128
109 |     },
110 |     "f200a145434efc7dcf0cd093f517ed52": {
111 |         "vr_model_param": "4band_v3",
112 |         "primary_stem": "No Echo",
113 |         "nout": 48,
114 |         "nout_lstm": 128
115 |     },
116 |     "44c55d8b5d2e3edea98c2b2bf93071c7": {
117 |         "vr_model_param": "4band_v3",
118 |         "primary_stem": "Noise",
119 |         "nout": 48,
120 |         "nout_lstm": 128
121 |     },
122 |     "51ea8c43a6928ed3c10ef5cb2707d57b": {
123 |         "vr_model_param": "1band_sr44100_hl1024",
124 |         "primary_stem": "Noise",
125 |         "nout": 16,
126 |         "nout_lstm": 128
127 |     },
128 |     "944950a9c5963a5eb70b445d67b7068a": {
129 |         "vr_model_param": "4band_v3_sn",
130 |         "primary_stem": "Vocals",
131 |         "nout": 64,
132 |         "nout_lstm": 128,
133 |         "is_karaoke": false,
134 |         "is_bv_model": true,
135 |         "is_bv_model_rebalanced": 0.9
136 |     }
137 | }


--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
 1 | altgraph==0.17.3
 2 | audioread==3.0.0
 3 | certifi==2022.12.07
 4 | cffi==1.15.1
 5 | cryptography==3.4.6
 6 | einops==0.6.0
 7 | future==0.18.3
 8 | julius==0.2.7
 9 | kthread==0.2.3
10 | librosa==0.9.2
11 | llvmlite
12 | matchering==2.0.6
13 | ml_collections==0.1.1
14 | natsort==8.2.0
15 | omegaconf==2.2.3
16 | opencv-python==4.6.0.66
17 | Pillow==9.3.0
18 | psutil==5.9.4
19 | pydub==0.25.1
20 | pyglet==1.5.23
21 | pyperclip==1.8.2
22 | pyrubberband==0.3.0
23 | pytorch_lightning==2.0.0
24 | PyYAML==6.0
25 | resampy==0.4.2
26 | scipy==1.9.3
27 | soundstretch==1.2
28 | torch
29 | urllib3==1.26.12
30 | wget==3.2
31 | samplerate==0.1.0
32 | screeninfo==0.8.1
33 | diffq
34 | playsound
35 | onnx
36 | onnxruntime
37 | onnxruntime-gpu
38 | onnx2pytorch
39 | SoundFile==0.11.0; sys_platform != 'darwin'
40 | PySoundFile==0.9.0.post1; sys_platform == 'darwin'
41 | Dora==0.0.3
42 | numpy==1.23.5
43 | 


--------------------------------------------------------------------------------