A modified version of chorder with drums fix
Project description
chorder-py 0.1.2
Fork of chorder with drum fixes.
Installation
chorder-py
is a chord detection and reharmonize tool for .mid
files. You can download chorder-py
using pip:
pip install chorder-py
To check if chorder-py
is successfully installed, type python
in the terminal, and do the following:
>>> from chorder import Chord
>>> Chord()
Chord(root_pc=None, quality=None, bass_pc=None)
Documentation
Chord
The Chord
class is the basic building block for the whole chorder package. A Chord
instance has four attributes, including:
root_pc
- the pitch class of a chord's root note
- is an integer ranging from 0 to 11
quality
, the quality of a chord (the complete list of quality)- the quality of a chord
- is a string
- the complete list of qualities covered in
chorder
can be found atChord.standard_qualities
bass_pc
- the pitch class of a chord's bass note
- is an integer ranging from 0 to 11
scale
- the scale of the chord
- is a list of strings representing the note names of each pitch class from 0 to 11
- if a scale is not specified, a default scale is used, which is in
Chord.default_scale
Chord.__init__(self, args=None, scale=None)
Parameters
args
:None
orstr
ortuple
, optionalNone
: implies constructing an empty chordstr
: a chord symbol, such as'Bbmaj7'
tuple
: a tuple consisting of `(root_pc, quality, bass_pc)
scale
:list
, optional- specify the scale the chord uses
- will use
Chord.default_scale
if left asNone
Chord.root(self)
Returns the root note name of a chord based on the chord's scale.
Chord.bass(self)
Returns the bass note name of a chord based on the chord's scale.
Chord.bass(self)
Returns if any attributes of a chord is None
. This can help filtering empty chords.
Chord.transpose(self, key)
Transposes a chord to C-based relative chord. For example, Chord('Bb7').transpose(3)
should return Chord('G7')
.
Parameters
key
:int
- the pitch class of the key
- ranges from 0 to 11
DeChorder
DeChorder
is a class that consists of static methods related to chord recognition. To utilize this class, the midi information has to be in the form of miditoolkit objects.
Dechorder.get_bass_pc(notes, start=0, end=1e7)
Returns the pitch class of bass note among the notes between the time range of start
and end
.
Parameters
notes
: list- the group of notes
- notes are in the form of
miditoolkit.midi.containers.Note
start
: int- the start tick of the notes to be considered
- set it to
notes[0].start
for now, as this feature will later be updated
end
: int- the end tick of the notes to be considered
- set it to
notes[-1].end
for now, as this feature will later be updated
Dechorder.get_chord_quality(notes, start=0, end=1e7, consider_bass=False)
Returns the chord among the notes between the time range of start
and end
.
Parameters
notes
: list- the group of notes
- notes are in the form of
miditoolkit.midi.containers.Note
start
: int- the start tick of the notes to be considered
- set it to
notes[0].start
for now, as this feature will later be updated
end
: int- the end tick of the notes to be considered
- set it to
notes[-1].end
for now, as this feature will later be updated
consider_bass
: `bool- decreases the likelihood of chords with non-chord tones as bass to be chosen as the answer
Dechorder.dechord(midi_obj, scale=None)
Returns a list of chords by beat.
Parameters
midi_obj
:miditoolkit.midi.parser.MidiFile
- the midi object to extract chord symbols from
scale
:list
- the list of note names for each pitch class
- must be a list of strings
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file chorder-py-1.0.1.tar.gz
.
File metadata
- Download URL: chorder-py-1.0.1.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 839214ac3316a9c2e6dceebdc789a57fff9674e9deee89ac0a9ff4d3d5d84ddc |
|
MD5 | 701a6b77a8eb1226d4b7f49f18ec12dc |
|
BLAKE2b-256 | 4cb0cb39eef317178e791538a8ca510b919c45a67d6842a1df6ded7806da8359 |