dx7-jax

Yamaha DX7 synthesizer with JAX

https://github.com/dbraun/dx7-jax

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.7%) to scientific vocabulary

Keywords

audio dx7 faust jax synthesizer
Last synced: 6 months ago · JSON representation ·

Repository

Yamaha DX7 synthesizer with JAX

Basic Info
  • Host: GitHub
  • Owner: DBraun
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 29.3 KB
Statistics
  • Stars: 14
  • Watchers: 4
  • Forks: 1
  • Open Issues: 1
  • Releases: 0
Topics
audio dx7 faust jax synthesizer
Created about 2 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

DX7-JAX

This is a work-in-progress of using JAX to batch-render Yamaha DX7 presets. We also provide a script to parse .syx files and aggregate them into a single CSV.

The Faust Libraries have an implementation of the DX7, but it lacks several features. We have improved it in several ways such as adding an LFO, but our implementation (custom_dx7.lib) is imperfect, so please use this project with caution. Pull requests are welcome.

DX7-JAX uses DawDreamer to convert the Faust code to JAX, which can then be executed on either the CPU or GPU. We hope this project can be a useful starter for research involving Faust and JAX, not necessarily involving the DX7. DawDreamer has other JAX examples, which we encourage you to check out.

Download patches

We mirror the DX7_AllTheWeb.zip (2023-08-08) from http://bobbyblues.recup.ch/yamaha_dx7/dx7_patches.html (saving them some bandwidth). Use this script to download it to the right location.

bash python download_patches.py

Turn patches into a CSV

This will parse a limited amount of presets.

bash python parse_dx7.py --directory dx7_patches/DX7_AllTheWeb/Atari

This will parse all presets. You probably shouldn't do this because the later rendering output will be enormous.

bash python parse_dx7.py

If you run it on all of DX7_AllTheWeb, then 388,650 presets will be de-duplicated into 44,884.

Render an audio dataset

Render the audio with default args (python dx7_render.py --help for help)

bash python dx7_render.py

Use our DX7 in the Faust IDE.

Go to the Faust IDE and paste the content of custom_dx7.lib into the text editor. Then at the bottom, paste

process = dx7_algorithm(1) <: _, _;

This selects the 1st of the 32 DX7 algorithms. Enable "Poly Voices" on the left hand side. Four is a good number. Then press the play button towards the top of the screen and play around with your keyboard as the controller.

Citation

@software{Braun_DX7-JAX_2023, author = {Braun, David}, month = nov, title = {{DX7-JAX}}, url = {https://github.com/DBraun/DX7-JAX}, version = {0.0.1}, year = {2023} }

Owner

  • Name: David Braun
  • Login: DBraun
  • Kind: user
  • Company: DIRT Design

Do It Real-Time | Audiovisual ML, Faust, TouchDesigner | alum @ccrma

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Braun"
  given-names: "David"
  orcid: "https://orcid.org/0000-0001-8866-0756"
title: "DX7-JAX"
version: 0.0.1
date-released: 2023-11-25
url: "https://github.com/DBraun/DX7-JAX"

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
Last Year
  • Watch event: 1
  • Push event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 1
  • Total Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
David Braun 2****n 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • turian (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • dawdreamer *
  • flax *
  • pandas *
  • requests *
  • scipy *
  • tqdm *