Subversion Repositories svn.mios

Rev

Rev 420 | Blame | Compare with Previous | Last modification | View Log | RSS feed

HEADER 3 MIDIbox64E

<H1>MIDIbox64E</H1>
<H3>Created in May 2002, redesign of the never completed <A HREF="midibox/midibox_2_foto.jpg">MIDIbox2 project</A> from 1999</H3>

<P><CENTER><IMG SRC="midibox16e/midibox16e.jpg" width=575></CENTER></P>

<H1> Check the long feature list at the bottom :-) </H1>

<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Download </H2></DT>
  <DD><TABLE WIDTH="100%" BORDER=0 CELLSPACING=5 CELLPADDING=0>

    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>Schematics & PCBs</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>File</STRONG></FONT></td>
      <TD CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Size</STRONG></FONT></td>
      <TD NOWRAP CLASS=TABCOLOR1><FONT SIZE=2><STRONG>Description</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="mbhp.html">MBHP</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>see MIDIbox Hardware Platform</TD>
    </TR>

    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>Firmware</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="mios_download.html">MIOS Download</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>MIOS based firmware for PIC18F devices with source code</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="pic16f_firmwares.html">PIC16F Firmwares</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>Firmware for PIC16F877 (expired, don't use it for new MIDIboxes!)</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox64e/midibox64e_sfb_table.txt">midibox64e_sfb_table.txt</A></TD>
      <TD CLASS=TABCOLOR2>5k</TD>
      <TD CLASS=TABCOLOR2>This table lists all functions which can optionally assigned to the buttons aside from MIDI and Meta Events</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox64e_changelog.html">ChangeLog</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>MIDIbox64E ChangeLog</TD>
    </TR>

    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>Panel Layout</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox16e/midibox16e.fpd">midibox16e.fpd</A></TD>
      <TD CLASS=TABCOLOR2>12k</TD>
      <TD CLASS=TABCOLOR2>The panel layout has been created with <A HREF="http://www.schaeffer-apparatebau.de/FPD_index.htm" TARGET="_blank">Frontplattendesigner</A>, a very usefull program by <A HREF="http://www.schaeffer-apparatebau.de" TARGET="_blank">Schaeffer Apparatebau</A>. I mailed them my file and got back the ready made panel in between 9 days! :-) The panel fits to the TEKO364 chassis, which can be purchased at <A HREF="http://www.reichelt.de" TARGET="_blank">Reichelt</A>. Feel free to use this file as template for your own panel.</TD>
    </TR>

    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>.syx File Generator</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox/mk_syx.zip">mk_syx.zip</A></TD>
      <TD CLASS=TABCOLOR2>11k</TD>
      <TD CLASS=TABCOLOR2>Creates the configuration dump MIDIbox64E<BR>Archive includes also some configuration examples!</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox64e/midibox64e_sysex_implementation.txt">sysex_implementation.txt</A></TD>
      <TD CLASS=TABCOLOR2>2k</TD>
      <TD CLASS=TABCOLOR2>Regarding the SysEx format</TD>
    </TR>
    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>Editor & Download Manager</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="http://miostools.midibox.org" TARGET="_blank">miostools.midibox.org</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>MIDIbox64E Editor by <A HREF="mailto:serge@programmeert.com">Serge</A></TD>
    </TR>

    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>Tutorial</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="http://www.midibox.org/midibox16e_photos/index.html" TARGET="_blank">Photos</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>Making of...</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox64e_tutorial.html" TARGET="_blank">Tutorial</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>The MIDIbox64E tutorial</TD>
    </TR>

    <TR>
      <TD COLSPAN=3 CLASS=TABCOLOR1><FONT SIZE=3><STRONG>Misc.</STRONG></FONT></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="http://www.suckow.de/ralf/ledmatrix4x20/">LINK</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>4x20 LED matrix extension for RGB LEDs by Ralf Suckow</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="http://forum.ucapps.de">MIDIbox Forum</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>Support at the MIDIbox Forum</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="http://wiki.midibox.org" TARGET="_blank">MIDIbox Wiki</A></TD>
      <TD CLASS=TABCOLOR2>LINK</TD>
      <TD CLASS=TABCOLOR2>A lot of additional informations on MIDIbox and MIOS</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox/midi_thru.gif">midi_thru.gif</A></TD>
      <TD CLASS=TABCOLOR2>50k</TD>
      <TD CLASS=TABCOLOR2>Optional MIDI Thru Port</TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="http://www.midibox.org/users/tor_arne/midibox_cubase_setup.xml.zip" TARGET="_blank">midibox_cubase_setup.xml.zip</TD>
      <TD CLASS=TABCOLOR2>3k</TD>
      <TD CLASS=TABCOLOR2>Cubase Remote Control Setup for MIDIbox64 by <A HREF="mailto:torarne@utepils.com">Tor Arne</A></TD>
    </TR>
    <TR>
      <TD CLASS=TABCOLOR2><A HREF="midibox/midibox_logic_environment.zip" TARGET="_blank">midibox_logic_environment.zip</A></TD>
      <TD CLASS=TABCOLOR2>18k</TD>
      <TD CLASS=TABCOLOR2>Sample Logic Audio environment for V4 and higher.</TD>
    </TR>

  </TABLE></DD>
