Jump to content

TK.

Administrators
  • Posts

    15,248
  • Joined

Everything posted by TK.

  1. Link to additional answer: http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=gallery;action=display;num=1079994325;start=15#15 your crosspostings are producing a lot of effort! :-( Best Regards, Thorsten.
  2. See also http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=concepts;action=display;num=1086450431 Addendum: MIDIbox LC is an exception, because the host application (Logic/Cubase/etc...) requires to connect each core to a seperate MIDI IO! Note that this limitation is only valid for the Logic Control or Mackie Control emulation --- with a common MIDIbox you can chain the modules ("MIDIbox Link") Best Regards, Thorsten.
  3. Each core has it's own MIDI IO port. You can connect them in a chain, or seperately to your PC. Most people prefer the chain method (-> see http://www.ucapps.de/midibox_link.html) so that only one MIDI IO is allocated for all boxes. Latency is absolutely no issue! (-> see http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=mios_toy;action=display;num=1077232194). So, you are the first who don't want to chain the modules - thats ok ;-) Best Regards, Thorsten.
  4. Hallo, stimmt nicht ganz, denn die analogen eingaenge zaehlen extra, MIOS verwaltet also 128 digitale Eingaenge (ich habe das in obiger Liste verbessert) und zusaetzlich auch noch 64 analoge Eingaenge - um ganz genau zu sein ;-) Du benoetigst nur ein AINX4 Modul (jedes AINX4 bietet 32 analoge Eingaenge). nein, die benoetigst Du fuer simplen controller ohne Banking/Paging usw. nicht. Gruss, Thorsten.
  5. Hallo, MIDI-Ox ist schonmal falsch konfiguriert, beachte auch diesen Kringel: Diese Option ist bei Dir wahrscheinlich aktiviert, deshalb steht der SBLive Output Port in der Port Map --- diesen Port entfernen, ansonsten hast Du eine klassische Rueckkoppel-Schleife. Ansonsten wuerde ich empfehlen, die Troubleshooting Guide Schritt fuer Schritt durchzuarbeiten. Sollte der Upload danach immer noch nicht funktionieren, koenntest Du zumindest beschreiben, welche Tests geklappt haben, und welche nicht: http://www.ucapps.de/howto_debug_midi.html Gruss, Thorsten.
  6. After a HD crash my windows installation isn't running yet, so maybe somebody else could help? However, reassembling the code isn't that difficult, and you have to do this anyhow with every new release. So, it makes sense to get some practice ;-) Best Regards, Thorsten.
  7. Hi, are these questions or conclusions? ;-) Of course, if you haven't programmed the bootloader into the slaves, it's time to do it now. And please don't forget to set the ID of the slaves to 1, 2 and 3! J10 has 4 connections if the ground is already connected from the power supply unit to the SID module --- compare the wiring with http://www.ucapps.de/mbhp/mbhp_4xsid_c64_psu_optimized.pdf Best Regards, Thorsten.
  8. Do you have a 2x16 LCD? In this case it's required to set CS_MENU_DISPLAYED_ITEMS to 4 (-> see main.asm or the appr. setup_*.asm file you've uploaded) Thereafter follow the instructions under http://www.ucapps.de/howto_tools_mpasm.html Best Regards, Thorsten.
  9. Hi Twin-X, there is a new description which describes the required steps: http://www.ucapps.de/midibox_sid_csB.html (search for "Preparation of PIC18F cores") Once this has been done, you can change the MIDIchannel of each SID (seperately of course...) in the CFG menu Best Regards, Thorsten.
  10. Hallo Ferdi, am besten spielst Du mal die MIDIO128 applikation auf, die ist defaultmaessig so konfiguriert, dass jeder einzelne DIN pin eine Note triggert. Auf diese Weise kannst Du schonmal feststellen, ob die Verbindungen physikalisch vorhanden sind, und es sich nicht um ein Konfigurationsproblem in der SID Applikation handelt (bei einem 2x16 Display sollte CS_MENU_DISPLAYED_ITEMS bspw. auf den Wert 4 eingestellt werden). Falls keine Noten getriggert werden, miss die Spannung direkt an den Eingaengen - sie sollte 0V betragen wenn der Button gedrueckt ist, und 5V wenn der Button nicht gedrueckt ist. Falls das nicht der Fall ist, sind die Pull Ups wahrscheinlich nicht angeschlossen (Bruecken vergessen?) Gruss, Thorsten.
  11. Hi Tim, just click on the menu button, move the rotary encoder so that the page scrolls to the SAV menu and click on the button below of this menu entry. Then you can select the target patch number - press "Do!" to save the patch Best Regards, Thorsten.
  12. jep MIOS kann bis zu 128 digitale Eingaenge durchscannen. MIOS kann bis zu 64 Endlosregler verwalten MB64E kann aus historischen Gruenden (Datenformat, Kompatibilitaet, siehe oben) nur bis zu 64 Taster verwalten, aber mit ein bisschen Code waere auch noch mehr drin - die zusaetzlichen Taster liessen sich jedoch nicht mehr bequem mit dem Editor oder am Display konfigurieren an welchen Pins die Encoder, und an welchen die Taster angeschlossen sind, legt man im Setup File (setup_*.asm) fest. Wegen der Limitierung auf 128 Pins ist es bspw. nicht moeglich, gleichzeitig 64 Encoder und 64 Buttons anzuschliessen - das sollte aus obiger Liste hervorgehen. Gruss, Thorsten.
  13. Hi, it doesn't really matter. Maybe it's even better to solder it between SID 2 and 3... Best Regards, Thorsten.
  14. Hi Meeshka, I've no oversight about the current software projects for MIDI, so this is something which has to be driven by the community. Best Regards, Thorsten.
  15. Hi Michaël, A very flexible function which allows to tranpose octaves and semitones seperately can be found in the sequencer application (seq_event.inc, SEQ_EVNT_Transpose) -- but it's very compact and maybe too complicated to understand the basics. Normaly, all what you have to do is to add the transpose value (which could also be negative) to the second byte of a Note event. And you need to write a short button handler which allows you to change this transpose value. And maybe also a routine which displays the value on screen. Best Regards, Thorsten.
  16. Hi Per, the implementation of the debouncing function in the PIC16F firmware is far from perfection. It uses only one "time-out counter" which is started every time when any button has been triggered. Once the counter is running, all button inputs are not captured for the specified debouncing time. This means: this "poor" debouncing function is only useful if (keyscan) latency doesn't matter, but it's not qualified for the MIDIfication of a organ keyboard where more than one key could be activated at the same time. The debouncing function has been significantly improved in MIOS. Here every input has it's own time-out counter, means: every digital input is handled seperately. Also the performance of the MIDI merger has been improved - the MIDI stream is now buffered with 64 bytes at the input side and 48 bytes at the output side (PIC16F: 16 bytes input, 0 bytes output) --- normaly an external merger is not required. So, if you notice timing problems, I would recomment a PIC18F before building a merger I was in Stockholm last year and was very impressed about the clear sky, fresh air and hot sun! And about the fact that the sun (nearly) never goes down during midsummer :) Best Regards, Thorsten.
  17. Hi, just one tip: the easiest way to send 14bit values are Pitch Bender Events. But only 16 of them are available. Second way: use NRPN events - at least 16384 are available per channel. Third way: use SysEx - an endless number of parameters is available, but the data format is very dedicated to the MIDI gear. These are the possibilities of MIDI. But are these the possibilities of the host software? Mostly not! So, I really recomment you to read the Cubase and FM7 docs - if you cannot find anything about the MIDI functions described above, you definitely won't be able to control a FM7 parameter with more than 7 bit You will make your experiences... Currently there is only one controller at the market which provides 12bit resolution, and thats Mackie Control which is stuffed with high quality Penny & Giles faders with a travel of 100mm. So far I remember one faders costs about 25 EUR. Pots normaly have a much shorter "travel". http://www.maxim-ic.com Just use a PIC18F452 with MIOS as operating system, so that you don't have to reinvent the wheel. In the MIOS download section you will find an example how to access a DAC with 12 bit resolution via SPI (aout example). Accessing an ADC is very simmilar. Another hint: for such an application the ADC limits the performance, not the microcontroller. If you are working with external multiplexers (in order to save a lot of money), you have to wait a certain time after a new input has been selected (so called "acquisition" time) for a stable signal. If you are clever, you will handle the mux switching within a timer interrupt so that the main program can do anything else in the meantime. But this won't avoid the fact that a complete conversion will take at least 100 uS --- so, you want to scan 200 inputs, this means that you have an overall latency of ca. 20 mS. This latency can be decreased by using multiple ADCs in parallel - also no problem, so long you are willing to invest so much money for something which will possibly never work due to lag of support from the Steinberg/Native Instruments site! Best Regards, Thorsten.
  18. I'm not sure if you've already read the FAQ: http://www.ucapps.de/qa.html where you can also find a link to the MIDI specification. Everything else is FM7 specific. Microcontroller: Atmels are faster than PIC16F yes, but we are using PIC18F in the meantime ;-) However, if you want to program in C, I'm not the right person who could help you... A/D: you won't be able to sample a common pot with 14 bit resolution without a lot of jitter. Most people regognized jittering values already at a 10 bit resolution. For a really powerful control surface I would prefer rotary encoders anyhow, because of an "endless resolution" and the possibility to switch between patches and parameter groups without "jumping values" - see MIDIbox SID CS Best Regards, Thorsten.
  19. TK.

    Core-Modul

    Steckt der Chip waehrend des Messens im Sockel? (Besser erstmal ohne PIC messen) Gruss, Thorsten.
  20. TK.

    Core-Modul

    Steckt der Chip waehrend des Messens im Sockel? (Besser erstmal ohne PIC messen) Gruss, Thorsten.
  21. Hmpf - sorry, musste in letzter Zeit zu oft die Anfrage nach einer Velocity Funktion abblocken, dass ich mir die Frage gar nicht mehr richtig durchgelesen habe. Eine neue Spalte ist nicht moeglich - das Datenformat ist eingefroren, jede Aenderung zieht eine Menge Aufwand mit sich. Und das tue ich mir nicht an. Entweder man programmiert eine zweite Tabelle, oder man codiert es hart... Fuer den Anfang koenntest Du mal folgendes ausprobieren (habe es nicht getestet!): USER_DIN_NotifyToggle movlw 0x90 ; Note On, Channel 1 IFNEQ MIOS_PARAMETER1, ACCESS, rgoto USER_DIN_NotifyToggle_End movlw 0x3c ; C-2 IFNEQ MIOS_PARAMETER2, ACCESS, rgoto USER_DIN_NotifyToggle_End movf MIOS_PARAMETER3, W ; Note Off if Velocity == zero bz USER_DIN_NotifyToggle_End ;; Note On for C-2 at Channel 1, Velocity > 0 ;; save MIOS_PARAMETER1 in TMP1 movff MIOS_PARAMETER1, TMP1 ;; set the 8 pins of SR1 depending on the 3 most significant bits of velocity value swapf MIOS_PARAMETER3, W andlw 0x07 call MIOS_HLP_GetBitORMask movwf MIOS_PARAMETER1 movlw 0x01 ; second shift register call MIOS_DOUT_SRSet ;; restore MIOS_PARAMETER1 from TMP1 movff TMP1, MIOS_PARAMETER1 USER_DIN_NotifyToggle_End ;; continue at MIDIO button handler goto MIDIO_DIN_Handler falls es funktioniert, bist Du hiermit verpflichtet, einen Schaltplan sowie eine Kurzbeschreibung ueber den Mini-DAC fuer das MIDIbox Portal zu schreiben ;-) Gruss, Thorsten.
  22. TK.

    Neue Probleme

    Hallo, Weiter unten in CS_MENU_ENC_CS_Change_Menu wird noch der Cursor Offset hinzuaddiert - evtl. rufst Du die Routine vorher auf. Du koenntest in CS_MENU_EncSpeedSet (cs_menu.inc) eine aehnliche Verzweigung einbauen, die dann in diesem Menu den SpeedMode der Encoder auf MIOS_ENC_SPEED_SLOW mit pre-divider 0x03 (4) einstellt. Gruss, Thorsten.
  23. Hallo, Velocity ist bisher unerforschtes Terrain und leider auch nicht ganz so trivial, weil die Implementierung und Ansteuerparameter sehr von den verwendeten Tastern abhaengt :-/ Best Regards, Thorsten.
  24. Hallo, Du musst die MB64E so konfigurieren, dass ein Poti bspw. Note On/Off Events sendet. Entweder machst Du das direkt am Display (siehe Tutorial) oder --- falls nicht vorhanden --- mit dem mk_syx Skript. Auch Serge's Editor eignet sich hierfuer, der laeuft jedoch nur unter Windows und ist nicht ganz Up-to-Date Umprogrammieren musst Du hierfuer nichts, deshalb wird diese Loesung von vielen Leuten favorisiert. Bedenke aber, dass die Tasten am AIN nicht entprellt werden. Falls die Qualitaet der Taster also etwas schlechter ist, muessen sie doch an ein DINX4 Modul angeschlossen werden - und die Firmware muss um ca. 10 Zeilen Code ergaenzt werden. Wenn Du die Hardware erstmal aufgebaut hast, kann ich Dir auch gerne die Codezeilen verraten - jetzt macht es noch keinen Sinn, denn wer weiss, wie sehr sich der Code bis dahin aendert... 128 virtuelle pots: das heisst, dass 128 parameter-werte gleichzeitig empfangen und verwaltet werden koennen. Wenn Du nun bspw. 16 Endlosregler anschliesst, so kannst Du trotzdem 128 verschiedene Parameter steuern und bequem zwischen den 8 Pages (Seiten) hin- und herblaettern. Bei 32 Endlosreglern sind es 4 Seiten, bei 64 sind es 2 Seiten, usw... Schliesst Du einen BankStick an, so koennen weiterhin nur 128 Parameter gleichzeitig empfangen/verwaltet werden, doch mit jedem Stick gibt es 8 Baenke (Parametersaetze), zwischen denen Du umschalten kannst. Und nun koennen an die MB64E neuerdings auch noch zusaetzlich bis zu 64 analoge Potis/Fader angeschlossen werden. Das bedeutet, dass sich diese Eingabeelemente die 128 parametereinstellungen mit den Endlosreglern teilen. Oder Du laesst die Endlosregler weg, und nimmst die 128 Parameter ausschliesslich fuer die Potis/Fader her. Wie auch immer. Achso, die 64 zusaetzlichen Parameter fuer die Buttons sind unabhaengig von den 128 virtuellen Potieinstellungen verfuegbar. Manchmal glaube ich, dass ich einfach zuviele Features einbaue ;-) Gruss, Thorsten.
  25. Hallo, nach wie vor ziemlich ominoes das ganze. Wie dem auch sei: mit dem First Level Bootstrap Loader kann man beliebige Programme aufladen. Man muss lediglich sicherstellen, dass der Startvektor bei 0x0004 statt 0x0000 beginnt und der Code den Bereich von 0x7c00-0x7fff nicht ueberlappt. Das sollte eigentlich durch eine Modifikation in der C Startup Routine, bzw. im Locatorfile (falls es so etwas gibt) machbar sein. Ich bezweifle, dass sich mit C an den kritischen Stellen wie MIDI Stack und Shift Register Handling die selbe Performance wie mit Assembler erreichen laesst, aber fuer den Applikationslevel waere eine C Anbindung hoechst interessant, weil es viel mehr Leuten ermoeglichen wuerde, MIOS Applikationen ohne tiefgreifendes Programmierwissen zu modifizieren oder neu aufzubauen. Auch zur Dokumentation ist C ganz praktisch. Deshalb habe ich die Einbindung von C schon lange geplant, aber aus Zeitgrunden bisher immer wieder aufgeschoben. Siehe auch: http://forum.keyboards.de/forum-cgi/read.cgi?ID=79480&Re=98&Ru=26 Falls Du Interesse hast, mit mir in dieser Richtung zusammenzuarbeiten, kannst Du mich gerne per EMail kontaktieren. :) Gruss, Thorsten.
×
×
  • Create New...