Das Ortofo Version 1

This one might be interesting for all you GrandMa onPC users out there. Those who are operating a GrandMa Micro or Pico and are missing the motorfaders of the fullsize console might also benefit from it. Das Ortofo is a hardware-based midi processor especially designed for controlling the motorfaders of a Behringer BCF2000 and sending the corresponding MIDI-data to the GrandMA lighting desk.

[Update 30.9.2010: I’ve built a new version which natively supports USB and which is for sale. Find it over here .]

The Video says it all:

[tube]http://www.youtube.com/watch?v=1QmLDfRrPaw&feature=player_embedded[/tube]

 

Beautiful, isn’t it?

By having a look at the next pictures you should easily be able to find out where the name is derived from….

Continue reading

Torq Midi Controller

Quite some time ago I got myself the Torq System from M-Audio. Due to the fact that I don’t like the thought of controlling a musicsoftware via my computer’s mouse (just because it looks plain stupid in front of an audience) I used the BCR2000 from Behringer in conjuntion with Bome’s Midi-Translator for scrolling through the playlist, triggering fx, loading tracks, etc…

 

Good thing about it: it worked. Bad thing: Every now and then I am making music in a little bar and the dj ‘booth’ is quite packed. using the BCR2000 always meant using an extra laptop stand on top of the mixer so noone couls really see me.

 

That’s why I built my own Torq-dedicated MIDI-Controller.

Ladies and Gentlemen: I’m proudly presenting the Andy1000 Midi Controller Smile

 

This project is based on the Arduino platform with a “Duemilanove”-Board and an ‘168’ controller (pretty basic stuff).

Starting with a frontplate from a Server Rack. It was 19 inches wide but I cutted it down to 30cm (11.8 inches) to make it fit in front of my laptop. The marks for the holes have to be set rather precise since the buttons will later be fixed on a vectorboard.

 

After drilling. The housing is made of  plywood. This version is 6 cm high. I later built a new one which is only 4 cm.

 

That’s basically about what it will look like

 

The Buttons are attached to a DIN-module (Digital In)-board from uCapps.de that I had lying arround. Basically it’s just 4 shift registers. No real magic here.

Buttons mounted to a vectorboard

 

Interconnections. I didn’t really care about the pins I attached the buttons to since this will later be handled within the microcontroller’s code.

 

One extra rotary encoder (ALPS, 24 steps) for scrolling through the playlist. The vectorboards with the buttons will be fixed to the frontplate via screws. The Arduino and the DIN-Module will later be hot-glued to the bottom of the case.

 

 

This extra circuit was attached -after- all the basic soldering was done. It turned out that it was necessary to do some debouncing of the rotary encoder’s output. It is based on this scheme and helps a little bit.

 

Nearly finished, Knobs for the poties are still missing. I still (have to) use Bome’s Midi-Translator, especially for the ‘navigation’-controls (scroll up, down, etc) but who cares…

 

There we go!

 

And that’s another brilliant shot of how it looks like in real life…erm…well….the bar was already packed and I didn’t want to flashlight the crowd…

The code for the Arduino will be put up soon. It is still a bit crappy and needs some finetuning. Just contact me via the web form if you want to get it sooner.

ArtNet to Midi

This one might become a l i t t l e bit special.

As most of you should know by now I am not only a specialiolo(lo)gist (for everything) but also one astonishing (specialiolo(lo)logic) lightjockey – at least in my second life on most of my weekends.

When LJ’ing I use the the GrandMa Lighting Desk most of the times. Sometimes I’m lucky and get to work with a hardware unit but most of the times I have to stick to the PC version with a Midi-Keyboard attached. So far so good / bad. Over the last years I came across some things that might be better. Like Midi output. Talking about GrandMA it IS possible but kind of limited and a huge amount of time is killed when taking care about Midi programming. (Those of you who are familiar with the GrandMa might argue pro and con. Others might just not know what I’m talking about…just read on.)

Trying to find a universal way to get Midi Signals out of my lighting desk I wrote a nice little ArtNet-to-Midi Converter. that way I can get Midi out of my lighting desk without even thinking about it.

