Midifighter Features

Midifighter Features
Posted on: 30.12.2009 by robert chanda
Features of the Midifighter v1
20091230: 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
or as MIDI note numbers:

Code:
     48  49  50  51
     44  45  46  47
     40  41  42  43
     36  37  38  39
The base note of this group is selectable through the menu system allowing the 16 note window to be placed anywhere in the MIDI map.

- 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
Is there a Midi Implementation Chart for the 4 bank modes available anywhere?
From the firmware source code:

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
Is there a Midi Implementation Chart for the 4 bank modes available anywhere?
From the firmware source code:

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
not to be a d.i.c.k but i noticed resources is spelt wrong on the main page.
You mean spelled? Fail lol
Laraine Arceo
06.02.2010
d.i.c.k. lol
robin loo
23.01.2010
Originally Posted by lsmith
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 .
+1.. otherwise the same questions will rise up again and again..
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

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy