History

[py] improve code style of midiconv.py

Paul Brossier committed 8 years ago

Commit 9374e571 parent 2c8ada61 file · +16 −11Browse files

Showing the changes to python (1 of 1 file). Show all

Unified · Split

python/lib/aubio/midiconv.py+16−11
@@ -1,11 +1,11 @@
11 # -*- coding: utf-8 -*-
22 """ utilities to convert midi note number to and from note names """
33
4−__all__ = ['note2midi', 'midi2note', 'freq2note', 'note2freq']
5−
64 import sys
75 from ._aubio import freqtomidi, miditofreq
86
7+__all__ = ['note2midi', 'midi2note', 'freq2note', 'note2freq']
8+
99 py3 = sys.version_info[0] == 3
1010 if py3:
1111 str_instances = str
@@ -14,6 +14,7 @@ else: · 2 unmodified lines
1414 str_instances = (str, unicode)
1515 int_instances = (int, long)
1616
17+
1718 def note2midi(note):
1819 """Convert note name to midi note number.
1920
@@ -55,13 +56,14 @@ def note2midi(note): · 35 unmodified lines
5556 --------
5657 midi2note, freqtomidi, miditofreq
5758 """
58− _valid_notenames = {'C': 0, 'D': 2, 'E': 4, 'F': 5, 'G': 7, 'A': 9, 'B': 11}
59+ _valid_notenames = {'C': 0, 'D': 2, 'E': 4, 'F': 5, 'G': 7,
60+ 'A': 9, 'B': 11}
5961 _valid_modifiers = {
60− u'𝄫': -2, # double flat
61− u'♭': -1, 'b': -1, '\u266d': -1, # simple flat
62− u'♮': 0, '\u266e': 0, None: 0, # natural
63− '#': +1, u'♯': +1, '\u266f': +1, # sharp
64− u'𝄪': +2, # double sharp
62+ u'𝄫': -2, # double flat
63+ u'♭': -1, 'b': -1, '\u266d': -1, # simple flat
64+ u'♮': 0, '\u266e': 0, None: 0, # natural
65+ '#': +1, u'♯': +1, '\u266f': +1, # sharp
66+ u'𝄪': +2, # double sharp
6567 }
6668 _valid_octaves = range(-1, 10)
6769 if not isinstance(note, str_instances):
@@ -93,12 +95,13 @@ def note2midi(note): · 25 unmodified lines
9395 if octave not in _valid_octaves:
9496 raise ValueError("%s is not a valid octave" % octave)
9597
96− midi = 12 + octave * 12 + _valid_notenames[notename] \
97− + _valid_modifiers[modifier]
98+ midi = (octave + 1) * 12 + _valid_notenames[notename] \
99+ + _valid_modifiers[modifier]
98100 if midi > 127:
99101 raise ValueError("%s is outside of the range C-2 to G8" % note)
100102 return midi
101103
104+
102105 def midi2note(midi):
103106 """Convert midi note number to note name.
104107
@@ -136,9 +139,10 @@ def midi2note(midi): · 31 unmodified lines
136139 msg = "an integer between 0 and 127 is excepted, got {:d}"
137140 raise ValueError(msg.format(midi))
138141 _valid_notenames = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#',
139− 'A', 'A#', 'B']
142+ 'A', 'A#', 'B']
140143 return _valid_notenames[midi % 12] + str(int(midi / 12) - 1)
141144
145+
142146 def freq2note(freq):
143147 """Convert frequency in Hz to nearest note name.
144148
@@ -162,6 +166,7 @@ def freq2note(freq): · 17 unmodified lines
162166 nearest_note = int(freqtomidi(freq) + .5)
163167 return midi2note(nearest_note)
164168
169+
165170 def note2freq(note):
166171 """Convert note name to corresponding frequency, in Hz.
167172

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t