The (Windows-) tool acts like an ArtNet Node (just like the one from Enttec , for example). The important part: the received ArtNet data are translated into Midi Values. The first 128 DMX channels (1..128) are translated into Midi CCs. DMX channels 129…255 are translated into pulsed Midi outputs (note on .. wait a few miliseconds .. note off) starting at C-1. That’s basically about it.

The software has some cool side-features like settings being saved in the registry ‘n stuff but like every program it’s still not complete (DMX in, Midi out indicators not working yet). But worth the effort. The basic Midi-IO is handled via MidiOX, again.

Continue reading

Korg PadKontrol

Some time ago I bought Korg’s PadKontrol. The device is a sweet little Midi Controller with very sensitive touchpads. One of the better things about it is that the pads are lit when pushed. We used both Korg PadKontrol and the Akai MPD24 for making music with Ableton Live and the Korg just felt better because the Pads were way more sensible and the optical feedback just gives you that important kind of extra confidence that says: “Button hit, bro”.

The downside of the controller is the original programming of the firmware. you can -of course- send all the common Midi-stuff (Notes, CCs). But the padlights are just crap. You can configure the pads to be in ‘Flash’ or ‘Toggle’-mode but in either way the light will only flash for a fracture of a second and that’s it. Just imagine a live situation where you configured some pads as toggled and others as flashed. Even if a pad is set to ‘on’ you won’t be able to recognize that. Second best (worst?) thing is that the majority of the buttons besides the 16 main pads can only be used for configuring the device, including the JogWheel.

Fortunately  the controller (and some of Korg’s other products) supports the so called ‘Native Mode’. In that mode the Controller only sends out SysEx Messages and you can do your own processing. Furthermore you have complete control over all the elements of the controller (Jogwheel, all buttons, all the lights, …)

There are already applications out there that automatically put the Controller into Native Mode and take care about the processing of the SysEx messages but I didn’t find any of them to be easy to use or userfriendly (or Windows-Capable). At the end I am planning to use thecontroller in a live environment and I don’t want to have to mess arround with Perl-scripts or Max-patches ‘n stuff.

That’s why I built my own Windows program to put the controller into Native Mode and do some SysEx-processing afterwards. At the moment the software sends hard-wired Midi-Notes on every pad as well as the JogWheel and the knobs. There might be other possible configurations but I found this one to be rather universal.

[Update 2.3.2010]

Due to recent contributions there is a huge amount of changes being implemented. These changes mostly regard the Midi-Data being put out. The changes are documented further below.

Explanation:

the pads send notevalues depending on the selected bank. This is easy. When the JogWheel is turned to the left it will send notes ‘E2’ for 3 miliseconds (note on … wait .. note off). That’s a value which proved to be okay. When the X-Button is pressed the JogWheel will send ‘F#2’ (turning left) and G2 (turning right) note impulses for 3 miliseconds. When Knob1 is turned to the left it will send out ‘G0’ notes for 3 miliseconds; when it reached its left end position it will send a G#0 note (guessed it: for 3 miliseconds). When the ‘Roll’ Button is pressed it will not only switch the internal bank but also send out an ‘E0’ note for 5 miliseconds; this might be useful for triggering bank changes in your software or whatever. At the moment the output midichannel is hardwired to 1. The touchpad isn’t used yet.

The first half of the video shows the normal operation mode of the PadKontrol. You will realize the difference in the pad’s behaviour after it is switched into Native Mode (the moment that the controller is put into Native Mode can be identified by the change of the diplayed information from “5.01” to “GMA”.). The pads (configured as ‘Flash’-pads by default) stay lit as long as you keep them pressed.

You can easily change the configuration of any pad’s behaviour. This video shows how to configure the pads to be in Toggle-Mode. Press the ‘Scene’-button. The display will change to ‘TGL’. All the pads that are now selected will be in ‘Toggle’-mode. All the pads that are deselected will be configured as ‘Flash’ again.
What you will also realize is that the applications supports multiple ( 3 ) banks that can be selected via the ‘Roll’-, ‘Flam’- and ‘Hold’-buttons. That makes up to 48 configurable pads. Every bank’s pads can be configured independently to FLASH-, TOGGLE- or CNx- Mode (explained below). When a bank is recalled its pad’s states (on / off meaning lit / unlit) will automatically be recovered. Switching banks will not change the controller’s output (of course).

