• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language Max
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Universal audio synthesizer control learning with normalizing flows

Universal audio synthesizer control with normalizing flows

This repository hosts code and additional results for the paper Universal audio synthesizer control with normalizing flows. You can check out the video demonstration of the FlowSynth on Youtube

https://www.youtube.com/watch?v=UufQwUitBIw

Installing the flow synthesizer plugin

In order to try out the Flow synthesizer plugin, you must

  1. Have an installed version of the Diva VST (The system works with the free tryout version but will produce noise every now and then). For simplicity, please ensure that it is located here
/Library/Audio/Plug-Ins/VST/u-he/Diva.vst
  1. Install the latest (bleeding-edge) version of both the Bach and Dada library for MaxMsp
  2. Install the Mubu library for MaxMsp
  3. Have an updated version of Python 3.7
  4. Install the Python dependencies by running the following line at the root of this folder
$ pip install -r requirements.txt
  1. Put the plugin/flow_synth.amxd device inside a MIDI track in Ableton Live
  2. Optionally, if you happen to have a LeapMotion sensor, you can install the Leap framework to enjoy it with the synth.
  3. ???
  4. Profit

NB: If the device seems non-responding, you can try to run the server manually

$ cd code && python osc_launch.py

Note that the plugin has only been tested on MacOS X High Sierra (10.13.6)

Supporting webpage

For a better viewing experience, please visit the corresponding supporting website.

It embeds the following:

  • Supplementary figures
  • Audio examples
    • Reconstruction
    • Macro-control learning
    • Neighborhood exploration
    • Interpolation
    • Vocal sketching
  • Real-time implementation in Ableton Live

You can also directly parse through the different sub-directories of the main docs directory.

Dataset

The dataset can be downloaded here: https://nubo.ircam.fr/index.php/s/nL3NQomqxced6eJ

Code

Dependencies

Python

Code has been developed with Python 3.7. It should work with other versions of Python 3, but has not been tested. Moreover, we rely on several third-party libraries, listed in requirements.txt. They can be installed with

$ pip install -r requirements.txt

As our experiments are coded in PyTorch, no additional library is required to run them on GPU (provided you already have CUDA installed).

RenderMan

For people interested in the research aspects of this repository, if you want to try new models or evaluate variations of the existing ones, you will need at one point to render the correponding audio. We rely on the great RenderMan library to batch generate audio output from synthesizer presets.

Usage

The code is mostly divided into two scripts train.py and evaluate.py. The first script train.py allows to train a model from scratch as described in the paper. The second script evaluate.py allows to generate the figures of the papers, and also all the supporting additional materials visible on the supporting page) of this repository.

train.py arguments


Pre-trained models

Note that a set of pre-trained models are availble in the code/results folder.

Models details

As discussed in the paper, the very large amount of baseline models implemented did not allow to provide all the parameters for reference models (which are defined in the source code). However, we provide these details inside the documentation page in the models details section

More Repositories

1

RAVE

Official implementation of the RAVE model: a Realtime Audio Variational autoEncoder
Python
1,283
star
2

diffusion_models

A series of tutorial notebooks on denoising diffusion probabilistic models in PyTorch
Jupyter Notebook
607
star
3

ddsp_pytorch

Implementation of Differentiable Digital Signal Processing (DDSP) in Pytorch
C
445
star
4

nn_tilde

Max
310
star
5

creative_ml

Creative Machine Learning course and notebook tutorials in JAX, PyTorch and Numpy
Jupyter Notebook
206
star
6

rave_vst

C++
186
star
7

pytorch_flows

Implementation and tutorials of normalizing flows with the novel distributions module
Jupyter Notebook
158
star
8

neurorack

Python
108
star
9

variational-timbre

Generative timbre spaces by perceptually regularizing variational auto-encoders
Python
56
star
10

vschaos2

vintage neural synthesis with spectral auto-encoders
Python
48
star
11

cached_conv

Python
44
star
12

wavae

Realtime Variational Autoencoder built on top of libtorch and PureData
Python
36
star
13

timbre_exploration

Additional materials for "TIMBRE LATENT SPACE: EXPLORATION AND CREATIVE ASPECTS"
SCSS
20
star
14

lottery_mir

Ultra-light MIR models with a structured lottery ticket hypothesis approach
Python
13
star
15

lottery_generative

Lottery ticket hypothesis for deep generative models
Python
11
star
16

Expressive_WAE_FADER

companion repository to the DAFx-19 paper "Assisted Sound Sample Generation with Musical Conditioning in Adversarial Auto-Encoders" by Adrien Bitton, Philippe Esling et al.
9
star
17

Timbre_MoVE

Modulated Variational Auto-Encoders for Many-to-Many Musical Timbre Transfer
8
star
18

cml

Library for the Creative Machine Learning course
Python
6
star
19

projective_orchestration

Automatic projective orchestration using neural networks.
Python
5
star
20

PianoTranscriptionTransposition

Automatic Music Transcription and Instrument Transposition with Differentiable Rendering @ The 2020 Joint Conference on AI Music Creativity
SCSS
3
star
21

waveflow

Python
3
star
22

acids-ircam.github.io

HTML
3
star
23

live_orchestral_piano

Max/MSP patch for live projective orchestration
2
star