Giter Site home page Giter Site logo

mf-utils's Introduction

mf-utils

Utilities for the Arturia MicroFreak synthesizer.

WARNING: Flashing your MicroFreak with custom firmware not from Arturia -- firmware created with these tools -- may void your warranty or brick your MicroFreak. I am not responsible if your MicroFreak is bricked by this process.

wavetabula

Extract, replace, and modify wavetables in MicroFreak firmware files (.mff).

Requirements

You need Python 2.7 or later, or Python 3.4 or later, to run this tool. If you don't have Python installed, you can get it here: http://www.python.org/getit/

Usage

  1. Clone or download the repository.

  2. Download a MicroFreak firmware file (.mff) from Arturia's Resources page for MicroFreak.

  3. Extract wavetables from the firmware:

python wavetabula.py --out_wav_dir out_wavetables/ extract MicroFreak_Firmware_Update_3_0_6_1069.mff
  1. Modify the newly extracted wavetables as you see fit. For this example, we'll use the supplied sample wavetables I made.

  2. Replace the wavetables in the firmware with our fancy new wavetables:

python wavetabula.py --wav_dir sample_wavetables/ replace MicroFreak_Firmware_Update_3_0_6_1069.mff
  1. Voila! You should now have a file named new_firmware.mff (by default), which you can flash via Arturia's MIDI Control Center. Read the giant WARNING above before doing so; be aware that you could brick your device by doing this.

Run python wavetabula.py -h or see below for more options.

Commands

Extract

Extracts wavetables from the specified MicroFreak firmware file (.mff) and writes the wavetables to separate WAV files, one for each table.

Example:

python wavetabula.py --out_wav_dir out_wavetables/ extract MicroFreak_Firmware_Update_3_0_6_1069.mff

Run python wavetabula.py extract -h for more details.

Replace

Replaces wavetables in the specified MicroFreak firmware file (.mff) with wavetables (stored as WAVs in the same format as output from the extract command) in the specified directory.

Example:

python wavetabula.py --wav_dir sample_wavetables/ replace --out_firmware my_custom_firmware.mff MicroFreak_Firmware_Update_3_0_6_1069.mff

Run python wavetabula.py replace -h for more details.

Smooth

Smooths MicroFreak-style wavetables (stored as WAVs in the same format as output from the extract command) in the specified directory. This can be used to reduce pops, clicks, and other artifacts you may hear when experimenting with your own wavetables.

Example:

python wavetabula.py --wav_dir sample_wavetables_unsmoothed/ --out_wav_dir sample_wavetables/ smooth --fade_distance 16 --fade_target zero --rotate

Run python wavetabula.py smooth -h for more details.

Notes

  • There are 16 wavetables on the device; each wavetable contains 32 cycles, and each cycle is 256 samples long.
  • I believe the sample format is 16-bit mono @ 40kHz. Yes, 40000Hz. Each sample is tuned to D#4.
  • The tool only supports 16-bit mono WAV files; each wavetable must contain at least 8192 samples, and the first 8192 will be used. They should be encoded at 40kHz if you want them to sound correct.

Libraries

  • firmware.py: Load and write MicroFreak firmware files (.mff).
  • wavetables.py: Load, write, and modify the wavetables in MicroFreak firmware files (.mff). E.g., write the tables to WAV files, replace select tables in the firmware with WAV files on disk, etc.

mf-utils's People

Contributors

dcower avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.