You can enter the settings at any time to change a pad’s behaviour. It won’t interfere with the controller’s output.

The second mode that I implemented is called ‘Interconnect’. You enter it by pressing the ‘Message’ button. The display will change to ‘CN1’. You can now select those pads that will be linked to each other. Explanation: when configured in the ‘CN1’-mode only one pad will light up (and send midi -out…). Every other pad configured in that same mode will be deactivated (and send a note-off value, of course. This mode might be useful when controlling Ableton’s ‘Arm Track’ or for selecting the Track you want to cue on your headphone or … .

I implemented 3 ‘CN’-modes. (CN1, CN2, CN3). They can be reached via the ‘Message’-, ‘Fixed Velocity’- and ‘Prog Change’-buttons and are independent for all three banks.

[29.11.2010] I created a new video trying to explain all this a little bit more in detail:

The software is written in VB6 and all the Midi processing is based on the Midi-Ox ActiveX-plugin and the VB6-examples that can be found on the website. You need to install Midi-Ox in order to run the program. Furthermore it’s a good idea to have Korg’s USB drivers installed. Configure the program’s I/O like shown below to have Midi-Out via MidiYoke 1. From my experience the best way to do it is to set the I/O via Midi-Ox and give it a restart.Everything should be fine then.

The output of the software is rather hard to explain. The best way is to monitor it via MidiOx’s output monitor. You can change the output data in a wide variety by accessing the config-dialog:

The settings should be rather self-explanatory (at least to me…feel free to send me an e-mail if you have any questions). All the settings are stored in the user’s branch of the registry (Windows XP) under HKEY_CURRENT_USER\Software\PadKontrol. In case you go for the tough-boy approach and manually want to alter anything there please keep in mind that the entries are case sensitive.

[Update 11.1.2011]

The program now supports MIDI feedback for the 16 pads. Inspired by User ‘Fedejair’ from the DJTechTools-Forum I updated the software so the 16 pads can be switched on and off via incoming MIDI-data being sent from Traktor or ableton or whatever software you want want to use.

In order to be able to do this you first have to add another MIDI-In-port in the configuration of my software. If, for example, you use my program to control Native Insturments’ Traktor then you’ll probably have ‘MidiYoke 1’ as the output going into Traktor. To enable MIDI feedback FROM Traktor add MidiYoke’s port number 2 as an input in my program and set Traktor to ouput MIDI data via midiyoke 2. Do NOT use MidiYoke 1 as an output towards Traktor AND as an input FROM Traktor. This will sure cause some nasty feedback behaviour.

If you’ve done this open the config-dialog and find the new button:

[…]

[Update 29.4.2011]

The feedback mode has undergone a major review and is now a lot easier to implement. Feedback mode can be configured for selected pads by accessing it via the ‘ProgChange’ Button of the PadKontrol (which makes it that the CN3-mode is gone). Just hit the button and keep it pressed. The dislay will change to ‘fdb’ which indicates that you are in the configuration for the feedback mode.

A pad which is configured for the feedback mode reacts on the incoming midi note it would send out. To explain this let’s have a look at the midi output sheet of the software:

It is read like this:

If bank number 1 is active then pad number 1 (upper left) will send out a  midi note ‘C-1’ (the first possible midi note). If this pad is configured for the feedback mode it will be lit when a ‘Note On C-1’ midi signal is received (velocity >= 63).

[Update 20.6.2012] I just discovered a little flaw in here. C-1 is a bit misleading since different tools show different values.  Anyway, it’s the lowest possible Midi note that pad #1 is reacting to. That’s shown as C-1 in Midi-Ox but it’s shown as C-2 in Ableton. If you send a note for pad #1 as a feedback to the PadKontrol and pad #9 is lit you know that you (like me) were caught by the ‘octave-trap’.

A pad in feedback mode can only be used when it is activated (lit up). Otherwise it will not send out any midi data when you press it.

In order for the software to recognize incoming midi data you have to add a midi-in port to the configuration. This might look like this:

Have a look at the ‘Open MIDI In Devices’ listbox. The PadKontrol-Ports are used for communicating with the controller itself. ‘In from Midi Yoke 2’ means that if you have a software running on your computer, let’s say Traktor 2, which sends out midi data via MidiYoke 2 then these data are received by my software.

If you look at the ‘Open MIDI Out Devices’ listbox then you’ll probably guess that my software sends midi data through MidiYoke Port 1 out to the world. That’s the port that you should configure in your receiving software (i.e. Traktor) to listen to.

This example shows the demo version of Traktor 2 together with my software. Please pay some special attention to the fact that the first song to be played has 3 hotcues (3 pads are lit) and the second one only has 2 hotcues. The pads are dynamically reactivated and can be used accordingly.

What you cannot see in the video is that all three banks of pads are supported in feedback mode. Cool thing, I’d say =)

