GithubHelp home page GithubHelp logo

mixxx-pioneer-ddj-sr's Introduction

Pioneer DDJ-SR MIDI Mapping for Mixxx

Description

This is my attempt at mapping the Pioneer DDJ-SR for Mixxx.

This was originally written for Mixxx v1.11.0, but I'm in the process of updating it to Mixxx 2.0 as of January 2017. This is very much a hobby project though, so updates may be intermittent.

How do I use it?

If you just want to get your controller working with with Mixxx without bothering about the details much, then do the following:

  1. Download the following two files:
  2. Copy these to the [Mixxx Directory]/controllers folder. This will probably be one of the following locations:
    • Windows: C:\Program Files\Mixxx\controllers
    • Linux: /usr/share/mixxx/controllers or /usr/local/share/mixxx/controllers
    • OS X: /Applications/Mixxx.app/Contents/Resources/controllers/
  3. Make sure your Pioneer DDJ-SR is plugged in, turned on, and set up to use DJ software other than Serato (see your user manual, or the Controller Setup section below)
  4. Open (or restart) Mixxx, and enjoy using your (semi-functional) controller

Controller Setup (important!)

By default, your Pioneer DDJ-SR will be in "Serato-mode". This means that some functionality quite simply won't work in Mix until you turn it off (for example, keylock for the pitch controls). To change this, do the following.

  1. Turn off the Pioneer DDJ-SR
  2. Hold down Shift + Play on the left deck, and turn the power on.
  3. Turn the left deck's keylock on.
  4. Restart the controller.

To use the controller with Serato again, repeat this process and turn the keylock back off again.

What's implemented?

  • General
    • Cross-fader
    • VU Meter LEDs
  • Deck Controls
    • Volume
    • Play / pause
    • EQ
      • Highs
      • Mids
      • Lows
      • LPF / HPF Filter
    • Cue button
    • Sync button (although this works differently than in Serato; still to be fixed)
    • Performance Pads
      • Hot Cues
      • Rolls
      • Sampler (without LEDs however)
  • Jog Wheels
    • Scratching
    • Pitch Bending

What's missing?

  • Some button LEDs
  • Performance Pads:
    • PAD Plus functions
    • Slicer
    • Sampler LEDs (but sampler itself works)
  • Effects
  • Slip
  • High resolution knobs

I'm a developer. How do I build this?

In order to make things a bit easier to understand and modularised, I've written a basic build process for this mapping. This allows me to do things like define all the midi-mappings in JavaScript, and then let Node build up the final XML file that Mixxx understands. In order to do this, you'll need to do the following:

  1. Install NodeJS if you haven't already
  2. Get all of the node dependencies for this project:
    1. Open a console, command prompt or powershell.
    2. Navigate go to the project folder.
    3. Enter npm install
  3. Build the project
    1. Open a console, command prompt or powershell.
    2. Navigate go to the project folder.
    3. Enter npm run build

The final results of this will be placed in your bin directory. They will also be copied to your process.env.LOCALAPPDATA + '/Mixxx/controllers' folder, so Mixxx should detect them immidiately as well.

You can also optionally run npm run watch, which will rebuild the project any time you edit a JavaScript file in the source folder.

Development Tips

  1. Run Mixxx from a terminal with the --controllerDebug --developer arguments. This gives you all debug output there from your controller, enables the Developer menu, and also provides you with additional development information in control tooltips.
  2. Mixxx does not recognise console.log(...), but you can use engine.log(...) instead.
  3. You do not necessarily have to restart Mixxx for it to detect changes, but it sometimes helps ;-)

mixxx-pioneer-ddj-sr's People

Contributors

hrudham avatar

Stargazers

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

Watchers

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