Engee documentation

Introduction

This documentation describes how to use packages https://github.com/JuliaMusic [JuliaMusic], which are designed to read, process and save data related to music, and are written in a programming language https://julialang.org /[Julia]. Most of the functions are implemented in the format https://en.wikipedia.org/wiki/MIDI [MIDI], which is described later on this page.

New! "Humanization": humanize!

The current documentation has been created using the usage of the following package versions:

using Pkg
Pkg.status(["MIDI", "MotifSequenceGenerator",
            "MusicManipulations", "MusicVisualizations"],
            mode = PKGMODE_MANIFEST, io=stdout
)
Status `/mnt/c/For_GIT/External_Packages/JuliaMusic_documentation.jl-master/docs/Manifest.toml`
  [f57c4921] MIDI v2.7.0
  [7d228ccb] MotifSequenceGenerator v1.0.0
  [274955c0] MusicManipulations v1.7.1
  [8e838768] MusicVisualizations v0.2.6

In addition, were used https://github.com/fredrikekre/Literate.jl [Literate.jl] and https://github.com/JuliaDocs/Documenter.jl /[Documenter.jl]. The documentation is written and maintained by George Datseris.

Getting started

The current documentation assumes that you are already familiar with the MIDI format and language https://julialang.org /[Julia]. After installing Julia, you can install the packages you need by entering the ] symbol in the Julia REPL (to switch to package manager mode), and then the 'add MIDI MusicManipulations' command. To learn more about the MIDI format, see MIDI: minimum required knowledge. In the section Overview describes the features offered by JuliaMusic.

Quoting

If you used MIDI.jl or MusicManipulations.jl in the study that was eventually published, then please refer to the article using the following BibTeX entry:

@article{Datseris2019,
  doi = {10.21105/joss.01166},
  url = {https://doi.org/10.21105/joss.01166},
  year  = {2019},
  month = {mar},
  publisher = {The Open Journal},
  volume = {4},
  number = {35},
  pages = {1166},
  author = {George Datseris and Joel Hobson},
  title = {{MIDI}.jl: Simple and intuitive handling of MIDI data.},
  journal = {The Journal of Open Source Software}
}

An idea of the scientific projects in which this software is used can be obtained here: https://www.nature.com/articles/s41598-019-55981-3

Overview

MIDI

https://github.com/JuliaMusic/MIDI.jl [MIDI.jl] is a module that defines basic types such as tracks, read and write functions, note functions, and other fundamental elements.

  1. Basic MIDI structures : The API of basic types like midi files and tracks, as well as IO. Various utility functions are included as well.

  2. Notes : The Note construct describes a music note. Many convenience tools are also provided in the same page, like e.g. turning a note pitch to a string like A♯3.

MusicManipulations

Package https://github.com/JuliaMusic/MusicManipulations.jl [MusicManipulations.jl] provides more advanced capabilities for note processing, data extraction, quantization and other similar processes related to musical data.

  1. Note Tools for easy handling of notes.

  2. Quantizing & Humanizing for quantizing and classifying notes on a given grid.

  3. Music data extraction.

MusicVisualizations

This package allows you to either input MIDI data into a musical score using musescore, or directly enter notes, as on a perforated tape for a mechanical piano, using a customizable function noteplotter.

MotifSequenceGenerator

https://github.com/JuliaMusic/MotifSequenceGenerator.jl [MotifSequenceGenerator.jl] is an extremely simple module that solves a very simple problem: based on a set of motifs of a specified length, it creates a random sequence so that it also has the specified length.

  1. Motif sequence generation introduces the module and has a basic usage example.

  2. Music motifs applies this to notes.

A blog about improving drum skills

This section of the documentation is more like a blog. These pages describe how you can improve your drumming skills using the JuliaMusic packages and the Julia programming language.