All Projects → music-suite → Music Suite

music-suite / Music Suite

Licence: bsd-3-clause
Music in Haskell

Programming Languages

haskell
3896 projects

Labels

Projects that are alternatives of or similar to Music Suite

Nsfplay
Nintendo NES sound file NSF music player
Stars: ✭ 155 (-6.63%)
Mutual labels:  music
Omr Datasets
Collection of datasets used for Optical Music Recognition
Stars: ✭ 158 (-4.82%)
Mutual labels:  music
Blossom
A lovely interactive music generator
Stars: ✭ 162 (-2.41%)
Mutual labels:  music
Web
Angular6 music player to search and play YouTube, SoundCloud and Mixcloud tracks
Stars: ✭ 156 (-6.02%)
Mutual labels:  music
Viano
A toy that lets you write songs using Vue components.
Stars: ✭ 158 (-4.82%)
Mutual labels:  music
Datmusic Api
Alternative for VK Audio API
Stars: ✭ 160 (-3.61%)
Mutual labels:  music
Imitateneteasycloud
🌝
Stars: ✭ 154 (-7.23%)
Mutual labels:  music
Lstm Music Genre Classification
Music genre classification with LSTM Recurrent Neural Nets in Keras & PyTorch
Stars: ✭ 166 (+0%)
Mutual labels:  music
Ni Media
NI Media is a C++ library for reading and writing audio streams.
Stars: ✭ 158 (-4.82%)
Mutual labels:  music
Discord Player
🎧 Complete framework to simplify the implementation of music commands using discords.js v12
Stars: ✭ 161 (-3.01%)
Mutual labels:  music
Octave
Discord bot written in Java and Kotlin using JDA.
Stars: ✭ 156 (-6.02%)
Mutual labels:  music
Html Midi Player
🎹 Play and display MIDI files on the web
Stars: ✭ 158 (-4.82%)
Mutual labels:  music
Itunes Remote
Remotely control iTunes on Mac without Internet 🎶📱
Stars: ✭ 160 (-3.61%)
Mutual labels:  music
Bravura
Bravura music font, reference font for SMuFL (Standard Music Font Layout)
Stars: ✭ 155 (-6.63%)
Mutual labels:  music
Electronic Netease Music
Netease Music built by Electron
Stars: ✭ 164 (-1.2%)
Mutual labels:  music
Odyssey
Odyssey music player
Stars: ✭ 153 (-7.83%)
Mutual labels:  music
Openbook
Open source lilypond real book for Jazz musicians
Stars: ✭ 159 (-4.22%)
Mutual labels:  music
Signal
A friendly music sequencer built with web technology
Stars: ✭ 166 (+0%)
Mutual labels:  music
Torch Audiomentations
Fast audio data augmentation in PyTorch. Inspired by audiomentations. Useful for deep learning.
Stars: ✭ 164 (-1.2%)
Mutual labels:  music
Album Splitter
Split a single-file mp3 album into its tracks. Supports downloading from YouTube.
Stars: ✭ 160 (-3.61%)
Mutual labels:  music

CircleCI

Music Suite

Music Suite is a language for describing music, based on Haskell.

image

How to build

Set up the build environment

Install Nix (2.3.1 or later).

Enter build environment using:

nix-shell --pure

You should see this prompt:

#

Inside the build shell, the following commands can be used:

Build the library and examples

# cabal update
# cabal build

Build and run the tests

Standard test suite

# cabal test --test-show-details=streaming --test-options=--color=always

To run individual tests:

# cabal run TEST_NAME -- TEST_ARGS...

e.g.

cabal run music-suite-test-xml-parser

Doctests

# cabal build && doctests

To run doctests for individual files/directories:

# cabal build && cabal exec doctester --package music-suite -- src/Music/Pitch

Development shell

# cabal build music-suite && cabal exec --package music-suite ghci

or

# cabal repl

Build the documentation

User Guide

TODO

The output appears in docs/build. You can point a HTTP server to this directory.

API docs

m> cabal haddock

Run example

cabal exec runhaskell -- examples/chopin.hs -f ly -o t.ly

How to upgrade the compiler/Nixpkgs

  • Update the commit/URL and hash in default.nix
    • Use $ nix-prefetch-url --unpack <url> to obtain the hash (and verify)
  • Enter new Nix shell (may take a while)
  • Comment out reject-unconstrained-dependencies in Cabal config
  • Update index-state in Cabal config to a recent time
  • Run cabal freeze
  • Run cabal test to check that compiling/testing works (and fix errors)
  • Restore reject-unconstrained-dependencies
  • Commit changes to Nix and Cabal files

Developer notes

Module hierarchy

  • The high-level DSL:

    • Music.Time: high-level DSL for time and rhythm
    • Music.Pitch: high-level DSL for pitch (common, scientific)
    • Music.Dynamics: high-level DSL for dynamics
    • Music.Articulation: high-level DSL for musical articulation
    • Music.Part: high-level DSL for instruments and parts
    • Music.Prelude: prelude/standard library for the Music Suite DSL
  • The notation DSL:

    • Music.Notation.Standard: DSL for representing Common/Western music notation
  • Import & Export:

    • Data.Music.Lilypond: AST, parsing and pretty-printing for the Lilypond language
    • Data.Music.MusicXml: AST, parsing and pretty-printing for MusicXML
  • Utility

    • Control.*: miscellaneous algorithms and utilities
    • Data.*: miscellaneous data structures
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].