GithubHelp home page GithubHelp logo

vsicurella / supervirtualkeyboard Goto Github PK

View Code? Open in Web Editor NEW
40.0 4.0 2.0 1.29 MB

MIDI Plugin made with JUCE for interacting with microtonal piano layouts

License: The Unlicense

C++ 99.91% C 0.09%
midi keyboard midi-plugin microtonal juce

supervirtualkeyboard's Introduction

SuperVirtualKeyboard

LATEST VERSION: Alpha 2020-10-?? (v0.03)

SuperVirtualKeyboard Preview

SUMMARY:

Super Virtual Keyboard is a MIDI-controller plugin that allows you to explore different keyboard layouts with the intention of making microtonal scales easier to digest and compose with.

This plugin does not yet offer retuning capabilities, so you will have to alter your synth's tuning.

FEATURES:

  • Select a scale from a large selection of mode presets then click the keys on the keyboard to play.

  • Set custom colors for keys by scale degree, key layer (like all white vs all black), or individual keys, which can be saved and reloaded with your scale. Click "Edit Colors", select the color, and then click the key you want to change the color of.

    • No key modifiers will paint all keys of the same scale degree
    • Shift will paint all belonging to the same layer
    • Control will only paint the clicked key.
    • Right-clicking, with respective modifiers, resets the key(s) to a default color.
  • If you don't have a midi controller, here are some features you can take advantage of:

    • Hold "Shift" to hold down notes, "Alt" for "Mono Legato" mode, and "Space" to retrigger held notes.
    • Use "Up" & "Down" keys on held notes to transpose by one interval, or "Left" & "Right" keys to transpose by one modal step.
  • Save your layout as a text file that Reaper can load as "MIDI Note Names" so that you can see the layout in Reaper's piano roll!

    • View and Edit information about your mode in the "View Mode Info" dialog in the "Edit" menu
    • Save and load your custom scales and midi mappings!
  • Use the mapping function to remap your midi piano keyboard to a microtonal scale. To enable, open the dropdown box on the top left and choose "Auto Mapping". This will reveal some more controls, as well as a mapping style.

    • The first scale selection box on the right represents what scale you're mapping from, the input scale, which should be your hardware MIDI keyboard's layout. This will probably be the standard layout, Meantone[7] 12. The second scale under it is the output scale, the scale you will be remapping to.
    • The "Mode to Mode" style will map your MIDI keyboard's white keys to the white keys of the selected scale and will approxmate closest degrees on the chromatic keys.
    • The "Mode to Scale" style will map your full chromatic MIDI keyboard to the selected scale's white keys. This if useful if your output scale's mode size is equal to your input scale's size (the MIDI keyboard's scale size, which is usually 12).
      • For example, Meantone[12] 31 (in 31-EDO) works great on a standard midi keyboard, which creates a chromatic layout from 31-EDO.
      • Superpyth[12] 22 and Pajara[12] 22 are other interesting ones to play around with in this mode.
    • The "by Layers" style will allow you to map a certain layer of keys (layer 1 = diatonic white keys, order 2 = pentatonic black keys) to a certain layer of keys in the output scale.
      • An example would be making a the scale pattern "7 7 7 7 7" which is 35-EDO, and then mapping your input white keys the 7-EDO output white keys, and your black keys to one of the 5-EDO subsets.

New in version 0.03:

  1. Improved preset structure and recalling, however new preset format is incompatible with older presets
    • Modes may still load
    • I can add support for old presets upon request
    • The new preset structure includes versioning which make backwards-compatibility more feasible
  2. Basic manual mapping
  3. Basic KBM file export
  4. New Settings menu
    • Reintroduced key color features
    • Adjacent key placement style
    • Key highlighting options
    • Fixed period shifting and transposition
    • MIDI Device selection for standalone app
    • Note mapping editor
  5. Simpler and improved GUI
  6. Smoothed window resizing

To do:

  • Allow piano keys to be triggered by computer keyboard keys
  • Add note names
  • Add tuning capability (??)
  • Add preset tags and improve preset browsing and management
  • Advanced key shape customization
  • Change keyboard orientation
  • Graphics shading & other niceties
  • Different methods of scale creating
  • More...

Known Bugs:

  • More...

supervirtualkeyboard's People

Contributors

vitoatsoundtoys avatar vsicurella avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

hkarim kevleyski

supervirtualkeyboard's Issues

CV frequency output?

LV2 and JACK both have a CV port mechanism.

The MOD devices plugins use a frequency system akin to the Eurorack voltage levels.

If would be great to have a microtonal way to drive plugins using that system.

License missing.

Hi,

It would be great to include SuperVirtualKeyboard builds in Linux repositories, but such thing requires a license (GPL, MIT or whatever).

Thank you for your great tool!

Preset recall is broken

I broke this when fixing the memory leaks. Unfortunately I overlooked this before releasing v0.01a

Many buttons are disabled on my Mac

These buttons are all grayed out/disabled:
Edit Colors,
Nested Center, Adjacent,
Inside, Border, Circles, Squares,
Manuel Map

Also when I hit Clicked Auto Mapping my DAW outright crashed

Case mismatch KeyboardViewPort.h

Hi!

Compiling in Linux fails due couple of mismatch in filename:
KeyboardViewport.h instead of KeyboardViewPort.h
in
SuperVirtualKeyboard.jucer PluginControlComponent.h KeyboardComponent.h KeyboardViewPort.cpp

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.