These two screenshots show the midi configuration of Traktor for deck A to send out and react to midi data.  Of course you are not limited to Traktor at all but can use my tool with any kind of software being capable of midi in-/output.

Traktor’s midi OUT port is set to MidiYoke2 ….

[18.6.2012]

Based on suggestions made by Jan from Belgium I added this option:

It means that pads which are configured in feedback-mode always send midi data even if they are not toggled by external midi feedback. Typical usecase could be a drumtrack which visualizes the beat of your kickdrum sample (i.e. pad is blinking with the beat). This mode being active you have  the possibility to then add additional kicks by simply hitting the pad.

Furthermore there is another mode which must have been implemented quite some time ago but i totally forgot about it… TRK-Mode. You set it by pressing the “Settings/ Enter” button (lower right of the jogdial). Pads in TRK-mode are always lit. They behave like pads in FLASH-mode (TRK stands for …”tracking” or so…I don’t remember).

[1.7.2012]

When you change the banks (via ‘Roll’, ‘Flam’ or ‘Hold’ button) the bank-numer is now shown in the display for a short time. Furthermore the direction is shown in the display when you twist the jogwheel.

The PadKontrol’s XY-pad is now supported. You can either have it send out ordinary midi CC data (that’s CC126 and 127 for now) …

…OR….

You can use it as a tap button.

When this mode is active the pad will not send a continuous stream of midi CCs but only a single CC date (CC #125, value: 127) when it is hit. Due to the nature of the XY-pad this mode is not absolutely perfect but for a rough tap it’s quite cool to use.

The program can be downloaded here . I decided to give it a try and make it donationware. The program is fully functional. The only limitation is a nag-screen being shown at the program’s start.

If you want to get rid of it (or encourage me to implement new features) take your chance and have a look at my Amazon Wishlist or feel free to donate something via Paypal:

Numark TT-200 Repair

Dang! My turntable broke. When hitting the Start-Button it just didn’t move. When given a little ‘hint’ into one direction it started spinning (forward or backward). Break mechanism didn’t work either. It didn’t stop instantly but kept on spinning, slowly decreasing its speed.

Must either be something with the motor’s solenoids or with the driver.

This baby is way too old for thinking about warranty so let’s go.

 

Numark TT-200 upside down, case open.

 

There we go. That’s the motor ‘n stuff.

 

Checked the solenoids. Forutnately all six were okay. Rather precise 15 Ohm each.

 

The backside of the motor-driver (or is it the front side? who knows…). The heatsink for the driver has already been removed.

 

 

Ordered a new Driver IC at TS-Audio.de. The guys over there are EXTREMELY fast and very cheap. Maybe they could take a little more care about packaging.

 

Back in the days I was only second best in my desoldering-class. I think this boy is broken so I don’t really care.

 

New IC installed perfectly

 

What can I say…after putting it all together (don’t forget to apply some thermal paste) it worked flawlessly. Great! so let’s just have a look at the costs: New turntable: 250 ( and up to 500) Euros. Spare motor: roughly 140 Euros. New driver IC: 11 Euros (including packaging)…unbeatable.

 

Somehow it’s a pity i still don’t have any reasons to buy me a set of 1200’s..

USB Angle

This one will be in English only (had so many german entries)…furthermore this is a (somehow) technical thing so it might be interesting to others than my direct peer group as well.

 

When making music with the band (or at least…trying to) I always pack my laptop’s USB-ports with external hard-drive, soundcard and the midi-interface. Due to the ports being attached sideways this always takes up a lot of space (and looks ugly as hell). I saw an USB-angle but it was too expensive and I wasn’t quite sure whether it would fit. That’s why I built my one ones.

That’s two USB-A-connectors. One male, one female

 

The details are way too simple to post here. Just imagine a picture of 4 wires being soldered between the connectors. The best and most important thing is the horrifying amount of hot glue I attached to make sure everything is kept in place for more than one usage. I built two of them because it was such a fun.

 

Tatatataaaa! If this ain’t nice then I don’t know =-)

