English Version French Version Spanish Version

Lista de Cambios MIDIbox64 

Última Versión: V2.4 @ 2005-05-29


  • V2.4
    • se ha implementado un modo de parche que se puede selecionar como opción alternativa al modo de "banco" común en main.asm
      En el modo Parche, cada BankStick contiene no sólo la configuración de un banco (significa: configuración de pote/botón/etiqueta), sino que además tiene 128 pantallazos! Esto te permite preparar una configuración para tu enlace MIDI a la vez que almacenar/rellamar/modificar hasta 128 escenas.
    • hay dos nuevos comandos SysEx para almacenar/restaurar parches
    • Se pueden cambiar parches y bancos desde el exterior con un comando de "Program Change" (Cambio de Programa). Los canales se especifican en el archivo main.asm. Por defecto: Canal 16 - Bancos; Canal 15: Parches
    • algunos arreglos de defectos menores y alguna que ottra mejora

  • V2.3
    • se han implementado tres nuevos comandos SysEx para simplificar la carga y descarga de los datos de configuración. Es un formato orientado a bloques, por lo que ya no requiere retrasos entre cada byte. Esto significa que ahora también se puede hacer la carga de datos sin tener que usar MIDI-Ox ya que la herramienta SysEx permite insertar retrasos entre los bloques ("retraso después de F7") - que debería ser de 750 mS - es el mismo requisito que el necesario para las cargas de MIOS.
      Puedes encontrar más información aquí.
    • El script mk_syx.pl se ha actualizado para soportar el nuevo formato de carga. Puedes descargarlo aquí.
    • La extensión AMUX ahora funciona, pero aún no está documentada

  • V2.2
    • Cambios entre bancos significativamente más rápidos
    • soporte experimental para hasta 8 AOUTs (que se pueden controlar vía MIDI y desde los potes, asignados a las 8 primeras posiciones de pote)
    • extensión AMUX  (64 salidas analógicas usando 8 chips de muestra y hold , cada uno con 8 salidas) en preparación, pero aún no implementada 
    • soporte experimental para disparadores de percusión- el controlador necesita algunas mejoras !
    • ahora se muestra el código MTC o alternativamente el  reloj MIDI + BPM en una nueva página de pantalla.
    • soporte para ruedas de datos (rotary encoder) como reemplazo para el botón izquierdo/derecho. Para habilitarlo, establece DEFAULT_ENC_DATAWHEEL en 0 - conecta el rotary encoder a los pines 4 y 5 del primer registro shift DIN, conecta el botón exec al pin 7 y el botón de pantallazo al pin 6
    • Matthias Schreiber ha integrado un Modo de Página para las MIDIBoxes con solo 16 potes. Usando los botones SF puedes cambiar entre los potes 1-16; 17-32; 33-48; 49-64 en el mismo banco. Así se pueden usar 64 eventos de pote por cada banco en lugar de solo 16.
      Se añaden los siguientes botones SF para el Modo-Página:
      FF 05 10 | Decrecer banco del BankStick sin sobrecarga
      FF 05 11 | Decrecer banco del BankStick con sobrecarga
    • FF 05 12 | Incrementa banco del BankStick sin sobrecarga
      FF 05 13 | Incrementa banco del BankStick con sobrecarga
      Ejemplo de base para panel:: aquí
    • PayC ha añadido algunas mejoras especiales para pantallas de 4x16
    • archivos separados para LCDs de 2x16, 2x20, 4x16 y 4x20 para simplificar futuras mejoras para diferentes tamaños de pantalla . Hay que seleccionar el tamaño de pantalla en el archivo main.asm (DEFAULT_LCD_SIZE)

  • V2.1
    • Douglas Pederick ha integrado un cuarto modo de pantalla especial para pantallas de 4x20
    • La pantalla LCD ahora se puede centrar para diferentes modelos, las posiciones de cursor deben ser configuradas desde el archivo main.asm (busca la línea DEFAULT_YOFFSET_LINE*)
    • MB64_POT_ScaleValue fijado (la dirección contraria no funcionaba)
    • la configuración DEFAULT_BANKSTICK_CS del archivo main.asm te permite seleccionar para tu aplicación una EEPROM dedicada o deshabilitar por completo el soporte BankStick. Esta característica es especialmente útil cuando se usan diferentes aplicaciones con la MIDIbox
    • los canales MIDI predefinidos almacenados en el banco ahora pueden sobre-escribirse mediante un canal global

  • V2.0 - versión basada en MIOS 
    • se ha portado a MIOS el firmware completo de la MIDIbox64 y funciona ahora en un PIC18F452. Para nuevos proyectos es mejor cambiar al PIC18F452 por su mayor flexibilidad, pero también tiene sentido la actualización de una MIDIbox ya existente a  MIOS para aprovechar las nuevas características - solo hay que cambiar el cristal y el procesador.
    • V2.0 también es compatible con el firmware del PIC16F, solo que el filtro jitter dinámico no estará disponible.(no necesario ya que MIOS funciona internamente con una resolución de 10bit) y la etiqueta de LCD de 4 líneas se puede reemplazar por la posibilidad de configuración libre de la pantalla (ver cs_m_display.inc), para que se pueda adaptar a este firmware cualquier pantalla soportada por MIOS.
    • Recuerda que el editor vmidibox64 de Serge  (que se ha desarrollado para la versión PIC16F ) puede también interactuar con la nueva implementación. Hay que establecer la tasa de transferencia en un valor menor de 150, si no,  la descarga no se recibirá completamente. Esto no es un error de MIOS; sino un problema relativo al PIC18F que solo puede guardar 64 bytes de una vez en la memoria flash interna (el PIC16F guarda 2 bytes (14 bits) de una vez).
    • Al margen de la función de Aprendizaje MIDI, los eventos MIDI ahora se pueden editar directamente
    • Soporte para la edición en-pantalla de etiquetas de potes y nombres de bancos.
    • el firmware puede manejar ahora hasta 8 BankSticks  (-> hasta 128 bancos)
    • se pueden copiar los bancos
    • Se ha añadido una función morphing que permite cambiar suavemente entre dos escenas de pote: la posición actual de los potes y las posiciones de pote guardadas en un pantallazo (en el banco)
    • Ahora se pueden accionar los eventos de pote vía Control Remoto: F0 00 00 7E 43 [d]9 00 [pote] [valor] F7 ([d] = número de dispositivo (0-7), [pote] = número de pote (0-63), [valor] = valor de pote (0-127)
    • Ahora se pueden accionar eventos de botón (también los botones de menú) vía Control Remoto: F0 00 00 7E 43 [d]9 01 [botón] [valor] F7 ([d] = número de dispositivo (0-7), [button] = número de botón (0-63), [valor] = valor del botón (0=presionado, 1=no presionado)
    • Ahora se pueden accionar Funciones Especiales vía Control Remoto: F0 00 00 7E 43 [d]9 02 [sfbn] [sfbp] [valor] F7 ([d] = número de dispositivo (0-7), [sfbn] = número de función especial (0-127), [sfbp] = parámetro de función especial (0-127), [valor] = valor de botón (0=presionado, 1= no presionado)
    • Se ha integrado una función MIDI Rx/Tx LED implementada por software
    • se ha actualizado el Tutorial de MIDIbox64

  • V1.00
    • Se ha eliminado la parte del secuenciador y está disponible ahora como aplicación dedicada y mejorada (lee este artículo)
    • También se ha separado la parte motorfader, ver descripción de módulo MF
    • MIDIbox64 ahora soporta hasta 64 potes, 64 botones, 64 LEDs
    • Ahora se puede seleccionar una ID de dispositivo de 0 a 7  en el menú SysEx; esto permite direccionar MIDIboxes en una larga cadena MIDI vía SysEx.(cada caja debe volverse su propia ID.)
    • los que no usen LCD podrán seleccionar la ID de dispositivo y la opción MIDIbox-to-COM directamemnte en el archivo .hex antes de grabar el PIC. Puedes encontrar las instrucciones de parche en el README.txt incluído en el archivo del firmware
    • la nueva opción "deshabilitar botones de navegación" se puede activar si quieres usar los 4 `primeros botones como accionadores MIDI comunes
    • los botones de navegación se deshabilitan automáticamente cuando no hay LCD conectada
    • 5 nuevos modos de pantalla disponibles
    • Se pueden nombrar los bancos
    • se muestra el MIDI time code (MTC) en la Página #5
    • muchos arreglos menores y mejoras varias
    • Nuevo script mk_syx.zip y Editor MIDIbox64

  • V0.034
    • la función de transporte del handler de Teclado funciona ahora de la misma forma que en los sintetizadores monofónicos (o en otras palabras: como el módulo SID MIDIbox SID en modo mono ;-)
    • Nuevo comando SysEx  "Switch Bank" que permite cambiar un banco vía MIDI (ver también implementación sysex midibox64.txt). Se usará en una de las próximas versiones del editor de Serge para acceder a los bancos de manera remota. La característica también puede ser útil en conjunto con software de secuenciado como Logic Audio para cambiar a un banco dependiendo de la canción, Ventana, PlugIn VST seleccionada (tanto como el software soporta este tipo de automatización).
    • Nuevo comando SysEx "Partial Write" que permite escribir rápidamente en localizaciones particulares de la memoria (ver también midibox64_sysex_implementation.txt). es una característica especial para el editor.
    • Optimización para LEDs controlables por MIDI para asegurar que no se pierdan datos MIDI cuando la MIDIbox recibe un flujo MIDI continuo. Restricción: para los LEDs sólo se tendrán en cuenta las asignaciones de eventos MIDI que están incluídos en el banco interno.
    • Se han cambiado las direcciones de las funciones especiales para incrementar o decrecer el banco para que coincidan con el formato MIDIbox16E . Nota: puedes encontrar un archivo completo de configuración para el Editor de Serge aquí.
    • optimizaciones menores y correcciones de errores llevadas a cabo en las últimas semanas...

  • V0.033
    • Creado firmware adicional para la Plataforma de Hardware MIDIbox con nuevo esquema de direccionamiento de potes que simplifica el cableado.
    • >Mecanismo más rápido de repetición de botón para los botones de menú.

  • V0.032
    • Se han implementado algunas funciones Especiales que se pueden asignar a los botones. Estas funciones permiten personalizar la caja para tus propios requisitos:
      • Evento MIDI  o
      • Evento META o
      • Atajo a un submenú o
      • Establecer/Incrementar/Decrecer banco de BankStick  (opcionalmente con guardar/restaurar automático) o
      • Almacenar/Restaurar banco actual o
      • Secuenciador: Mute/Unmute columna de pote o
      • Secuenciador: Mute/Unmute pista completa o
      • Secuenciador: Establecer/Incrementar/Decrecer Longitud de Bucle
      Puedes encontrar una lista completa y algunas instrucciones para la personalización en este documento: midibox64_sfb_table.txt
      El script mk_syx viene con algunos ejemplos especiales para SFB (midibox64_sfb.ini) y el Secuenciador (midibox64_seq*.ini).
      En el futuro habrá disponibles más funciones especiales.
    • El modo de Pantalla #4 (Estátus de Secuenciador) ahora muestra información adicional: banco actual, posición del loop, longitud del loop, pistas enmudecidas (en Mute), columnas enmudecidas. En una pantalla de 4 líneas también verás toda la información del modo de pantalla #3 (una línea y el controlador/nota modificado)
    • Des-rebote de botón ahora independiente del número de potes - notarás una respuesta más rápida.
    • Se ha corregido un error en la rutina de recepción SysEx que impedía una descarga rápida y segura desde el  Editor de Serge y el Gestor de Descargas. Ahora las tasas de descarga posibles son: 150 bytes/s (banco interno), 200 bytes/s (BankStick)
    • Muchas otras correcciones menores y mejoras

  • V0.031
      Nota: la mayoría de las funciones nuevas requieren la actualización del script mk_syx
    • El comportamiento de la MIDIbox en Modo Snap ha cambiado. Antes del cambio era necesario mover el pote a la posición exacta antes de que se enviasen los eventos MIDI. Ahora los valores se envían inmediatamente cuando el pote pasa la posición.
    • nuevo interruptor : AUTO_SNAPSHOT. Si está activado, y el banco se cambia vía Cambio de Programa o en el submenú del Banco, la MIDIbox restaurará y enviará automáticamente las últimas configuraciones guardadas del nuevo banco.
    • nuevo interruptor para la extensión del motor: MF_TOUCH_DETECTION. Si está habilitado, el controlador del motor y el handler de evento MIDI OUT  notarán cuando se mueva manualmente un fader y reaccionará en consecuencia.: Si la MIDIbox recibe un nuevo valor para un fader, los movimientos manuales del fader no se enviarán por más o menos 1s. Si la entrada del sensor táctil es de 0V, o se mueve manualmente un motorfader, todos los valores entrantes para el fader que se está moviendo se ignorarán por alrededor de 1s.
      NOTA: Tienes que conectar al menos una resistencia Pull-up en el pin RD4 (#27) del PIC, si no el firmware reaccionará de forma aleatoria. Puedes encontrar más información aquí: midibox64_mf_touchsensor.pdf
    • Ahora disponibles 6 modos diferentes de secuenciador.: Independiente (el viejo modo), Combinado, Transporte, Transporte+Hold, Arpegiador, Arpegiador+Hold. Más detalles en el Tutorial MIDIbox64, Canciones de Muestra aquí

  • V0.030
    • Implementado con dos nuevas configuraciones para el controlador del motor: Velocidad de Motorfader (0-127) y Modo (Preciso o rápido). Para más detalle, ver las entradas apropiadas en el archivo midibox64.ini. Con estas configuraciones podrás optimizar el comportamiento del controlador para los motorfaders que estés usando.
    • nuevo sub-menú para motorfader que permite reproducir "en línea" diferentes configuraciones de modo y velocidad .
    • La configuración de CONNECTED_POTS en el archivo midibox64.ini te permite agilizar tu caja si hay conectados menos de 64 potes. Esta opción gustará especialmente a los usuarios de motorfaders porque la caja reaccionará más rápidamente a los cambios de posición. El resto de usuarios no notarán ningún gran cambio por la característica de prioridades dinámicas, que también asegura bajas latencias.
    • SNAPSHOT_AT_POWERON: si está habilitado, la MIDIbox64 enviará la configuración del pote actual cuando éste esté activado.
    • ahora tienes que pulsar el botón de pantallazo en el submenú del BankStick durante 3 segundos o más para evitar formatos de BankStick no deseados.

  • V0.029
    • Los usuarios que tengan un bankstick podrán nombrar los efectos para cada pote en cada banco.- de esta forma la pantalla se vuelve algo más "ergonómica". Además, se pueden mostrar tanto los valores hexadecimales como los decimales. Hay que definir las cadenas en el archivo midibox64.ini. Ver el Tutorial MIDIbox64 para ver algunos ejemplos.
    • nuevo interruptor:: SEND_PC_ON_BANKCHANGE. Si está habilitado, la MIDIbox envía un Evento de Cambio de Programa en cada cambio de banco. Muy útil si quieres alternar automáticamente entre la configuración de tu aplicación MIDI y el cambio de banco (soportado por Logic, Cubase, MIDI-OX Mapper)
    • nuevo interruptor: RECEIVE_PC_FOR_BANKCHANGE. Si está activado, el MIDIbox cambia el banco cuando ha recibido un Cambio de Programa en el Canal F MIDI (CF)
    • nuevo interruptor: MIDI_THROUGH_FILTER. debe estar activado para prevenir bucles retroalimentados MIDI. Todos los eventos MIDI que estén asignados a los potes y botones no serán redirigidos por el MIDI merger.

  • V0.028
      ahora hace falta una resistencia PullUp de 1k en el Pin RA4 del PIC. Actualmente la PCB no trae esta conexión de resistencias, así que tendrás que montarla con dos cables! Mira el Esquema de Core MIDIbox64
    • con esta versión la MIDIbox64 es el primer controlador MIDI a nivel mundial con un dispositivo de almacenamiento intercambiable, extraíble y de conexión rápida en caliente: el BankStick. Si en los próximos años encuentras controladores comerciales con esta misma característica, ya sabes de dónde vino la idea ;-)
      Cada BankStick puede guardar hasta 16 configuraciones diferentes. Desde que se usa un standard IIC EEPROM de 32k, estas cositas son realmente baratas  (alrededor de 5 EUR). Así que coge un stick para Reaktor, otro para Logic (o Cubase/Cakewalk/Sonar/Ableton ,por supuesto), algunos para tus sintetizadores, etc... :). Puedes encontrar más información sobre el BankStick en el Tutorial MIDIbox64.
    • Se ha vuelto a cambiar la estructura de descarga SysEx. Todos los parámetros son ahora configurables. Échale un vistazo al script mk_syx  aquí.
    • el modo MIDIbox-to-COM se puede configurar desde el menú MIDI Merger. No hace falta ningún firmware especial para esta opción. Más información  aquí.
    • por último pero no menos importante: el controlador de motor se ha mejorado, los faders se mueven mucho más suavemente.

  • V0.027
    • Se ha implementado un "Filtro MIDI Through" para la Extensión de Motor. Este filtro tiene que estar activado en el archivo midibox64.ini cuando usas motorfaders con Emagic Logic Audio para evitar bucles retroalimentados. Posiblemente este filtro también sea útil para otras aplicaciones MIDI.
    • Se puede habilitar un "Filtro Jitter Dinámico" en el archivo midibox64.ini . Eliminará valores de pote inestables: los cambios lentos de pote sólo serán procesados cuando se mantengan estables un mínimo de 20 ms (sin el filtro: ca. 500 us), los cambios rápidos de pote se procesarán de inmediato(500 us) si la diferencia de valor CC es  >= 2.
      Normalmente este filtro no es necesario, pero si notas descoordinaciones en las entradas analógicas y no encuentras una solución con hardware, prueba a usar la solución de software.
    • soporte para +16 LEDs adicionales (ver midibox64_sr.pdf).

  • V0.026
    • soporte para extensión de motor opcional (ver midibox64_mf.pdf). Puedes encontrar más información sobre esta extensión que posibilita manejar hasta 64 Motorfaders /Motor-potes mirando aquí.
      Se pueden conectar hasta 64 dispositivos a motor, hay que establecer el número en el archivo .ini (ver mk_syx.zip).
    • se ha mejorado el controlador de LED : se puede apagar/encender cada LED vía MIDI con el mismo evento que se activa con el botón apropiado..

  • V0.025
    • soporte para extensión opcional de +16 Botones (ver midibox64_sr.pdf). Son plenamente configurables vía Aprendizaje MIDI o mediante el (nuevo) script mk_syx.zip .
    • soporte para pantallas LCD de 4x16. Con pantallas LCD de ese tamaño, serán visibles de una vez las 64 barras de pote (Display Mode 1), los últimos dos eventos MIDI se mostrarán juntos con la fila apropiada de pote (Display Mode 3), el estado del secuenciador se muestra junto con el último pote movido y  la fila apropiada de pote (Display Mode 5). Todos los demás modos de pantalla solo son útiles para pantallas LCD de  2x16.

  • V0.024
    • Se ha revisado la rutina de conversión de entrada analógica para eliminar potenciales problemas de inestabilidad. Hasta ahora, la MIDIbox trabaja internamente con valores de 8 bits.

  • V0.023
    • Se ha mejorado el handler de pote para alcanzar mayor flexibilidad: los valores mínimos y máximos son definibles para todos los potes. Los valores CC se escalan automáticamente en el rango de movimiento del pote dependiendo de tu configuración. Esto significa que si defines un rango desde  $30 hasta $4F, el valor $30 se enviará cuando el pote esté en el lado izquierdo y el valor CC se incremente lentamente hacia $4F hasta que el pote alcance el final del lado derecho.
    • La estructura de bloques SysEx  se ha mejorado con entradas mínimas y máximas. Mira el nuevo script mk_syx.pl en mk_syx.zip.
    • Se ha implementado un comportamiento de histéresis para el modo Snap. Con un valor de histéresis de 0, la caja se comporta como antes: el pote "esnapea" hasta que alcanza exactamente la posición CC recibida. Con una histéresis más alta, el pote esnapea entre el bucle de histéresis que depende de la posición del pote y la dirección de movimiento.

  • V0.022
      Algunas pequeñas pero útiles mejoras
    • Los Meta Eventos te permiten enviar datos MIDI totalmente personalizables (programables) en cada movimiento de pote o botón. Con esta nuva característica podrás enviar cadenas SysEx o más de un evento de nota con un botón o funciones matemáticas con los valores de poteo.. bueno, lo que quieras.
      Desventaja: los Meta Eventos no se pueden definir vía Aprendizaje MIDI, deben ser incrustados directamente en el firmware. Todo lo que necesitas es el código fuente del firmware (disponible sólo si lo pides por mail) y el ambiente gratuíto MPLAB de Microchip. La función de Meta Evento está aislada de los módulos core principales y será reutilizable en próximas versiones. Algunos ejemplos muetran los casos más comunes.
      Ventaja: MIDIbox64 es el único controlador MIDI gratuíto disponible de programación libre y sin restricciones.;-)
    • Se puede definir el número de controlador de LED (de forma Bn 77 vv) vía Descarga SysEx
    • Como alternativa a la función de Aprendizaje MIDI, la MIDIbox se puede configurar vía descarga MIDI. El nuevo script mk_syx.pl convierte un archivo .ini basado en texto en un archivo de Descarga MIDI .syx. Puedes encontrarlo en http://www.uCApps.de/midibox/mk_syx.zip.

  • V0.021
    • El Merger (fusor) ya no se apaga automáticamenteen Modo Snap. Debe hacerse a mano para evitar bucles retroalimentados si tu software repite cada evento MIDI entrante. Por otra parte, un merger MIDI activado te permite conectar en cascada MIDIboxes en modo Snap
    • Aprendizaje MIDI para los cuatro botones multipropósito, raramente usados. Son estupendos para controlar un secuenciador como Cubase (remoto MIDI)
    • se pueden controlar los 16 LEDs directamente vía MIDI. Para apagar un LED, envía Bn 77 00 (n es el canal/número de LED, 77 hex = 119 decimal). Para encender un LED envía Bn 77 7F.

  • V0.020
      Ahora disponibles todas las características de MIDIbox Plus (y más) 
    • Adaptado comportamiento de pote Snap/Relative/"Parallax" 
    • Aprendizaje MIDI mejorado:Puedes asignar a potes y botones todos los tipos de evento MIDI (Note On/Off, Controller, Aftertouch, PitchBend, Program Change, ...).
    • Se puede asignar un comportamiento diferente para cada botón: On/Off Value, On Value, Toggle Value.
    • Implementados dos nuevos modos de pantalla: "Show last sent MIDI Event and current Pot Row"(Mostrar último evento MIDI enviado y fila actual del pote) y "Sequencer Display" (Mostrar Secuenciador)
    • Cambio en el comportamiento del eventos MIDI en pantalla: si un evento de pote ya se ha mostrado, no cambia su posición cuando se mueve otro pote
    • El botón simple de pantallazo se ha mejorado, convirtiéndolo en un botón de Guardar/Rellamar . Presiona el botón durante un segundo para guardar la configuración de ese pote, presiónalo rápidamente para rellamar las configuraciones.
    • Funcionalidad especial de guardar/rellamar para los Modos Snap/Relative/Parallax Mode.
    • Se puede hacer una descarga SysEx de la configuración completa del banco, para después transferirla a la MIDIbox64. Recuerda que las transferencias SysEx a la MIDIbox debe tener un retraso de 10 ms para cada byte.
    • En modo secuenciador, los botones se usan como "Botones Mute". Esto te permite silenciar des-silenciar una columna completa de pote muy rápido ( es guay para actuaciones en vivo)

  • V0.011
      La versión '874 se ha congelado y no se mejorará en el futuro.
    • Arreglo para el error de la característica de "Dynamic Pot Priority" (prioridad dinámica de pote).

  • V0.010
      Primera versión beta para PIC16F874 y PIC16F877.
      Se han implementado las siguientes características:
    • Control sobre 64 Potes y 24 Botones
    • Modo de Aprendizaje MIDI para cada pote/botón
    • Diferentes pantallas para potes y botones
    • Menú con 2 cursores y un botón de ejecutar.
    • Control de luz trasera de LCD 
    • Tecla de Pantallazo
    • Aprendizaje MIDI para único pote/botón, Canal automático de fila, adición automática de filas
    • Nota/Controllador Secuenciador
    • Envía MIDI Sync (reloj MIDI Master)
    • Recibe MIDI Sync (reloj MIDI Slave)
    • Establece BPM
    • Establece Longitud de nota
    • Los botones activan Notas o controladores
    • Los pots controlan Notas (Velocidad) o Controlador (Valor)
    • Controla los LEDs
    • Diferentes modos de secuenciador
    • filas de potes concatenadas, diferentes longitudes de bucle (2-64 potes)
    • Prioridades Dinámicas para los potes. El resultado es un tiempo de latencia de menos de 1 ms :-)


Last update: 2015-09-24

Copyright © 1998-2015, Thorsten Klose. All rights reserved.