Jump to content

Jakes Daddy

Members
  • Posts

    28
  • Joined

  • Last visited

    Never

Everything posted by Jakes Daddy

  1. Yes, Traktor sends midi out signals, BUT only from Traktor 3.2.2 onwards. Also, there is only a limited amount of stuff it will send - basically for every MIDI IN signal you define (like when you make it 'learn' your play/cue/pitch midi signals etc), you can make it 'echo' them back as MIDI OUT. Therefore, you can press a button (eg. play), Traktor will read the MIDI IN signal, act accordingly, and will send the same MIDI signal back as MIDI OUT - its like its saying 'yes, I heard the signal, and I am now playing'. Your midibox can read that MIDI IN signal, and do something - eg. message on LCD or light an LED etc I'd love for it to send more detailed info - track name, time remaining to play, etc etc, but it doesn't do it yet ::) Hope this helps. JD
  2. Yes, both LCDs work perfectly - I wired them as described in the LCD Module section of the main site, with E for the 2nd LCD going to RC on J10 (I think) I can then address the 2nd LCD by setting the cursor position to 0x80 (1st char or 1st line of 2nd LCD) and write to it as normal :) So far I am only writing a limited number of messages to the LCDs - I have the pitch displayed roughly in line with where the original was displayed (so it lines up with the label printed on the unit). Unfortunately I cannot get Traktor to send the pitch value back as a MIDI signal, so I have to calculate and maintain it within my C app :( - I'd much rather just read it as a MIDI signal And then I have 'Playing' , 'Cue' , and 'Reverse'. These are much better - Traktor sends these status messages as MIDI signals, so I can simply read for them and display the appropriate message ;D JD
  3. Most certainly ;D - Here are some images I took last night when playing out with it. Sorry some of the images are slightly blurred - maybe I need a tripod and less beer ;D The first pic shows the unit installed in place of where the normal CD control unit goes, and you can also see my monitor with Traktor on the left - you can see why I call it the smallest DJ booth in the world >:( Next is a close up of the unit - all looks pretty much as Denon intended except for the blue LCDs And lastly a rather blurred close up of one of the blue LCDs I'll try to find time to get a full build description and pics onto my user pages on the wiki Enjoy ! JD
  4. Just to let you guys know; my MB, PC and Traktor performed amazingly well on Saturday night :D :D :D I got in a little bit early to set everything up, and it all worked faultlessly; and I even got comments on the 'quality' of the sound - looks like my nice new M-Audio Audiophile Firewire has better D-A convertors than the Numark CD players ;D The only slight issue was that I dropped my MB at the end of the night when I was packing everything away ::), but it still works (phew !) So, having lugged around a desktop PC, TFT flat screen, external sound card, MB & cables galore; it now looks like I'm looking for a laptop and that my MB and Traktor will make a regular outing ;D JD
  5. I'd love to, but the venue I play at has the worlds smallest DJ booth, and there really isn't room for a pair of 1210's. I occaisonally take 1 deck out with me, and play from CD to vinyl to CD - but the CD decks have absolutely had it now (on 1 CD deck, the drawer mechanism is bust so you have to 'help' it close and then it doesn't always read the CD !, and both CD decks have dodgy play buttons which mean that they never ever play when you hit play - if you are lucky you might get a half second delay, if you are unlucky, it wont play at all !!) I will of course post an update to let you know how I get on ....
  6. My Midibox project - a Traktor controller built out of a Denon DN1800F CD Controller - gets its first outing tomorrow night :o Technically, what I have built is still a prototype, in that the cabling inside is pretty messy, not all the buttons are mapped to Traktor functions yet, and the software could do with a couple of minor tweaks - but for the most part it does all work ! (My original plan was to build it as I have done, then re-build it nice and neat) But unfortunately, I am soooooo fed up with the dodgy equipment at the venue that I play at (cheap Numark CD players which have been used and abused !), that I have no choice but to take my PC and MB project ! :o And not only is it the first outing for my Midibox, but also for me using Traktor (I've only ever played with vinyl and CDs). I play a 5 hour set, so the PC, Traktor and the MB need to stay up and running for at least that long ! - I think this weekend could be a baptism of fire :o :o :o - wish me luck !!! JD
  7. Thanks for all the replies gents. You'll be pleased to hear that I have sorted it now ;D. The problem was one of those very subtle ones ...... My original code was as I originally posted, and in particular the problem was here: pin_value and zeroPosition are both unsigned, and the subtraction in brackets in the pitch=..... line would have resulted in an unsigned int. If pin_value was over 63 (the zeroPosition), the subtraction would have been correct, and the result would be a positive integer. If pin_value was below 63, the subtraction would have been incorrect, and the result would have been a very very large positive integer. So, my solution is to do the subtraction into a separate signed int as follows: So, as I said, a very subtle problem, but I'm glad its sorted now ! ;D
  8. I'm having a problem with a variable of type float which I hope someone can help with. Basically I have a pot which is my pitch fader. It sends MIDI values 0-127. The centre point of the pot is 0% pitch, and sends a MIDI value of 63. My pitch range is +-6.5% I am trying to write a C function which will calculate the pitch and display it on the LCD. My formula for working out the pitch is: Work out the equivilant pitch value for each pot step or movement: eachIncrementValue = totalPitch / totalPossibleValues eachIncrementValue = (6.5 X 2)/ 127 eachIncrementValue = 0.10236220472440944881889763779528 Then work out the pitch: pitch = 0.0 + ( eachIncrementValue * (pin_value - zeroPosition) ) pitch = 0.0 + ( 0.10236220472440944881889763779528 * (pin_value - 63) ) pitch is obviously dependant on pin_value, but if it were 12 pitch = -5.22..... If pin_value were 79, pitch = 1.63..... So far so good. Now, I want to display the value on the LCD, and this is where I'm getting a bit stuck. I want to only display the value to 1 decimal place (eg. 1.6323534 should be displayed as 1.6; and 1.0 should be displayed as 1.0), and I want to display the + or - sign. As I don't know C very well, like how to round down a float, or how the MIOS_LCD_Print* routines would handle a float and the polarity sign I decided to do it myself: unsigned char totalPitch = 13; unsigned char totalPossibleValues = 127; unsigned char zeroPosition = 63; float eachIncrementValue; float pitch; unsigned char wholeNum; float remainder; eachIncrementValue = (float)totalPitch / totalPossibleValues; pitch = 0.0 + ( eachIncrementValue * (pin_value - zeroPosition) ); // position the cursor on the correct display if (pin==0) { MIOS_LCD_CursorSet(0x46); } else { MIOS_LCD_CursorSet(0xc6); } // if the pitch is negative then we need to display the minus sign, then multiply the value by -1 so we get the positive value if (pitch < 0.0) { MIOS_LCD_PrintChar('-'); pitch = pitch * -1; } else if (pitch == 0.0) { MIOS_LCD_PrintChar(' '); } else { MIOS_LCD_PrintChar('+'); } wholeNum = pitch; // this will explicitally truncate the fractional portion of the pitch - so we are left with the whole number MIOS_LCD_PrintBCD1((unsigned char)wholeNum); MIOS_LCD_PrintChar('.'); remainder = (pitch - wholeNum) * 10; MIOS_LCD_PrintBCD1((unsigned char)remainder); It all works with the exception of the line that attempts to convert a negative value to a positive: // if the pitch is negative then we need to display the minus sign, then multiply the value by -1 so we get the positive value if (pitch < 0.0) { MIOS_LCD_PrintChar('-'); pitch = pitch * -1; } else The code goes into the if block correctly, and the - sign is correctly displayed. However, the pitch = pitch * -1; appears to corrupt the value, and what I get printed on screen is -F.F for any negative value !! I have tried pitch = pitch * -1; pitch = pitch * (-1); pitch = pitch - pitch - pitch; None of these work; and so all I can assume is there is something odd about a C float ?? Any ideas anyone ? Cheers JD
  9. So what MIDI events/data will Ableton send? From Traktor 3.2 (which is the version I have), it will send MIDI data, but its very basic - all you can do (AFAIK) is to duplicate a MIDI IN event and set it as output. EG. if you configure the DECK A PLAY function to respond to a given MIDI IN signal, you can make Traktor also send it back OUT on the same MIDI channel. So, you can write into the C code for the midibox to respond to this event. Its a bit like an acknowledgement of an event - I press the play button, mb sends the MIDI signal, Traktor receives it, Traktor sends the same MIDI signal back, mb receives it and lights the play led. I'd be very interested to know what Ableton will send back as MIDI data Wild Weasel is the man!, and I've already been in touch with him about his project. He gave me a lot of inspiration and ideas.
  10. I'm building a midibox version of a pro DJ CD deck - basically rip apart a broken CD control unit, stuff it with MB goodies, and use it with Traktor. My base hardware is a Denon 1800F (the top half of the picture - the bottom half is the CD players themselves and they are now in the bin !): I stripped out all of the inards including the original LCD panels (I think they are actually LED, but that does not matter - they are gone now !) - replaced both panels with a 16X2 LCD in exactly the same mounting position, and the plan is to display on it as much as I can based on the original units functionality (ie. pitch, play/pause indicator, time etc) - this is where I'm getting a bit stuck as Traktor does not send much MIDI data, and so pitch I am having to calculate myself based upon the AIN values for the pitch faders - and there is no hope that Traktor will ever send track info as MIDI data (such as time remaining) - never mind, its fun anyway !
  11. Perfect, thats worked a charm !! Many thanks JD
  12. Hi, I wonder if anyone can help. I'm building a MB with 2 LCD panels. I can initialize and write to both LCD panels no problem, but now I want to define a couple of custom characters for each LCD. I am currently doing something like this: // define the bit patterns for the special chars which will be written to the LCD tables // we'll use these for pitch up and down indicators (and up and down arrow !) const unsigned char charset_arrows[2*8] = { 0x00, 0x04, 0x0e, 0x1f, 0x1f, 0x04, 0x04, 0x00, // this is the up arrow 0x00, 0x04, 0x04, 0x1f, 0x1f, 0x0e, 0x04, 0x00 // this is the down arrow }; void Init(void) __wparam { // setup to use 2 16X2 lcds MIOS_LCD_YAddressSet(0x00, 0x40, 0x80, 0xc0); // add the special characters to the LCDs (up and down arrows for pitch up and down) MIOS_CLCD_SpecialCharsInit(charset_arrows); <rest of Init code> } void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) __wparam { // we need to see if either decks pitch- or pitch+ has been pressed or released as we need to display the appropriate icon on screen // we need to do it here rather than waiting on a MIDI in signal as Traktor does not send enough MIDI info for us to determine if it was - or + // is it deck a pitch - if (pin==26) { // either clear or display the down icon on deck a MIOS_LCD_CursorSet(0x09); MIOS_LCD_PrintChar( pin_value==0 ? ' ' : 0x01 ); // this works, correct custom char is displayed } else // is it deck a pitch + if (pin==27) { // either clear or display the up icon on deck a MIOS_LCD_CursorSet(0x09); MIOS_LCD_PrintChar( pin_value==0 ? ' ' : 0x00 ); // this works, correct custom char is displayed } else // is it deck b pitch - if (pin==58) { // either clear or display the down icon on deck b MIOS_LCD_CursorSet(0x89); MIOS_LCD_PrintChar( pin_value==0 ? ' ' : 0x01 ); // this does not work, correct custom char is not displayed } else // is it deck b pitch + if (pin==59) { // either clear or display the up icon on deck b MIOS_LCD_CursorSet(0x89); MIOS_LCD_PrintChar( pin_value==0 ? ' ' : 0x00 ); // this does not work, correct custom char is not displayed } <rest of DIN_NotifyToggle code> } So, when I try display one of the custom characters on the 2nd LCD (by positioning the cursor at an offset of 0x80), it positions correctly but displays a random character. Doing this on the 1st LCD works perfectly. So, I can only assume that my call to MIOS_CLCD_SpecialCharsInit(charset_arrows) only did it for the 1st LCD. Does anyone know how to get custom characters into the 2nd LCD ?? Thanks in advance JD
  13. Found the answer from reading the WIKI - I needed to call: MIOS_LCD_YAddressSet(0x00, 0x40, 0x80, 0xc0); Excellent ;D
  14. Hi All, Just wondering if anyone can help with this. I'm making a MB with 2 16x2 LCDs. The basic hardware is complete, all my buttons, faders and LEDs are connected, and I have a basic C app (based on the skeleton) that lights the LEDs, and displays on LCD 1 when a button is pressed or fader moved - perfect, all of my soldering is good ;D But I can't get the 2nd LCD to display anything. I've wired it as per (my understanding of) the instructions for 2 LCDs (ie. all the pins with the exception of E connected to both LCDs - E on the 2nd LCD goes to J10 RC. IE. LCD1 CoreJ15 LDC2 ------------D0--------------- ------------D1--------------- ------------D2--------------- ------------D3--------------- ------------D4--------------- ------------D5--------------- ------------D6--------------- ------------D7--------------- ------------B+--------------- ------------B---------------- ------------Vs--------------- ------------Vd--------------- ------------VO--------------- ------------RS--------------- ------------RW--------------- ------------E J10RC-- But I just can't get anything to display on LCD2 - My understanding of the C code is that I need to add 0X80 to the LCD cursor position to address the 2nd LCD - eg: MIOS_LCD_Clear(); MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintCString("MIDI Denon 1800F"); MIOS_LCD_CursorSet(0x80); MIOS_LCD_PrintCString("MIDI Denon 1800F"); MIOS_LCD_CursorSet(0x40); MIOS_LCD_PrintCString("Deck A"); MIOS_LCD_CursorSet(0xC0); MIOS_LCD_PrintCString("Deck B"); Only the 1st LCD displays the message - nothing at all on LCD2 !!! Any ideas ?? Cheers JD
  15. I have found plenty on flea bay such as this: http://cgi.ebay.co.uk/USB-MIDI-CABLE-INTERFACE-FOR-CUBASE-SONAR-etc_W0QQitemZ110093870283QQihZ001QQcategoryZ123445QQrdZ1QQcmdZViewItem That would do the job I assume? But cheap'n'nasty though? Cheers Nathan
  16. Hi, Just in the process of building my MB project (most of the parts have arrived, some of the kits built already, all coming along very nicely :) ), and it dawned on me last night that my PC does not have MIDI in/out ports !! (doh !) What I do have however is an M-Audio Oxygen8 keyboard which has a pair of 5 pin dins which look like MIDI in/out but suspisiously are not labeled as such: Am I right in thinking these are not MIDI in/out that I can use with my MB project ?? Assuming I can't use them, can anyone suggest a cheap USB MIDI port ? (my PC does not have a game port as otherwise I'd use that !) Cheers JD
  17. Phew! that was lucky I asked !! So, VD is +5V and VS is ground ?? In my mind I had it the other way round - not sure where I got that from ! (probably from not wanting to be positive for VD !! ;D ;D ;D) OK, so next question concerning connections: VS pin is common ground for all the LEDs on a DOUT module; and there is a VS pin on the DIN module which I assume is also common ground. If I have a board with all my buttons (for DIN) and all my LEDs (for DOUT), can all the buttons and all the cathodes share the same VS ? IE. have a common ground rail on my board with one leg of each switch connected to it and the cathode of each LED also connected to it, and connect it to VS on the DOUT and VS on the DIN ??? Will that work ?? Cheers JD
  18. Just a quick question about the DOUT which I'm sure some friendly expert can answer very easily :) Am I right in thinking that +5V is 'common' and the - polarity is 'switched'. IE. On J3,J4,J5 and J6 there is a common VS, then D0-D7 for each LED. I am assuming that VS is the common +5V which is connected to all the anodes, and D0-D7 are the negative voltage for each LED and should be connected to the cathode of each LED ?? Therefore its common +5V and negative switched ?? 2nd question about DOUT - do I need a resistor inline for each LED - IE. D0->resister->cathode or is this all handled on the DOUT board Thanks in advance JD
  19. Hi TK and Smash, I read it on both sites actually. Smash has removed it from his now, and it is much clearer (thanks :)) , but it is still on the main ucapps site - http://www.ucapps.de/mbhp_din.html But now I have the attention of the 2 top men :) :) :) - bearing in mind my original design of a midi based DJ 'cd console' - am I right in thinking that I will have: 1 * AIN for the two pitch faders. Connect AIN J6 to CORE J6. Ground all the unsed analog input pins on the AIN 2 * DINs - 1 for each player. All the buttons (play, cue, etc) and the shuttle/encoder for each player connected to its own DIN, daisy chain the 2 DINS via 1st DIN J2 to J1 of the 2nd DIN Connect 1st DIN J1 to CORE J9 Is this correct ? Cheers JD
  20. I wonder if anyone can clear something up for me .... I'm making a Midibox project, and at first I thought it was MB64, but now I'm thinking it might be MB64E ?? ??? The project is to convert a DJ CD control unit into a DJ Midi control unit :-). I have a bust Denon control unit (DN1800F - see my other posts), and it has 2 'players' or 'decks'. Each 'player' has buttons for play, cue, pitch, pitch+, pitch-, etc. These are easy, they can be connected to a DIN Then there is a linear pot for the pitch fader for each player - again, easy, connect to an AIN. But then it gets complicated (in my mind !) Each player has a shuttle ring and an encoder. I now understand the pinouts of the shuttle and encoder, and will connect them to a DIN. But I'm now confused as to the connection of the DINs to CORE My original plan was based on MB64. There would be one CORE, one AIN and 2 DINs. The AIN would have both linear pots and nothing else, and I would connect AIN J6 to CORE J6 The first DIN would have all of the buttons, shuttle and encoder for the first player, and I would connect DIN J1 to CORE J9, and DIN J2 to J1 of the 2nd DIN The second DIN would have all of the buttons, shuttle and encoder for the 2nd player, and I would connect DIN J1 to J2 of the 1st DIN Basically, each DIN has all the digital controls for each player, and I daisy chain the 2 DINs together. But then I start reading more detail, and it says that if I have encoders then the DIN should be connected to CORE J6 and I should use MB16E (MB64E ?? ???). So what does this mean ? Is it saying that I have one DIN just for the 2 encoders and it is connected to CORE J6, and that all my other buttons should be connected to the other DIN which is connected to CORE J9 ? If this is the case, does it mean I cannot use an AIN (as that would have been connected to CORE J6) ? And what is the difference between MB64 and MB64E ?? I am sooooo confused ??? ??? ??? Thanks for any help you can offer, JD
  21. Michael, Like I said earlier, I'm sure my encoder is the same as yours. The data sheet that you found for yours seems to work for mine as well (sort of !) Using my multi-meter, there is a function that beeps when a connection is made (dont know what its called but its very handy :)) - if I connect 1 probe to C1, pins 1, 2, 3 and 4 'beep' (get connected) when I rotate the outer shuttle. Pin 1 is clearly the rotation direction - either clock or anti clock, and ANDing pins 2,3 and 4 tell you the angle - perfect But when I connect 1 probe to C2, J1 and J2 get connected when I rotate the inner encoder in either direction ? IE. putting the probe on C2 and J1, I get a beep when I rotate clock and anti clockwise. The same is true for C2 and J2. So, how does the encoder know / send the rotation direction ? I've worked out the pins for the pitch control pot - thanks for your help. Its a bit odd actually - the casing clearly has 217K marked on it, but according to my multi meter its 47K !! No matter though, I've found the 3 pins I need - perfect ! Cheers JD
  22. Hi Michael, My shuttle/encoder is exactly the same as the one you used in your Denon projects (based on your superb photos / write up of your projects) - its sort of triangular with 4 mounting pins on the case body. Along the bottom edge are 8 pins (not 6 as in my previous post ::)) The left most 5 are slightly higher/longer than the other 3 - exactly the same as your one. I found on your site the data sheet for your shuttle/encoder - and it seems to relate to mine as well. So far I've only played with the right most 3 pins which seem to relate to the inner encoder. This encoder is definately connected to these pins, but not entirely sure how to test and work out what pins do what. I've used a multi-meter to test resistance between pins (to see if they are connected or not), but not really sure what I should be reading across each of the pins as I rotate the encoder clock/anti clock wise. Michael - given that it looks like our shuttle/encoder units are the same, what were your connections between the 8 pins and the DIN ?? Cheers JD
  23. I'm in the process of making an MB64 based on a Denon DN1800F control unit. I have ordered the various kits and whilst waiting for these to be delivered, I have taken inspiration from Wild_Weasel and have removed the original boards from the DN1800F, desoldered the components I will re-use, cut some new boards to the same size, and drilled through to remount the components. Its all going nicely. However, I have some questions re: the pinouts of the shuttle ring and encoder, and the pitch fader, and how these related to the DIN and AIN modules. The pitch faders (217K linear pot) will go onto the AIN I have ordered. Each fader has what appears to be 2 ground pins which also seem to act as mounting 'brackets'. They are part of the outer case of the pot and are larger than a standard component pin leg and were originally soldered to the board to help keep it in place. Do these need to be connected to the circuit in any way, or are they simply there to mount the component ? The faders also have 8 pins - 4 at the top and 4 at the bottom. These may be duplicates of each other (ie. the top 4 are the same as the bottom 4 and I can use either set ???) Where should these 4 (or 8 ??) pins connect to on the AIN ?? Also, will a 217K pot work ? or does it need to be 100K ?? The shuttle ring and encoder are both on the same unit. This has 4 ground / mounting pins as with the faders - so can I simply use these as mounting and not connect to the circuit ?. There are then 6 pins (I think from memory, but could be 5 or 7 - I will check later). I read somewhere (from Wild_Weasel I think) that the encoder has 2 pins for clock/anti clockwise - surely thats 2 pins plus ground ?? and the shuttle wheel has 4 pins ?? In relation to the DIN how would these connect ?? Sorry if these are stupid newbie type questions ! Thanks in advance for any answers ! Cheers JD
  24. Forgot to ask this in my last post ...... The standard displays in the DN1800F are LED - right ? - and presumably the LCD module will not drive them ? So I could look for some LCD panels that are the same size/mounting as the current LED panels - if I got 2 (one for each side) would I need 2 LCD modules ? Other than for initial setup, what can the LCD module and panel do for me ? Presumably its not going to be easy to get the host application (eg. traktor or virtual dj) to send data to the LCD panels (ie. make them display the same as if this were a conventional CD deck) JD
×
×
  • Create New...