All Projects → lukemcraig → NegativeHarmonizer

lukemcraig / NegativeHarmonizer

Licence: other
A python tool to invert the tonality (a.k.a negative harmony) of midi notation

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to NegativeHarmonizer

Mezzo
A Haskell library for typesafe music composition
Stars: ✭ 327 (+1321.74%)
Mutual labels:  midi, music-composition, music-notation
Textbeat
🎹 plaintext music sequencer and midi shell, with vim playback 🥁
Stars: ✭ 274 (+1091.3%)
Mutual labels:  midi, music-composition, music-notation
ziffers
Numbered musical notation for composing algorithmic and generative melodies
Stars: ✭ 53 (+130.43%)
Mutual labels:  music-composition, music-notation, music-theory
musyn
Write music together, in real time.
Stars: ✭ 20 (-13.04%)
Mutual labels:  music-composition, music-notation, music-theory
Miti
miti is a musical instrument textual interface. Basically, its MIDI, but with human-readable text. 🎵
Stars: ✭ 103 (+347.83%)
Mutual labels:  midi, music-composition
Abcjs
javascript for rendering abc music notation
Stars: ✭ 1,141 (+4860.87%)
Mutual labels:  midi, music-notation
Ensembles
A digital arranger workstation powered by FluidSynth
Stars: ✭ 312 (+1256.52%)
Mutual labels:  midi, music-composition
midica
A Music programming language. Translates source code into MIDI. Includes a player. Supports MIDI-Karaoke. Includes a MIDI analyzer.
Stars: ✭ 57 (+147.83%)
Mutual labels:  midi, music-composition
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+2508.7%)
Mutual labels:  midi, music-composition
arpeggio
A chord naming app for guitar written in React.
Stars: ✭ 49 (+113.04%)
Mutual labels:  harmony, music-theory
chords
Text-based chord progression editor
Stars: ✭ 25 (+8.7%)
Mutual labels:  music-composition, music-theory
Awesome Music
Awesome Music Projects
Stars: ✭ 925 (+3921.74%)
Mutual labels:  midi, music-notation
Giada
Your Hardcore Loop Machine.
Stars: ✭ 903 (+3826.09%)
Mutual labels:  midi, music-composition
Helio Workstation
One music sequencer for all major platforms, desktop and mobile
Stars: ✭ 2,257 (+9713.04%)
Mutual labels:  midi, music-composition
Zrythm
a highly automated and intuitive digital audio workstation - official mirror
Stars: ✭ 703 (+2956.52%)
Mutual labels:  midi, music-composition
Miles
Swift Playground that creates jazz improvisations (WWDC 2018)
Stars: ✭ 31 (+34.78%)
Mutual labels:  midi, music-theory
purescript-school-of-music
Port of the Haskell School of Music to Purescript
Stars: ✭ 21 (-8.7%)
Mutual labels:  midi, music-notation
scamp
a Suite in Python for Computer-Assisted Music [MIRROR of https://git.sr.ht/~marcevanstein/scamp]
Stars: ✭ 55 (+139.13%)
Mutual labels:  music-composition, music-notation
melrose
interactive programming of melodies, producing MIDI
Stars: ✭ 130 (+465.22%)
Mutual labels:  midi, music-composition
react-orchestra
A declarative toolbox to build interactive musical instruments on web and mobile.
Stars: ✭ 72 (+213.04%)
Mutual labels:  music-composition, music-theory

NegativeHarmonizer

NegativeHarmonizer is a simple python program to invert the tonality of a music file. This works very well for compositions like Bach's fugues. If you try it on popular music, you'll probably need to transpose the instruments back into their proper ranges, as the bass will be on the top. Beyond the fun of negative-harmonizing songs you know, this is a useful tool for composers and producers to add variations to their work.

Dependencies:

  • Python 3
  • mido
    • pip install mido

Usage:

python NegativeHarmonizer.py midifile.mid --tonic 60 --ignore 9 --adjust-octaves

This example command

  1. creates a new midifile named midifile_negative.mid
  2. flipped over middle C (midi note number 60)
  3. channel 9 is unaltered because we don't want to change the drums.
  4. the tracks are transposed to be close to their original octave, so the bass guitar will stay in the bass range etc.

You can hear more examples of what can be done with NegativeHarmonizer on my YouTube channel (with some neat Tonnetz Lattice visualizations):

Beethoven, Symphony 5, 1st movement: Negative Harmony

Some background on Negative Harmony from Jacob Collier: https://youtu.be/DnBr070vcNE?t=1m31s

Real-time MIDI plug-in for DAWs

You can find the plug-in version here: https://github.com/lukemcraig/negative-harmonizer-plugin

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].