From 86812beda8d9c3bae4a32db98498d86be8dcaec9 Mon Sep 17 00:00:00 2001 From: samg7b5 <51542511+samg7b5@users.noreply.github.com> Date: Sun, 16 Jun 2019 13:37:24 +0100 Subject: [PATCH 1/2] Fix imports Update import and raise syntax for Python 3.x (now supports mingus.core.*) --- mingus/core/chords.py | 19 +++++++++---------- mingus/core/intervals.py | 4 ++-- mingus/core/keys.py | 4 ++-- mingus/core/notes.py | 2 +- mingus/core/progressions.py | 6 +++--- mingus/core/scales.py | 8 ++++---- 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/mingus/core/chords.py b/mingus/core/chords.py index 65d7b75c..01847b00 100644 --- a/mingus/core/chords.py +++ b/mingus/core/chords.py @@ -96,10 +96,10 @@ * from_shorthand - Generates chords from shorthand (eg. 'Cmin7') """ -import intervals -import notes -import keys -from mt_exceptions import NoteFormatError, FormatError +import mingus.core.intervals as intervals +import mingus.core.notes as notes +import mingus.core.keys as keys +from mingus.core.mt_exceptions import NoteFormatError, FormatError _triads_cache = {} @@ -766,8 +766,8 @@ def from_shorthand(shorthand_string, slash=None): # Get the note name if not notes.is_valid_note(shorthand_string[0]): - raise NoteFormatError, "Unrecognised note '%s' in chord '%s'"\ - % (shorthand_string[0], shorthand_string) + raise NoteFormatError("Unrecognised note '%s' in chord '%s'"\ + % (shorthand_string[0], shorthand_string)) name = shorthand_string[0] # Look for accidentals @@ -808,9 +808,8 @@ def from_shorthand(shorthand_string, slash=None): if notes.is_valid_note(slash): res = [slash] + res else: - raise NoteFormatError, \ - "Unrecognised note '%s' in slash chord'%s'" % (slash, - slash + shorthand_string) + raise NoteFormatError("Unrecognised note '%s' in slash chord'%s'" % (slash, + slash + shorthand_string)) elif type(slash) == list: # Add polychords r = slash @@ -820,7 +819,7 @@ def from_shorthand(shorthand_string, slash=None): return r return res else: - raise FormatError, 'Unknown shorthand: %s' % shorthand_string + raise FormatError('Unknown shorthand: %s' % shorthand_string) def determine(chord, shorthand=False, no_inversions=False, no_polychords=False): """Name a chord. diff --git a/mingus/core/intervals.py b/mingus/core/intervals.py index 2d5bb536..7cedfc6c 100644 --- a/mingus/core/intervals.py +++ b/mingus/core/intervals.py @@ -31,8 +31,8 @@ determine, invert, is_consonant and is_dissonant. """ -import notes -import keys +import mingus.core.notes as notes +import mingus.core.keys as keys def interval(key, start_note, interval): """Return the note found at the interval starting from start_note in the diff --git a/mingus/core/keys.py b/mingus/core/keys.py index 30a679dc..db98d4d9 100644 --- a/mingus/core/keys.py +++ b/mingus/core/keys.py @@ -22,8 +22,8 @@ This module provides a simple interface for dealing with keys. """ -from mt_exceptions import FormatError, NoteFormatError, RangeError -import notes +from mingus.core.mt_exceptions import FormatError, NoteFormatError, RangeError +import mingus.core.notes as notes import operator from itertools import cycle, islice diff --git a/mingus/core/notes.py b/mingus/core/notes.py index ab76326b..062c970c 100644 --- a/mingus/core/notes.py +++ b/mingus/core/notes.py @@ -26,7 +26,7 @@ enables simple calculations. """ -from mt_exceptions import NoteFormatError, RangeError, FormatError +from mingus.core.mt_exceptions import NoteFormatError, RangeError, FormatError _note_dict = { 'C': 0, diff --git a/mingus/core/progressions.py b/mingus/core/progressions.py index 5e80371b..d6a9cc6e 100644 --- a/mingus/core/progressions.py +++ b/mingus/core/progressions.py @@ -29,9 +29,9 @@ vice versa. """ -import notes -import chords -import intervals +import mingus.core.notes as notes +import mingus.core.chords as chords +import mingus.core.intervals as intervals numerals = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII'] numeral_intervals = [0, 2, 4, 5, 7, 9, 11] diff --git a/mingus/core/scales.py b/mingus/core/scales.py index fb4c48a4..3f8f9740 100644 --- a/mingus/core/scales.py +++ b/mingus/core/scales.py @@ -52,10 +52,10 @@ * Octatonic(note) """ -import intervals -from notes import augment, diminish, reduce_accidentals -from keys import keys, get_notes -from mt_exceptions import NoteFormatError, FormatError, RangeError +import mingus.core.intervals as intervals +from mingus.core.notes import augment, diminish, reduce_accidentals +from mingus.core.keys import keys, get_notes +from mingus.core.mt_exceptions import NoteFormatError, FormatError, RangeError def determine(notes): """Determine the scales containing the notes. From 269211de58cca436b06e8a9a7e936c6e9289a838 Mon Sep 17 00:00:00 2001 From: samg7b5 <51542511+samg7b5@users.noreply.github.com> Date: Fri, 8 May 2020 10:52:30 +0100 Subject: [PATCH 2/2] Python 3 fixes, jazz updates Changed conventions to Python 3 e.g. imports, line breaks, printing, xrange Fixed some type issues Added some jazz chord support (chord types, lower case as minor convention (moving away from mingus' existing diatonic/classical approach)) Added jazz scales: minor modes, altered scales, and some extras Updated midi support to work with binary strings (Python 3) and fixed some event handling (note-off) --- mingus/containers/__init__.py | 14 +- mingus/containers/bar.py | 20 +- mingus/containers/composition.py | 2 +- mingus/containers/instrument.py | 2 +- mingus/containers/note.py | 69 ++- mingus/containers/note_container.py | 6 +- mingus/containers/suite.py | 2 +- mingus/containers/track.py | 9 +- mingus/core/chords.py | 126 ++++- mingus/core/harmony.py | 53 ++ mingus/core/intervals.py | 8 +- mingus/core/keys.py | 12 +- mingus/core/notes.py | 2 +- mingus/core/progressions.py | 46 +- mingus/core/scales.py | 743 +++++++++++++++++++++++++++- mingus/extra/__init__.py | 4 +- mingus/extra/fft.py | 3 + mingus/extra/lilypond.py | 152 ++++-- mingus/extra/musicxml.py | 4 +- mingus/extra/tunings.py | 4 +- mingus/midi/__init__.py | 7 +- mingus/midi/fluidsynth.py | 2 +- mingus/midi/libfluidsynth-1.dll | Bin 0 -> 2996691 bytes mingus/midi/libfluidsynth-2.dll | Bin 0 -> 2996691 bytes mingus/midi/midi_events.py | 22 +- mingus/midi/midi_file_in.py | 83 ++-- mingus/midi/midi_file_out.py | 24 +- mingus/midi/midi_track.py | 60 ++- mingus/midi/pyfluidsynth.py | 2 +- mingus/midi/sequencer.py | 4 +- 30 files changed, 1265 insertions(+), 220 deletions(-) create mode 100644 mingus/core/harmony.py create mode 100644 mingus/midi/libfluidsynth-1.dll create mode 100644 mingus/midi/libfluidsynth-2.dll diff --git a/mingus/containers/__init__.py b/mingus/containers/__init__.py index 0fe3908c..699c7cb1 100644 --- a/mingus/containers/__init__.py +++ b/mingus/containers/__init__.py @@ -17,10 +17,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from note import Note -from note_container import NoteContainer -from bar import Bar -from track import Track -from composition import Composition -from suite import Suite -from instrument import Instrument, Piano, Guitar, MidiInstrument +from mingus.containers.note import Note +from mingus.containers.note_container import NoteContainer +from mingus.containers.bar import Bar +from mingus.containers.track import Track +from mingus.containers.composition import Composition +from mingus.containers.suite import Suite +from mingus.containers.instrument import Instrument, Piano, Guitar, MidiInstrument diff --git a/mingus/containers/bar.py b/mingus/containers/bar.py index 3557b502..462666be 100644 --- a/mingus/containers/bar.py +++ b/mingus/containers/bar.py @@ -19,9 +19,9 @@ from mingus.core import meter as _meter from mingus.core import progressions, keys -from note_container import NoteContainer -from note import Note -from mt_exceptions import MeterFormatError +from mingus.containers.note_container import NoteContainer +from mingus.containers.note import Note +from mingus.containers.mt_exceptions import MeterFormatError class Bar(object): """A bar object. @@ -45,12 +45,22 @@ def __init__(self, key='C', meter=(4, 4)): self.set_meter(meter) self.empty() + #Convenient Python operator overloading + + def __iadd__(self, other): + self.temporal_notes.append(other) + return self + def empty(self): """Empty the Bar, remove all the NoteContainers.""" + self.temporal_notes = [] self.bar = [] self.current_beat = 0.0 return self.bar + def set_chord_notes(self, chords): + self.chords = chords + def set_meter(self, meter): """Set the meter of this bar. @@ -71,6 +81,10 @@ def set_meter(self, meter): "understood representation of a meter. " "Expecting a tuple." % meter) + def extend(self, temporal_notes): + for note in temporal_notes: + self.temporal_notes.append(note) + def place_notes(self, notes, duration): """Place the notes on the current_beat. diff --git a/mingus/containers/composition.py b/mingus/containers/composition.py index 310320fb..3cbad1bd 100644 --- a/mingus/containers/composition.py +++ b/mingus/containers/composition.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from mt_exceptions import UnexpectedObjectError +from mingus.containers.mt_exceptions import UnexpectedObjectError class Composition(object): diff --git a/mingus/containers/instrument.py b/mingus/containers/instrument.py index 482ba7ad..c0ff7ade 100644 --- a/mingus/containers/instrument.py +++ b/mingus/containers/instrument.py @@ -18,7 +18,7 @@ # along with this program. If not, see . from mingus.containers.note import Note -from mt_exceptions import UnexpectedObjectError +from mingus.containers.mt_exceptions import UnexpectedObjectError class Instrument(object): diff --git a/mingus/containers/note.py b/mingus/containers/note.py index f882fbf5..90b6d997 100644 --- a/mingus/containers/note.py +++ b/mingus/containers/note.py @@ -18,7 +18,7 @@ # along with this program. If not, see . from mingus.core import notes, intervals -from mt_exceptions import NoteFormatError +from mingus.containers.mt_exceptions import NoteFormatError from math import log class Note(object): @@ -44,7 +44,8 @@ class Note(object): channel = 1 velocity = 64 - def __init__(self, name='C', octave=4, dynamics={}): + def __init__(self, name='C', octave=4, dynamics=None): + dynamics = dynamics if dynamics else {} if type(name) == str: self.set_note(name, octave, dynamics) elif hasattr(name, 'name'): @@ -60,13 +61,13 @@ def __init__(self, name='C', octave=4, dynamics={}): raise NoteFormatError("Don't know what to do with name object: " "'%s'" % name) - + def set_channel(self, channel): self.channel = channel - + def set_velocity(self, velocity): self.velocity = velocity - + def set_note(self, name='C', octave=4, dynamics={}): """Set the note to name in octave with dynamics. @@ -250,7 +251,7 @@ def from_shorthand(self, shorthand): def __int__(self): """Return the current octave multiplied by twelve and add notes.note_to_int to it. - + This means a C-0 returns 0, C-1 returns 12, etc. This method allows you to use int() on Notes. """ @@ -260,7 +261,7 @@ def __int__(self): res += 1 elif n == 'b': res -= 1 - return res + return int(res) def __lt__(self, other): """Enable the comparing operators on Notes (>, <, \ ==, !=, >= and <=). @@ -281,6 +282,11 @@ def __eq__(self, other): """Compare Notes for equality by comparing their note values.""" if other is None: return False + + # added as was getting erros from play_Bar.set_key + if type(other) == str: + other = Note(other) + return int(self) == int(other) def __ne__(self, other): @@ -299,3 +305,52 @@ def __repr__(self): """Return a helpful representation for printing Note classes.""" return "'%s-%d'" % (self.name, self.octave) +class TemporalNote(Note): + """ + >>> from mingus.extra.lilypond import from_Note + >>> note = TemporalNote(name='C', octave=2) + >>> repr(note) + "'C-2'" + >>> from_Note(note, standalone=False) + 'c,4' + """ + def __init__(self, name='C', octave=4, dynamics=None, duration_denominator=4): + super(TemporalNote, self).__init__(name=name, octave=octave, dynamics=dynamics) + self.duration_denominator = duration_denominator + +def temporal_note_factory(duration_denominator=None): + def func_composer(func): + def inner_fn(note_name, octave=4): + if isinstance(note_name, (list, set)): + return [TemporalNote(note, + octave=octave, + duration_denominator=duration_denominator) for note in note_name] + else: + return TemporalNote(note_name, octave=octave, duration_denominator=duration_denominator) + return inner_fn + return func_composer + +@temporal_note_factory(1) +def WholeNoteFactory(note_name, octave=4): + pass + +@temporal_note_factory(2) +def HalfNoteFactory(note_name, octave=4): + pass + +@temporal_note_factory(4) +def QuarterNoteFactory(note_name, octave=4): + pass + +@temporal_note_factory(8) +def EightNoteFactory(note_name, octave=4): + pass + +@temporal_note_factory(8) +def SixteenthNoteFactory(note_name, octave=16): + pass + + +if __name__ == '__main__': + import doctest + doctest.testmod() diff --git a/mingus/containers/note_container.py b/mingus/containers/note_container.py index 595fca93..c79c744b 100644 --- a/mingus/containers/note_container.py +++ b/mingus/containers/note_container.py @@ -17,9 +17,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from note import Note +from mingus.containers.note import Note from mingus.core import intervals, chords, progressions -from mt_exceptions import UnexpectedObjectError +from mingus.containers.mt_exceptions import UnexpectedObjectError class NoteContainer(object): @@ -242,7 +242,7 @@ def remove_notes(self, notes): elif hasattr(notes, 'name'): return self.remove_note(notes) else: - map(lambda x: self.remove_note(x), notes) + list(map(lambda x: self.remove_note(x), notes)) return self.notes def remove_duplicate_notes(self): diff --git a/mingus/containers/suite.py b/mingus/containers/suite.py index 1d722b55..da67cd91 100644 --- a/mingus/containers/suite.py +++ b/mingus/containers/suite.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from mt_exceptions import UnexpectedObjectError +from mingus.containers.mt_exceptions import UnexpectedObjectError class Suite(object): diff --git a/mingus/containers/track.py b/mingus/containers/track.py index 4e4a1036..0fea0203 100644 --- a/mingus/containers/track.py +++ b/mingus/containers/track.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from mt_exceptions import InstrumentRangeError +from mingus.containers.mt_exceptions import InstrumentRangeError from mingus.containers.note_container import NoteContainer from mingus.containers.bar import Bar import mingus.core.value as value @@ -62,9 +62,8 @@ def add_notes(self, note, duration=None): """ if self.instrument != None: if not self.instrument.can_play_notes(note): - raise InstrumentRangeError, \ - "Note '%s' is not in range of the instrument (%s)" % (note, - self.instrument) + raise InstrumentRangeError("Note '{}' is not in range of the instrument ({})".format(note, + self.instrument)) if duration == None: duration = 4 @@ -84,7 +83,7 @@ def get_notes(self): track.""" for bar in self.bars: for beat, duration, notes in bar: - yield beat, duration, notes + yield beat, duration, notes def from_chords(self, chords, duration=1): """Add chords to the Track. diff --git a/mingus/core/chords.py b/mingus/core/chords.py index 01847b00..8300dde0 100644 --- a/mingus/core/chords.py +++ b/mingus/core/chords.py @@ -54,6 +54,7 @@ * dominant_ninth * Elevenths * minor_eleventh + * minor_eleventh_flat_five (NEW) * eleventh * Thirteenths * minor_thirteenth @@ -96,9 +97,9 @@ * from_shorthand - Generates chords from shorthand (eg. 'Cmin7') """ -import mingus.core.intervals as intervals -import mingus.core.notes as notes -import mingus.core.keys as keys +from mingus.core import intervals +from mingus.core import notes +from mingus.core import keys from mingus.core.mt_exceptions import NoteFormatError, FormatError _triads_cache = {} @@ -134,6 +135,7 @@ 'dom7': ' dominant seventh', '7': ' dominant seventh', 'm7b5': ' half diminished seventh', + 'm11b5': ' minor eleven flat five', 'dim7': ' diminished seventh', 'm/M7': ' minor/major seventh', 'mM7': ' minor/major seventh', @@ -162,6 +164,27 @@ '5': ' perfect fifth', } +def chord_note_and_family(chord_symbol): + """ + >>> chord_note_and_family("FM6") + ('F', 'M6') + >>> chord_note_and_family("Gbsus4") + ('Gb', 'sus4') + """ + from mingus.core.notes import reduce_accidentals + + + + chord_note=[chord_symbol[0]] + if '#' in chord_symbol or 'b' in chord_symbol: + for n in chord_symbol[1:]: + if n == '#' or n == 'b': + chord_note.append(n) + else: + break + + return ''.join(chord_note), chord_symbol[len(chord_note):] + def triad(note, key): """Return the triad on note in key as a list. @@ -178,9 +201,9 @@ def triads(key): Implemented using a cache. """ - if _triads_cache.has_key(key): + if key in _triads_cache: return _triads_cache[key] - res = map(lambda x: triad(x, key), keys.get_notes(key)) + res = list(map(lambda x: triad(x, key), keys.get_notes(key))) _triads_cache[key] = res return res @@ -221,6 +244,9 @@ def augmented_triad(note): return [note, intervals.major_third(note), notes.augment(intervals.major_fifth(note))] +def create_dominant_seventh_symbol(note): + return determine_seventh(dominant_seventh(note), shorthand=True)[0] + def seventh(note, key): """Return the seventh chord on note in key. @@ -232,9 +258,9 @@ def seventh(note, key): def sevenths(key): """Return all the sevenths chords in key in a list.""" - if _sevenths_cache.has_key(key): + if key in _sevenths_cache: return _sevenths_cache[key] - res = map(lambda x: seventh(x, key), keys.get_notes(key)) + res = list(map(lambda x: seventh(x, key), keys.get_notes(key))) _sevenths_cache[key] = res return res @@ -283,6 +309,13 @@ def minor_seventh_flat_five(note): """ return half_diminished_seventh(note) +def minor_eleventh_flat_five(note): + """Build a minor eleven flat five chord on note - new + """ + print('nb. this function (in mingus.core.chords) might need adjusting octave 4th -> 11th') + return half_diminished_seventh(note) + [intervals.major_fourth(note)] + + def diminished_seventh(note): """Build a diminished seventh chord on note. @@ -511,6 +544,14 @@ def lydian_dominant_seventh(note): """ return (dominant_seventh(note) + [notes.augment(intervals.perfect_fourth(note))]) + +def lydian_major_seventh(note): + """Build the lydian major seventh (M7#11) on note. + + """ + return (major_seventh(note) + + [notes.augment(intervals.perfect_fourth(note))]) + def hendrix_chord(note): """Build the famous Hendrix chord (7b12). @@ -621,7 +662,7 @@ def I7(key): return tonic7(key) def ii(key): - return supertonic(key) + return supertonic(key) # note that progressions.to_chords['ii'] will come and pick this up (major 2nd chord due to mingus' classical approach). Instead, that fn has been re-written to try to except lower-casing and add a minor suffix def II(key): return supertonic(key) @@ -722,7 +763,7 @@ def from_shorthand(shorthand_string, slash=None): Recognised abbreviations: the letters "m" and "M" in the following abbreviations can always be substituted by respectively "min", "mi" or "-" and "maj" or "ma". - + Example: >>> from_shorthand('Amin7') == from_shorthand('Am7') True @@ -762,12 +803,13 @@ def from_shorthand(shorthand_string, slash=None): shorthand_string = shorthand_string.replace('mi', 'm') shorthand_string = shorthand_string.replace('-', 'm') shorthand_string = shorthand_string.replace('maj', 'M') + shorthand_string = shorthand_string.replace('Maj', 'M') shorthand_string = shorthand_string.replace('ma', 'M') + shorthand_string = shorthand_string.replace('o', 'dim').replace('ddimm','dom') # Get the note name if not notes.is_valid_note(shorthand_string[0]): - raise NoteFormatError("Unrecognised note '%s' in chord '%s'"\ - % (shorthand_string[0], shorthand_string)) + raise NoteFormatError("Unrecognised note '{}' in chord '{}'".format(shorthand_string[0], shorthand_string)) name = shorthand_string[0] # Look for accidentals @@ -800,7 +842,7 @@ def from_shorthand(shorthand_string, slash=None): shorthand_start = len(name) short_chord = shorthand_string[shorthand_start:] - if chord_shorthand.has_key(short_chord): + if short_chord in chord_shorthand: res = chord_shorthand[short_chord](name) if slash != None: # Add slashed chords @@ -808,8 +850,8 @@ def from_shorthand(shorthand_string, slash=None): if notes.is_valid_note(slash): res = [slash] + res else: - raise NoteFormatError("Unrecognised note '%s' in slash chord'%s'" % (slash, - slash + shorthand_string)) + raise NoteFormatError("Unrecognised note '{}' in slash chord'{}'".format(slash, + slash + shorthand_string)) elif type(slash) == list: # Add polychords r = slash @@ -819,7 +861,7 @@ def from_shorthand(shorthand_string, slash=None): return r return res else: - raise FormatError('Unknown shorthand: %s' % shorthand_string) + raise FormatError('Unknown shorthand: {}'.format(shorthand_string)) def determine(chord, shorthand=False, no_inversions=False, no_polychords=False): """Name a chord. @@ -1195,7 +1237,7 @@ def int_desc(tries): def determine_polychords(chord, shorthand=False): """Determine the polychords in chord. - + This function can handle anything from polychords based on two triads to 6 note extended chords. """ @@ -1234,6 +1276,8 @@ def determine_polychords(chord, shorthand=False): chord_shorthand = { # Triads Augmented chords Suspended chords Sevenths Sixths # Ninths Elevenths Thirteenths Altered Chords Special 'm': minor_triad, + '-': minor_triad, + ' min': minor_triad, 'M': major_triad, '': major_triad, 'dim': diminished_triad, @@ -1256,6 +1300,7 @@ def determine_polychords(chord, shorthand=False): '7': dominant_seventh, 'dom7': dominant_seventh, 'm7b5': minor_seventh_flat_five, + 'm11b5': minor_eleventh_flat_five, 'dim7': diminished_seventh, 'm/M7': minor_major_seventh, 'mM7': minor_major_seventh, @@ -1272,6 +1317,7 @@ def determine_polychords(chord, shorthand=False): 'M9': major_ninth, 'm9': minor_ninth, '7#11': lydian_dominant_seventh, + 'M7(#11)': lydian_major_seventh, 'm11': minor_eleventh, 'M13': major_thirteenth, 'm13': minor_thirteenth, @@ -1281,3 +1327,51 @@ def determine_polychords(chord, shorthand=False): '7b12': hendrix_chord, '5': lambda x: [x, intervals.perfect_fifth(x)] } + +class TemporalChord(object): + def __init__(self, name, octave=3, dynamics=None, duration_denominator=4): + self.name = name + self.octave = octave + self.dynamics = dynamics + self.duration_denominator = duration_denominator + self.root_note, self.family = chord_note_and_family(name) + + def get_temporal_root(self): + from mingus.containers.note import TemporalNote + return TemporalNote(self.root_note, octave=self.octave) + +def temporal_note_chord_factory(duration_denominator=None): + def func_composer(func): + def inner_fn(chord, octave=4): + if isinstance(chord, (list, set)): + return [TemporalChord(note, + octave=octave, + duration_denominator=duration_denominator) for note in chord] + else: + return TemporalChord(chord, octave=octave, duration_denominator=duration_denominator) + return inner_fn + return func_composer + +@temporal_note_chord_factory(1) +def WholNoteChordFactory(note_name, octave=4): + pass + +@temporal_note_chord_factory(2) +def HalfNoteChordFactory(note_name, octave=4): + pass + +@temporal_note_chord_factory(4) +def QuarterNoteChordFactory(note_name, octave=4): + pass + +@temporal_note_chord_factory(8) +def EightNoteChordFactory(note_name, octave=4): + pass + +@temporal_note_chord_factory(8) +def SixteenthNoteChordFactory(note_name, octave=16): + pass + +if __name__ == '__main__': + import doctest + doctest.testmod() diff --git a/mingus/core/harmony.py b/mingus/core/harmony.py new file mode 100644 index 00000000..2af7cb6a --- /dev/null +++ b/mingus/core/harmony.py @@ -0,0 +1,53 @@ +from mingus.core import chords +from mingus.core.progressions import determine + +CIRCLE_OF_5THS = ['C', 'G', 'D', 'A', 'E', 'B', 'Gb', 'Db', 'Ab', 'Eb', 'Bb', 'F'] + +MODE_CHORD_FUNCTIONS = [chords.I7, chords.ii7, chords.iii7, chords.IV7, chords.V7, chords.vi7, chords.VII7] + +MODE_CHORD_TYPE = { + 'I': 'M7', + 'ii': 'm7', + 'iii': 'm7', + 'IV': 'M7', + 'V': '7', + 'vi': 'm7', + 'vii': 'm7b5' +} + +def analyze_7th_chord(chord): + """ + + :param chord: + :return: chord_notes, chord_type_full, chord_modes + + Example: + >>> chord_notes, chord_type_full, results = analyze_chord("G7") + >>> for chord_degree, key, harmonic_func_full in results: + ... print("{} (comprising {}) is a {} chord ({}) of the key of {}".format(chord_type_full,', '.join(chord_notes), + ... chord_degree, harmonic_func_full, + ... key)) + G dominant seventh (comprising G, B, D, F) is a V chord (dominant seventh) of the key of C + + """ + chord_notes = chords.from_shorthand(chord) + chord_type_full = chords.determine_seventh(chord_notes)[0] + chord_type_short = chords.determine_seventh(chord_notes, shorthand=True)[0] + type_key = 'M7' if chord_type_short[-2:] == 'M7' else ( + 'm7' if chord_type_short[-2:] == 'm7' else ('m7b5' if chord_type_short[-2:] == 'm7b5' else '7') + ) + + chord_modes = [] + for key in CIRCLE_OF_5THS: + harmonic_func = determine(chord_notes, key, shorthand=True)[0] + harmonic_func_full = determine(chord_notes, key, shorthand=False)[0] + chord_degree = harmonic_func[:-1] + if chord_degree in MODE_CHORD_TYPE: + func_chord_type = MODE_CHORD_TYPE[chord_degree] + if func_chord_type == type_key: + chord_modes.append((chord_degree, key, harmonic_func_full)) + return chord_notes, chord_type_full, chord_modes + +if __name__ == '__main__': + import doctest + doctest.testmod() diff --git a/mingus/core/intervals.py b/mingus/core/intervals.py index 7cedfc6c..d9300844 100644 --- a/mingus/core/intervals.py +++ b/mingus/core/intervals.py @@ -31,8 +31,8 @@ determine, invert, is_consonant and is_dissonant. """ -import mingus.core.notes as notes -import mingus.core.keys as keys +from mingus.core import notes +from mingus.core import keys def interval(key, start_note, interval): """Return the note found at the interval starting from start_note in the @@ -213,7 +213,7 @@ def get_interval(note, interval, key='C'): This will produce mostly theoretical sound results, but you should use the minor and major functions to work around the corner cases. """ - intervals = map(lambda x: (notes.note_to_int(key) + x) % 12, [ + intervals = list(map(lambda x: (notes.note_to_int(key) + x) % 12, [ 0, 2, 4, @@ -221,7 +221,7 @@ def get_interval(note, interval, key='C'): 7, 9, 11, - ]) + ])) key_notes = keys.get_notes(key) for x in key_notes: if x[0] == note[0]: diff --git a/mingus/core/keys.py b/mingus/core/keys.py index db98d4d9..67fdbd90 100644 --- a/mingus/core/keys.py +++ b/mingus/core/keys.py @@ -23,7 +23,7 @@ """ from mingus.core.mt_exceptions import FormatError, NoteFormatError, RangeError -import mingus.core.notes as notes +from mingus.core import notes import operator from itertools import cycle, islice @@ -106,15 +106,15 @@ def get_notes(key='C'): >>> get_notes('c') ['C', 'D', 'Eb', 'F', 'G', 'Ab', 'Bb'] """ - if _key_cache.has_key(key): + if key in _key_cache: return _key_cache[key] if not is_valid_key(key): raise NoteFormatError("unrecognized format for key '%s'" % key) result = [] # Calculate notes - altered_notes = map(operator.itemgetter(0), - get_key_signature_accidentals(key)) + altered_notes = list(map(operator.itemgetter(0), + get_key_signature_accidentals(key))) if get_key_signature(key) < 0: symbol = 'b' @@ -128,7 +128,7 @@ def get_notes(key='C'): result.append('%s%s' % (note, symbol)) else: result.append(note) - + # Save result to cache _key_cache[key] = result return result @@ -168,7 +168,7 @@ def __init__(self, key='C'): self.mode = 'minor' else: self.mode = 'major' - + try: symbol = self.key[1] if symbol == '#': diff --git a/mingus/core/notes.py b/mingus/core/notes.py index 062c970c..b0e8be8c 100644 --- a/mingus/core/notes.py +++ b/mingus/core/notes.py @@ -72,7 +72,7 @@ def is_enharmonic(note1, note2): def is_valid_note(note): """Return True if note is in a recognised format. False if not.""" - if not _note_dict.has_key(note[0]): + if note[0] not in _note_dict: return False for post in note[1:]: if post != 'b' and post != '#': diff --git a/mingus/core/progressions.py b/mingus/core/progressions.py index d6a9cc6e..b64d94a6 100644 --- a/mingus/core/progressions.py +++ b/mingus/core/progressions.py @@ -29,36 +29,49 @@ vice versa. """ -import mingus.core.notes as notes -import mingus.core.chords as chords -import mingus.core.intervals as intervals +from mingus.core import notes +from mingus.core import chords +from mingus.core import intervals +from mingus.core.keys import get_notes numerals = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII'] numeral_intervals = [0, 2, 4, 5, 7, 9, 11] +def twelve_bar_blues_chord_progression(key): + from mingus.core.harmony import MODE_CHORD_FUNCTIONS + key_notes = get_notes(key) + aChord = chords.create_dominant_seventh_symbol(key) + bChord = chords.create_dominant_seventh_symbol(key_notes[3]) + cChord = chords.determine_seventh(MODE_CHORD_FUNCTIONS[1](key), shorthand=True)[0] + dChord = chords.determine_seventh(MODE_CHORD_FUNCTIONS[4](key), shorthand=True)[0] + return [aChord, bChord, aChord, aChord, + bChord, bChord, aChord, aChord, + cChord, dChord, aChord, aChord] + def to_chords(progression, key='C'): """Convert a list of chord functions or a string to a list of chords. Examples: >>> to_chords(['I', 'V7']) - [['C', 'E', 'G'], ['G', 'B', 'D', 'F']] + [['C', 'E', 'G'], ['G', 'B', 'D', 'F']] >>> to_chords('I7') - [['C', 'E', 'G', 'B']] + [['C', 'E', 'G', 'B']] // NOTE: this is Mingus' 'diatonic parsing' where in jazz this would mean I7 = Idom7 -> C E G Bb Any number of accidentals can be used as prefix to augment or diminish; for example: bIV or #I. - + All the chord abbreviations in the chord module can be used as suffixes; for example: Im7, IVdim7, etc. - + You can combine prefixes and suffixes to manage complex progressions: #vii7, #iidim7, iii7, etc. - + Using 7 as suffix is ambiguous, since it is classicly used to denote the seventh chord when talking about progressions instead of just the dominant seventh chord. We have taken the classic route; I7 will get you a major seventh chord. If you specifically want a dominanth seventh, use Idom7. """ + #print('Warning: mingus.core.progressions.to_chords() is unsafe without using sw.parse_progression()') if type(progression) == str: progression = [progression] result = [] @@ -68,11 +81,11 @@ def to_chords(progression, key='C'): # There is no roman numeral parsing, just a simple check. Sorry to # disappoint. warning Should throw exception - if roman_numeral not in numerals: + if roman_numeral.upper() not in numerals: return [] # These suffixes don't need any post processing - if suffix == '7' or suffix == '': + if suffix == '7' or suffix == '':#or 'm' in suffix: roman_numeral += suffix # ahh Python. Everything is a dict. @@ -82,10 +95,10 @@ def to_chords(progression, key='C'): r = chords.chord_shorthand[suffix](r[0]) while acc < 0: - r = map(notes.diminish, r) + r = list(map(notes.diminish, r)) acc += 1 while acc > 0: - r = map(notes.augment, r) + r = list(map(notes.augment, r)) acc -= 1 result.append(r) return result @@ -218,17 +231,20 @@ def parse_string(progression): roman_numeral = '' suffix = '' i = 0 - for c in progression: + for c in progression: # c as in character, not chord if c == '#': acc += 1 elif c == 'b': acc -= 1 elif c.upper() == 'I' or c.upper() == 'V': - roman_numeral += c.upper() + roman_numeral += c.upper() else: break i += 1 - suffix = progression[i:] + suffix = progression[i:].replace('I', 'i') # added lower as was getting a KeyError: 'dIm7' but don't want to break e.g. M7/m7 with .lower() + if progression[0] == progression[0].lower() and progression[0].lower() != 'b': # if roman numeral is lower-case in the original input: + print(f'progressions.parse_string() is adding m suffix to chord: {progression}') + suffix = 'm'+suffix return (roman_numeral, acc, suffix) def tuple_to_string(prog_tuple): diff --git a/mingus/core/scales.py b/mingus/core/scales.py index 3f8f9740..9d461cfe 100644 --- a/mingus/core/scales.py +++ b/mingus/core/scales.py @@ -26,7 +26,7 @@ The diatonic scales * Diatonic(note, semitones) -Ancient scales +Ancient scales (modes) * Ionian(note) * Dorian(note) * Phrygian(note) @@ -34,6 +34,7 @@ * Mixolydian(note) * Aeolian(note) * Locrian(note) + ** new in Sidewinder: modes of the harmonic and melodic minor scales The major scales * Major(note) @@ -45,17 +46,29 @@ * MelodicMinor(note) * Bachian(note) * MinorNeapolitan(note) + +The bebop scales (new in Sidewinder) + * MajorBebop(note) + * DorianBebop(note) + * AltDorianBebop(note) + * MixolydianBebop(note) # aka dominant bebop + * MelodicMinorBebop(note) + * HarmonicMinorBebop(note) Other scales * Chromatic(note) * WholeTone(note) * Octatonic(note) + ** new in Sidewinder: major and minor pentatonics + ** new in Sidewinder: super-ultra-hyper-mega-meta 'scales' (lydian and mixolydian) """ -import mingus.core.intervals as intervals +from mingus.core import intervals from mingus.core.notes import augment, diminish, reduce_accidentals from mingus.core.keys import keys, get_notes from mingus.core.mt_exceptions import NoteFormatError, FormatError, RangeError +from mingus.containers.note import Note as TemporalNote +from itertools import cycle def determine(notes): """Determine the scales containing the notes. @@ -140,6 +153,32 @@ def degree(self, degree_number, direction='a'): else: raise FormatError("Unrecognised direction '%s'" % direction) + def generate(self, length, ascending=True, start_degree=1, undulating=False, starting_octave=None): + """ + + Generate given number of notes from the scale, either continuously rising or falling or as + an undulating wave (i.e., up an octave, then down, then up again, etc.) + + >>> list(Blues('F').generate(length=9)) + ['F', 'Ab', 'Bb', 'B', 'C', 'Eb', 'F', 'Ab', 'Bb'] + + >>> list(Blues('F').generate(length=7, undulating=True)) + ['F', 'Ab', 'Bb', 'B', 'C', 'Eb', 'F'] + + >>> [repr(note) for note in Blues('F').generate(length=13, undulating=True, starting_octave=1)] + ["'F-1'", "'Ab-1'", "'Bb-1'", "'B-1'", "'C-1'", "'Eb-1'", "'F-2'", "'Eb-1'", "'C-1'", "'B-1'", "'Bb-1'", "'Ab-1'", "'F-1'"] + """ + wave = (self.ascending()[:-1] + self.descending()[:-1]) if ascending else ( + self.descending()[:-1] + self.ascending()[:-1]) + incline = (self.ascending() if ascending else self.descending())[:-1] + alternating_octaves = cycle([starting_octave, + starting_octave+1]) if starting_octave is not None else None + for key in cycle(wave if undulating else incline): + octave = starting_octave if (key != self.tonic or starting_octave is None) else next(alternating_octaves) + yield TemporalNote(key, octave=octave) if starting_octave is not None else key + length -= 1 + if length == 0: + break # The diatonic scales @@ -148,13 +187,13 @@ class Diatonic(_Scale): """The diatonic scale. Example: - >>> print Diatonic('C', (3, 7)) + >>> print(Diatonic('C', (3, 7))) Ascending: C D E F G A B C Descending: C B A G F E D C """ type = 'diatonic' - + def __init__(self, note, semitones, octaves=1): """Create the diatonic scale starting on the chosen note. @@ -176,14 +215,14 @@ def ascending(self): return notes * self.octaves + [notes[0]] -# Ancient scales +# Major modes class Ionian(_Scale): """The ionian scale. Example: - >>> print Ionian('C') + >>> print(Ionian('C')) Ascending: C D E F G A B C Descending: C B A G F E D C """ @@ -205,7 +244,7 @@ class Dorian(_Scale): """The dorian scale. Example: - >>> print Dorian('D') + >>> print(Dorian('D')) Ascending: D E F G A B C D Descending: D C B A G F E D """ @@ -227,7 +266,7 @@ class Phrygian(_Scale): """The phrygian scale. Example: - >>> print Phrygian('E') + >>> print(Phrygian('E')) Ascending: E F G A B C D E Descending: E D C B A G F E """ @@ -249,7 +288,7 @@ class Lydian(_Scale): """The lydian scale. Example: - >>> print Lydian('F') + >>> print(Lydian('F')) Ascending: F G A B C D E F Descending: F E D C B A G F """ @@ -271,7 +310,7 @@ class Mixolydian(_Scale): """The mixolydian scale. Example: - >>> print Mixolydian('G') + >>> print(Mixolydian('G')) Ascending: G A B C D E F G Descending: G F E D C B A G """ @@ -293,7 +332,7 @@ class Aeolian(_Scale): """The aeolian scale. Example: - >>> print Aeolian('A') + >>> print(Aeolian('A')) Ascending: A B C D E F G A Descending: A G F E D C B A """ @@ -315,7 +354,7 @@ class Locrian(_Scale): """The locrian scale. Example: - >>> print Locrian('B') + >>> print(Locrian('B')) Ascending: B C D E F G A B Descending: B A G F E D C B """ @@ -331,6 +370,49 @@ def ascending(self): notes = Diatonic(self.tonic, (1, 4)).ascending()[:-1] return notes * self.octaves + [notes[0]] +BLUES_INTERVALS = [ + intervals.minor_third, + intervals.major_second, + intervals.minor_second, + intervals.minor_second, + intervals.minor_third, + intervals.major_second, +] + +class Blues(_Scale): + + """The blues scale + + Example: + >>> print(Blues('C')) + Ascending: C Eb F Gb G Bb C + Descending: C Bb G Gb F Eb C + + >>> f_blues = Blues('F') + >>> print(f_blues) + Ascending: F Ab Bb B C Eb F + Descending: F Eb C B Bb Ab F + + >>> f_blues.degree(4) + 'B' + """ + + type = 'major' + + def __init__(self, note, octaves=1): + """Create the major scale starting on the chosen note.""" + super(Blues, self).__init__(note, octaves) + self.name = '{} blues'.format(self.tonic) + + def ascending(self): + notes = [self.tonic] + current_note = self.tonic + for ival in BLUES_INTERVALS: + new_note = reduce_accidentals(ival(current_note)) + notes.append(new_note) + current_note = new_note + + return notes # The major scales @@ -339,7 +421,7 @@ class Major(_Scale): """The major scale. Example: - >>> print Major('A') + >>> print(Major('A')) Ascending: A B C# D E F# G# A Descending: A G# F# E D C# B A """ @@ -352,7 +434,10 @@ def __init__(self, note, octaves=1): self.name = '{0} major'.format(self.tonic) def ascending(self): - notes = get_notes(self.tonic) + try: + notes = get_notes(self.tonic) # this fails with G# (for ex), see mingus.core.keys.keys (i.e. missing in that list) + except NoteFormatError: + notes = Diatonic(self.tonic, (3,7)).ascending() return notes * self.octaves + [notes[0]] @@ -361,7 +446,7 @@ class HarmonicMajor(_Scale): """The harmonic major scale. Example: - >>> print HarmonicMajor('C') + >>> print(HarmonicMajor('C')) Ascending: C D E F G Ab B C Descending: C B Ab G F E D C """ @@ -386,7 +471,7 @@ class NaturalMinor(_Scale): """The natural minor scale. Example: - >>> print NaturalMinor('A') + >>> print(NaturalMinor('A')) Ascending: A B C D E F G A Descending: A G F E D C B A """ @@ -408,7 +493,7 @@ class HarmonicMinor(_Scale): """The harmonic minor scale. Example: - >>> print HarmonicMinor('A') + >>> print(HarmonicMinor('A')) Ascending: A B C D E F G# A Descending: A G# F E D C B A """ @@ -431,7 +516,7 @@ class MelodicMinor(_Scale): """The melodic minor scale. Example: - >>> print MelodicMinor('A') + >>> print(MelodicMinor('A')) Ascending: A B C D E F# G# A Descending: A G F E D C B A """ @@ -448,7 +533,7 @@ def ascending(self): notes[5] = augment(notes[5]) notes[6] = augment(notes[6]) return notes * self.octaves + [notes[0]] - + def descending(self): notes = NaturalMinor(self.tonic).descending()[:-1] return notes * self.octaves + [notes[0]] @@ -459,7 +544,7 @@ class Bachian(_Scale): """The Bachian scale. Example: - >>> print Bachian('A') + >>> print(Bachian('A')) Ascending: A B C D E F# G# A Descending: A G# F# E D C B A """ @@ -482,7 +567,7 @@ class MinorNeapolitan(_Scale): """The minor Neapolitan scale. Example: - >>> print MinorNeapolitan('A') + >>> print(MinorNeapolitan('A')) Ascending: A Bb C D E F G# A Descending: A G F E D C Bb A """ @@ -504,6 +589,411 @@ def descending(self): notes[6] = diminish(notes[6]) return notes * self.octaves + [notes[0]] +# Harmonic minor modes + +class LocrianNat6(_Scale): + + """The locrian natural 6 scale. + + Example: + >>> print(LocrianNat6('C')) + Ascending: C Db Eb F Gb A Bb C + Descending: C Bb A Gb F Eb Db C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the locrian nat6 mode scale starting on the chosen note.""" + super(LocrianNat6, self).__init__(note, octaves) + self.name = '{0} locrian nat6'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-2).name + notes = HarmonicMinor(relative_tonic).ascending()[:-1][1:] + HarmonicMinor(relative_tonic).ascending()[:-1][:1] + return notes * self.octaves + [notes[0]] + +class IonianSharp5(_Scale): + + """The ionian #5 (augmented) scale. + + Example: + >>> print(IonianSharp5('C')) + Ascending: C D E F G# A B C + Descending: C B A G# F E D C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the ionian #5 mode scale starting on the chosen note.""" + super(IonianSharp5, self).__init__(note, octaves) + self.name = '{0} ionian #5'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-3).name + notes = HarmonicMinor(relative_tonic).ascending()[:-1][2:] + HarmonicMinor(relative_tonic).ascending()[:-1][:2] + return notes * self.octaves + [notes[0]] + +class DorianSharp4(_Scale): + + """The dorian #4 scale. + + Example: + >>> print(DorianSharp4('C')) + Ascending: C D Eb F# G A Bb C + Descending: C Bb A G F# Eb D C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the dorian #4 mode scale starting on the chosen note.""" + super(DorianSharp4, self).__init__(note, octaves) + self.name = '{0} dorian #4'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-5).name + notes = HarmonicMinor(relative_tonic).ascending()[:-1][3:] + HarmonicMinor(relative_tonic).ascending()[:-1][:3] + return notes * self.octaves + [notes[0]] + +class PhrygianDominant(_Scale): + + """The phrygian dominant scale. + + Example: + >>> print(PhrygianDominant('C')) + Ascending: C Db E F G Ab Bb C + Descending: C Bb Ab G F E Db C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the phrygian dominant mode scale starting on the chosen note.""" + super(PhrygianDominant, self).__init__(note, octaves) + self.name = '{0} phrygian dominant'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-7).name + notes = HarmonicMinor(relative_tonic).ascending()[:-1][4:] + HarmonicMinor(relative_tonic).ascending()[:-1][:4] + return notes * self.octaves + [notes[0]] + +class LydianSharp2(_Scale): + + """The lydian #2 (#9) scale. + + Example: + >>> print(LydianSharp2('C')) + Ascending: C D# E F# G A B C + Descending: C B A G F# E D# C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the lydian #2 mode scale starting on the chosen note.""" + super(LydianSharp2, self).__init__(note, octaves) + self.name = '{0} lydian #2'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-8).name + notes = HarmonicMinor(relative_tonic).ascending()[:-1][5:] + HarmonicMinor(relative_tonic).ascending()[:-1][:5] + return notes * self.octaves + [notes[0]] + +class AlteredDominantbb7(_Scale): + + """The altered dominant bb7 (superlocrian bb7) scale. + + Example: + >>> print(AlteredDominantbb7('C')) + Ascending: C Db Eb Fb Gb Ab Bbb C + Descending: C Bbb Ab Gb Fb Eb Db C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the altered dominant bb7 (superlocrian bb7) mode scale starting on the chosen note.""" + super(AlteredDominantbb7, self).__init__(note, octaves) + self.name = '{0} altered dominant bb7'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-11).name + notes = HarmonicMinor(relative_tonic).ascending()[:-1][6:] + HarmonicMinor(relative_tonic).ascending()[:-1][:6] + return notes * self.octaves + [notes[0]] + +# Melodic minor modes + +class Dorianb2(_Scale): + + """The dorian flat 2 (phrygian nat6) scale. + + Example: + >>> print(Dorianb2('C')) + Ascending: C Db Eb F G A Bb C + Descending: C Bb A G F Eb Db C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the dorian b2 mode scale starting on the chosen note.""" + super(Dorianb2, self).__init__(note, octaves) + self.name = '{0} dorian b2'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-2).name + notes = MelodicMinor(relative_tonic).ascending()[:-1][1:] + MelodicMinor(relative_tonic).ascending()[:-1][:1] + return notes * self.octaves + [notes[0]] + +class LydianSharp5(_Scale): + + """The lydian #5 (augmented) scale. + + Example: + >>> print(LydianSharp5('C')) + Ascending: C D E F# G# A B C + Descending: C B A G# F# E D C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the lydian #5 mode scale starting on the chosen note.""" + super(LydianSharp5, self).__init__(note, octaves) + self.name = '{0} lydian #5'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-3).name + notes = MelodicMinor(relative_tonic).ascending()[:-1][2:] + MelodicMinor(relative_tonic).ascending()[:-1][:2] + return notes * self.octaves + [notes[0]] + +class LydianDominant(_Scale): + + """The lydian dominant (overtone, lydian b7) scale. + + Example: + >>> print(LydianDominant('C')) + Ascending: C D E F# G A Bb C + Descending: C Bb A G F# E D C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the lydian dominant mode scale starting on the chosen note.""" + super(LydianDominant, self).__init__(note, octaves) + self.name = '{0} lydian dominant'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-5).name + notes = MelodicMinor(relative_tonic).ascending()[:-1][3:] + MelodicMinor(relative_tonic).ascending()[:-1][:3] + return notes * self.octaves + [notes[0]] + +class Mixolydianb6(_Scale): + + """The mixolydian b6 scale. + + Example: + >>> print(Mixolydianb6('C')) + Ascending: C D E F G Ab Bb C + Descending: C Bb Ab G F E D C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the mixolydian b6 mode scale starting on the chosen note.""" + super(Mixolydianb6, self).__init__(note, octaves) + self.name = '{0} mixolydian b6'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-7).name + notes = MelodicMinor(relative_tonic).ascending()[:-1][4:] + MelodicMinor(relative_tonic).ascending()[:-1][:4] + return notes * self.octaves + [notes[0]] + +class LocrianNat2(_Scale): + + """The locrian natural 2 (half-diminished) scale. + + Example: + >>> print(LocrianNat2('C')) + Ascending: C D Eb F Gb Ab Bb C + Descending: C Bb Ab Gb F Eb D C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the locrian natural 2 mode scale starting on the chosen note.""" + super(LocrianNat2, self).__init__(note, octaves) + self.name = '{0} locrian nat2'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-9).name + notes = MelodicMinor(relative_tonic).ascending()[:-1][5:] + MelodicMinor(relative_tonic).ascending()[:-1][:5] + return notes * self.octaves + [notes[0]] + +class AlteredDominant(_Scale): + + """The altered dominant (superlocrian) scale. + + Example: + >>> print(AlteredDominant('C')) + Ascending: C Db Eb Fb Gb Ab Bb C + Descending: C Bb Ab Gb Fb Eb Db C + """ + + type = 'ancient' + + def __init__(self, note, octaves=1): + """Create the altered dominant (superlocrian) mode scale starting on the chosen note.""" + super(AlteredDominant, self).__init__(note, octaves) + self.name = '{0} altered dominant'.format(self.tonic) + + def ascending(self): + relative_tonic = TemporalNote().from_int(int(TemporalNote(self.tonic))-11).name + notes = MelodicMinor(relative_tonic).ascending()[:-1][6:] + MelodicMinor(relative_tonic).ascending()[:-1][:6] + return notes * self.octaves + [notes[0]] + +# Bebop scales + +class MajorBebop(_Scale): + + """The major bebop scale. + + Example: + >>> print(Major('C')) + Ascending: C D E F G G# A B C + Descending: C B A G# F E D C + """ + + type = 'bebop' + + def __init__(self, note, octaves=1): + """Create the major bebop scale starting on the chosen note.""" + super(MajorBebop, self).__init__(note, octaves) + self.name = '{0} major bebop'.format(self.tonic) + + def ascending(self): + notes = Major(self.tonic).ascending()[:-3] + notes.append(intervals.minor_sixth(notes[0])) + notes += Major(self.tonic).ascending()[-3:-1] + return notes * self.octaves + [notes[0]] + +class DorianBebop(_Scale): + + """The dorian bebop scale. + + Example: + >>> print(DorianBebop('C')) + Ascending: C D Eb E F G A Bb C + Descending: C Bb A G F E Eb D C + """ + + type = 'bebop' + + def __init__(self, note, octaves=1): + """Create the dorian bebop scale starting on the chosen note.""" + super(DorianBebop, self).__init__(note, octaves) + self.name = '{0} dorian bebop'.format(self.tonic) + + def ascending(self): + notes = Dorian(self.tonic).ascending()[:3] + notes.append(intervals.major_third(notes[0])) + notes += Dorian(self.tonic).ascending()[3:-1] + return notes * self.octaves + [notes[0]] + +class DorianBebopAlt(_Scale): + + """The alternative dorian bebop scale. + + Example: + >>> print(DorianBebopAlt('C')) + Ascending: C D Eb F G A Bb B C + Descending: C B Bb A G F Eb D C + """ + + type = 'bebop' + + def __init__(self, note, octaves=1): + """Create the alternative dorian bebop scale starting on the chosen note.""" + super(DorianBebopAlt, self).__init__(note, octaves) + self.name = '{0} alternative dorian bebop'.format(self.tonic) + + def ascending(self): + notes = Dorian(self.tonic).ascending()[:7] + notes.append(intervals.major_seventh(notes[0])) + return notes * self.octaves + [notes[0]] + +class MixolydianBebop(_Scale): + + """The mixolydian (dominant) bebop scale. + + Example: + >>> print(MixolydianBebop('C')) + Ascending: C D E F G A Bb B C + Descending: C B Bb A G F E D C + """ + + type = 'bebop' + + def __init__(self, note, octaves=1): + """Create the mixolydian (dominant) bebop scale starting on the chosen note.""" + super(MixolydianBebop, self).__init__(note, octaves) + self.name = '{0} mixolydian bebop'.format(self.tonic) + + def ascending(self): + notes = Mixolydian(self.tonic).ascending()[:7] + notes.append(intervals.major_seventh(notes[0])) + return notes * self.octaves + [notes[0]] + +class MelodicMinorBebop(_Scale): + + """The melodic minor bebop scale. + + Example: + >>> print(MelodicMinorBebop('C')) + Ascending: C D Eb F G Ab A B C + Descending: C B A Ab G F Eb D C + """ + + type = 'bebop' + + def __init__(self, note, octaves=1): + """Create the melodic minor bebop scale starting on the chosen note.""" + super(MelodicMinorBebop, self).__init__(note, octaves) + self.name = '{0} melodic minor bebop'.format(self.tonic) + + def ascending(self): + notes = MelodicMinor(self.tonic).ascending()[:5] + notes.append(intervals.minor_sixth(notes[0])) + notes += MelodicMinor(self.tonic).ascending()[5:-1] + return notes * self.octaves + [notes[0]] + +class HarmonicMinorBebop(_Scale): + + """The harmonic minor bebop scale. + + Example: + >>> print(HarmonicMinorBebop('C')) + Ascending: C D Eb F G Ab Bb B C + Descending: C B Bb Ab G F Eb D C + """ + + type = 'bebop' + + def __init__(self, note, octaves=1): + """Create the harmonic minor bebop scale starting on the chosen note.""" + super(HarmonicMinorBebop, self).__init__(note, octaves) + self.name = '{0} harmonic minor bebop'.format(self.tonic) + + def ascending(self): + notes = HarmonicMinor(self.tonic).ascending()[:6] + notes.append(intervals.minor_seventh(notes[0])) + notes += HarmonicMinor(self.tonic).ascending()[6:-1] + return notes * self.octaves + [notes[0]] # Other scales @@ -512,10 +1002,10 @@ class Chromatic(_Scale): """The chromatic scale. Examples: - >>> print Chromatic('C') + >>> print(Chromatic('C')) Ascending: C C# D D# E F F# G G# A A# B C Descending: C B Bb A Ab G Gb F E Eb D Db C - >>> print Chromatic('f') + >>> print(Chromatic('f')) Ascending: F F# G Ab A Bb B C Db D Eb E F Descending: F E Eb D Db C B Bb A Ab G Gb F """ @@ -557,7 +1047,7 @@ class WholeTone(_Scale): """The whole tone scale. Example: - >>> print WholeTone('C') + >>> print(WholeTone('C')) Ascending: C D E F# G# A# C Descending: C A# G# F# E D C """ @@ -574,14 +1064,63 @@ def ascending(self): for note in range(5): notes.append(intervals.major_second(notes[-1])) return notes * self.octaves + [notes[0]] + +class Pentatonic(_Scale): + + """The (major) pentatonic scale. + + Example: + >>> print(Pentatonic('C')) + Ascending: C D E G A C + Descending: C A G E D C + """ + + type = 'other' + + def __init__(self, note, octaves=1): + """Create the pentatonic scale starting on the chosen note.""" + super(Pentatonic, self).__init__(note, octaves) + self.name = '{0} pentatonic'.format(self.tonic) + + def ascending(self): + notes = [self.tonic] + notes.append(intervals.major_second(notes[0])) + notes.append(intervals.major_third(notes[0])) + notes.append(intervals.perfect_fifth(notes[0])) + notes.append(intervals.major_sixth(notes[0])) + return notes * self.octaves + [notes[0]] + +class MinorPentatonic(_Scale): + + """The minor pentatonic scale. + Example: + >>> print(MinorPentatonic('C')) + Ascending: C Eb F G Bb C + Descending: C Bb G F Eb C + """ + + type = 'other' + + def __init__(self, note, octaves=1): + """Create the minor pentatonic scale starting on the chosen note.""" + super(MinorPentatonic, self).__init__(note, octaves) + self.name = '{0} minor pentatonic'.format(self.tonic) + + def ascending(self): + notes = [self.tonic] + notes.append(intervals.minor_third(notes[0])) + notes.append(intervals.perfect_fourth(notes[0])) + notes.append(intervals.perfect_fifth(notes[0])) + notes.append(intervals.minor_seventh(notes[0])) + return notes * self.octaves + [notes[0]] class Octatonic(_Scale): """The octatonic scale. Example: - >>> print Octatonic('C') + >>> print(Octatonic('C')) Ascending: C D Eb F Gb Ab A B C Descending: C B A Ab Gb F Eb D C """ @@ -589,7 +1128,7 @@ class Octatonic(_Scale): type = 'other' def __init__(self, note, octaves=1): - """Create the octatonic (also known as "diminshed") scale starting + """Create the octatonic (also known as "whole-half diminished") scale starting on the chosen note.""" super(Octatonic, self).__init__(note, octaves) self.name = '{0} octatonic'.format(self.tonic) @@ -603,4 +1142,156 @@ def ascending(self): notes.append(intervals.major_seventh(notes[0])) notes[-2] = intervals.major_sixth(notes[0]) return notes * self.octaves + [notes[0]] + +class HalfWholeDiminished(_Scale): + + """The second octatonic scale. + + Example: + >>> print(HalfWholeDiminished('C')) + Ascending: C Db Eb E Gb G A Bb C + Descending: C Bb A G Gb E Eb Db C + """ + + type = 'other' + + def __init__(self, note, octaves=1): + """Create the half-whole diminished scale starting + on the chosen note.""" + super(HalfWholeDiminished, self).__init__(note, octaves) + self.name = '{0} half-whole diminished'.format(self.tonic) + + def ascending(self): + notes = [self.tonic] + for i in range(3): + notes.extend( + [intervals.minor_second(notes[-1]), + intervals.minor_third(notes[-1])]) + notes.append(intervals.minor_seventh(notes[0])) + notes[-2] = intervals.major_sixth(notes[0]) + return notes * self.octaves + [notes[0]] + +# Super-ultra-hyper-mega-meta scales (https://www.youtube.com/watch?v=DnBr070vcNE) (more 'sounds' than 'scales') + +class SuperUltraHyperMegaMetaLydian(_Scale): + + """The super-ultra-hyper-mega-meta lydian scale. + + This is the sound of continually brightening around the cycle of fifths (getting 'more lydian'), + in both ascending and descending forms. + + Example: + >>> print(SuperUltraHyperMegaMetaLydian('C')) + Ascending: C D E F#, G A B C#, D E F# G, A B C# D#, ... + Descending: C B A, G F# E, D C# B, A G# F#, ... + """ + + type = 'other' + + def __init__(self, note, octaves=1): + """Create the SUHMM lydian scale starting on the chosen note.""" + super(SuperUltraHyperMegaMetaLydian, self).__init__(note, octaves) + self.name = '{0} SUHMM lydian'.format(self.tonic) + + def ascending(self): + tonic = self.tonic + notes = [] + for i in range(self.octaves*2): + notes += [reduce_accidentals(note) for note in list(Lydian(tonic).ascending()[:4])] # 4 creates overlap on the fifth + tonic = intervals.perfect_fifth(tonic) + + if self.octaves == 1: + return notes + else: + return notes[:1-self.octaves] + + def descending(self): + tonic = self.tonic + notes = [] + for i in range(self.octaves*3): + notes += [reduce_accidentals(note) for note in list(Lydian(tonic).descending()[:3])] # 3 = 7 - 4 + tonic = intervals.perfect_fifth(tonic) + + if self.octaves == 1: + return notes[:-1] + else: + return notes[:-1-self.octaves] + + def generate(self, i): + print('Please use ascending() and descending() methods instead of generate() for SUHMM scales') + return False + +class SuperUltraHyperMegaMetaMixolydian(_Scale): + + """The super-ultra-hyper-mega-meta mixolydian scale. + + This is the sound of continually darkening around the cycle of fifths (getting 'more mixolydian'), + in both ascending and descending forms. + + Example: + >>> print(SuperUltraHyperMegaMetaMixolydian('C')) + Ascending: C D E, F G A, Bb C D, Eb F G, ... + Descending: C Bb A G, F Eb D C, Bb Ab G F, Eb Db C Bb, ... + """ + + type = 'other' + + def __init__(self, note, octaves=1): + """Create the SUHMM mixolydian scale starting on the chosen note.""" + super(SuperUltraHyperMegaMetaMixolydian, self).__init__(note, octaves) + self.name = '{0} SUHMM mixolydian'.format(self.tonic) + + def ascending(self): + tonic = self.tonic + notes = [] + for i in range(self.octaves*3): + notes += [reduce_accidentals(note) for note in list(Mixolydian(tonic).ascending()[:3])] + tonic = intervals.perfect_fourth(tonic) + + if self.octaves == 1: + return notes[:-1] + else: + return notes[:-self.octaves] + + def descending(self): + tonic = self.tonic + notes = [] + for i in range(self.octaves*2): + notes += [reduce_accidentals(note) for note in list(Mixolydian(tonic).descending()[:4])] + tonic = intervals.perfect_fourth(tonic) + + if self.octaves == 1: + return notes + else: + return notes[:-self.octaves] + + def generate(self, i): + print('Please use ascending() and descending() methods instead of generate() for SUHMM scales') + return False + +## draft code for more variants: +## major ascending +#tonic = 'C' +#out = [] +#for i in range(20): +# out += [reduce_accidentals(note) for note in list(scales.Major(tonic).ascending()[:4])] +# tonic = intervals.perfect_fifth(tonic) +# +## major descending (like lydian descending but slower) (looks correct at start but begins duplicating notes...) +#tonic = 'C' +#out = [] +#for i in range(20): +# out += [reduce_accidentals(note) for note in list(scales.Major(tonic).descending()[:7]) + list(scales.Major(tonic).descending()[:3])] +# tonic = intervals.perfect_fifth(tonic) +# +## dorian ascending +#tonic = 'C' +#out = [] +#for i in range(20): +# out += [reduce_accidentals(note) for note in list(scales.Dorian(tonic).ascending()[:4])] +# tonic = intervals.perfect_fifth(tonic) + +if __name__ == '__main__': + import doctest + doctest.testmod() diff --git a/mingus/extra/__init__.py b/mingus/extra/__init__.py index dad5b4d5..2dae2f06 100644 --- a/mingus/extra/__init__.py +++ b/mingus/extra/__init__.py @@ -17,8 +17,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import lilypond -from tunings import StringTuning +from mingus.extra import lilypond +from mingus.extra.tunings import StringTuning __all__ = [ 'lilypond', 'fft', diff --git a/mingus/extra/fft.py b/mingus/extra/fft.py index b60e3cb1..85099e91 100644 --- a/mingus/extra/fft.py +++ b/mingus/extra/fft.py @@ -37,6 +37,9 @@ # So before we do any performance critical calculations we set up a cache of all # the frequencies we need to look up. +def xrange(x): + return iter(range(x)) + _log_cache = [] for x in xrange(129): _log_cache.append(Note().from_int(x).to_hertz()) diff --git a/mingus/extra/lilypond.py b/mingus/extra/lilypond.py index 52ba7489..60c4bcdc 100644 --- a/mingus/extra/lilypond.py +++ b/mingus/extra/lilypond.py @@ -30,6 +30,76 @@ import mingus.core.value as value import os import subprocess +from mingus.core.chords import from_shorthand, determine, chord_note_and_family +from mingus.core import chords +from mingus.containers.bar import Bar +from mingus.containers.note import TemporalNote +from mingus.core.chords import TemporalChord + +CHORDS_WITH_EQUIVALENT_NOTATION = ['sus2', 'sus4', 'm', '7', 'm7', 'aug', 'dim', 'dim7', '11', 'm11', '6', 'm6', + '9', 'm9', '11', 'm11', '13', 'm13'] + +CHORD_FAMILY_TRANSLATION = { + 'M7': '{note_lowercase}:maj7', + 'M': '{note_lowercase}:maj', + 'm7b5': '{note_lowercase}:m7.5-', + 'mM7': '{note_lowercase}:m7+', + 'M9': '{note_lowercase}:maj9', + 'M13': '{note_lowercase}:maj13.11', +} + +def from_Chord(chord): + """ + Returns Lilypad notation for (temporal) chords + + + >>> chord = determine(chords.suspended_fourth_triad('C'), shorthand=True)[0] + >>> chord + 'Csus4' + >>> from_shorthand(chord) + ['C', 'F', 'G'] + >>> from_Chord(TemporalChord(chord)) + 'c4:sus4' + + >>> from_Chord(TemporalChord(determine(chords.major_seventh('F'), shorthand=True)[0])) + 'f4:maj7' + + >>> from_Chord(TemporalChord(determine(chords.major_seventh('Fb'), shorthand=True)[0])) + 'fes4:maj7' + + >>> from_Chord(TemporalChord(determine(chords.major_triad('C'), shorthand=True)[0])) + 'c4:maj' + + >>> chord = determine(chords.major_triad('C'), shorthand=True)[0] + >>> from_Chord(TemporalChord(chord, duration_denominator=2)) + 'c2:maj' + + >>> from_Chord(TemporalChord(determine(chords.minor_triad('C'), shorthand=True)[0])) + 'c4:m' + + >>> from_Chord(TemporalChord(determine(chords.augmented_triad('C'), shorthand=True)[0])) + 'c4:aug' + + >>> from_Chord(TemporalChord(determine(chords.suspended_second_triad('C'), shorthand=True)[0])) + 'c4:sus2' + + >>> from_Chord(TemporalChord(determine(chords.eleventh('C'), shorthand=True)[0])) + 'c4:11' + + >>> from_Chord(TemporalChord(determine(chords.half_diminished_seventh('C'), shorthand=True)[0])) + 'c4:m7.5-' + + """ + if not isinstance(chord, TemporalChord): + raise SyntaxError("Takes TemporalChord instances only") + # note, family = chord_note_and_family(chord.name) + if chord.family in CHORDS_WITH_EQUIVALENT_NOTATION: + format_string = '{note_lowercase}:{family}' + else: + format_string = CHORD_FAMILY_TRANSLATION[chord.family] + lowered_note = from_Note(chord.get_temporal_root(), standalone=False) + note_name = "{}{}".format(lowered_note, chord.duration_denominator) + return format_string.format(note_lowercase=note_name, family=chord.family) def from_Note(note, process_octaves=True, standalone=True): """Get a Note object and return the LilyPond equivalent in a string. @@ -38,10 +108,19 @@ def from_Note(note, process_octaves=True, standalone=True): ignored. If standalone is True, the result can be used by functions like to_png and will produce a valid output. The argument is mostly here to let from_NoteContainer make use of this function. + + >>> from_Note(TemporalNote('C', octave=5),standalone=False) + "c''" + + >>> from_Note(TemporalNote('C', octave=3),standalone=False) + 'c' + + >>> from_Note(TemporalNote('C', octave=1),standalone=False) + 'c,,' """ # Throw exception - if not hasattr(note, 'name'): - return False + if not isinstance(note, TemporalNote): + raise SyntaxError("Need to be provided a temporal note") # Lower the case of the name result = note.name[0].lower() @@ -55,15 +134,10 @@ def from_Note(note, process_octaves=True, standalone=True): # Place ' and , for octaves if process_octaves: - oct = note.octave - if oct >= 4: - while oct > 3: - result += "'" - oct -= 1 - elif oct < 3: - while oct < 3: - result += ',' - oct += 1 + if note.octave >= 4: + result += "'" * (note.octave - 3) + elif note.octave < 3: + result += ',' * abs(3 - note.octave) if standalone: return '{ %s }' % result else: @@ -120,44 +194,30 @@ def from_Bar(bar, showkey=True, showtime=True): The showkey and showtime parameters can be set to determine whether the key and the time should be shown. + + >>> from mingus.containers.note import QuarterNoteFactory as Q, HalfNoteFactory as H + >>> from mingus.core.chords import HalfNoteChordFactory as HC + >>> bar = Bar() + >>> bar.extend(Q(['C','D'])) + >>> bar += H('E') + >>> cmaj_triad = determine(chords.major_triad('C'),shorthand=True)[0] + >>> c7 = determine(chords.dominant_seventh('C'),shorthand=True)[0] + >>> bar.set_chord_notes([HC(cmaj_triad), HC(c7)]) + >>> print(from_Bar(bar)) + << \\time 4/4 \chords { c2:maj c2:7 } { c'4 d'4 e'2 }>> """ - # Throw exception - if not hasattr(bar, 'bar'): - return False - # Process the key - if showkey: - key_note = Note(bar.key.key[0].upper() + bar.key.key[1:]) - key = '\\key %s \\%s ' % (from_Note(key_note, False, standalone=False), bar.key.mode) - result = key - else: - result = '' - - # Handle the NoteContainers - latest_ratio = (1, 1) - ratio_has_changed = False - for bar_entry in bar.bar: - parsed_value = value.determine(bar_entry[1]) - ratio = parsed_value[2:] - if ratio == latest_ratio: - result += from_NoteContainer(bar_entry[2], bar_entry[1], - standalone=False) + ' ' - else: - if ratio_has_changed: - result += '}' - result += '\\times %d/%d {' % (ratio[1], ratio[0]) - result += from_NoteContainer(bar_entry[2], bar_entry[1], - standalone=False) + ' ' - latest_ratio = ratio - ratio_has_changed = True - if ratio_has_changed: - result += '}' + result = ' '.join(['{}{}'.format(from_Note(note, standalone=False), note.duration_denominator) for note in bar.temporal_notes]) + result = "{ %s }"%result if bar.temporal_notes else "" + if bar.chords: + result = "\\chords { %s } %s"%(' '.join([from_Chord(chord_notes) for chord_notes in bar.chords]), + result) # Process the time if showtime: - return '{ \\time %d/%d %s}' % (bar.meter[0], bar.meter[1], result) + return '<< \\time %d/%d %s>>' % (bar.meter[0], bar.meter[1], result) else: - return '{ %s}' % result + return '<< %s>>' % result def from_Track(track): """Process a Track object and return the LilyPond equivalent in a string.""" @@ -223,7 +283,11 @@ def save_string_and_execute_LilyPond(ly_string, filename, command): except: return False command = 'lilypond %s -o "%s" "%s.ly"' % (command, filename, filename) - print 'Executing: %s' % command + print('Executing: {}'.format(command)) p = subprocess.Popen(command, shell=True).wait() os.remove(filename + '.ly') return True + +if __name__ == '__main__': + import doctest + doctest.testmod() diff --git a/mingus/extra/musicxml.py b/mingus/extra/musicxml.py index e0c6c1c7..1594d4df 100644 --- a/mingus/extra/musicxml.py +++ b/mingus/extra/musicxml.py @@ -313,13 +313,13 @@ def write_Composition(composition, filename, zip=False): zf = zipfile.ZipFile(filename + '.mxl', mode='w', compression=zipfile.ZIP_DEFLATED) zi = zipfile.ZipInfo('META-INF' + os.sep + 'container.xml') - zi.external_attr = 0660 << 16L + zi.external_attr = 0o660 << 16 zf.writestr(zi, "" "" "".format(filename)) zi = zipfile.ZipInfo(filename + '.xml') - zi.external_attr = 0660 << 16L + zi.external_attr = 0o660 << 16 zf.writestr(zi, text) zf.close() diff --git a/mingus/extra/tunings.py b/mingus/extra/tunings.py index 5e170a95..e63bef24 100644 --- a/mingus/extra/tunings.py +++ b/mingus/extra/tunings.py @@ -376,7 +376,7 @@ def add_tuning(instrument, description, tuning): >>> tuning.add_tuning('Guitar', 'twelve string', tw_string) """ t = StringTuning(instrument, description, tuning) - if _known.has_key(str.upper(instrument)): + if str.upper(instrument) in _known: _known[str.upper(instrument)][1][str.upper(description)] = t else: _known[str.upper(instrument)] = (instrument, @@ -399,7 +399,7 @@ def get_tuning(instrument, description, nr_of_strings=None, nr_of_courses=None): for x in keys: if (searchi not in keys and x.find(searchi) == 0 or searchi in keys and x == searchi): - for (desc, tun) in _known[x][1].iteritems(): + for (desc, tun) in _known[x][1].items(): if desc.find(searchd) == 0: if nr_of_strings is None and nr_of_courses is None: return tun diff --git a/mingus/midi/__init__.py b/mingus/midi/__init__.py index ac7b8dbe..0e58575c 100644 --- a/mingus/midi/__init__.py +++ b/mingus/midi/__init__.py @@ -17,13 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from sequencer import Sequencer -from sequencer_observer import SequencerObserver +from mingus.midi.sequencer import Sequencer +from mingus.midi.sequencer_observer import SequencerObserver + __all__ = [ 'Sequencer', 'SequencerObserver', 'midi_file_in', 'midi_file_out', 'midi_track', - 'fluidsynth', + #'fluidsynth', ] diff --git a/mingus/midi/fluidsynth.py b/mingus/midi/fluidsynth.py index 9818292e..99c663dc 100644 --- a/mingus/midi/fluidsynth.py +++ b/mingus/midi/fluidsynth.py @@ -33,7 +33,7 @@ from mingus.midi.sequencer import Sequencer from mingus.containers.instrument import MidiInstrument -import pyfluidsynth as fs +import mingus.midi.pyfluidsynth as fs import time import wave diff --git a/mingus/midi/libfluidsynth-1.dll b/mingus/midi/libfluidsynth-1.dll new file mode 100644 index 0000000000000000000000000000000000000000..0217619fc39c76432e13e44008974d5163033d6f GIT binary patch literal 2996691 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