Changeset 7165fc56
- Timestamp:
- Oct 29, 2018, 12:35:32 PM (6 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master
- Children:
- 92a6af0
- Parents:
- fb1c5e2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
python/lib/aubio/midiconv.py
rfb1c5e2 r7165fc56 14 14 15 15 def note2midi(note): 16 " convert note name to midi note number, e.g. [C-1, G9] -> [0, 127] " 16 """Convert note name to midi note number. 17 18 Input string `note` should be composed of one note root 19 and one octave, with optionally one modifier in between. 20 21 List of valid components: 22 23 - note roots: `C`, `D`, `E`, `F`, `G`, `A`, `B`, 24 - modifiers: `b`, `#`, as well as unicode characters 25 `𝄫`, `♭`, `♮`, `♯` and `𝄪`, 26 - octave numbers: `-1` -> `11`. 27 28 Parameters 29 ---------- 30 note : str 31 note name 32 33 Returns 34 ------- 35 int 36 corresponding midi note number 37 38 Examples 39 -------- 40 >>> aubio.note2midi('C#4') 41 61 42 >>> aubio.note2midi('B♭5') 43 82 44 45 Raises 46 ------ 47 TypeError 48 If `note` was not a string. 49 ValueError 50 If an error was found while converting `note`. 51 52 See Also 53 -------- 54 midi2note, freqtomidi, miditofreq 55 """ 17 56 _valid_notenames = {'C': 0, 'D': 2, 'E': 4, 'F': 5, 'G': 7, 'A': 9, 'B': 11} 18 57 _valid_modifiers = { … … 58 97 59 98 def midi2note(midi): 60 " convert midi note number to note name, e.g. [0, 127] -> [C-1, G9] " 99 """Convert midi note number to note name. 100 101 Parameters 102 ---------- 103 midi : int [0, 128] 104 input midi note number 105 106 Returns 107 ------- 108 str 109 note name 110 111 Examples 112 -------- 113 >>> aubio.midi2note(70) 114 'A#4' 115 >>> aubio.midi2note(59) 116 'B3' 117 118 Raises 119 ------ 120 TypeError 121 If `midi` was not an integer. 122 ValueError 123 If `midi` is out of the range `[0, 128]`. 124 125 See Also 126 -------- 127 note2midi, miditofreq, freqtomidi 128 """ 61 129 if not isinstance(midi, int_instances): 62 130 raise TypeError("an integer is required, got %s" % midi) … … 67 135 68 136 def freq2note(freq): 69 " convert frequency in Hz to nearest note name, e.g. [0, 22050.] -> [C-1, G9] " 137 """Convert frequency in Hz to nearest note name. 138 139 Parameters 140 ---------- 141 freq : float [0, 23000[ 142 input frequency, in Hz 143 144 Returns 145 ------- 146 str 147 name of the nearest note 148 149 Example 150 ------- 151 >>> aubio.freq2note(440) 152 'A4' 153 >>> aubio.freq2note(220.1) 154 'A3' 155 """ 70 156 from aubio import freqtomidi 71 157 return midi2note(int(freqtomidi(freq)))
Note: See TracChangeset
for help on using the changeset viewer.