All Projects → drs251 → pyRealParser

drs251 / pyRealParser

Licence: other
A package to read songs in the iRealPro format

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pyRealParser

jazz
The Scripting Engine that Combines Speed, Safety, and Simplicity
Stars: ✭ 132 (+450%)
Mutual labels:  jazz
CliChords
[CliChords] Get ultimate-guitar.com guitar tabs and chords in your terminal - command line cli
Stars: ✭ 20 (-16.67%)
Mutual labels:  chords
p2p-project
A peer-to-peer networking framework to work across languages
Stars: ✭ 68 (+183.33%)
Mutual labels:  chords
guitar-book
Open Source, Gatsby theme, mobile and SEO friendly with PWA for building guitar/song books. 🎸 🎤 🎵
Stars: ✭ 29 (+20.83%)
Mutual labels:  chords
Scribbletune
Create music with JavaScript
Stars: ✭ 3,509 (+14520.83%)
Mutual labels:  chords
arpeggio
A chord naming app for guitar written in React.
Stars: ✭ 49 (+104.17%)
Mutual labels:  chords
flute
The Application Framework Built for Powerful, Secure features and add-ons
Stars: ✭ 14 (-41.67%)
Mutual labels:  jazz
Chord-Provider
A Chordpro parser/editor in SwiftUI 4 for macOS and iOS
Stars: ✭ 20 (-16.67%)
Mutual labels:  chords
Tonal
A functional music theory library for Javascript
Stars: ✭ 2,156 (+8883.33%)
Mutual labels:  chords
chords
Text-based chord progression editor
Stars: ✭ 25 (+4.17%)
Mutual labels:  chords
MusicTheory
Music Theory Library for Java and Android apps
Stars: ✭ 24 (+0%)
Mutual labels:  chords
Tabdown
Tabdown is an open mark-up language for text tabs & chords.
Stars: ✭ 49 (+104.17%)
Mutual labels:  chords
Miles
Swift Playground that creates jazz improvisations (WWDC 2018)
Stars: ✭ 31 (+29.17%)
Mutual labels:  jazz
Deepjazz
Deep learning driven jazz generation using Keras & Theano!
Stars: ✭ 2,766 (+11425%)
Mutual labels:  jazz
chords
A Kotlin multi-platform view library for displaying stringed instrument chord diagrams
Stars: ✭ 25 (+4.17%)
Mutual labels:  chords
deep-improvisation
Easy-to-use Deep LSTM Neural Network to generate song sounds like containing improvisation.
Stars: ✭ 53 (+120.83%)
Mutual labels:  jazz
uke
𝄝 Ukulele CLI Support
Stars: ✭ 13 (-45.83%)
Mutual labels:  chords
Chords.py
Neural networks applied in recognizing guitar chords using python, AutoML.NET with C# and .NET Core
Stars: ✭ 24 (+0%)
Mutual labels:  chords
hexpress
Modern mobile music instrument
Stars: ✭ 51 (+112.5%)
Mutual labels:  chords
phptabs
A PHP library for reading, writing and rendering guitar tablatures and MIDI files
Stars: ✭ 34 (+41.67%)
Mutual labels:  chords

pyRealParser

A Python package to read songs in the iRealPro format.

Introduction & Usage

Here's an example of how to import an iReal link and print the information it contains:

>from pyRealParser import Tune
>my_tune = Tune.parse_ireal_url('irealb://%44%65%61%72<link shortened>')[0]
>print(my_tune)

<pyRealParser.Tune object at 0x107305e80>
Title: Dear Old Stockholm
Composer: Traditional
Style: Medium Swing
Key: D-
Transpose: None
Comp style: 0
BPM: 0
Repeats: None
Time signature: 4/4

Chord string:
*A{T44D- |Eh7 A7b9|G-7 C7|F^7 |Eh7 A7b9|D- |Eh7 |A7b9 |D-7 |D-6 |D-7 |D-6 }*B[F^7 |G-7 C7|F^7 |Eh7 A7b9 ]*C[D- |Eh7 A7b9|G-7 C7|F^7 |Eh7 A7b9|D- |C7sus |x |C7sus |x |x |x |C7sus A7b9|D- |x

Flattened measures:
| D-          | Eh7A7b9     | G-7C7       | F^7         |
| Eh7A7b9     | D-          | Eh7         | A7b9        |
| D-7         | D-6         | D-7         | D-6         |
| D-          | Eh7A7b9     | G-7C7       | F^7         |
| Eh7A7b9     | D-          | Eh7         | A7b9        |
| D-7         | D-6         | D-7         | D-6         |
| F^7         | G-7C7       | F^7         | Eh7A7b9     |
| D-          | Eh7A7b9     | G-7C7       | F^7         |
| Eh7A7b9     | D-          | C7sus       | C7sus       |
| C7sus       | C7sus       | C7sus       | C7sus       |
| C7susA7b9   | D-          | D-          |

parse_ireal_urlreturns a list of Tune objects, each representing a song contained in the input url. They contain a number of member variables, containing the chords as well as some meta information:

  • chord_string: A single string that has all chords of the tune, with bar lines, repeat markers, endings, codas etc:
>print(my_tune.chord_string)

*A{T44D- |Eh7 A7b9|G-7 C7|F^7 |Eh7 A7b9|D- |Eh7 |A7b9 |D-7 |D-6 |D-7 |D-6 }*B[F^7 |G-7 C7|F^7 |Eh7 A7b9 ]*C[D- |Eh7 A7b9|G-7 C7|F^7 |Eh7 A7b9|D- |C7sus |x |C7sus |x |x |x |C7sus A7b9|D- |x
  • measures_as_strings: A list, for which every element corresponds to a single bar, containing the chords in string form. Repeats, codas etc. have been flattened.
>print(my_tune.measures_as_strings)

*['D-', 'Eh7A7b9', 'G-7C7', 'F^7', 'Eh7A7b9', 'D-', 'Eh7', 'A7b9', 'D-7', 'D-6', 'D-7', 'D-6', 'D-', 'Eh7A7b9', 'G-7C7', 'F^7', 'Eh7A7b9', 'D-', 'Eh7', 'A7b9', 'D-7', 'D-6', 'D-7', 'D-6', 'F^7', 'G-7C7', 'F^7', 'Eh7A7b9', 'D-', 'Eh7A7b9', 'G-7C7', 'F^7', 'Eh7A7b9', 'D-', 'C7sus', 'C7sus', 'C7sus', 'C7sus', 'C7sus', 'C7sus', 'C7susA7b9', 'D-', 'D-']
  • title: The title
  • composer: The composer
  • style: The style (e.g. 'Swing', 'Bossa', 'Blues' etc.)
  • key: The key (e.g. 'A', 'F#' etc)
  • transpose: How many semitones to transpose
  • comp_style: Accompaniment style (usually empty)
  • bpm: Tempo in BPM (usually empty)
  • repeats: How many repeats (usually empty)
  • time_signature: Time signature as a tuple (e.g. (3,4), (4, 4), (5, 8) etc.)

Notice, that some of these meta-data fields might be empty, depending on the input url.

Tune objects are designed to have a nice textual representation in Jupyter notebooks, but can be used outside of a notebook perfectly well.

For more documentation, please read the code.

Contributions are welcome, please submit a PR.

Installation

pip install pyRealParser

Acknowledgements

Kudos to @pianosnake and @ironss for figuring out the iReal url format!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].