[Nocturn 49 Driver Download

0 views
Skip to first unread message

Facunda Ganesh

unread,
Jun 12, 2024, 11:35:09 PM6/12/24
to nredesinmac

I want to try and make my own application for my Novation Nocturn, which is a USB DJ controller surface. The application software interacts with it to send out MIDI messages to software like Traktor, Ableton and Cubase.

Nocturn 49 Driver Download


Download Ziphttps://t.co/fDxTuLAAJu



I'm after some suitable reading material basically. USB specs, MIDI specs and such. If I'm honest the full USB 2.0 spec looks like it holds loads of stuff I don't need.Just looking for something interesting to do now that I've finished my degree (Computer Science). My current programming knowledge is C++ and mainly C#.

A tool that you will find invaluable is MIDI-OX. In fact, I suggest that before you start coding, you fire up MIDI-OX and use it to sniff the messages coming from the Novation. It will give you a good idea of what the Novation sends. You can use it in conjunction with MIDI Yoke (a configurable virtual MIDI port) to insert itself between the Novation, and Ableton Live (or whatever software you normally use with your Novation) so you can see all of the messages in normal use.

You can see basic functionality at -linux-midi. The guy who reverse engineered it (i.e. the leap I wouldn't have been able to make myself) doesn't seem to be doing any more with it. His code is at -game

The driver for the Nocturn makes it appear to system as a MIDI device, even though it isn't a USB MIDI device at the hardware level. The Automap software works entirely at the MIDI level, receiving MIDI instructions and sending different instructions in response - it is separate from the driver and not neccesary.

I had a look at the Python application that dewert has written. Interestingly, it turns out that the data that the Nocturn emits is in fact MIDI, although it doesn't register itself as a USB MIDI device.

But looking at the actual data coming from the device, it actually emits control change messages (0xB0 controller value) for everything. Also the control commands that are sent to it are also control change messages, albeit only the data bytes, as the Nocturn seems to support MIDI running status (i.e. when sending multiple control change messages, it is not necessary to repeat the data byte).

Indeed, the looking at the magical initialization data it is actually just a bunch of control changes: it starts with 0xb0 and from there on the data comes in twos. For instance the last two bytes in the init string are 0x7f 0x00 which simply turn off the LED for the rightmost forward button. (There is something subtle happening as a result of the initialization being sent though, as the Nocturn sometimes emits some messages which appear to be some form of timeout events, and that behavior changes depending on whether the initialization string has been sent or not.)

Using MIDI-like messages makes sense, as Novation would be well aware of the MIDI protocol, so it would be easiest for them to use it for the communication even if the device is not strictly a MIDI device.

Note though that the incrementors just send the values 1 or 127, i.e. +1 or -1 step, so even with some trivial mapping software it's not really useful as it is. (Actually, if turned quickly, one can get 3 or 125 for instance, with the 125 corresponding to -3.) The only controller which sends a continuous value is the slider, which emits an 8 bit value when moved.

I suppose you'll want to know about USB classes in general and USB MIDI class in particular. The latter is the best what you can hope for in case you don't posess documentation for some proprietary protocol (whether it's used there instead).

VRM Box will work as an audio device, with two outputs (headphones). However, the VRM processing will not work, as this is embedded in the kernel mode driver on OS X and Windows and would be a very complex task to port (sorry, we have no plans to open source the VRM algorithm any time soon).

Impulse, ReMOTE SL MkII (& ZeRO), ReMOTE SL (& ZeRO), Nocturn Keyboard: should work (USB class-compliant MIDI ports). Note that Impulse and SL/ZeRO MkII have extra vendor-specific USB endpoints that will not work without a driver, these are for communication with the Automap server application which is not essential for MIDI control.

It is now a USB Audio Class 2.0 device, which means in theory it should work with Linux. It does work with the Apple CoreAudio driver, but we provide our own for lower latency. The Windows usbaudio.sys driver does not support Audio Class 2.0 so it needs our driver to function.

I found that once data has been written to registers, it can be read back [1], but after a power-cycle the data queried from the device is not valid and does not correspond to the saved state (firmware v305).

[1] exceptions to that are mixer-matrix (0x3c) and route (0x33) /control in/ requests which always return 0 or EINVAL. The ALSA mixer caches those values, and currently restores /defaults/ when the device is connected.

I have had some success. I upgraded my Kernel to version 3.9 (seemed like the quickest option). I can now see Sacrlett 18i20 when listing devices with aplay -l. I still get errors when trying to play a file though. I also cannot start jack because it is trying too use alsa driver and that fails. Scarlett is no longer shaded in desktop configuration either.

There is no difference between your code and the patch file. The patch file is easier to apply to any kernel version and it looked like a bunch of people were having compile problems associated with trying to build in the alsa kernel branch.

Hi Tobias, thanks for your work. I also just got a Scarlett 6i6 and have the same situation as John Goldsmith on a Linux Mint 15 (Ubuntu 13 based) machine. As expected, the soundcard work with Jack, alsamixer sees it but without controls, and the alsa module is not loaded.

Dave, do you know something about this possibility? I think this would be important, since losing all the routing and mixing settings at every power cycle could soon become too painful, until a separate application with save-to-file ability (like MixControl) is developed for linux.

I am considering buying a Scarlett 18i8, and am new to linux. I am currently running the latest 12.04LTS, and am not sure which kernal is included in that. Based on what you have all learned, if I were to buy the Scarlett 18i8, what would I need to do to get it working?

I just started today with my new Scarlett 18i8, and have gotten it working for my use case (Ardour DAW w/ Jack) under 12.04LTS using the 3.11 kernel. Like Andre, I started by updating firmware and setting up the mix on a windows box.

>Nocturn: could work, though not USB class-compliant so would need a driver.
>Could probably be adapted from the Launchpad driver with a
>trivial change of USB PID (see below).
It would be fantastic to see the Nocturn work in Linux or under WINE. Appreciate all the support you have given here!

Hello, I confirm that it is working with the procedure above. I cannot see it in Jack as available channels, but I can record each channel separatelly with Alsa and audacity. Does it work for you with Jack?

davehodder: if you folks are working on any changes to the Scarlett to make it more UAC2 compatible (for example), now would be a good time to share that before a lot of special case code makes its way into the Linux kernel. ?

As of today, 1/7/2015, support for all of the Scarlett devices is in the 3.19rc3 kernel and will presumably make its way into the 3.19 release. Canonical provides pre-compiled upstream kernels for Ubuntu. Instructions for downloading and installing these kernels are here:

I should mention here that I have tried unsuccessfully over the last 5 weeks to get the ffado library to work:
The ffado driver fails to synchronise with jack..
The ffado mixer app switches the input but not the output and monitoring sections of the Saffire PRO 24
The channel numbering in the ffado mixer inputs is crossed 1+2 >> 3+4 and vice versa.

I just posted my ongoing contribution for Scarlett UI in HTML5. A 1st screenshot is avaliable at The code relies on new Scarlett Linux Alsa driver based on RobinX42 reverse engineering. Since kernel version 3.19.1 Scarlette driver is now included in Linux vanilla kernel, Scarlett boards should very soon work out of the box.

The UI is 100M% HTML5. It uses Foundation-5 for graphic rendering and Angular for JavaScript framework. It still very early days, but hopefully the demo at provides a good example of HTML5 potentiallities. Note that the demo runs with a fake sound board [flat copy of JSON response from my development machine] also feel free to play with all bouttons you wont break anything. They is still a signifant work to do, but hopefully I we not need any new graphical widgets, currently I have: sliders [synchonized for sereo] Knob for balance and input selector with avaliable/disable status and tabs for mixes. UI will not be 100% like M$ one, but should remains close enough for people not to get lost.

The beauty of HTLM5 is to support both local and remote mode. It allows to drive sound board through an embedded device from a WIFI tablet. The AlsaJsonGateway is a very small piece of code written on C that should be pretty easy to port on any plateform supporting GNU lighttpd. Obviouslty if Focuritte had open API on its board implementing a nice UI would be easier.

At the end the only significant missing part should be input-level bars. 1st if I understood correcly Alsa driver port does not include them. Second level bar are realtime info, this would impose to add a websocket on top of my gateway and while not impossible it not an easy job !!!

This ALPHA supports every ALSA Read & Write controls as well as a session management to store boards config on disk. Session not only allows to restore config when board is power off/on, but can be used to save multiple specifics configuration options.

As it s pure HTML, you can check the demo online from: Note nevertheless that the interface is not designed to be used in remote mode. The fake AlsaJsonGateway I installed on my server, might be a little slow for the initial loading, but it should be enough to get a good idea of the rendering.

795a8134c1
Reply all
Reply to author
Forward
0 new messages