Ghetto BPM Detection

[28.10.2007]

Angeregt durch die Geschichte mit der Band und dem DJ-Pult und….und überhaupt bin ich schon seit einer ganzen Weile auf der Suche nach einer Möglichkeit, die Tempoinformationen aus Torq (irgendeiner x-beliebigen DJ-Software) auszulesen, um damit Ableton zu triggern. Ziel ist es, daß die Dinger möglichst ohne mein Zutun synchron laufen.

Zwischendurch hatte ich das DJM800 von Pioneer hier liegen (richtig…das mit dem Midi-Ausgang). War aber auch nicht so dolle, weil die BPM-Erkennung irgendwie zu träge (und ungenau) war. Ausserdem ist mir das Teil einfach zu teuer.

Um es vorweg zu nehmen: den progammiertechnischen Weg habe ich schon untersucht, wäre ja eigentlich das einfachste, scheitert aber an der dämlichen Gui-Programmierung aller untersuchten Programme.

Mit irgendeiner Software wird es bestimmt bald funktionieren, momentan arbeite ich aber gerne mit Torq (M-Audio). In der Version 1.04 ist man meilenweit davon entfernt, die Geschwindigkeitsinfo irgendwie herauszubekommen, aber…..

Mein Mischpult (Behringer DJX700) hat eine relativ brauchbare BPM-Auswertung. Einmal in Form eines Displays, zusätzlich noch in Form einer im Takt blinkenden grünen LED.

Nehm’ ich.

Um dem Ganzen einen irgendwie nicht-zerstörerischen Charme zu geben, möchte ich das Blinken abgreifen, ohne das Innenleben des Pultes in irgendeiner Art und Weise zu gefährden. Der Plan also besteht darin, das Blinken über einen Fototransistor abzugreifen und in einen Midi-Controller einzuschleífen. Mit dem erzeugten Signal wird der ‘Tap’-Button in Ableton getriggert.

Hier mal das Mischpult. die angesprochene LED befindet sich rechts oben (unter dem Display, über ‘Beat Assist’).

 

Weil es schwierig ist, den Fototransistor genau so über der LED zu platzieren, daß der richtige Einfallswinkel gegeben ist, wird er mit einem Trichter aus Alufolie bestückt und das ganze dann über die LED geklebt

Nicht verwirren lassen, es sind zwei unabhängige Schaltungen auf dem Steckbrett

 

Der Ausgang der Schaltung geht dann in den Eingang für den Fussschalter bei meinem BCR2000 Midi-Controller. Dieser versorgt sie auch mit Spannung, weil hier letztlich 5 Volt kurzgeschlossen werden.

Der Schaltplan glänzt mal wieder durch kompromisslose Einfachheit. Bei den Transistoren handelt es sich um BC107B, der Fototransistor ist ein BPX81. Alles in Allem hat die Schaltung einen Materialwert von etwa 3€. Geht wohl.

 

Und was dabei herauskommt, sieht ungefär so aus:

[tube]http://www.youtube.com/watch?v=tlM24NL7qUI&feature=player_embedded[/tube]

 

Nicht wundern, das Video ist ohne Ton, weil …das Ergebnis ist … totaler Bullshit. die BPM-Erkennung vom Mischpult ist so grottenschlecht, daß die Geschwindigkeit in Ableton ständig schwankt (und das bei einme sehr einfachen 4/4-Takt Loop). jeder Anfänger bekommt es besser hin, wenn man manuell Tap’t.

Hätte ich mal vorher unseren Azubi gefragt, der hat schon seine Erfahrungen mit dem Pult…

 

Nun ja, wer weiss schon, wozu’s mal gut werden wird.