Skip to content

Latest commit

 

History

History
28 lines (20 loc) · 2.22 KB

README.md

File metadata and controls

28 lines (20 loc) · 2.22 KB

Neural Drum Synth GUI

GUI for controlling a drum sample generator.

Clone this repo locally and install the dependencies in requirements.txt in a new environment with Python 3.6.10

Please download the pre-trained model checkpoints from the following link. Unzip the folder and store it in the "output" folder.

Use python run_gui.py to begin using the generation GUI.

nds_screenshot

This project utilsies a style-based generative adversarial network trained on collection of drum samples containing kick, snare, and cymbals.

The GUI contains the following features:

  • Drum type selection: kick, snare, cymbal - achieved by conditioning the generative model on class labels during training
  • Drum space: a 2D pad used for exploring drum sounds, with similar sounds presented closer together - created by applying UMAP to the latent distribution
  • Morphing parameters: a set of synthesiser parameters for fine tuning and making variations - identified using PCA to find directions in the latent space
  • Layer select: enables further fine tuning by selecting which layers of the network will be affected by Drum space and Morphing parameters - low [first three layers], mid [second three layers], high [final three layers] if the buttons are deselected, the current latent variable will be frozen for those layers until selected again for more focused control
  • Amplitude: adjust the global ampltiude level
  • Pitch: change the drum pitches - alters the sample rate for playback, plotting and saving
  • Noise: introduces subtle variations each time a sound is generated - when maxed out (1.0), it emulates an analog synthesiser, in a drum will have subtle differences each time it is generated, when minimised (0.0), generations will be precise
  • Rand seed : generates a random drum sound that can be manipulated with the Morphing parameters - randomly samples the latent space
  • Blend Seed: enables blending between the random seed and the UMAP space - interpolates between the random latent vector and the UMAP vector
  • Play: audio playback
  • Save: saves audio to the generations folder