An open API service indexing awesome lists of open source software.

https://github.com/pd3v/diatonic

Diatonic transforms for music making.
https://github.com/pd3v/diatonic

c-plus-plus chords chromatic diatonic intervals keys music notes scales

Last synced: 3 months ago
JSON representation

Diatonic transforms for music making.

Awesome Lists containing this project

README

          

# diatonic

You don't need to create lists of vectors/arrays to set pre-definitions for "all" scales, chords and a given tonality chords'; create them dynamically; do it by calling functions.

## Some examples

```
// create scales
auto DSharpMajor = scale(Ds,scale_::major);
auto DSharpPentaMajorOctave4 = scale("ds4",scale_::pentatonicmajor);

// create chords
auto Bminor7 = chord(B,m7);

// create custom chords
auto myChord = {intervalT::t,intervalT::min2,intevalT::d5};
// or shorter version
auto myChord2 = {i::t,i::min2,i::d5};

// 2nd chord inversion
auto Bminor7_2nd = invert(Bminor7,2);

// create all tonality chords (4 notes each chord)
toneT CMajorChords = tone(C,tone_::major);

// transpose tonality chords to the 3rd octave
toneT CMajorChords3 = transpose(CMajorChords,3);

// get a tonality's Dominant chord
chordT GMajor7minorChord = CMajorChords3.at(dominant);

// Write a melodic phrase where "x" (midi 127) is consired silence. Returns a vector of midi notes
phraseT aMelody = phrasing({"c1","c2","x","c3"});

```

## Build

**In *diatonic*'s root directory**

mkdir build
cd build
cmake .
make