Traktorizer - a Midibox to control Traktor-DJ-Studio -

[glow=yellow,2,300] Projectpage -> http://www.traktorizer.de.vu  [/glow]

Firstly congratulations on building such an awesome controller.  It looks perfect for the job (I spin psytrance with traktor, saw your youtube video - nice).  Can deffinatly see how having all traktors features laid out infront of you would be amazing.  Do you play out in clubs atall?  Im particularly interested in the jog wheel construction, which seems to be the downfall of most midibox and commercially availible midi DJ controllers.

Secondly what is the name of the track that you use at the beginning of the demo video on youtube? (not the scratch video, your first one), its a killer tune!

Thanks.

Adam

Many thnx mate  :slight_smile:

Yeh, Psytrance rockz…its my life !

I always DJ at Outdoor-Partys, cause in Clubs I never feeled the Spirit like on Wood-or Mountain Partys :wink:

For some more information about my Jogs read my Wiki-Page, all Links are on Top here, 1st Post :wink:

The Track is an Oldie from GMS (2001) called Hyperactive / Album “No Rules” … My loved one, it pushes the dancing ppl crazy  :smiley:

Enjoy…and when u build a same Controller I dont wanna miss some pictures here :wink:

Best Regards

MTE

Dear MTE

I’m knocked out by the design, as well as the videos which give a real feel for what you’ve done.

It’s also given me an idea too. One of my friends is Miss Jinny, a Manchester DJ working the the dark world of Goth/EBM. She is also partially sighted, A few weeks ago she was discussing using Traktor. Your control surface has given me a very good idea for a way to make it easier for her to work with Traktor.

I’ve never used it myself. Does traktor send MIDI info as well as respond to it? and can you get things like track info as well?

Sorry for being lazy here - if I know a few basic answers, I can thiink about a specific control surface.

Thanks -  and again, superb design work.

Mike

Thank you so much, Prof :slight_smile:

a Manchester DJ working the the dark world of Goth/EBM

Great  ;D I was 10 years in Gothic-Scene before i switched to the Psytrancers  :slight_smile:

The new Version of Traktor (3.2) only sends some Signals (dunno if its Note-Ons etc) to switch some LEDs on/off…Ive never tested this because my LEDs are self-programmed for their own state…so it is 1:1 with Traktor :wink:

and can you get things like track info as well?

No, only on the PC-Screen :frowning: It will be a great feature to put Track-Position etc on a LCD, maybe Native Instruments will implement this in future updates !

Best Regards

MTE

Just a question about the scratch pads, yuo wrote that it was 8cds ona hdd motor with a strap to an encoder.

Is it a standard non indented rotary encoder or what? would love to see more info on that part if possible.

would love to see more info on that part if possible.

Oh yes of course :slight_smile:

The Encoder is standard with detend, but i removed it :wink:

described here…

Best Regards

Surgeon General’s Warning: Toying with rusty blades with bare hands may cause shoulder pain…from tetanus injections :slight_smile:

loooooooool  ;D

Traktorizer V2.1 - Firmware added

more in the Wiki :wink:

Ahh a new point release, congrats :slight_smile:

2 2×16 LCDs, 1 per each Deck :wink:

Pics! ;D

The Display (4x27 characters, for testing) hangs out of the box on the cable  ;D ;D ;D

Pics coming with the fully mounted new Final Frontpanel & Case (maybe in the next 2 months) :wink:

Gmornin :slight_smile:

I need to program a LCD-State for my Pitch-Shift Faders (in C)…

The range must be -8.0 % to +8.0 %

so that 0 should be -8.0…63 = 0 …and…  127 = +8.0 %

Ive tried some division-operation, but im not a mathematical genius  :slight_smile:

Can anyone help me

Regards

Maybe you could use TK’s scaler code for this… scale your 0-127 from 0-16, then -8