</DL>

<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> How many Rotary Encoders should I use? </H2></DT>

  <DD><P CLASS=DESC>In priniciple 128 digital inputs are available, every button allocates one input, every rotary encoder allocates 2 inputs. The rotary encoder(s) control 128 virtual pots of a bank, regardless how many physical encoders are connected. The application is very flexible, a lot of different configurations are supported, so don't hesitate to take a look into the main.asm file in order to get an impression about the possibilities.<BR>Here just three examples:</P>
    <UL CLASS=CL>
      <LI>A common MIDIbox64E, based on the historical MIDIbox16E design (see picture above) requires 40 DINs: 8 for the buttons, and 32 for the 16 rotary encoders. In the meantime I'm using two DINX4 modules for 32 buttons and 16 rotary encoders, see also <A HREF="mbhp/mbhp_midibox64e.gif">this diagram</A>.<BR>With 16 rotary encoders you will have 8 pages * 16 entries to control the 128 virtual pots - multiplied by 8 (-> 1024) when a BankStick is connected to the box :-)</LI>
      <LI>A low-cost MIDIbox64E, stuffed with one rotary encoder only, and with some buttons, requires much less inputs. Here I recomment the use of a single DINX4 module like shown in <A HREF="mbhp/mbhp_midibox64e_lc.gif">this diagram</A>, because with one encoder you possibly want to switch faster between the pages in order to select the virtual pot - and for this the additional buttons are useful which can be assigned to the appr. special functions (e.g. 16 page select buttons + vpot increment/decrement buttons).</LI>
     <LI>On a full-stuffed MIDIbox64E with 64 rotary encoders all 128 inputs are allocated by the rotary encoders like shown in <A HREF="mbhp/mbhp_midibox64e_full.gif">this diagram</A>. A later version of the application will provide 8 additional inputs at port J5 of the core module for connecting 8 buttons.</LI>
    </UL>
    <P CLASS=DESC>Connection diagrams for buttons and rotary encoders can be found <A HREF="mbhp_din.html">here</A>.</P>
  </DD>
</DL>

<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> How many Buttons should I use? </H2></DT>

  <DD><P CLASS=DESC>At least 8 buttons for the menu navigation and for the 4 most important special functions (see <A HREF="midibox64e_tutorial.html">MIDIbox64E Tutorial</A>)</P>
  </DD>
</DL>

<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> How many LEDs should I use? </H2></DT>

  <DD><P CLASS=DESC>It has to be differentiated between the LEDs assigned to the buttons and the LEDrings assigned to the rotary encoders.</P>
   <P CLASS=DESC>LEDrings are nice-to-have, but no must. Every LEDring can consist of up to 16 LEDs, the appr. pattern can be defined with the vmidibox editor or with the mk_syx.pl script. I'm using 11 LEDs for every LEDring, and they are connected to the DOUT module like shown in <A HREF="mbhp/mbhp_doutx4_ledrings.pdf">this diagram</A>.</P>
   <P CLASS=DESC>Also the LEDs assigned to the buttons are nice-to-have, but no must. They can either indicate the status of the button (especially usefull if the button is in toggle mode), or they can be controlled via MIDI (-> native MIDI remote support). See also <A HREF="mbhp/mbhp_doutx4_32leds.pdf">this schematic</A>.</P>
  </DD>
</DL>

<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Availability of Rotary Encoders </H2></DT>

  <DD><P CLASS=DESC><B>Hint:</B> rotary encoders which are not mechanically detented (in German: <I>"ohne mechanische Rasterung"</I>), should be preferred for MIDIbox64e, otherwise the quadroubled resolution feature of the firmware will not work correctly and you have to life with the rough resolution of a common encoder handler. So called "vertical types" are useful for mounting. There are also encoders available with built-in switch (button), which could be connected to some free DIN inputs.<BR>
