Giter Club home page Giter Club logo

mk2apc_4light's Introduction

mk2apc_4light

mk2apc_4light is a simple mapper designed to facilitate providing feedback to an AKAI APC mini mk2 MIDI controller when used in conjunction with QLC+. It receives feedback messages from QLC+ and adapts them to control the button LEDs on the AKAI APC mini mk2 controller.

Prerequisites

  • Linux operating system for midi os::unix::VirtualInput
  • Rust programming language
  • QLC+ lighting control software

Usage

  1. Clone the repository:

    git clone https://github.com/revilo196/mk2apc_4light.git
  2. Navigate to the project directory:

    cd mk2apc_4light
  3. Configure the program:

    • Create a configuration file named config.toml in the project directory. Example content:

      midi_idx = 0

      This configuration file specifies the MIDI index for the AKAI APC mini mk2. Adjust the midi_idx value according to the desired MIDI input device. You can check the console log to identify the correct index.

  4. Build and run the program:

    cargo run --release

    The program will start and wait for MIDI messages from QLC+.

  5. Configure QLC+ to send feedback messages:

    • Open QLC+ and go to the "Input/Output Manager."
    • Under the "MIDI Input" tab, select a MIDI plugin and enable it.
    • Configure the plugin to send messages to the virtual MIDI input device created by mk2apc_4light (usually named "mk2apc_4light_port").

    Now, when QLC+ sends feedback messages, mk2apc_4light will receive and adapt them to control the button LEDs on the AKAI APC mini mk2 controller.

Features

  • Receives MIDI feedback messages from QLC+ and adapts them for the AKAI APC mini mk2 controller.
  • Maps different types of feedback to specific MIDI channels for controlling button LEDs.
  • Converts Note Off messages to Note On messages for consistent handling.
  • Provides console output for debugging purposes.

Default Mapping

The apc_mk2_mapper program provides a default mapping for the AKAI APC mini mk2 controller, which controls the button LEDs based on the feedback messages received from QLC+. The default mapping is as follows:

  • Outer Buttons: The outer buttons of the controller, which are notes beyond the range of 88, are mapped to Channel 1. This mapping ensures that these buttons remain on Channel 1.

  • Button Blinking: Buttons with a color value greater than 64 are mapped to Channel 9. The program subtracts 64 from the color value and maps it to Channel 9, making the button LEDs blink.

  • Normal Buttons: All other buttons are mapped to Channel 7 to make them as bright as possible.

The program handles Note Off messages by converting them to Note On messages with the same parameters. This conversion ensures consistent handling of button states.

These default mappings can be modified and customized according to specific requirements by editing the midi_callback function in the source code.

Customization

You can customize the mappings and behavior of mk2apc_4light by modifying the code in the midi_callback function within the main.rs file. The comments in the code provide explanations and guidance on how to modify the mappings for different MIDI messages.

License

This project is licensed under the MIT License.

Acknowledgments

  • This program utilizes the midir and wmidi Rust libraries for MIDI input and output.
  • The config Rust library is used for reading the configuration file.

Color Table

here follows a color table of usable color for refernce PDF

mk2apc_4light's People

Contributors

owalter-hab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  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.