/////////////////////////////////////////////////////////////////////////////
// This is an assembly optimized function which scales a 7bit value between
// a minimum and maximum value
/////////////////////////////////////////////////////////////////////////////
unsigned char Scale_7bit(unsigned char value, unsigned char min, unsigned char max)
{
  // scaled value is (<8-bit random> * ) >> 8
  PRODL = value << 1; // 8bit value
  PRODH = max-min+1;  // range
__asm
    movf _PRODL, W
    mulwf _PRODH, 0
__endasm;

  return min + PRODH;
}

im not a mathematical genius

LOL me neither but I can plagiarise like crazy :wink:

Don’t forget to put TK in the copyright notice or he might steal our pretty green stars hahahaha

mhh I dont know how to implement this…

My friend helped me this morning with the code…we progged following :

float pitchshiftstate;

if(pin == 13)if(MIOS_AIN_Pin7bitGet(13) > 64)
{
pitchshiftstate = (MIOS_AIN_Pin7bitGet(13) / 8) - 8;
MIOS_LCD_CursorSet(0x00);MIOS_LCD_PrintCString("    DECK A    ");
MIOS_LCD_CursorSet(0x40);MIOS_LCD_PrintCString("Pitch-Shift : ");
MIOS_LCD_PrintChar('+');MIOS_LCD_PrintBCD3(pitchshiftstate);
}
else
{
pitchshiftstate = 8- MIOS_AIN_Pin7bitGet(13) / 8;
MIOS_LCD_CursorSet(0x00);MIOS_LCD_PrintCString("    DECK A    ");
MIOS_LCD_CursorSet(0x40);MIOS_LCD_PrintCString("Pitch-Shift : ");
MIOS_LCD_PrintChar('-');MIOS_LCD_PrintBCD3(pitchshiftstate);
}

this works  +7  -8    :(   

but I need it like -8 .x     +8 .x

Copyrights inserted  ;D

Okay so:

your CC variable gives you a range of 0-127.

you have a pitch range of -8 to 8 %, for a total range of 16.  We’re going to calculate it as a value of 0-16 (and worry about the subtraction later since it’s linear).  Which means you have a granularity of 8 CC values per pitch percent.  Of our seven bits, this means we have:

CC Message:

x x x x x x x

          |

            ^

            last three bits gives our fraction value.

^

first four bits gives our integer percent value.

so our fractional value is (value & 0x3)

our integral value is (value >> 3)

You could use a lookup of char * to map the 8 values possible for the fractional part of the CC message to a character string.  It would probably be cheaper than a division.

ie:

char * fractionstrings = {“0”,“125”,“250”,“375”,“500”,“625”,“750”,“875”}

then in our lookup code, just print fractionstrings[value&0x3] for the fractional component.

Any questions just reply here.

edit:clarifications (I hope)

mhh I dont know how to implement this…

Ugly layout, but:

MIOS_LCD_PrintBCD3(Scale_7bit(MIOS_AIN_Pin7bitGet(pin), 0, 16)-8);

Or do th0mas’s thing :slight_smile:

@stryd

with

MIOS_LCD_PrintBCD3(Scale_7bit(MIOS_AIN_Pin7bitGet(pin), 0, 16)-8);

i got following error…

main.c:1258: warning 112: function ‘Scale_7bit’ implicit declaration

main.c:1258: error 101: too many parameters

main.c:1258: warning 112: function ‘Scale_7bit’ implicit declaration

main.c:1258: error 78: incompatible types

from type ‘void’

to type ‘unsigned-char’

Im not really or programming Pro…sorry for nerving

Sorry MTE… I kept the details to a minimum there… first you need to declare the scale function somewhere (top of the file)

unsigned char Scale_7bit(unsigned char value, unsigned char min, unsigned char max);

But I missed this comment:

but I need it like -8.x    +8.x

So do what th0mas said.

:slight_smile: when my friend (a really programming genius) is back again we will meditate about th0mas`s example…

Thnx anyway for te hints, im too stupid for this  :-\