All Projects → schollz → midi2cv

schollz / midi2cv

Licence: MIT license
Use a simple Python script, a few wires, and a MCP4725 to convert any MIDI signal to a control voltage.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to midi2cv

Mt32 Pi
🎹🎶 A baremetal kernel that turns your Raspberry Pi 3 or later into a Roland MT-32 emulator and SoundFont synthesizer based on Circle, Munt, and FluidSynth.
Stars: ✭ 231 (+788.46%)
Mutual labels:  midi, synthesizer
esp32 basic synth
ESP32 based simple synthesizer project
Stars: ✭ 134 (+415.38%)
Mutual labels:  midi, synthesizer
Adlplug
FM Chip Synthesizer — OPL & OPN — VST/LV2/Standalone
Stars: ✭ 249 (+857.69%)
Mutual labels:  midi, synthesizer
synth
A Teensy 4 modular FM polyphonic synth.
Stars: ✭ 39 (+50%)
Mutual labels:  midi, synthesizer
korg-prologue
Presets and custom oscillators and effects for Korg Prologue
Stars: ✭ 54 (+107.69%)
Mutual labels:  synthesizer, korg
Omnimidi
A software MIDI synthesizer for professional use.
Stars: ✭ 181 (+596.15%)
Mutual labels:  midi, synthesizer
guitar
🎸 Online guitar toy and tablature recorder/player
Stars: ✭ 80 (+207.69%)
Mutual labels:  midi, synthesizer
Miti
miti is a musical instrument textual interface. Basically, its MIDI, but with human-readable text. 🎵
Stars: ✭ 103 (+296.15%)
Mutual labels:  midi, synthesizer
esp32 multitrack looper
ESP32 Audio Kit based multitrack looper
Stars: ✭ 43 (+65.38%)
Mutual labels:  midi, synthesizer
synthrs
Toy audio synthesizer library in Rust with basic MIDI support.
Stars: ✭ 73 (+180.77%)
Mutual labels:  midi, synthesizer
Shaden
🎧 A modular audio synthesizer.
Stars: ✭ 175 (+573.08%)
Mutual labels:  midi, synthesizer
KnobKraft-orm
The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
Stars: ✭ 100 (+284.62%)
Mutual labels:  midi, synthesizer
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (+461.54%)
Mutual labels:  midi, synthesizer
Unimidi
Realtime MIDI IO for Ruby
Stars: ✭ 229 (+780.77%)
Mutual labels:  midi, synthesizer
Lick
LiCK, Library for ChucK
Stars: ✭ 118 (+353.85%)
Mutual labels:  midi, synthesizer
webaudio-synth
WebAudio Polyphonic Synthesizer
Stars: ✭ 83 (+219.23%)
Mutual labels:  midi, synthesizer
Audiobench
Open source modular synthesizer
Stars: ✭ 63 (+142.31%)
Mutual labels:  midi, synthesizer
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+4738.46%)
Mutual labels:  midi, synthesizer
CureSynth Whip
Polyphonic MIDI Synthesizer for STM32F7
Stars: ✭ 45 (+73.08%)
Mutual labels:  midi, synthesizer
mt32-pi-control
MT32-PI.EXE/MT32-PI.TTP/mt32-pi-ctl is a control program for the mt32-pi MIDI synthesizer available for DOS PCs, Atari ST and Amiga computers as well as modern systems running Linux and Windows.
Stars: ✭ 22 (-15.38%)
Mutual labels:  midi, synthesizer
███╗   ███╗██╗██████╗ ██╗    ██████╗      ██████╗██╗   ██╗
████╗ ████║██║██╔══██╗██║    ╚════██╗    ██╔════╝██║   ██║
██╔████╔██║██║██║  ██║██║     █████╔╝    ██║     ██║   ██║
██║╚██╔╝██║██║██║  ██║██║    ██╔═══╝     ██║     ╚██╗ ██╔╝
██║ ╚═╝ ██║██║██████╔╝██║    ███████╗    ╚██████╗ ╚████╔╝ 
╚═╝     ╚═╝╚═╝╚═════╝ ╚═╝    ╚══════╝     ╚═════╝  ╚═══╝  

This DIY MIDI-to-CV controller allows you to automatically tune voltage-to-frequencies and only has three components (and no PCBs!). Other solutions - like the MIDI-IF kit or Arduino-based midi2cv - require extensive soldering, dozens of components, and require manual tuning.

I use this script to control the Korg Monotron Delay via MIDI but it might work with other CV instruments. More info and tutorial for using with the Monotron: schollz.com/monotron.

Demo

Demo of playing

Requirements

Setup Raspberry Pi

Use SSH to get into your Raspberry Pi and install the following prerequisites:

> sudo apt update
> sudo apt install python3 python3-pip python3-numpy portaudio19-dev sox gnuplot ffmpeg
> sudo -H python3 -m pip install loguru click mido python-rtmidi adafruit-circuitpython-mcp4725 termplotlib aubio

Now download the midi2cv.py script:

> wget https://raw.githubusercontent.com/schollz/midi2cv/master/midi2cv.py

Tuning

Attach the MCP4725 to the Raspberry Pi and attach the MCP4725 voltage output to your synthesizer. Now connect an audio cable from your synthesizer to the USB audio adapter on the Raspberry Pi.

Make sure that your synthesizer is outputting as pure a sound as possible. And then run:

> python3 midi2cv.py --tune

The tuning will automatically create a fit to the voltage-frequency data:

                  frequency (hz) vs voltage

  2000 +------------------------------------------------+
  1800 |                                              A |
       |                                           A A  |
  1600 |                                           A    |
  1400 |                                          A     |
       |                                        A       |
  1200 |                                     A A        |
  1000 |                                    A           |
       |                                 AA             |
   800 |                            A AA                |
   600 |                         A A                    |
       |                   AA AA                        |
   400 |             AA AA                              |
   200 |  A AA AA AA                                    |
       | A                                              |
     0 +------------------------------------------------+
      2.6   2.8    3    3.2    3.4   3.6   3.8    4    4.2
                          voltage (v)

After tuning, it will save a calibration that will automatically load the settings for playing.

Playing

First plug in your MIDI devices (if you have) and then just run:

> python3 midi2cv.py --play

That will automatically load the calibration and listen for any MIDI devices.

You don't need to plug in a MIDI device, you can always use the MIDI through port to do sequencing, for example with miti.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].