A list of rotary encoders can be found in the MIDIbox Wiki at <A HREF="http://wiki.midibox.org" TARGET="_blank">wiki.midibox.org  ->  WhereToOrder</A>.</P>
  </DD>
</DL>

<A NAME="Configuration"></A>
<DL>
   <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Configuration </H2></DT>
   <DD>
<P CLASS=DESC>If your MIDIbox is stuffed with a display, most parameters can be configured directly on the box. The integrated MIDI-Learn function helps you to assign MIDI events to the pots and buttons fast & easy. Optionally you can use the <A HREF="midibox/mk_syx.zip">mk_syx</A> script to convert a .ini textfile to a .syx binary SysEx dump file, which can be uploaded via MIDI. The script has been written in perl and runs under Windows, Macintosh, Be-OS, Linux, ...<BR>
<A HREF="mailto:serge@programmeert.com">Serge</A> developed a Windows GUI which is available under <A HREF="http://miostools.midibox.org">miostools.midibox.org</A>.<BR>Here are some snapshots:<BR>
<CENTER><IMG SRC="howto_tools/vmb64e_1.gif" width=578 height=455></CENTER>
<CENTER><IMG SRC="howto_tools/vmb64e_2.gif" width=578 height=455></CENTER>
<CENTER><IMG SRC="howto_tools/vmb64e_3.gif" width=578 height=455></CENTER>
<CENTER><IMG SRC="howto_tools/vmb64e_4.gif" width=578 height=455></CENTER>
   </DD>
</DL>


<DL>
  <DT><H2> <IMG SRC="images/bullet.gif" ALT=""> Progress </H2></DT>
</DL>
<PRE>
   || Implemented:
   ||
  0%|   o 128 virtual pots which can be controlled with up to 
   ||     64 rotary encoders
   ||   o Rotary Encoder Handler with interpolator (quadroubled resolution)
   ||     Example: a STEC16B normaly sends 24 pulses per revolution, but
   ||     the MIOS driver reacts on every falling and rising edge, this
   ||     results to 96 steps per revolution!
   ||   o up to 64 buttons, 64 LEDs (like MIDIbox64)
   ||   o independent selection of parameters (1 of 128) on-the-fly
   ||   o BankStick support (+4*8=32 banks with every BankStick)
   ||   o support for 2*16 display
   ||   o support for (optional) LED-Rings with up to 16*16 LEDs
   ||   o 4 customizable LED-Ring patterns in every bank
   ||   o Menu with 2 cursor and 1 exec button
   ||   o Different Display Modes
   ||   o Named Events (requires BankStick)
   ||   o Snapshot Button with Save/Recall behaviour
   ||   o MIDI Learn Mode for every encoder
   ||   o MIDI Learn for Single encoder, automatic row channel, 
   ||     automatic row add
   ||   o Meta Events allow you to define SysEx strings and more
   ||   o MIDI Merger
   ||   o Exchange setups via SysEx
   ||   o min/max values for encoders
   ||   o Sending absolute values: xx xx [from min to max]
   ||   o Sending relative events: xx xx 40 +/- speed
   ||   o Sending relative events: xx xx 00 +/- speed
   ||   o Sending relative events: xx xx 40 +/- 1
   ||   o Sending relative events: xx xx 00 +/- 1
   ||   o Sending relative CC events: CC Inc/Dec xx
   ||   o Progressive Mode for Encoders (faster turns: higher inc/dec)
   ||   o "Fast" Button to enable the progressive mode
   ||   o "Slow" Button
   ||   o different button behaviour like on MIDIbox Plus
   ||   o optional MIDI event filter for the merger
   ||
   || Additional features provided by the MIOS based version:
   ||   o runs on a PIC18F452 under MIOS
   ||   o On-Screen editing of MIDI Events
   ||   o On-Screen editing of pot lables
   ||   o On-Screen editing of banknames
   ||   o up to 8 BankSticks can be connected (-> up to 64 banks)
   ||   o Remote Control via SysEx
   ||   o banks can be copied
   ||   o an optional global MIDI channel
   ||   o Morphing function which allows to fade smoothly between two pot scenes
   ||   o optionally up to 64 pots or up to 8 motorfaders can be connected
   ||     in addition to the rotary encoders
   ||
100%|
   ||
   \/
</PRE>


FOOTER