Hello mates!
I just got a Nanokontrol2 last week and, since the current mappings do
not match the way I play, I decided to write my own. And, ok, I hate XML
and Javascript, and in my previous experience, writing Mixxx scripts is
tedious, and error-prone. So I decided to write my own framework for
writing mappings in CoffeeScript: no XML, no Javascript.
With the MixCo project I try to solve these problems, providing (still
under development) these features:
- Your script file is a single CoffeeScript file
- The same file can be executed to generate the XML mapping and
converted to JavaScript to be used as the script.
- Generates direct-mappings to controls whenever possible, but this is
transparent to the script writer.
- Most of the API is very declarative.
The current state of the project can be followed here:
https://gitorious.org/mixco
Note that it is very inmature yet, but I wanted to announce this early
so you guys can give feedback soonish. Do you like the approach? What
features would you like it to have?
I am building the framework incrementally so far using my Nanokontrol2
mapping as driving force. Future features include declarative ways of
specifying modes, and so on. After this, I plan to also rewrite my
M-Audio Xponent mapping using the framework, with hoping to solve the
several bugs it now has and update it to better use Mixxx 1.11 features.
I might also write mappings for Ableton Push, which can be an
interesting project, but lets not talk too much about that now...
Ok, I will shut up now and come back when the project is more mature.
Just to show what this is about, I put at the end of the email the
current very basic Nanokontrol2 mapping.
Cheers!
JP
# File: nanokontrol2.coffee
script = require "../mixco/script"
control = require "../mixco/control"
script.register class NanoKontrol2 extends script.Script
info:
name: '[MixCo] Korg Nanokontrol 2'
author: 'Juan Pedro Bolivar Puente <[email protected]>'
description:
"""
Controller mapping for Korg Nanokontrol 2 that is
targetted at being used as main interface for Mixxx.
"""
constructor: ->
super
@addDeck 0
@addDeck 1
addDeck: (i) ->
group = "[Channel#{i+1}]"
@add new control.Knob(0x10 + 4*i, group, "filterLow"),
new control.Knob(0x11 + 4*i, group, "filterMid"),
new control.Knob(0x12 + 4*i, group, "filterHigh"),
new control.Knob(0x13 + 4*i, group, "pregain").soft(),
new control.Slider(0x00 + i, group, "volume"),
new control.LedButton(0x40 + i, group, "play"),
new control.Slider(0x02 + i, group, "rate").soft()
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org
Mixxx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mixxx-devel