Git Product home page Git Product logo

lilyfrog's Introduction

LilyFrog

LilyFrog allows you faster note entering in the LilyPond text editor of your choice, e.g. Frescobaldi. What you need is a MIDI master keyboard and an usual USB numeric keypad. The keypad is required to easy control temporal parameters like note duration, note accidental and so on. By pressing a key on the MIDI keyboard, the resulting LilyPond snippet will be generated and virtually typed on the PC. Summarized, the LilyFrog types notes that you are playing, which is an intuitive and fast method to enter LilyPond music scores.

Requirements and limitations

LilyFrog is written in Python and requires following libraries to be installed:

Because of specific keypad handling, it runs only on Linux (at the moment) and only with superuser privileges. Currently the Delock 12371 USB keypad was successfully tested. However, a random MIDI master keyboard can be connected via QjackCtl.

Setup instructions

  1. Install PyQt4 from your Linux distribution repository. Download two remaining libraries and run sudo python setup.py install respectively. Alternatively execute sudo pip install -r REQUIREMENTS.
  2. Find out the keypad vendor and product number by executing lsusb. You may run this command twice, before and after connecting the keypad to quickly find the right entry. Insert both numbers into the Keypad.py file.
  3. Start QjackCtl and plug in the MIDI keyboard. Connect the MIDI keyboard output to MIDI through input or optionally to RtMidi client input after the next step.
  4. Execute the lilyfrog command. You'll be prompted to enter the superuser password.
  5. Optionally adjust keyboard key combinations and note names in the Mappings.py file depending on your needs.

Keypad shortcuts

To activate LilyFrog press the NumLock button. If the keypad has a LED indicator, it should get on.

There are two kinds of keypad shortcuts: passive and active. Passive shortcuts produces no output itself, they only changes the temporal note or rest state until a MIDI key or the rest shortcut is pressed. With passive shortcuts you can control the duration, accidental and relative octave of the note/rest. After entering a note/rest the temporal state will be automatically reset. Press a passive shortcut twice to undo the state change. Active keypad shortcuts don't reset any temporal state, but they produces an output.

Note/rest duration:

  • 1: 64th
  • 2: 32nd
  • 3: 16th
  • 4: Eighth
  • 5: Quarter
  • 6: Half
  • 7: Whole
  • 8: Breve
  • 9: Longa
  • .: Dot

Note accidental:

  • '/': Flat
  • '*': Sharp

A temporal accidental is not restricted to the black keys only. It is also possible to produce notes like eis by pressing '*' on the keypad and 'f' on the MIDI keyboard respectively.

Relative octave mark:

  • '-': Down
  • '+': Up

Common active keys:

  • '0': Inserts a rest r instead of note
  • 'Enter': Inserts a bar check | and a line break

Special active keys (depending on keypad manufacturer):

  • 'Backspace': Deletes the last typed character
  • 'Space': Inserts a tie ~

lilyfrog's People

Contributors

jurihock avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

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.