-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
Ja - beachte aber, dass die DOUT Pins revers beschaltet werden, somit ist D7 der erste Pin, D6 der zweite Pin, usw. Ja, die Masse wird nicht mit dem Keyboard verbunden. Stattdessen schalten die DOUT Pins abwechselnd jede Tasten-Reihe kurzzeitig auf Masse. So funktioniert das Multiplexen. Nicht ganz: ein DOUT Modul kann man nicht *hinter* ein DIN Modul schalten. Stattdessen wird J1 des DINs und J1 des DOUT Moduls mit J8/9 verbunden. Mit SmashTVs PCB Varianten klappt das besonders einfach via Flachbandkabel, mit den alten PCB Layouts ist es etwas aufwaendiger. Siehe bspw. auch diesen Schaltplan: http://www.ucapps.de/midio128/midio128_v3_interconnections.pdf Denke Dir einfach die LEDs und Taster weg, denn dort schliesst Du ja das Keyboard an. Bei den digitalen Modulen (DIN/DOUT) nicht, lediglich bei den AIN Modulen muss man aufpassen. Gruss, Thorsten.
-
Mittlerweile gibt es ein erstes Binary: http://www.ucapps.de/mios32/midibox_kb_v1_000.zip Standardeinstellung ist fuer zwei Keyboards. Die ersten beiden DOUT Shiftregister scannen bis zu 16 Zeilen durch, am ersten DIN werden die "Ausgaenge" des ersten Keyboards angeschlossen, am zweiten DIN die des zweiten Keyboards. Ja, koennte man so sagen. Ich werde Deine Mail spaeter beantworten, aber eigentlich kann man bei der Pinbelegung nicht viel falsch machen. a) es kann nichts kaputt gehen! b) man kann ausprobieren! c) mit "set keyboard_debug on" im MIOS Terminal erhaelt man hilfreiche Debug-Meldungen Normalerweise sollte man so das Pinning sehr schnell ermitteln koennen. Werde aber trotzdem mal auf Deine Fotos schauen falls Du mit dieser Methode nicht weiterkommst. Gruss, Thorsten.
-
Hallo, Dir fehlen evtl. ein paar Files, und scheinbar sind auch die MIOS32_* Environment Variablen nicht gesetzt. Zum Downloaden des Repositories empfehle ich Tortoise: http://tortoisesvn.tigris.org/ Die URL zum auschecken (Checkout) ist: svn://svnmios.midibox.org/mios32 Wesentlicher Vorteil: Du kannst die Verzeichnisse mit dem Server synchronisieren (-> "update"), so dass Du jederzeit die aktuellen Files siehst. Gruss, Thorsten.
-
Nein, Du hast meine Erklaerung falsch interpretiert. Hier ein individueller Tip: wenn Deine Datei main.asm heisst, dann tippe: gpasm -p p18f4685 main.asm und nicht gpasm -p p18f4685 xxx.asm Ich haette auch profi-maessig: gpasm -p <derivat> <filename> schreiben koennen, doch ich vermute, dass Dir diese Schreibweise unbekannt ist... richtig? Gruss, Thorsten.
-
Hallo Bernhard, das ist verdammt lang her... doch soweit ich das ueberblicke, kompiliert der assembler fuer ein falsches PIC derivat wenn im .asm file (oder in der Kommandozeile) nicht explizit ein PIC18F (wie bspw. PIC18F4685) selektiert wurde. Welches PIC18F derivat nun genau angegeben wird, tut nichts zu Sache - es geht nur um die Umsetzung der Daten in ein .hex File Habe gerade folgendes ausprobiert: - den von Dir angegebenen Code in ein file namens "xxx.asm" geschrieben - dieses File mit "gpasm -p p18f4685 xxx.asm" uebersetzt - das daraus resultierende .hex File in MIOS Studio 2 eingeladen - die Adressen werden korrekt erkannt -> so kannst Du es direkt aufladen. hex2syx.pl und syx2asm.pl sind eigentlich obsolet, da die Umwandlung ja mittlerweile in MIOS Studio passiert... doch auch damit habe ich es ausprobiert. hex2syx.pl wandelt das xxx.hex file in ein .syx file um, und syx2asm.pl wandelt es wieder zurueck. Gruss, Thorsten.
-
Tutorial #029: Fast Scan Matrix for velocity sensitive Keyboard
TK. replied to TK.'s topic in MIOS programming (C)
You are wrong: these are two bugs! ;-) (fixed) Btw.: meanwhile I think that I should provide the scan optimization that you found for Fatar solution as an option - it will work as long as the selection pattern isn't used for other purposes, and if it isn't enabled by default, somebody can troubleshoot the matrix connections first before enabling this feature. Best Regards, Thorsten. -
You should have mentioned this special setup earlier! The reason is clear: two MIDI IN ports are receiving more data than a single MIDI OUT port could sent, this results into a "bottleneck" problem. A possible solution is to add a large, software based FIFO for the MIDI OUT ports. I will add it this weekend, it was on the agenda anyhow :) Best Regards, Thorsten.
-
It's the Exit button since it exits the page and enters the main menu (or main page ;.-)) Tempo presets: I've no preferences for the button behaviour in this page - so, if nobody votes against this, BPM page will be entered after a preset has been selected in the next version. Best Regards, Thorsten.
-
Hi, the MBHP_AIN module isn't supported by MBHP_CORE_LPC17 due to the bad conversion quality of the internal ADC. MBHP_AINSER64 will be the future solution: Best Regards, Thorsten.
-
Moechte mich mal kurz rueckmelden: falls jemand die Module bereits aufgebaut hat, kann ich eine vorkonfigurierte Firmware zuschicken, die zumindest das (oder die) Keyboard(s) + bis zu 6 analoge Potis scannt. Das MBHP_AINSER64 Modul wird unterstuetzt, sobald ich die Hardware vor mir liegen habe. Damit koennte man uebrigens dann auch dedizierte Drucksensoren fuer jede Taste scannen (wenn man erstmal die geeignete Hardware gefunden hat), und dann entweder Poly Aftertouch, oder CCs versenden. Zum Thema Encoder habe ich mir auch schon etwas ueberlegt: die zusaetzlichen Shift Register in der DIN Kette wuerden ja eigentlich die Latenz der Keyboard-Abtastung erhoehen, doch ich koennte den Algorithmus auch so erweitern, dass nur einmal pro Millisekunde die komplette DIN-Kette durchgeschoben wird, und ansonsten maximal 2 oder 4 DIN Shift Register, je nach Anzahl der Tastaturen. Da dies in wenigen Mikrosekunden geschieht, sollte die Velocity-Berechnung davon nicht beeintraechtigt werden. Weitere DIN/DOUT module koennte man auch an J16 anschliessen, dieser Port ist normalerweise fuer die SD Karte vorgesehen, doch DIN/DOUT koennen parallel dazu angeschlossen werden (bzw. die meisten werden wahrscheinlich sowieso keine SD Karte verwenden - sie wuerde hauptsaechlich die Verwaltung mehrerer Konfigurationen erlauben). Nachteil: es fehlen die 5V Level-Shifter, man muesste also einen 74HCT541 extern hinzufuegen (den kann man sehr einfach auf Lochraster loeten) Fuer die erste offiziellen Release fehlt noch die Konfiguration via MIOS Terminal, so dass eine Firmware mehrere Anwendungsfaelle abdeckt (und nicht extra neu kompiliert werden muss) Grussm Thorsten.
-
Unfortunately I don't see a way to run MIOS32 on LPC12xx based microcontrollers, because they only have 8k SRAM which isn't enough to run basic services. There could be a way to hack an USB->MIDI interface, but again due to the small SRAM it wouldn't fit my personal robustness requirements. ;) Maybe you are able to sell it on the (german) http://www.mikrocontroller.net/ forum Servus! :) I can't reproduce this. :-/ It could happen if an incoming note hangs (e.g. MIDI cable unplugged) - the note would erase all steps. In order to check if this is true, could you please check if this also happens if another keyboard is connected (or if the MIDI cable of the keyboard is removed)? If it doesn't happen anymore, we know into which direction the analysis has to be continued. Best Regards, Thorsten.
-
Hi, I will upload the eagle file once I've tested the prototype (the PCB has been shipped from the US some days ago) Best Regards, Thorsten.
-
So, der erste Schritt ist getan - die Applikation wurde eingerichtet: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_kb_v1%2F&# Bisher funktioniert folgendes: - zwei Keyboards koennen gleichzeitig gescannt werden - sieben Keyboard-Typen vorbereitet: mit/ohne Velocity, 8x8/16x8 und 16x16 pinning, und ein spezielles Setup fuer Korg microKONTROL keyboard - es werden 4 USB-MIDI Ports freigeschaltet, sowie 4 MIDI IN/OUTS (zwei direkt verfuegbar, zwei weitere benoetigen externe Optokoppler die sich nicht auf dem MBHP_CORE_LPC17 Modul befinden) - ein MIDI Router ist auch integriert, es gibt 16 Koten die sich verknuepfen lassen. Der Router erlaubt es auch, nur bestimmte MIDI Kanaele weiterzuleiten, und den MIDI Kanal zu aendern bevor das Event ausgegeben wird - integrierter MIDI Monitor - OSC via Ethernet funktioniert ebenfalls schon. So konnte ich nun die Pianist Pro App auf meinem iPad direkt mit dem Keyboard spielen (das MBHP_CORE_LPC17 Modul ist an einen WiFi Router angeschlossen) Naechste Schritte: - PitchBender/Modulation Wheel, 4 zusaetzliche Potis die direkt an das Core Modul angeschlossen werden - abspeicherbare Konfiguration - testen bevor es weitergeht... Gruss, Thorsten.
-
Tutorial #029: Fast Scan Matrix for velocity sensitive Keyboard
TK. replied to TK.'s topic in MIOS programming (C)
Nice idea! :) But it only makes sense if the selection pattern is used for a single matrix. Meanwhile I started with MIDIbox KB: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_kb_v1%2F which can service multiple keyboards of multiple types - here such an optimization would lead to unnecessary complexity, especially once the remaining DOUTs should be used for driving a LED matrix as well. Yes. Google gives me 30 million hits for "depress button", I hope that they don't need antidepressant drugs... ;-) Anyhow: http://www.thefreedictionary.com/depress Best Regards, Thorsten. -
For MBSEQ V4 this is normal, since each bank only supports 64 patterns. Create a new session if you need to store more patterns - the number of available sessions is only limited by the size of your SD Card ;-) Best Regards, Thorsten.
-
Nein, es kommen die ueblichen MBHP module zum Einsatz. Die Anfaenge sind ja bereits mit dem 029 Tutorial gemacht und erprobt, brauchst Du ein Binary? Ich benoetige ein Datasheet um hier eine genaue Aussage liefern zu koennen. Mein Ziel ist es, verschiedene Tastaturtypen zu unterstuetzen, und sie ueber das MIOS Terminal konfigurierbar zu machen. Wenn es nur um das Scannen der Tastatur geht: -> http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Ftutorials%2F029_keyboard_velocity%2F Dieses Tutorial wird demnaechst in eine eigene Applikation uebertragen, und dann geht es Schritt fuer Schritt weiter. Die Software-Komponenten existieren ja im Grunde schon (siehe die zahlreichen Tutorials), ich muss sie nur noch kombinieren. Gruss, Thorsten.
-
Yes! The gate length will be determined with the note duration that you are playing. Play the note(s) short: short gatelength Play the note(s) long: long gatelength It isn't possible to modify the gatelength from the user interface, but you can just record the step again with the desired gatelength. Best Regards, Thorsten.
-
Tutorial #029: Fast Scan Matrix for velocity sensitive Keyboard
TK. replied to TK.'s topic in MIOS programming (C)
I improved the tutorial application based on your proposals: - timestamps are now stored in u16 resolution. I also added a hint, why delay needs to be "s16" type now. - added debouncing mechanism Best Regards, Thorsten. -
Floating point math is fully supported (libm is included) But you don't really want to use the original printf() routine - it requires liba for functions like _read, _write, _sbrk, etc... and as far as I remember, later it will ask for libos as well. Thats unnecessary overhead (+ some implementation effort for the missing functions). If you want to try to get it running: disable all functions in http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fmios32%2Fcommon%2Fprintf-stdarg.c Alternatively add the code for %f to the print() replacement Or just do the conversion in your application, e.g.: MIOS32_MIDI_SendDebugMessage("%d.%03d\n", (int)value, (int)(1000*value)%1000); [/code] Best Regards, Thorsten.
-
Hierzu der Hinweis, dass die AIN Module leider nicht vom LPC17 Modul unterstuetzt werden, da die ADCs zu ungenaue Werte bei hohen Impedanzen ausgeben. Stattdessen wird bald das MBHP_AIN_SER64 Modul eingefuehrt. Du kannst die Bauteile jedoch wiederverwenden (falls mitbestellt), und die Platinen kriegst Du sicherlich im Fleamarket los. Ich habe mich mittlerweile dazu entschieden, die neue Tastatur-Scanroutine nicht in die MIDIO128 Applikation einzubauen, sondern stattdessen ein neues Projekt aufzusetzen (Name evtl. MIDIbox KB), das fuer diese Anwendung massgeschneidert ist. Ansonsten wird die Konfiguration zu kompliziert, und man muesste auch Kompromisse eingehen (bspw. bei der Scangeschwindigkeit) Die MBKB wuerde dann mit den zukuenftigen Feature-Request wachsen. Hardware-Specs: - bis zu zwei Klaviaturen mit Anschlagdynamik (pro Klaviatur werden bis zu 128 Tasten unterstuetzt, falls es die Verdrahtung der Klaviatur erlaubt, kann man also auch vier 61er Tastaturen betreiben) - wie bei der MIDIO128 koennen die restlichen DIN/DOUT entweder als Matrix verschaltet werden (empfehlenswert, da das Shiftregister spart), oder direkt betrieben werden - Unterstuetzung fuer Encoder (jeder Encoder belegt zwei DIN Pins, Matrixverschaltung nicht moeglich) - Unterstuetzung fuer MBHP_AINSER64 (an jedes Modul koennen bis zu 64 Fader/Potis angeschlossen werden, mehrere MBHP_AINSER64 Module koennen an den Core angeschlossen werden), es kann also auch problemlos auf 128 Fader/Potis erweitert werden. - Potis koennen auch direkt an J5A/J5B angeschlossen werden, dann jedoch nur mit verminderter 7bit Aufloesung. - Unterstuetzung fuer MBHP_MF_NG (nicht MBHP_MF!) - beliebig viele MF_NG Module koennen angeschlossen werden, da jedes Modul ja einen eigenen Mikrocontroller hat. Verkablung geschieht ueber eine MIDI-Kette. Das LPC17 Modul bietet einen eigenen MIDI IN/OUT auf TTL Level fuer dieses Modul (-> J4B), so dass keine Optokoppler notwendig sind - Unterstuetzung fuer die diversen MBHP_AOUT* Module fuer CV Ausgaenge. Gates sind ueber DOUTs oder J28 Pins verfuegbar. Bei mir befindet sich uebrigens auch noch ein neues Low-Cost AOUT Modul in der Queue, die auf einem MCP DAC basiert - diese Chips gibt es sehr guenstig bei Reichelt! - User interface: 2x20 LCD + 6 Tasten + Encoder (die werden direkt an J10 angeschlossen) - falls die Default-Belegung der Tasten/Potis/Encoder veraendert werden soll (was bei der Verwendung von SW Synthesizern nicht notwendig ist, da man die ja am Computer anpasst), koennen Konfigurationen auch auf einer SD Karte abgespeichert werden, und mit Excel editiert werden - ansonsten: schaunmer mal! Nein, waere dann nicht mehr notwendig. Der LPC17 hat genuegend Rechenpower, um diese Aufgaben gleichzeitig zu erledigen. Gruss, Thorsten.
-
Why do you ignore Nils' hints??? WE ALREADY SPENT A LOT OF TIME TO UNDERSTAND YOUR PROBLEM!!! YOUR COOPERATION WOULD BE APPRECIATED!!! Please check especially Nils' topics 3 and 4 Btw.: which PIC are you using? Best Regards, Thorsten.
-
Servus, zunaechst einmal danke, dass Du auch etwas von der Vorgeschichte erzaehlt hast, anstatt die Fragen einfach so in den Raum zu werfen, so kann man gezielt antworten! :) > Kann ich den Quarz durch ein 10Mhz Oszillator ersetzen und damit alle 4 Cores gleichzeitig versorgen? das sollte theoretisch funktionieren, ich habe es jedoch noch nie selbst ausprobiert. Kosten kann man durch den Oszillator nicht sparen (4 Quarze sind guenstiger), und soundtechnisch sehe ich auch keinen Vorteil. > J6/7 im Schaltplan (erweiterter AIN) brauch ich für SID nicht, richtig? Kann ich die inkl. 10k Widerstand weg lassen? Ja! > Midi-Anschlüsse laufen ja nur über Core1 (Bist auf die int. Verteilung). Kann ich für die weiteren Cores die Optokop. und Widerst. etc. weglassen? ja > Ich denke mal, das Display, DIN's, DOUT's werden auch nur am Core1 beschalten. Kann ich sozusagen für die anderen auch weg lassen (außer CAN)? Was muss ich auf Masse legen? Pin 20 auf +5V legen, Pin 6 und 28 ueber jeweils einen 1K Widerstand auf +5V, die restlichen GPIOs koennen offen bleiben. > Im Schaltplan vom SID wird der Schutztransistor mit 12V eingespeist. Wenn ich aber einen 8580 verwende müssen dann auch da die 9V statt 12V ran? Ja!!! (Es handelt sich nicht um einen Schutztransistor, sondern um einen Spannungsregler. Du kannst auch einen Spannungsregler fuer alle 8580 Chips hernehmen) > Zuletzt der CAN-Bus: In der Zeichnung ist das eine Leitung von der aus ein Abzweig zu einen Pin geht und ein anderer über ne Diode zum anderen Pin oder sind das zwei Signale (kaum vorstellbar...)? Es handelt sich um einen Ausgang und Eingang. Ueber die Diode (die sich an jedem PIC befinden muss) wird sichergestellt, dass die Leitung hochohmig wird, wenn am Ausgang eine 1 getrieben wird (er also "idle" ist, bzw. keinen Frame uebertraegt) > Em, hat jemand von euch noch PIC's "übrig", der die mir auch Idealerweise vorbrennen kann? (hab mich bisher nur mit Atmel befasst) Nein, Mike fragen. > Ach und weil ich mich jetzt auch mit MIDI befasse(n muss), ist mir aufgefallen, dass an den heutigen Rechnern gar kein Gameport mehr drauf ist ... ähh ja äh > Geh' ich recht in der Annahme, dass das USB GM5 Modul das ist was ich brauche? Also USB <-> MIDI + Midi-Verteiler (hab ja 2x Synth, ein externen Synth und SID und Rechner) Ja, fuer Deinen Anwendungsfall benoetigst Du ein MIDI Interface mit mehreren Ports. Leider werden wie die 250er Marke fuer die naechste Sammelbestellung wohl so schnell nicht mehr erreichen. Gruss, Thorsten.
-
Ich stimme Dir uebrigens zu, dass Lemur in Verbindung mit den Hardware-Komponenten eine ideale Kombination ist. Man koennte dann uebrigens auch die MIDIbox-spezifischen Einstellungen wie MIDI/CV-Konfiguration, Splitzonen, Velocity-Curve, Pitchbender-Verhalten (bspw. mit optionalen smoothing), Transponierung usw. darueber zugaenglich machen. Das waere dann auf alle Faelle komfortabler zu bedienen als ueber ein 2x20 LCD/6 Taster/1 Encoder basierten Menu-Interface. @Mario: schoen dass Du mitliest! :) Weisst Du eigentlich, ob Aftertouch eine spezielle Mechanik benoetigt? /edit: habe mich mittlerweile informiert, es ist ein spezieller Sensor im Keyboard integriert, der liese sich ueber einen freien ADC Kanal auswerten, wenn eine Taste gedrueckt ist. Gruss, Thorsten.
-
Hi, see this posting: and this webpage: http://www.ucapps.de/midibox_seq_v2.html The firmware can be downloaded from http://www.ucapps.de/mios_download.html Best Regards, Thorsten.
-
Lasst Euch auch mal von den Synth-Projekten inspirieren: http://www.synth-project.de/Welcome.html Mario hat u.A. auch Geraete mit iPad-Halterung gebaut. Gruss, Thorsten.