Midifighter Features
Midifighter Features Posted on: 30.12.2009 by robert chanda Features of the Midifighter v120091230: post created by Fatlimey 20110510: edited to reflect the current firmware - The Midifighter is a Class Compliant USB device, so it can plug and play to produce MIDI over USB on Mac, PC and Linux without additional divers needed. - High performance key scanning, with keys read at 1000hz giving 1ms response to keydowns and 10ms response to keyups (use to the 10-entry debounce buffer). We send the MIDI events to the host as fast as we capture them. - Bootup menu system sets allows you to alter system settings, which are written to persistent storage and reused at every subsequent reboot. Hold down the top-left key (nearest the USB socket) while powering up to enter Menu Mode. See the Menu System HOWTO post for more. MIDI Implementation - The keyboard generates the 16 notes from C2 to D#3 (assuming the standard numbering that "Middle C" = C4, note 60), to line up with the default window of an Ableton Live 8 drum map. Code:
C3 C#3 D3 D#3 G#2 A2 A#2 B2 E2 F2 F#2 G2 C2 C#2 D2 D#2 Code:
48 49 50 51 44 45 46 47 40 41 42 43 36 37 38 39 - The Midifighter generates NoteOn (0x90) and NoteOff (0x80) events to signify a note finishing instead of using a zero velocity NoteOn event. - MIDI notes have a selectable velocity, which defaults to 127 (0x7f). The velocity is also used for the NoteOff events. - MIDI notes are generated on a single channel, which defaults to MIDI channel 3 (0x2) - Sending MIDI events out to the Midifighter on the same channel and note numbers as the keys controls the LEDs. NoteOn lights the LED, NoteOff turns it off. By default pressing a key also lights the LED on that key, but for total control over your LEDs this feature can be turned off using the menus system. Open Source Resources - The Midifighter is an open source hardware project. All schematics, firmware, source code and other support documentation are openly available and licensed under Creative Commons (hardware) and GPL (firmware). - Source code and documentation is available at http://sourceforge.net/projects/midifighter - Programming potential: program memory is only 35% full, plenty of space to add new features! | |
robert chanda 22.06.2011 |
Originally Posted by rishi
Code:
// Midi Map // -------- // In normal mode only 16 notes are being tracked, as well as the // digital expansion ports, plus two notes for each analog port for the // smart filters: // // 2 2 3 3 <- analog 2,3 = 104 .. 107 // 0 0 1 1 <- analog 0,1 = 100 .. 103 // // . . . . <- bank 0 = 48 .. 52 // . . . . <- bank 0 = 44 .. 47 // . . . . <- bank 0 = 40 .. 43 // . . . . <- bank 0 = 36 .. 39 // // D D D D <- digital = 4 .. 7 // // // In 4banks Internal mode, the top 4 buttons are used as bank // selection keys so we are tracking four banks of 12 notes plus the // digital and analog notes. // // . . . . <- 124 .. 127 // . . . . <- 120 .. 123 // . . . . <- 116 .. 119 // . . . . <- 108 .. 115 // 2 2 3 3 <- analog 2,3 = 104 .. 107 // 0 0 1 1 <- analog 0,1 = 100 .. 103 // . . . . <- bank 3 = 96 .. 99 // . . . . <- bank 3 = 92 .. 95 // . . . . <- bank 3 = 88 .. 91 // . . . . <- bank 3 = 84 .. 87 // @ @ @ @ <- bank 3 = 80 .. 83 // @ @ @ @ <- bank 3 = 76 .. 79 // @ @ @ @ <- bank 3 = 72 .. 75 // # # # # <- bank 2 = 68 .. 71 // # # # # <- bank 2 = 64 .. 67 // # # # # <- bank 2 = 60 .. 63 // @ @ @ @ <- bank 1 = 56 .. 59 // @ @ @ @ <- bank 1 = 52 .. 55 // @ @ @ @ <- bank 1 = 48 .. 51 // # # # # <- bank 0 = 44 .. 47 // # # # # <- bank 0 = 40 .. 43 // # # # # <- bank 0 = 36 .. 39 // . . . . <- 32 .. 35 // . . . . <- 28 .. 31 // . . . . <- 24 .. 27 // . . . . <- 20 .. 23 // . . . . <- 16 .. 19 // . . . . <- 12 .. 15 // . . . . <- 08 .. 11 // D D D D <- digital = 4 .. 7 // B B B B <- bank select keys 0..3 // // // In 4banks External mode, the four digital pins are used as bank // select keys giving us four banks of 16 keys: // // . . . . <- 124 .. 127 // . . . . <- 120 .. 123 // . . . . <- 116 .. 119 // . . . . <- 108 .. 115 // 2 2 3 3 <- analog 2,3 = 104 .. 107 // 0 0 1 1 <- analog 0,1 = 100 .. 103 // @ @ @ @ <- bank 3 = 96 .. 99 // @ @ @ @ <- bank 3 = 92 .. 95 // @ @ @ @ <- bank 3 = 88 .. 91 // @ @ @ @ <- bank 3 = 84 .. 87 // # # # # <- bank 2 = 80 .. 83 // # # # # <- bank 2 = 76 .. 79 // # # # # <- bank 2 = 72 .. 75 // # # # # <- bank 2 = 68 .. 71 // @ @ @ @ <- bank 1 = 64 .. 67 // @ @ @ @ <- bank 1 = 60 .. 63 // @ @ @ @ <- bank 1 = 56 .. 59 // @ @ @ @ <- bank 1 = 52 .. 55 // # # # # <- bank 0 = 48 .. 51 // # # # # <- bank 0 = 44 .. 47 // # # # # <- bank 0 = 40 .. 43 // # # # # <- bank 0 = 36 .. 39 // . . . . <- 32 .. 35 // . . . . <- 28 .. 31 // . . . . <- 24 .. 27 // . . . . <- 20 .. 23 // . . . . <- 16 .. 19 // . . . . <- 12 .. 15 // . . . . <- 08 .. 11 // D D D D <- digital = 04 .. 07 // B B B B <- bank select keys 00 .. 03 // // // The Bank Select key events are sent whenever a bank select key is // pressed, regardless whether the key is on the digital port or on the // keypad. |
Adolf Hit 21.11.2011 | It uses the AT90USB162 - the sourceforge page has a schematic |
Latrice Boever 17.11.2011 | I tried searching but what processor is on it ATMEGA168? |
Latrice Boever 17.11.2011 | Ok So I have dived through the source code. Are the buttons actually switchable to analog so I could add potentiometers to where my midi fighter buttons are and keep the same connections? I saw your PORTB, PORTC, PORTD variables. However I couldnt find the documentation explaining which connected to what (digital, analog) if you could help me see what PORTs are digital and which are not that would help me out a ton. Thanks. |
Freddie Henrichs 26.10.2011 | Does the Classic have any default settings when you plug it in? Or do I have to map/set all the buttons? |
Delmar Swamy 13.07.2011 | Okay thank you =^.^= |
Adolf Hit 12.07.2011 | Thats the one! |
Delmar Swamy 12.07.2011 | ah so external uses like the four buttons on the MF Pro? |
Adolf Hit 12.07.2011 | Internal uses the top four arcade buttons, external uses the 4 digital inputs on the custom expansion port. |
Delmar Swamy 12.07.2011 | Noob question, but whats the difference between External $banks and Internal 4banks? (Im pretty new to DJing so I dont know all this stuff yet XD )) |
robert chanda 22.06.2011 |
Originally Posted by rishi
Code:
// Midi Map // -------- // In normal mode only 16 notes are being tracked, as well as the // digital expansion ports, plus two notes for each analog port for the // smart filters: // // 2 2 3 3 <- analog 2,3 = 104 .. 107 // 0 0 1 1 <- analog 0,1 = 100 .. 103 // // . . . . <- bank 0 = 48 .. 52 // . . . . <- bank 0 = 44 .. 47 // . . . . <- bank 0 = 40 .. 43 // . . . . <- bank 0 = 36 .. 39 // // D D D D <- digital = 4 .. 7 // // // In 4banks Internal mode, the top 4 buttons are used as bank // selection keys so we are tracking four banks of 12 notes plus the // digital and analog notes. // // . . . . <- 124 .. 127 // . . . . <- 120 .. 123 // . . . . <- 116 .. 119 // . . . . <- 108 .. 115 // 2 2 3 3 <- analog 2,3 = 104 .. 107 // 0 0 1 1 <- analog 0,1 = 100 .. 103 // . . . . <- bank 3 = 96 .. 99 // . . . . <- bank 3 = 92 .. 95 // . . . . <- bank 3 = 88 .. 91 // . . . . <- bank 3 = 84 .. 87 // @ @ @ @ <- bank 3 = 80 .. 83 // @ @ @ @ <- bank 3 = 76 .. 79 // @ @ @ @ <- bank 3 = 72 .. 75 // # # # # <- bank 2 = 68 .. 71 // # # # # <- bank 2 = 64 .. 67 // # # # # <- bank 2 = 60 .. 63 // @ @ @ @ <- bank 1 = 56 .. 59 // @ @ @ @ <- bank 1 = 52 .. 55 // @ @ @ @ <- bank 1 = 48 .. 51 // # # # # <- bank 0 = 44 .. 47 // # # # # <- bank 0 = 40 .. 43 // # # # # <- bank 0 = 36 .. 39 // . . . . <- 32 .. 35 // . . . . <- 28 .. 31 // . . . . <- 24 .. 27 // . . . . <- 20 .. 23 // . . . . <- 16 .. 19 // . . . . <- 12 .. 15 // . . . . <- 08 .. 11 // D D D D <- digital = 4 .. 7 // B B B B <- bank select keys 0..3 // // // In 4banks External mode, the four digital pins are used as bank // select keys giving us four banks of 16 keys: // // . . . . <- 124 .. 127 // . . . . <- 120 .. 123 // . . . . <- 116 .. 119 // . . . . <- 108 .. 115 // 2 2 3 3 <- analog 2,3 = 104 .. 107 // 0 0 1 1 <- analog 0,1 = 100 .. 103 // @ @ @ @ <- bank 3 = 96 .. 99 // @ @ @ @ <- bank 3 = 92 .. 95 // @ @ @ @ <- bank 3 = 88 .. 91 // @ @ @ @ <- bank 3 = 84 .. 87 // # # # # <- bank 2 = 80 .. 83 // # # # # <- bank 2 = 76 .. 79 // # # # # <- bank 2 = 72 .. 75 // # # # # <- bank 2 = 68 .. 71 // @ @ @ @ <- bank 1 = 64 .. 67 // @ @ @ @ <- bank 1 = 60 .. 63 // @ @ @ @ <- bank 1 = 56 .. 59 // @ @ @ @ <- bank 1 = 52 .. 55 // # # # # <- bank 0 = 48 .. 51 // # # # # <- bank 0 = 44 .. 47 // # # # # <- bank 0 = 40 .. 43 // # # # # <- bank 0 = 36 .. 39 // . . . . <- 32 .. 35 // . . . . <- 28 .. 31 // . . . . <- 24 .. 27 // . . . . <- 20 .. 23 // . . . . <- 16 .. 19 // . . . . <- 12 .. 15 // . . . . <- 08 .. 11 // D D D D <- digital = 04 .. 07 // B B B B <- bank select keys 00 .. 03 // // // The Bank Select key events are sent whenever a bank select key is // pressed, regardless whether the key is on the digital port or on the // keypad. |
Verdell Vinsonhaler 22.06.2011 | hello i would use the midi fighter in ableton for a live performance but, i would use the ableton's effects like the mapping in tracktor but the problem is that buttons act as toggle buttons and i would like taht they act as momentary (i press,effect works , i release effects don't work) could you help me? (sorry for my english ) |
Ignacio Rutner 14.02.2011 | Is there a Midi Implementation Chart for the 4 bank modes available anywhere? Thanks |
Laurie Minarcik 04.07.2010 | What does this have to do with mapping different pages? I'd like one page / 16 buttons for the sampler in Torq. Another page for cuepointjuggling. One for effects and loops, ... I did this with different (groups) pages on my NI Maschine super easy, even my Korg nanoPad let's me change between four banks/pages. But the Midifighter doesn't have these little extra buttons to make a switch between different pages. It's the only feature I really want in a Midifighter. Maschine needs more space while travelling and I'd love to buy a Midifighter and play around with these dope arcadebuttons. |
robert chanda 30.06.2010 | I'm, in the middle of a major overhaul of the main loop. I'm moving from a reactive "Someone pressed a button, I must immediately light an LED and generate a MIDI event..." style design to a "Someone pressed a button, let me immediately generate a MIDI event and make a record of that so we can see later whether we want to change the LEDs in some way once we've checked out in the MIDI input stream and the expansion ports..." state based design. Essentially it's in pieces all over the living room floor, each piece on a separate piece of newspaper, but they're a lot cleaner and working better than they used to. It should come together quickly. |
Adolf Hit 30.06.2010 | 4 bank mode is coming, just needs some polishing and thorough testing I believe, but Ill let Fatlimey tell us an ETA |
Laurie Minarcik 30.06.2010 | Why isn't there an option (4 little extra buttons) to switch between different midipages? I'd like a Midifighter that can be setup for different pages. For me 16 Buttons just isn't enough. |
Random X 12.02.2010 | Hagging on old posts #fail! |
Wai Rofkahr 12.02.2010 |
Originally Posted by JesterNZDJ
|
Laraine Arceo 06.02.2010 | d.i.c.k. lol |
robin loo 23.01.2010 |
Originally Posted by lsmith
|
Leota Saniuk 16.01.2010 | somewhat off topic .. i wish we would start getting a proper doc page for all the DJTT controller/modifications. like the other day i was searching forever to find the video where Ean explains how to switch between FW 1.2 and 1.3 on the VCI-100 SE. to yeah .. lets move stuff like this out of the community . |
Sheri Cluckey 09.01.2010 | i used midi learn in serato to map my controller, so I can only assume the same would apply in traktor |
Random X 31.12.2009 | Why not? |
Nancey Teck 31.12.2009 | hey people, i'm still new at mapping and setting up midi controllers, even though i'm use a vcm100 with and mpd24. if the default midi channel is 3, (vcm00 is 1, mpd24 is 4) could i use just use the midi learn in traktor to map the midi fighter? |
Random X 31.12.2009 | Availability is a bigger issue. |
Random X 31.12.2009 | Check the shops... This is a world wide thingy. |
Cole Paridon 31.12.2009 | do you ship this worldwide? damn i'd like to buy 2 |
Random X 31.12.2009 | Done. |
Random X 31.12.2009 | Same here... But before handling that one, I need to be sure that they meant resources instead of recourses. |
Latoria Kavulich 31.12.2009 | not to be a d.i.c.k but i noticed resources is spelt wrong on the main page. |
Random X 30.12.2009 | Dude.... You might actually start a wiki just for this controller? :eek: |
<< Back to MIDIfighter Resources and DiscussionReply