Showing posts with label vinyl control. Show all posts
Showing posts with label vinyl control. Show all posts

Monday, July 20, 2009

Mixxx 1.7.0 Beta 2 Released!


The Mixxx team is pleased to announce the release of Mixxx 1.7.0 Beta 2! This is primarily a bugfix release that addresses issues from our previous beta.

We also recently discovered a critical issue in an external software library which affects Mixxx users on Ubuntu 9.04. Please see the note at the bottom of this post for more information.

Some of the changes in Mixxx 1.7.0 Beta 2 include:
  • Fixed missing MIDI bytes under heavy load on Linux.
  • Fixed vinyl control input for users with multi-channel input.
  • Fixed vinyl control channel selection bug
  • A slew of SCS.3d improvements and tweaks.
  • Hercules MK2 and RMX improvements
  • Stanton SCS.1m support
  • Internal control engine optimizations
  • Fixed several crash-on-startup scenarios
  • Fixed library rescans not finding new files added in subdirectories
  • Fixed Ubuntu menu shortcut
  • Fixed missing Ubuntu package dependencies
  • Added Universal Package for OS X 10.4+ (Special thanks to Brian Jackson for leading the effort to put this together.)
Mixxx 1.7.0 Beta 2 is available on our downloads page.

Formality aside, this list of changes doesn't do the last few months justice. After our last beta, we received dozens of helpful bug reports. Some of those brought new problems to our attention, while others shed light on old ones. With your valuable feedback, we managed to not only fix your most pressing bugs, but we were also able to track down and fix some other very tricky bugs. The result of your great bug reporting and our team's commitment to fixing bugs is the most stable, polished release of Mixxx to date, and we couldn't have done it without you.

Thank you to everyone who's been testing our beta releases and reporting bugs. You've made a valuable contribution to open source and the whole Mixxx community, and together we're going to continue to make Mixxx the best DJ software we can.

As usual, please report any new bugs or regressions to our bug tracker. If you want to get in touch with other Mixxx DJs, show some love on our forums!

Stay tuned for our final 1.7.0 release!

Important note for Ubuntu 9.04 users:A flaw has been discovered in a library provided by Ubuntu 9.04 that can cause critical hangups in Mixxx. Ubuntu 9.04 users are advised to install the version of PortAudio from Ubuntu 8.10, available as .deb packages here:

Thursday, April 23, 2009

Mixxx 1.7.0 Beta1 Released!


The Mixxx development team is proud to announce the first beta of Mixxx 1.7.0. This latest release is the culmination of six months of work by over a dozen contributors, and contains several exciting new features as well as many bug fixes.

Some of the new changes in Mixxx 1.7.0 Beta1 that we'd like to highlight are:
  • Cue points are now saved in the library for each track, with "auto-recall" cue option added to preferences.
  • The default skin is now widescreen, and fits nicely on netbook sized screens.
  • Stereo master VU meter added.
  • MIDI overhaul:
    • MIDI learning wizard
    • MIDI mappings table editor
    • Upgraded, faster mapping system
  • QtScript/JavaScript-based MIDI Scripting Environment - Code up complex behaviour for your MIDI controller without recompiling Mixxx!
  • MIDI output now fully supported on Windows, OS X, and Linux.
  • Added full support for the Stanton SCS.3d on all platforms.
  • 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.
  • Merged the mixxx and mixxx-data packages for Ubuntu users into a single mixxx package.
  • Fixed about 40 bugs, including:
    • Browse mode no longer disappears in certain situations
    • Skin changing is now much faster
    • Tooltips now work again
    • Fixed rare instabilities caused by certain OGG and MP3 files
    • Minor improvements to the BPM detection
    • Fixed some OpenGL issues
    • Fixed a handful of obscure issues that may have prevented Mixxx from starting up on Windows
    • Play nicer with Ubuntu systems that are running PulseAudio
Aside from these more visible changes, there was significant work done on less visible parts of Mixxx. This includes many improvements to the organization and cleanliness of our source code, as well as a lot of work on features that didn't make it into the final 1.7.0. release. Improving the overall codebase is important for us because it makes it easier for new developers to contribute, and it was these new contributors who helped catalyze the overhaul of our MIDI system.

Back around December, we started toying around with the idea of something we called MIDI scripting. The idea of MIDI scripting is that having a small scripting engine sitting on top of our regular MIDI mappings would allow our users to code complex behaviour for their MIDI controllers using a JavaScript-like language. Soon after this idea hatched, we realized MIDI scripting would make it much easier for us to support new controllers in the future, and this attracted the attention of a handful of our developers.

Because we felt that both the long-term and short-term impact of implementing MIDI scripting would be very beneficial, several of our developers decided to shift their time away from other subprojects that they were working on (like effects, the new library, and looping) in order to complete the MIDI overhaul and scripting engine. When this work was nearing completion, we collectively felt that MIDI scripting support along with the slew of other improvements we made were significant enough to call this release 1.7.0. We're very excited about the possibilities that scripting opens up, and we hope to see our users come up with new, cool uses for it.

