Code Monkey home page Code Monkey logo

humidifier's People

Contributors

qualiaa avatar

Watchers

 avatar  avatar

humidifier's Issues

Fix scaling issues

I've tended to use Diagrams.hs normalized units - however, the behaviour isn't quite what I want. Possibly output units would be more appropriate - needs some looking at

Support different musical scales

The piano roll currently visually resembles a piano (i.e. white notes are in the C major scale). It would be nice to visually represent different possible scales.

This could either change which pitches are "dark" on the roll, or it could highlight notes outside the selected scale somehow.

Support change in key/scale

Following from #3, it would be nice to change the scale of the piece at a specific time.

There is a Key Signature MIDI meta message

MIDI files support a Key Signature meta message - however, this won't be sufficient to support e.g. pentatonic scales.

One alternative is to set this information on the command-line, though the resulting command string may be slightly ponderous.

Another option is a configuration file.

Support for multiple MIDI tracks

Currently we support single-track MIDI files. To make the tool more generally useful, it would be nice to plot a selected set of tracks from the file, defaulting to all of them, perhaps each with its own note colour.

Support change in time signature

Currently there is one global time signature. However, time signatures can change throughout a piece.

MIDI files support a Time Signature meta message - we should process these correctly.

As an alternative, it may be workable to set this information on the command-line, though the resulting command string may be slightly ponderous.

Triplet visualisation

Following from #6, it would be good to have an optional triplet grid. There are two main kinds of triplet:

  • quarter note triplets (3 notes in place of 2 quarter notes)
  • eighth note triplets (3 notes in place of 1 quarter note)

Not sure how these would interact with a non-quarter beat unit.

Displaying a full grid may be overkill, may be a better way of visualising it. Possibly detecting notes that fall on those lines and marking their beginnings somehow?

Support different time signatures

Time signature is currently hard-coded to 4:4. May not be able to support all exotic time-signatures, but should at least handle simple time signatures of form N:M where N is the beats per bar and M is the beat unit.

Add support for finer grid divisions

Currently we draw grid-lines for the beat and the bar. It would be good to have an option for finer divisions. For a beat unit N, divisions of N/2 and N/4 might be sufficient

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.