Showing posts with label script. Show all posts
Showing posts with label script. Show all posts

Thursday, August 6, 2009

Mixxx 1.7.0 Released!

The Mixxx team is proud to announce the final release of Mixxx 1.7.0!



The result of countless contributions from developers all over the globe, Mixxx 1.7.0 features an overhauled MIDI mapping system with advanced scripting capabilities, improvements to vinyl control, and many other tweaks and optimizations.

Our brand new MIDI scripting engine allows both users and developers to easily add complex behaviour to their MIDI devices. Whether you're looking to get more out of your existing controller or want to take full advantage of cutting edge hardware, our 1.7.0 release won't disappoint you. If you'd like more information on MIDI scripting, please see our documentation.

Mixxx 1.7.0 is now available on our downloads page.

Since Mixxx 1.6.1 was released, the following changes have been made:
  • Improved MIDI device support:
    • MIDI learning wizard
    • MIDI mapping editor
    • Upgraded, faster mapping system
    • MIDI output now fully supported on Windows, OS X, and Linux.
    • QtScript/JavaScript-based MIDI Scripting Environment - Script complex behaviour for your MIDI controller!
    • Added full support for the Stanton SCS.3d and SCS.1m on all platforms.
    • Hercules MK2 and RMX improvements
    • Added Mixman DM2 mappings for Linux and OS X.
  • Vinyl Control:
    • Scratching responsiveness improved, with needle-skip prevention option added.
    • Signal quality indicators added to vinyl control preferences.
    • Improved support for soundcards with multiple stereo inputs
  • Convenience features:
    • The default skin is now widescreen, and fits nicely on netbook sized screens.
    • Stereo master VU meter added.
    • Cue points are now saved in the library for each track, with "auto-recall" cue option added to preferences.
    • Support for more platforms: 64-Bit Windows and a Universal OS X package for 10.4+!
    • Over 100 bug fixes and more!
With the release of 1.7.0, we've also transitioned to a more flexible development process. Because of this increased flexibility, we're already hard at work on Mixxx 1.8.0, which will feature looping and an overhauled library. With the release of 1.7.0, we're now able to spend less time incorporating support for new MIDI controllers, and more time working on the features you want the most.

Mixxx's development has always been driven by constant feedback from our users. Whether you're coming up with cool ideas on our forums or even just reporting bugs, we always appreciate hearing from you. Because your feedback is so valuable, we've launched a user survey to help us figure out where you want Mixxx to go. Taking a few minutes to fill out the survey is a easy way to help out the project and will help guide our future work.

Lastly, we're always looking for new contributors, and we hope our recent move to Launchpad and Bazaar for source code management will add more transparency to our development and encourage more people to get involved. If you're a programmer and want to work with a creative, enthusiastic team, hop on our IRC channel (#mixxx on Freenode) or sign up for our developers' mailing list.

Monday, February 9, 2009

MIDI Scripting and the Stanton SCS.3d (Videos)



One of Mixxx's newer developers, Sean Pappalardo (DJ Pegasus), has been hacking away at MIDI scripting for the past few months so that we can fully support more advanced MIDI controllers. One of the new controllers scripting will allow us to support is Stanton's SCS.3d (aka "DaScratch").

The Stanton SCS.3d replaces conventional knobs, buttons and sliders found on other MIDI controllers with touch-sensitive surfaces laid out in a DJ-friendly format. It's compact, rugged, light-weight, and best of all, reliable, since there are almost no moving parts to break. The large central circular area is where all the magic happens as it can be configured to serve multiple purposes (jog dial/vinyl emulation, three sliders, or 9 buttons) depending on the control needs of the software.



Sean demonstrating the SCS.3d with Mixxx 1.6.2



Mixxx's previous MIDI system only allowed you to map one MIDI control to one property and provided no means of feedback or otherwise sending commands to the device. However, controllers like the SCS.3d are of limited use without being able to illuminate LEDs and toggle various modes, since there would be no physical indicators.

Stanton gets around this by offering a free middleware solution called "DaRouter" which essentially acts as a MIDI translation bridge between your DJ software and the SCS.3d. However, it is difficult to get feedback to the controller from your DJ software, and your ability to customize the device's behaviour is limited. Additionally, this middleware solution is not available for Linux.

Enter Mixxx's new MIDI Scripting Engine.

After scratching our heads for some time, we conjured up and coded a system that allows DJs to link hardware MIDI controls with custom script functions. These scripts are written in QtScript, which is an easy language that's almost identical to JavaScript. Scripts can contain functions that can affect any number of Mixxx controls and also send feedback to a hardware MIDI device, freeing Mixxx from a one-to-one mapping ideology. These user-created scripts can then do anything desired with the MIDI event data such as have a single controller button simultaneously affect two or more Mixxx properties, adjust incoming control values to work better with Mixxx (scratching,) display a complex LED sequence, or even send messages to text displays on the controller.

This approach provides a number of key benefits:
  • Script functions are evaluated at run time and and can access or modify Mixxx's internal properties.
  • QtScript brings all of the advantages of a full scripting language. For example, functions can use variables, allowing a single piece of code to be used for multiple cases and to remember states between invocations (this is how we implement mode and deck switching).
  • Functions can send any MIDI messages they like including SYStem EXclusive messages, needed for advanced controllers like the SCS series for mode changes and text displays.
  • Functions can be connected to Mixxx properties so that when the property changes, the function is called with the new value, allowing automatic controller response.
  • DJs can customize the script functions to suit their particular work flow and desires without compiling anything.
  • Support for complex controllers can be added to Mixxx at any time between releases by anyone since no compilation is needed!
  • No middleware is needed to use advanced controllers like the SCS.3d with Mixxx
  • Our MIDI scripting system is platform-independent, which makes it available to Windows, Mac OS X, and Linux users!

Our new MIDI scripting engine is going to be the biggest new feature in Mixxx 1.6.2, and we're currently polishing it up along with some of our other MIDI code. We hope to have a beta release out within the next month or two for our DJs to play with.

Lastly, we'd like to thank Stanton for their gracious support and cooperation. We think the SCS.3d is going to be a great device for Mixxx users in the future!

Saturday, January 5, 2008

MixxxScript - A Sneaky Feature Preview

Although we're technically in the beta part of the release cycle, we've still been spending some time on features for future releases. I've been working on adding a macro/scripting style environment to Mixxx which would allow users to extend Mixxx without the work of recompiling. Here's a screenshot of the very basic test GUI in action:


The script interpreting is done using the new QtScript ECMAScript interpreter built in to Qt 4.3 and the example you can see typed in above implements a basic auto-crossfader.

The potential here is fairly unlimited. API documentation and so on will follow soon so that people using Mixxx from SVN will be able to have a play.