We'd also like to thank Stanton for their support during this development cycle, which allowed us to significantly accelerate the development of our MIDI scripting functionality. We're pleased to be the only cross-platform DJ software that fully supports the SCS.3d without the use of any extra software in the middle.

Lastly, if you encounter problems with the beta, please report them in our bug tracker! We hope you enjoy Mixxx 1.7.0 beta1, and we'll be working hard towards a final, stable release. Stay tuned.

Errata
  • The overhaul of our MIDI code included many changes to our MIDI mapping file format. Some of our old mappings were converted automatically by a script, but many required additional modifications by hand, which introduces the possibility of us having made errors. Due to the limited availability of hardware and free time within our development team, the MIDI mappings for some controllers have not been tested. If you have a controller that we provide a mapping for, please test it and report your results in our controller testing matrix.
  • MIDI Pitch messages are no longer processed internally and must be mapped to a script function. Fortunately script.pitch can be used very easily from your script.
  • M-Audio Xponent support has likely been broken. Support for it needs to be rewritten using scripting, but none of our developers have this device. (This is a great task for a user who wants to contribute to Mixxx! Come ask someone on IRC in #mixxx on Freenode about it.)
  • Windows: MIDI feedback on all but the first listed controller doesn't work with more than one connected. It's best to disconnect/remove all (real and virtual) devices except the one you're interested in working with.
  • Windows: You may need to tell Windows to send MIDI output to the correct device, especially if you hear random notes instead of see lights on your controller: Start→Settings→Control Panel→Classic View→Sounds and Audio Devices→Audio Tab, set “MIDI Music Playback” at the bottom to the device you're trying to use.
  • The use of multiple MIDI devices simultaneously is not yet supported.
  • For script developers:
    • The SelectNextTrack, SelectPrevTrack and LoadSelected controls do not work in the Browse view. See bug #342120.
    • The SelectNextTrack and SelectPrevTrack controls cause the GUI to freeze for a few seconds when you try to scroll down beyond the current page. See bug #361170.

Monday, April 28, 2008

Scratching with Mixxx 1.6.0



This latest video of Mixxx 1.6.0 in action demonstrates what scratching sounds like with vinyl control. In the video, I'm scratching with a Serato record on my Stanton T.80 turntable, and using my M-Audio X-Session Pro MIDI controller as a virtual mixer. I changed Mixxx's crossfader curve setting in the preferences to "fast cut", which is what you'd set the curve control on a real mixer to when you're scratching.

The turntable is plugged directly into my laptop using the turntable's line-out and my laptop's onboard soundcard.

I recently did some work on our "vinyl emulation" code that mimics the way the pitch changes when you're using a turntable. I managed to improve the sound quality enough that scratching with Mixxx + vinyl control sounds convincingly similar to scratching with real vinyl. These improvements will be included with our next beta release.

Monday, December 3, 2007

Quick Vinyl Control Video, SSE optimizations

A few nights ago I captured a video while doing a quick test mix using Mixxx's vinyl control.



Not my best transition ever, but it works. :)

I've been trying to do some tweaking to get the latency down and one of the biggest improvements came from compiling Mixxx with SSE and MMX optimizations. The tricky part with turning on these optimizations is that they'll only work on post-Pentium III CPUs. That's fine for our Windows and OS X builds, but it's a problem for our Ubuntu package because we can't assume any specific CPU architecture. One possible solution for this is to disable SSE/MMX optimizations in the package that lives in the Ubuntu repositories and host a different (SSE/MMX optimized) Ubuntu package on our website.

In the meantime, I still have lots of work to do on fixing up the library. Busy, busy!

Friday, November 30, 2007

November Update

The last month has been completely insane. We've been busy fixing bugs and not-quite-finished features like there's no tomorrow. Our Subversion repository has seen more than 70 commits (those are generally changes to Mixxx's code) in the last month, and we've still got a few things to finish before the beta.

Some cool stuff that's been done in the last month though is:
  • Multithreaded library scanning. Mixxx will scan your library in the background. Unfortunately, the actual library saving/loading part is slightly broken at the moment and I don't know if that will get fixed before the beta. (It just rescans your library every time, which is semi-annoying, but you always cancel it and use "Browse" mode.)
  • Automated (opt-in) crash reporting. We've added an exciting under-the-hood feature that allows us to gather crash reports automatically. This is strictly opt-in and so you're asked on your first run whether you'd like to help us out by enabling it or not.
  • The play queue works more or less now. This is a good example of the kind of dangling unfinished features we've been trying to get working before the beta.
  • Speed optimization
  • A few tweaks to the vinyl control in order to make it a little easier to use.
Lastly, I just want to say a word about vinyl control. Since I've been busy fixing other bugs for the last month, I haven't had time to give vinyl control the level of polish that I want it to have. When we release the beta, the viny control is probably going to be "very beta". If your timecode signal quality is bad, you'll probably have no idea what's going on. However, it should be usable, just not particularly user friendly. I'm hoping the beta release will spur some people to poke at the vinyl control code, which isn't terribly difficult to understand/tweak.

I've written a Vinyl Control page on our wiki which should hopefully answer some questions people have about it.