Compose music in your spreadsheet.
How to
Installing
Install lilypond, fluidsynth, gnumeric, maybe something else. Then
pip2 install sheetmusic sheetmusic-installer gnumeric
Sheetmusic is a Gnumeric plugin. The first time you use it, you might need to enable the plugin; go to the “Tools” menu, click “Plug-ins…”, and then make sure that “Sheetmusic” is checked.
How to use
Sheetmusic is a bunch of spreadsheet functions that manipulate notes. These notes must be written in scientific notation; for example, middle C is written as “C4”.
Some functions return more than one output cell (like chords). To run spreadsheet functions with multiple output cells, hit control + enter rather than just enter.
To play the music, run
import sheetmusic
sheetmusic.init()
sheetmusic.play('B2:C2')
sheetmusic.play('J1:M33', 'A', 4, 4, 200) # to change tempo
Function reference
Sheetmusic provides the following functions inside the Spreadsheet.
Chords and arpeggios:
I7_arpeggio(base note) I7_chord(base note) II7_arpeggio(base note) II7_chord(base note) III7_arpeggio(base note) III7_chord(base note) III_arpeggio(base note) III_chord(base note) II_arpeggio(base note) II_chord(base note) IV7_arpeggio(base note) IV7_chord(base note) IV_arpeggio(base note) IV_chord(base note) I_arpeggio(base note) I_chord(base note) V7_arpeggio(base note) V7_chord(base note) VI7_arpeggio(base note) VI7_chord(base note) VII7_arpeggio(base note) VII7_chord(base note) VII_arpeggio(base note) VII_chord(base note) VI_arpeggio(base note) VI_chord(base note) V_arpeggio(base note) V_chord(base note) augmented_major_seventh_arpeggio(base note) augmented_major_seventh_chord(base note) augmented_minor_seventh_arpeggio(base note) augmented_minor_seventh_chord(base note) augmented_triad_arpeggio(base note) augmented_triad_chord(base note) diminished_seventh_arpeggio(base note) diminished_seventh_chord(base note) diminished_triad_arpeggio(base note) diminished_triad_chord(base note) dominant7_arpeggio(base note) dominant7_chord(base note) dominant_arpeggio(base note) dominant_chord(base note) dominant_flat_five_arpeggio(base note) dominant_flat_five_chord(base note) dominant_flat_ninth_arpeggio(base note) dominant_flat_ninth_chord(base note) dominant_ninth_arpeggio(base note) dominant_ninth_chord(base note) dominant_seventh_arpeggio(base note) dominant_seventh_chord(base note) dominant_sharp_ninth_arpeggio(base note) dominant_sharp_ninth_chord(base note) dominant_sixth_arpeggio(base note) dominant_sixth_chord(base note) dominant_thirteenth_arpeggio(base note) dominant_thirteenth_chord(base note) eleventh_arpeggio(base note) eleventh_chord(base note) first_inversion_arpeggio(base note) first_inversion_chord(base note) half_diminished_seventh_arpeggio(base note) half_diminished_seventh_chord(base note) hendrix_chord_arpeggio(base note) hendrix_chord_chord(base note) lydian_dominant_seventh_arpeggio(base note) lydian_dominant_seventh_chord(base note) major_ninth_arpeggio(base note) major_ninth_chord(base note) major_seventh_arpeggio(base note) major_seventh_chord(base note) major_sixth_arpeggio(base note) major_sixth_chord(base note) major_thirteenth_arpeggio(base note) major_thirteenth_chord(base note) major_triad_arpeggio(base note) major_triad_chord(base note) mediant7_arpeggio(base note) mediant7_chord(base note) mediant_arpeggio(base note) mediant_chord(base note) minor_eleventh_arpeggio(base note) minor_eleventh_chord(base note) minor_major_seventh_arpeggio(base note) minor_major_seventh_chord(base note) minor_ninth_arpeggio(base note) minor_ninth_chord(base note) minor_seventh_arpeggio(base note) minor_seventh_chord(base note) minor_seventh_flat_five_arpeggio(base note) minor_seventh_flat_five_chord(base note) minor_sixth_arpeggio(base note) minor_sixth_chord(base note) minor_thirteenth_arpeggio(base note) minor_thirteenth_chord(base note) minor_triad_arpeggio(base note) minor_triad_chord(base note) second_inversion_arpeggio(base note) second_inversion_chord(base note) seventh_arpeggio(base note) seventh_chord(base note) sixth_ninth_arpeggio(base note) sixth_ninth_chord(base note) subdominant7_arpeggio(base note) subdominant7_chord(base note) subdominant_arpeggio(base note) subdominant_chord(base note) submediant7_arpeggio(base note) submediant7_chord(base note) submediant_arpeggio(base note) submediant_chord(base note) subtonic7_arpeggio(base note) subtonic7_chord(base note) subtonic_arpeggio(base note) subtonic_chord(base note) supertonic7_arpeggio(base note) supertonic7_chord(base note) supertonic_arpeggio(base note) supertonic_chord(base note) suspended_fourth_ninth_arpeggio(base note) suspended_fourth_ninth_chord(base note) suspended_fourth_triad_arpeggio(base note) suspended_fourth_triad_chord(base note) suspended_second_triad_arpeggio(base note) suspended_second_triad_chord(base note) suspended_seventh_arpeggio(base note) suspended_seventh_chord(base note) suspended_triad_arpeggio(base note) suspended_triad_chord(base note) third_inversion_arpeggio(base note) third_inversion_chord(base note) tonic7_arpeggio(base note) tonic7_chord(base note) tonic_arpeggio(base note) tonic_chord(base note) triad_arpeggio(base note) triad_chord(base note)
Scales:
aeolian_scale(base note) chromatic_scale(base note) diatonic_scale(base note) diminished_scale(base note) dorian_scale(base note) harmonic_minor_scale(base note) ionian_scale(base note) locrian_scale(base note) lydian_scale(base note) melodic_minor_scale(base note) mixolydian_scale(base note) natural_minor_scale(base note) phrygian_scale(base note) whole_note_scale(base note)
Intervals:
unison_interval(base note, key) major_unison_interval(base note) minor_unison_interval(base note) augmented_unison_interval(base note) second_interval(base note, key) major_second_interval(base note) minor_second_interval(base note) third_interval(base note, key) major_third_interval(base note) minor_third_interval(base note) fourth_interval(base note, key) major_fourth_interval(base note) minor_fourth_interval(base note) perfect_fourth_interval(base note) fifth_interval(base note, key) major_fifth_interval(base note) minor_fifth_interval(base note) perfect_fifth_interval(base note) sixth_interval(base note, key) major_sixth_interval(base note) minor_sixth_interval(base note) seventh_interval(base note, key) major_seventh_interval(base note) minor_seventh_interval(base note) interval(major|minor, interval:[0-7], base note) octave_down(base note) octave_up(base note)
Other:
from_integer(integer) -> scientific note progression(progression, base note) -> [[scientific note]] rep(range, each) -> another range to_integer(scientific note) -> integer
Bars
Sheetmusic ignores borders, but I recommend that you place horizontal borders where you would place bars in ordinary sheet music.
Slurred and tied notes
Notes are slurred within italicized regions.
Development
Helpful links
http://www.hep.by/gnu/gnumeric/sect-extending-python-writing.shtml
https://help.gnome.org/users/gnumeric/stable/sect-extending-python.html.en
http://www.bruunisejs.dk/PythonHacks/rstFiles/500%20Notes%20on%20spreadsheets%20etc.html
This requires Python 2 because mingus requires Python 2.
Metadata
Release files for sheetmusic 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| sheetmusic-0.0.4.tar.gz | 8.1 kB | Without provenance | Details |
Release files / sheetmusic-0.0.4.tar.gz
| Download URL | sheetmusic-0.0.4.tar.gz |
|---|---|
| Size | 8.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
627a4fe063ac95ed7130345b4bf13e02da77645be2f7a78c986df07fc0c0a3d0
|
|
BLAKE2b-256 checksum How to use checksums |
a2588235f6f6f86e60fa163a4f398857905870178a65aa5642daf975accb4223
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for sheetmusic 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.