This is a project aiming on giving an approximate estimation of the synthesizer parameters of mdaDX10.vst to mimic a recorded sound timbre.
This project mainly consists of two parts
- Dataset Generating in folder Dataset_generate
Adjust the configuration in Config.py
run the generate function in dataset_gen.py
- Network training and testing in folder Regression
Adjust the configuration in sub-folder Configs/
Run the training code (e.g. DX10_Training_random_1k.py)
@jeffery @lucas please fork this repo and change the generator written in dataset_gen.py
def param_gen(length, param_num):
# TODO: make a better version
# A simple random version
rand_array = np.random.rand(length, param_num)
rand_array = rand_array * 100
# make integer
rand_array.astype(np.uint8)
return rand_arrayThis project is based on Python 3.6
Please install the following packages under pip3
| Package Needed | Usage |
|---|---|
| pickle | data encoding |
| scipy | scientific computing |
| numpy | scientific computing |
| multiprocessing | multi thread computing |
| tqdm | visualization |
| tensorflow | machine learning core |
| keras | machine learning embedding |
| IPython | debugging |
The code for dataset generating part is completed, network is under construction.
The current version encode the dataset into pure binary code (e.g. Datasets/RandomTest/RandomTest-params.pkl)
Two files exists in the dataset folder:
NAME-params.pkl (TRAINING_SET_SIZE * PARAM_NUMBER)
NAME-wavs.pkl (TRAINING_SET_SIZE * FRAMES_PER_FILE)
These can be decoded by pickle
-
Change the function param_gen in dataset_gen.py
-
Modify Config.py to change the parameters including parameter number, thread number, and training set size
-
Import dataset_gen to any code or in IPython, and call dataset_gen.generate(NAME). A folder called NAME will appear in the Datasets Folder.