All Projects → MegaArman → toscanini

MegaArman / toscanini

Licence: MIT license
A JavaScript module for searching music scores.

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to toscanini

SymbTr
Turkish Makam Music Symbolic Data Collection
Stars: ✭ 55 (+266.67%)
Mutual labels:  music-information-retrieval, musicxml
da-tacos
A Dataset for Cover Song Identification and Understanding
Stars: ✭ 50 (+233.33%)
Mutual labels:  music-information-retrieval
Muspy
A toolkit for symbolic music generation
Stars: ✭ 151 (+906.67%)
Mutual labels:  music-information-retrieval
Gist
A C++ Library for Audio Analysis
Stars: ✭ 244 (+1526.67%)
Mutual labels:  music-information-retrieval
Omr Datasets
Collection of datasets used for Optical Music Recognition
Stars: ✭ 158 (+953.33%)
Mutual labels:  music-information-retrieval
ACA-Slides
Slides and Code for "An Introduction to Audio Content Analysis," also taught at Georgia Tech as MUSI-6201. This introductory course on Music Information Retrieval is based on the text book "An Introduction to Audio Content Analysis", Wiley 2012/2022
Stars: ✭ 84 (+460%)
Mutual labels:  music-information-retrieval
Genius
Easily access song lyrics from Genius in a tibble.
Stars: ✭ 111 (+640%)
Mutual labels:  music-information-retrieval
superfomus
SuperCollider bindings to Fomus Music Notation
Stars: ✭ 23 (+53.33%)
Mutual labels:  musicxml
emusic net
Neural network to classify certain styles of Electronic music
Stars: ✭ 22 (+46.67%)
Mutual labels:  music-information-retrieval
Tutorial
Tutorial covering Open Source tools for Source Separation.
Stars: ✭ 223 (+1386.67%)
Mutual labels:  music-information-retrieval
Olaf
Olaf: Overly Lightweight Acoustic Fingerprinting is a portable acoustic fingerprinting system.
Stars: ✭ 198 (+1220%)
Mutual labels:  music-information-retrieval
Omnizart
Omniscient Mozart, being able to transcribe everything in the music, including vocal, drum, chord, beat, instruments, and more.
Stars: ✭ 165 (+1000%)
Mutual labels:  music-information-retrieval
ismir2019-music-style-translation
The code for the ISMIR 2019 paper “Supervised symbolic music style translation using synthetic data”.
Stars: ✭ 27 (+80%)
Mutual labels:  music-information-retrieval
Audioowl
Fast and simple music and audio analysis using RNN in Python 🕵️‍♀️ 🥁
Stars: ✭ 151 (+906.67%)
Mutual labels:  music-information-retrieval
musicntwrk
Network Analysis of Generalized Musical Spaces
Stars: ✭ 37 (+146.67%)
Mutual labels:  music-information-retrieval
Essentia
C++ library for audio and music analysis, description and synthesis, including Python bindings
Stars: ✭ 1,985 (+13133.33%)
Mutual labels:  music-information-retrieval
Dali
DALI: a large Dataset of synchronised Audio, LyrIcs and vocal notes.
Stars: ✭ 193 (+1186.67%)
Mutual labels:  music-information-retrieval
competitive-programming
Solutions of some problems in competitive programming
Stars: ✭ 23 (+53.33%)
Mutual labels:  informatics
spafe
🔉 spafe: Simplified Python Audio Features Extraction
Stars: ✭ 310 (+1966.67%)
Mutual labels:  music-information-retrieval
ci4cc-informatics-resources
Community-maintained list of resources that the CI4CC organization and the larger cancer informatics community have found useful or are developing.
Stars: ✭ 22 (+46.67%)
Mutual labels:  informatics

toscanini

Arturo Toscanini was one of the greatest conductors of the 20th century. His photographic memory allowed him to answer his performers questions regarding their parts in entire performances, without physically examining the scores.

Inspired by Arturo Toscanini's great ability and skill, we made this module to answer some of the most common questions about music scores, particularly with band directors, performers, and musicologists in mind. Currently, this module only supports MusicXML, though various other formats (Ex: Finale, Sibelius, etc) can be converted to MusicXML. See also https://github.com/MegaArman/musicxml-iterator

Demo

https://megaarman.github.io/toscanini/

Installation

npm install toscanini

Example Usage

const fs = require("fs");
const Toscanini = require("toscanini"); //returns a factory function

const musicXML = fs.readFileSync("myscore.xml").toString();
const toscanini = Toscanini(musicXML); //create a Toscanini instance from a MusicXML string
toscanini.getPitchRange("Flute"); //assuming there is a flute in the score, see getInstrumentNames()

Currently supports the following queries:

getInstrumentNames()

returns the names of the instruments in the score as an array, ex:

[ "Voice", "Piano" ]

getPitchRange(instrumentName)

returns an object to represent the lowest and highest pitch in terms of midi numbers for an instrument or the entire score if no instrumentName is provided, ex:

{"minPitch": 30, "maxPitch": 72}

getKeySignatures(instrumentName)

returns the key signatures for a particular instrument as an array, or the entire score if no instrumentName is provided, ex:

["Ab", "Eb"]

getTempos()

returns an array containing all tempos in the score, ex:

[105, 90]

getTimeSignatures()

returns an array of objects to represent the time signatures, ex:

[{ beatType: 4, beats: 4}, {beatType: 8, beats: 9}] 

to show the score has time signatures 4/4 and 9/8 (in any instrument part). Note that node.js may reorder keys in objects.

getDynamics(instrumentName)

returns an array of dynamics for a particular instrument, or for the score if no instrumentName is provided, ex:

["ff",  "f",  "mf"] 

getRhythmComplexity(instrumentName)

returns an array of objects representing the note types that appear for a particular instrument or for the entire score if no instrumentName is provided:

[{dotted: 0, type: "whole"}, {dotted: 0, type: "half"}, {dotted: 1, type: "quarter"},
 {dotted: 1, type: "half"}, {dotted: 3, type: "quarter"}]

We can see from this example that the part had whole notes, half notes, dotted quarters, dotted halfs, and triple dotted quarters (a very particular composer indeed).

getNumberOfMeasures()

returns the number of measures in a score.

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].