Commit 64250428 authored by Steve Tjoa's avatar Steve Tjoa

midi conversion table

parent 257f0422
...@@ -11842,6 +11842,7 @@ div#notebook { ...@@ -11842,6 +11842,7 @@ div#notebook {
<li><a href="symbolic_representations.html">Symbolic Representations</a> (<a href="symbolic_representations.ipynb">ipynb</a>)</li> <li><a href="symbolic_representations.html">Symbolic Representations</a> (<a href="symbolic_representations.ipynb">ipynb</a>)</li>
<li><a href="audio_representation.html">Audio Representation</a> (<a href="audio_representation.ipynb">ipynb</a>)</li> <li><a href="audio_representation.html">Audio Representation</a> (<a href="audio_representation.ipynb">ipynb</a>)</li>
<li><a href="tuning_systems.html">Tuning Systems</a> (<a href="tuning_systems.ipynb">ipynb</a>)</li> <li><a href="tuning_systems.html">Tuning Systems</a> (<a href="tuning_systems.ipynb">ipynb</a>)</li>
<li><a href="midi_conversion_table.html">MIDI Note to Frequency Conversion Table</a> (<a href="midi_conversion_table.ipynb">ipynb</a>)</li>
<li><a href="feature_sonification.html">Understanding Audio Features through Sonification</a> (<a href="feature_sonification.ipynb">ipynb</a>)</li> <li><a href="feature_sonification.html">Understanding Audio Features through Sonification</a> (<a href="feature_sonification.ipynb">ipynb</a>)</li>
</ol> </ol>
......
...@@ -59,6 +59,7 @@ ...@@ -59,6 +59,7 @@
"1. [Symbolic Representations](symbolic_representations.html) ([ipynb](symbolic_representations.ipynb))\n", "1. [Symbolic Representations](symbolic_representations.html) ([ipynb](symbolic_representations.ipynb))\n",
"1. [Audio Representation](audio_representation.html) ([ipynb](audio_representation.ipynb))\n", "1. [Audio Representation](audio_representation.html) ([ipynb](audio_representation.ipynb))\n",
"1. [Tuning Systems](tuning_systems.html) ([ipynb](tuning_systems.ipynb))\n", "1. [Tuning Systems](tuning_systems.html) ([ipynb](tuning_systems.ipynb))\n",
"1. [MIDI Note to Frequency Conversion Table](midi_conversion_table.html) ([ipynb](midi_conversion_table.ipynb))\n",
"1. [Understanding Audio Features through Sonification](feature_sonification.html) ([ipynb](feature_sonification.ipynb))" "1. [Understanding Audio Features through Sonification](feature_sonification.html) ([ipynb](feature_sonification.ipynb))"
] ]
}, },
......
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"tags": [
"hide_cell"
]
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import librosa, librosa.display, numpy, matplotlib.pyplot as plt, IPython.display as ipd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"tags": [
"hide_cell"
]
},
"outputs": [],
"source": [
"plt.style.use('seaborn-muted')\n",
"plt.rcParams['figure.figsize'] = (14, 5)\n",
"plt.rcParams['axes.grid'] = True\n",
"plt.rcParams['axes.spines.left'] = False\n",
"plt.rcParams['axes.spines.right'] = False\n",
"plt.rcParams['axes.spines.bottom'] = False\n",
"plt.rcParams['axes.spines.top'] = False\n",
"plt.rcParams['axes.xmargin'] = 0\n",
"plt.rcParams['axes.ymargin'] = 0\n",
"plt.rcParams['image.cmap'] = 'gray'\n",
"plt.rcParams['image.interpolation'] = None"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[&larr; Back to Index](index.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# MIDI Note to Frequency Conversion Table"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- **note**: note name\n",
"- **midi-ET**: MIDI number, equal temperament\n",
"- **Hertz-ET**: frequency in Hertz, equal temperament\n",
"- **midi-PT**: MIDI number, Pythagorean tuning\n",
"- **Hertz-PT**: frequency in Hertz, Pythagorean tuning"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"tags": [
"hide_cell"
]
},
"outputs": [],
"source": [
"note_pt = dict()\n",
"\n",
"# Sharps\n",
"\n",
"note_pt['A4'] = 440.0\n",
"for octave in range(0, 10):\n",
" note_pt['A{}'.format(octave)] = 440.0*2**(octave-4)\n",
"\n",
"note_pt['E1'] = 1.5*note_pt['A0']\n",
"for octave in range(0, 10):\n",
" note_pt['E{}'.format(octave)] = note_pt['E1']*2**(octave-1)\n",
" \n",
"note_pt['B0'] = 1.5*note_pt['E0']\n",
"for octave in range(0, 10):\n",
" note_pt['B{}'.format(octave)] = note_pt['B0']*2**(octave-0)\n",
"\n",
"note_pt['F#1'] = 1.5*note_pt['B0']\n",
"for octave in range(0, 10):\n",
" note_pt['F#{}'.format(octave)] = note_pt['F#1']*2**(octave-1)\n",
"\n",
"note_pt['C#1'] = 1.5*note_pt['F#0']\n",
"for octave in range(0, 10):\n",
" note_pt['C#{}'.format(octave)] = note_pt['C#1']*2**(octave-1)\n",
"\n",
"note_pt['G#0'] = 1.5*note_pt['C#0']\n",
"for octave in range(0, 10):\n",
" note_pt['G#{}'.format(octave)] = note_pt['G#0']*2**(octave-0)\n",
"\n",
"note_pt['D#1'] = 1.5*note_pt['G#0']\n",
"for octave in range(0, 10):\n",
" note_pt['D#{}'.format(octave)] = note_pt['D#1']*2**(octave-1)\n",
"\n",
"note_pt['A#0'] = 1.5*note_pt['D#0']\n",
"for octave in range(0, 10):\n",
" note_pt['A#{}'.format(octave)] = note_pt['A#0']*2**(octave-0)\n",
"\n",
"note_pt['E#1'] = 1.5*note_pt['A#0']\n",
"for octave in range(0, 10):\n",
" note_pt['E#{}'.format(octave)] = note_pt['E#1']*2**(octave-1)\n",
"\n",
"note_pt['B#0'] = 1.5*note_pt['E#0']\n",
"for octave in range(0, 10):\n",
" note_pt['B#{}'.format(octave)] = note_pt['B#0']*2**(octave-0)\n",
" \n",
"# Flats\n",
"\n",
"note_pt['D0'] = 2/3*note_pt['A0']\n",
"for octave in range(0, 10):\n",
" note_pt['D{}'.format(octave)] = note_pt['D0']*2**octave\n",
"\n",
"note_pt['G0'] = 2/3*note_pt['D1']\n",
"for octave in range(0, 10):\n",
" note_pt['G{}'.format(octave)] = note_pt['G0']*2**octave\n",
"\n",
"note_pt['C0'] = 2/3*note_pt['G0']\n",
"for octave in range(0, 10):\n",
" note_pt['C{}'.format(octave)] = note_pt['C0']*2**octave\n",
"\n",
"note_pt['F0'] = 2/3*note_pt['C1']\n",
"for octave in range(0, 10):\n",
" note_pt['F{}'.format(octave)] = note_pt['F0']*2**octave\n",
"\n",
"note_pt['Bb0'] = 2/3*note_pt['F1']\n",
"for octave in range(0, 10):\n",
" note_pt['Bb{}'.format(octave)] = note_pt['Bb0']*2**octave\n",
"\n",
"note_pt['Eb0'] = 2/3*note_pt['Bb0']\n",
"for octave in range(0, 10):\n",
" note_pt['Eb{}'.format(octave)] = note_pt['Eb0']*2**octave\n",
"\n",
"note_pt['Ab0'] = 2/3*note_pt['Eb1']\n",
"for octave in range(0, 10):\n",
" note_pt['Ab{}'.format(octave)] = note_pt['Ab0']*2**octave\n",
"\n",
"note_pt['Db0'] = 2/3*note_pt['Ab0']\n",
"for octave in range(0, 10):\n",
" note_pt['Db{}'.format(octave)] = note_pt['Db0']*2**octave\n",
"\n",
"note_pt['Gb0'] = 2/3*note_pt['Db1']\n",
"for octave in range(0, 10):\n",
" note_pt['Gb{}'.format(octave)] = note_pt['Gb0']*2**octave\n",
"\n",
"note_pt['Cb0'] = 2/3*note_pt['Gb0']\n",
"for octave in range(0, 10):\n",
" note_pt['Cb{}'.format(octave)] = note_pt['Cb0']*2**octave\n",
"\n",
"note_pt['Fb0'] = 2/3*note_pt['Cb1']\n",
"for octave in range(0, 10):\n",
" note_pt['Fb{}'.format(octave)] = note_pt['Fb0']*2**octave"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"tags": [
"hide_cell"
]
},
"outputs": [],
"source": [
"sorted_notes = sorted(note_pt.items(), key=lambda x:x[1])"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"scrolled": false,
"tags": [
"hide_input"
]
},
"outputs": [
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|Cb0|11|15.434|10.804|15.261|\n",
"|C0|12|16.352|11.941|16.296|\n",
"|Db0|13|17.324|12.844|17.168|\n",
"|C#0|13|17.324|13.078|17.402|\n",
"|D0|14|18.354|13.980|18.333|\n",
"|Eb0|15|19.445|14.883|19.314|\n",
"|D#0|15|19.445|15.117|19.578|\n",
"|Fb0|16|20.602|15.785|20.347|\n",
"|E0|16|20.602|16.020|20.625|\n",
"|F0|17|21.827|16.922|21.728|\n",
"|E#0|17|21.827|17.156|22.025|\n",
"|Gb0|18|23.125|17.824|22.891|\n",
"|F#0|18|23.125|18.059|23.203|\n",
"|G0|19|24.5|18.961|24.444|\n",
"|Ab0|20|25.957|19.863|25.752|\n",
"|G#0|20|25.957|20.098|26.104|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A0|21|27.5|21.000|27.5|\n",
"|Bb0|22|29.135|21.902|28.971|\n",
"|A#0|22|29.135|22.137|29.366|\n",
"|Cb1|23|30.868|22.804|30.521|\n",
"|B0|23|30.868|23.039|30.938|\n",
"|C1|24|32.703|23.941|32.593|\n",
"|B#0|24|32.703|24.176|33.037|\n",
"|Db1|25|34.648|24.844|34.336|\n",
"|C#1|25|34.648|25.078|34.805|\n",
"|D1|26|36.708|25.980|36.667|\n",
"|Eb1|27|38.891|26.883|38.628|\n",
"|D#1|27|38.891|27.117|39.155|\n",
"|Fb1|28|41.203|27.785|40.695|\n",
"|E1|28|41.203|28.020|41.25|\n",
"|F1|29|43.654|28.922|43.457|\n",
"|E#1|29|43.654|29.156|44.05|\n",
"|Gb1|30|46.249|29.824|45.782|\n",
"|F#1|30|46.249|30.059|46.406|\n",
"|G1|31|48.999|30.961|48.889|\n",
"|Ab1|32|51.913|31.863|51.504|\n",
"|G#1|32|51.913|32.098|52.207|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A1|33|55|33.000|55|\n",
"|Bb1|34|58.27|33.902|57.942|\n",
"|A#1|34|58.27|34.137|58.733|\n",
"|Cb2|35|61.735|34.804|61.042|\n",
"|B1|35|61.735|35.039|61.875|\n",
"|C2|36|65.406|35.941|65.185|\n",
"|B#1|36|65.406|36.176|66.075|\n",
"|Db2|37|69.296|36.844|68.672|\n",
"|C#2|37|69.296|37.078|69.609|\n",
"|D2|38|73.416|37.980|73.333|\n",
"|Eb2|39|77.782|38.883|77.257|\n",
"|D#2|39|77.782|39.117|78.311|\n",
"|Fb2|40|82.407|39.785|81.39|\n",
"|E2|40|82.407|40.020|82.5|\n",
"|F2|41|87.307|40.922|86.914|\n",
"|E#2|41|87.307|41.156|88.099|\n",
"|Gb2|42|92.499|41.824|91.563|\n",
"|F#2|42|92.499|42.059|92.812|\n",
"|G2|43|97.999|42.961|97.778|\n",
"|Ab2|44|103.83|43.863|103.01|\n",
"|G#2|44|103.83|44.098|104.41|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A2|45|110|45.000|110|\n",
"|Bb2|46|116.54|45.902|115.88|\n",
"|A#2|46|116.54|46.137|117.47|\n",
"|Cb3|47|123.47|46.804|122.08|\n",
"|B2|47|123.47|47.039|123.75|\n",
"|C3|48|130.81|47.941|130.37|\n",
"|B#2|48|130.81|48.176|132.15|\n",
"|Db3|49|138.59|48.844|137.34|\n",
"|C#3|49|138.59|49.078|139.22|\n",
"|D3|50|146.83|49.980|146.67|\n",
"|Eb3|51|155.56|50.883|154.51|\n",
"|D#3|51|155.56|51.117|156.62|\n",
"|Fb3|52|164.81|51.785|162.78|\n",
"|E3|52|164.81|52.020|165|\n",
"|F3|53|174.61|52.922|173.83|\n",
"|E#3|53|174.61|53.156|176.2|\n",
"|Gb3|54|185|53.824|183.13|\n",
"|F#3|54|185|54.059|185.62|\n",
"|G3|55|196|54.961|195.56|\n",
"|Ab3|56|207.65|55.863|206.02|\n",
"|G#3|56|207.65|56.098|208.83|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A3|57|220|57.000|220|\n",
"|Bb3|58|233.08|57.902|231.77|\n",
"|A#3|58|233.08|58.137|234.93|\n",
"|Cb4|59|246.94|58.804|244.17|\n",
"|B3|59|246.94|59.039|247.5|\n",
"|C4|60|261.63|59.941|260.74|\n",
"|B#3|60|261.63|60.176|264.3|\n",
"|Db4|61|277.18|60.844|274.69|\n",
"|C#4|61|277.18|61.078|278.44|\n",
"|D4|62|293.66|61.980|293.33|\n",
"|Eb4|63|311.13|62.883|309.03|\n",
"|D#4|63|311.13|63.117|313.24|\n",
"|Fb4|64|329.63|63.785|325.56|\n",
"|E4|64|329.63|64.020|330|\n",
"|F4|65|349.23|64.922|347.65|\n",
"|E#4|65|349.23|65.156|352.4|\n",
"|Gb4|66|369.99|65.824|366.25|\n",
"|F#4|66|369.99|66.059|371.25|\n",
"|G4|67|392|66.961|391.11|\n",
"|Ab4|68|415.3|67.863|412.03|\n",
"|G#4|68|415.3|68.098|417.66|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A4|69|440|69.000|440|\n",
"|Bb4|70|466.16|69.902|463.54|\n",
"|A#4|70|466.16|70.137|469.86|\n",
"|Cb5|71|493.88|70.804|488.34|\n",
"|B4|71|493.88|71.039|495|\n",
"|C5|72|523.25|71.941|521.48|\n",
"|B#4|72|523.25|72.176|528.6|\n",
"|Db5|73|554.37|72.844|549.38|\n",
"|C#5|73|554.37|73.078|556.88|\n",
"|D5|74|587.33|73.980|586.67|\n",
"|Eb5|75|622.25|74.883|618.05|\n",
"|D#5|75|622.25|75.117|626.48|\n",
"|Fb5|76|659.26|75.785|651.12|\n",
"|E5|76|659.26|76.020|660|\n",
"|F5|77|698.46|76.922|695.31|\n",
"|E#5|77|698.46|77.156|704.79|\n",
"|Gb5|78|739.99|77.824|732.51|\n",
"|F#5|78|739.99|78.059|742.5|\n",
"|G5|79|783.99|78.961|782.22|\n",
"|Ab5|80|830.61|79.863|824.07|\n",
"|G#5|80|830.61|80.098|835.31|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A5|81|880|81.000|880|\n",
"|Bb5|82|932.33|81.902|927.08|\n",
"|A#5|82|932.33|82.137|939.73|\n",
"|Cb6|83|987.77|82.804|976.67|\n",
"|B5|83|987.77|83.039|990|\n",
"|C6|84|1046.5|83.941|1043|\n",
"|B#5|84|1046.5|84.176|1057.2|\n",
"|Db6|85|1108.7|84.844|1098.8|\n",
"|C#6|85|1108.7|85.078|1113.8|\n",
"|D6|86|1174.7|85.980|1173.3|\n",
"|Eb6|87|1244.5|86.883|1236.1|\n",
"|D#6|87|1244.5|87.117|1253|\n",
"|Fb6|88|1318.5|87.785|1302.2|\n",
"|E6|88|1318.5|88.020|1320|\n",
"|F6|89|1396.9|88.922|1390.6|\n",
"|E#6|89|1396.9|89.156|1409.6|\n",
"|Gb6|90|1480|89.824|1465|\n",
"|F#6|90|1480|90.059|1485|\n",
"|G6|91|1568|90.961|1564.4|\n",
"|Ab6|92|1661.2|91.863|1648.1|\n",
"|G#6|92|1661.2|92.098|1670.6|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A6|93|1760|93.000|1760|\n",
"|Bb6|94|1864.7|93.902|1854.2|\n",
"|A#6|94|1864.7|94.137|1879.5|\n",
"|Cb7|95|1975.5|94.804|1953.3|\n",
"|B6|95|1975.5|95.039|1980|\n",
"|C7|96|2093|95.941|2085.9|\n",
"|B#6|96|2093|96.176|2114.4|\n",
"|Db7|97|2217.5|96.844|2197.5|\n",
"|C#7|97|2217.5|97.078|2227.5|\n",
"|D7|98|2349.3|97.980|2346.7|\n",
"|Eb7|99|2489|98.883|2472.2|\n",
"|D#7|99|2489|99.117|2505.9|\n",
"|Fb7|100|2637|99.785|2604.5|\n",
"|E7|100|2637|100.020|2640|\n",
"|F7|101|2793.8|100.922|2781.2|\n",
"|E#7|101|2793.8|101.156|2819.2|\n",
"|Gb7|102|2960|101.824|2930|\n",
"|F#7|102|2960|102.059|2970|\n",
"|G7|103|3136|102.961|3128.9|\n",
"|Ab7|104|3322.4|103.863|3296.3|\n",
"|G#7|104|3322.4|104.098|3341.2|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A7|105|3520|105.000|3520|\n",
"|Bb7|106|3729.3|105.902|3708.3|\n",
"|A#7|106|3729.3|106.137|3758.9|\n",
"|Cb8|107|3951.1|106.804|3906.7|\n",
"|B7|107|3951.1|107.039|3960|\n",
"|C8|108|4186|107.941|4171.9|\n",
"|B#7|108|4186|108.176|4228.8|\n",
"|Db8|109|4434.9|108.844|4395|\n",
"|C#8|109|4434.9|109.078|4455|\n",
"|D8|110|4698.6|109.980|4693.3|\n",
"|Eb8|111|4978|110.883|4944.4|\n",
"|D#8|111|4978|111.117|5011.9|\n",
"|Fb8|112|5274|111.785|5208.9|\n",
"|E8|112|5274|112.020|5280|\n",
"|F8|113|5587.7|112.922|5562.5|\n",
"|E#8|113|5587.7|113.156|5638.4|\n",
"|Gb8|114|5919.9|113.824|5860|\n",
"|F#8|114|5919.9|114.059|5940|\n",
"|G8|115|6271.9|114.961|6257.8|\n",
"|Ab8|116|6644.9|115.863|6592.6|\n",
"|G#8|116|6644.9|116.098|6682.5|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A8|117|7040|117.000|7040|\n",
"|Bb8|118|7458.6|117.902|7416.6|\n",
"|A#8|118|7458.6|118.137|7517.8|\n",
"|Cb9|119|7902.1|118.804|7813.4|\n",
"|B8|119|7902.1|119.039|7920|\n",
"|C9|120|8372|119.941|8343.7|\n",
"|B#8|120|8372|120.176|8457.5|\n",
"|Db9|121|8869.8|120.844|8790.1|\n",
"|C#9|121|8869.8|121.078|8910|\n",
"|D9|122|9397.3|121.980|9386.7|\n",
"|Eb9|123|9956.1|122.883|9888.8|\n",
"|D#9|123|9956.1|123.117|10024|\n",
"|Fb9|124|10548|123.785|10418|\n",
"|E9|124|10548|124.020|10560|\n",
"|F9|125|11175|124.922|11125|\n",
"|E#9|125|11175|125.156|11277|\n",
"|Gb9|126|11840|125.824|11720|\n",
"|F#9|126|11840|126.059|11880|\n",
"|G9|127|12544|126.961|12516|\n",
"|Ab9|128|13290|127.863|13185|\n",
"|G#9|128|13290|128.098|13365|\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\n",
"|----|----|-----|----|----|-----|\n",
"|A9|129|14080|129.000|14080|\n",
"|Bb9|130|14917|129.902|14833|\n",
"|A#9|130|14917|130.137|15036|\n",
"|B9|131|15804|131.039|15840|\n",
"|B#9|132|16744|132.176|16915|\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"markdown = \"\"\"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\\n\"\"\"\n",
"markdown += \"\"\"|----|----|-----|----|----|-----|\\n\"\"\"\n",
" \n",
"for note, f_pt in sorted_notes:\n",
" \n",
" midi_et = librosa.note_to_midi(note)\n",
" f_et = librosa.midi_to_hz(midi_et)\n",
" \n",
" midi_pt = librosa.hz_to_midi(f_pt)\n",
" \n",
" if note.startswith('A') and midi_et % 12 == 9:\n",
" ipd.display_markdown(markdown, raw=True)\n",
" markdown = \"\"\"|note|midi-ET|Hertz-ET|midi-PT|Hertz-PT|\\n\"\"\"\n",
" markdown += \"\"\"|----|----|-----|----|----|-----|\\n\"\"\"\n",
" \n",
" markdown += \"\"\"|{}|{}|{:.5g}|{:.3f}|{:.5g}|\\n\"\"\".format(\n",
" note, midi_et, f_et, midi_pt, f_pt\n",
" )\n",
" \n",
"ipd.display_markdown(markdown, raw=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[&larr; Back to Index](index.html)"
]
}
],
"metadata": {
"celltoolbar": "Tags",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment