Введение
В этой документации описывается, как использовать пакеты JuliaMusic, которые предназначены для считывания, обработки и сохранения данных, связанных с музыкой, и написаны на языке программирования Julia. Большая часть функций реализована в формате MIDI, который описывается далее на этой странице.
Новое!
"Очеловечивание": humanize!
Текущая документация была создана с использованием следующих версий пакетов:
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
Кроме того, использовались Literate.jl и Documenter.jl. Документация написана и поддерживается Джорджем Дацерисом (George Datseris).
Начало работы
Текущая документация предполагает, что вы уже знакомы с форматом MIDI и языком Julia. После установки Julia вы можете установить нужные вам пакеты, введя в REPL Julia символ ]
(для перехода в режим диспетчера пакетов), а затем команду add MIDI MusicManipulations
. Узнать больше о формате MIDI можно в разделе MIDI: минимальные необходимые знания. В разделе Обзор описываются предлагаемые JuliaMusic возможности.
Цитирование
Если вы использовали MIDI.jl или MusicManipulations.jl в исследовании, которое в итоге было опубликовано, просим указать ссылку на нашу статью, используя следующую запись BibTeX:
@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}
}
Представление о научных проектах, в которых используется это программное обеспечение, можно получить здесь: https://www.nature.com/articles/s41598-019-55981-3
Обзор
MIDI
MIDI.jl — это модуль, в котором определены такие базовые типы, как дорожки, функции чтения и записи, функции нот и другие основополагающие элементы.
-
Basic MIDI structures : The API of basic types like midi files and tracks, as well as IO. Various utility functions are included as well.
-
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 likeA♯3
.
MusicManipulations
Пакет MusicManipulations.jl предоставляет более продвинутые возможности обработки нот, извлечения данных, квантизации и других подобных процессов, связанных с музыкальными данными.
-
Note Tools for easy handling of notes.
-
Quantizing & Humanizing for quantizing and classifying notes on a given grid.
MusicVisualizations
Этот пакет позволяет либо вводить MIDI-данные в музыкальную партитуру с помощью musescore
, либо напрямую вводить ноты, как на перфорированной ленте для механического пианино, с помощью настраиваемой функции noteplotter
.
MotifSequenceGenerator
MotifSequenceGenerator.jl — это чрезвычайно простой модуль, который решает очень простую задачу: на основе набора мотивов указанной длины создает случайную последовательность так, чтобы она также имела указанную длину.
-
Motif sequence generation introduces the module and has a basic usage example.
-
Music motifs applies this to notes.