-
Posts
15,253 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
Hallo, unter Linux ist das Empfangen und Senden von Daten ueber den COM Port absolut kein Problem - irgendwo habe ich schonmal einen speziellen UART treiber gesehen, der die Schnittstelle nach /dev/midi? legt, doch zur Not klappt auf alle Faelle /dev/cua? (ersetze ? durch die COM Port Nummer) --- auf diese Weise habe ich anno 98 noch meine allererste MIDIbox getestet, da zu der Zeit MIDI-Ox unter Win 3.11 noch ziemlich buggy war Die Baudrate des COM Ports muss auf 38400 baud gesetzt werden - habe ich frueher meistens mit miniterm gemacht, sollte aber auch mit "setserial" (oder wie hiess das noch?) funktionieren Zu den Modulen: ersetze AIN (analog input) durch DIN (digital input) und es wird klappen :) Gruss, Thorsten.
-
Hm, die Performance ist katastrophal und der Speicherverbrauch enorm --- vergessen wir das lieber mal wieder ;-) Gruss, Thorsten.
-
It's a piece of cake to realize such a SID test software with the C wrapper of MIOS, even if the SID is not directly connected to the core: ///////////////////////////////////////////////////////////////////////////// // This function is called by MIOS when an button has been toggled // pin_value is 1 when button released, and 0 when button pressed ///////////////////////////////////////////////////////////////////////////// void DIN_NotifyToggle(unsigned char pin, unsigned char pin_value) { // do nothing if button has been released (pin_value == 1) if( pin_value ) return; // clear screen MIOS_LCD_Clear(); // print header at upper line MIOS_LCD_CursorSet(0x00); MIOS_LCD_PrintCString("SID test finished."); // print SID class at lower line MIOS_LCD_CursorSet(0x40); switch( TestSID() ) // returns the quality class { case 2: MIOS_LCD_PrintCString("Quality: Class III :-/"); break; case 1: MIOS_LCD_PrintCString("Quality: Class II -> $ -> :-)"); break; case 0: MIOS_LCD_PrintCString("Quality: Class I -> $$$ -> :-D"); break; default: MIOS_LCD_PrintCString("Quality: Class IV :-( Press Button again!"); break; } } ///////////////////////////////////////////////////////////////////////////// // This function returns the quality class of the SID // Just hold it near to Port J5 (the ADC inputs) // Note: the inputs should NOT be connected to any voltage source and // should especially not be grounded!!! ///////////////////////////////////////////////////////////////////////////// char TestSID() { return (MIOS_AIN_PinLSBGet(0) + MIOS_AIN_PinLSBGet(1) + MIOS_AIN_PinLSBGet(2) + MIOS_AIN_PinLSBGet(3) + MIOS_AIN_PinLSBGet(4) + MIOS_AIN_PinLSBGet(5) + MIOS_AIN_PinLSBGet(6) + MIOS_AIN_PinLSBGet(7) ) & 0x03; } [/code] Best Regards, Thorsten.
-
Hi Dimitris, you can just upload the CS version to see at least the patch number/bank/name and MIDI channel. So long your core module is stuffed completely (especially the 10k pull-up at J9), it won't hurt no, this is not possible Best Regards, Thorsten.
-
Digital Audio Processor - PIC Processing Overhead Question...
TK. replied to Artesia's topic in Design Concepts
You know what the word "evaluation" means? ;-) Sooner or later I will try out the SPDIF modules on my FPGA board, maybe I can tell you thereafter if using a PIC for processing is feasible or not Best Regards, Thorsten. -
Best Regards, Thorsten.
-
Behringer BCR 2000 now for 125 €....just need to....ad lcd displays :-)
TK. replied to andid's topic in MIDIbox HUIs
Hi André, by using the C wrapper of MIOS it's a piece of cake to create (and especially to customize) such a 4-display MIDI monitor . It only has to decode the incoming MIDI events in MPROC_NotifyReceivedEvnt() and has to place the parameter name and value at the right display positions. Details about the C wrapper can be found in the MIOS programming section of this forum. Once I find the time, I will provide some examples to demonstrate the usage, but I think that such a project doesn't need so much explanations, it's a straight forward programming task which should be easy to realize even for programming beginners. However, 4 LCDs require a driver adaption, because by default only 2 LCDs are supported. Such addaptions can be made in a customited app_lcd.inc driver (see also the lcd7_clcd.zip package) and need assembler due to execution speed reasons Best Regards, Thorsten. -
Digital Audio Processor - PIC Processing Overhead Question...
TK. replied to Artesia's topic in Design Concepts
Hi, it's a typical job for a FPGA (I'm writing this since I'm currently playing with a Xilinx Spartan3 development board ;-) This means that you have to learn VHDL. Fortunately the SPDIF core doesn't need to be reinvented, it's already available at this site: http://www.opencores.com/projects.cgi/web/spdif_interface/overview Best Regards, Thorsten. -
Gibt es fuer das farbige Display auch ein Datenblatt im Netz? Hoert sich interessant an! Gruss, Thorsten.
-
If the oscillator doesn't work stable, it could be that not the complete code (MIOS and/or application) has been loaded into the PIC. And this can result to such unexplainable effects - a lot of random instructions are executed. So, first thing which has to be solved is to get the crystal running. Unfortunately I cannot give you that much tips here - does anybody use the same crystal and caps from Mouser? Best Regards, Thorsten.
-
SmashTV: are you reading this? I've the same problem. Julian: you can change the page without sign in :) Best Regards, Thorsten.
-
Hi Julian, yes, this is normal. I haven't found a fast solution yet which allows to check the gate flags of the alternative track (problem is, that the morph function has to work stable even if all 16 tracks are morphed in parallel, therefore especially this part has to work as fast as possible) Best Regards, Thorsten.
-
Digital Audio Processor - PIC Processing Overhead Question...
TK. replied to Artesia's topic in Design Concepts
Hi Artesia, this is perverse, isn't it? Reducing the bitrate on a interface which was invented for best digital quality? ;-) (btw.: I would use a VST for such a simple job) The datarate of SPDIF at 48kHz is 3.072 Mbit/s, this means that you have only 3 PIC instructions per bit - doesn't look feasible. More infos here http://www.epanorama.net/documents/audio/spdif.html Best Regards, Thorsten. -
Yes, I would also suggest 8 internal banksticks. The 4 Audio INs are "nice to have" for some experiements, but no must. You could also place them at the backside. I'm missing the AOUT port! :-) Sidenote: in the meantime my MIDIboxe SID/FM and SEQ are stuffed with a special DIN socket for the AOUT, so that I can use it as "breakout" box. I've used a 6-pin socket, the remaining pin will be used later for a serial connection to a (planned) 8 x gate extension (it's just a 74HC595). Reichelt Part # for the socket: MAB6 (the picture shows the 5 pin type, I mean the shading at the right upper edge) Reichelt Part # for the plug: MAS 60 Best Regards, Thorsten.
-
Hi, an AOUT module is absolutely not the right module to drive a relay, you can control it with with a common digital MBHP_DOUT output + an ULN2803 like suggested at the MIDIO128 page. But I don't see a chance to switch between different PICs by using relays. A possible solution would be the use of a second PIC with a 64k BankStick for each application which uploads the code to the other PIC. This requires some programming effort at the MIOS application side and at the PC side (because you have to re-convert the .hex file in order to bring it into the BankStick). This solution has two disadvantages: you need to switch the MIDI In port to the second core before the upload, and the whole procedure takes exactly the same time like if you would upload the code from the PC (which takes ca. 20 seconds) I don't think that this is worth the effort (somebody else can do this if he want), especially if you only want to switch to a LC emulation, which requires a PC anyhow! Are 20 seconds really too long? How long does it take to boot your Windows PC? ;-) Best Regards, Thorsten.
-
Thank you! :) Best Regards, Thorsten.
-
Thats interesting! Which caps and which crystal are you using exactly? Best Regards, Thorsten.
-
Great! I'm glad that you want to put some infos into the Wiki :) Well, there are still enough "unbuilt" MIDIboxes which you can use to improve your soldering skills ;-) Best Regards, Thorsten.
-
It was so clear, sometimes people only have to be forced to double-tribble-quadruple check the solderings ;) Best Regards, Thorsten.
-
I've finally released MIDIbox FM - a FM synthesizer based on the famous Yamaha OPL3 chip 6 four-operator voices, 12 additional LFOs, 4 additional EGs, 4 wavetable sequences, 5 percussion instruments plus a complete control surface with 2x40 LCD, 5 rotary encoders, 24 buttons, 34 LEDs are handled by a single PIC18F452! :-) Infos: MIDIbox FM introduction http://www.ucapps.de/midibox_fm.html MIDIbox FM User Manual http://www.ucapps.de/midibox_fm_manual.html MBHP_OPL3 module http://www.ucapps.de/mbhp_opl3.html new MP3 which demonstrates some random sounds: http://69.56.171.55/~midibox/midibox_fm/mbfm_demo_random_patches.mp3 (7.3 MB) new MP3 which demonstrates the possibilities given by a CV controlled Moog filter: http://69.56.171.55/~midibox/midibox_fm/mbfm_demo6.mp3 (2.5 MB) Have fun! :) Best Regards, Thorsten.
-
Hallo Crypto, Zu 1) hier muss zwischen MIOS und der Applikation unterschieden werden. MIDIbox64 unterstuetzt aus Kompatibilitaetsgruenden nur 64 Buttons, MIOS kann jedoch bis zu 128 Buttons verwalten. Das erstellen einer alternativen (inkompatiblen) Version ist mir zu aufwaendig, da es nicht mit einer Aenderung in der Applikation alleine getan ist (auch der SysEx Editor, das mk_syx Script, die alten .syx Setups, die Dokumenation, etc. muessten nachgezogen werden, hierbei waeren mehrere Leute beteiligt, die teilweise gar nicht mehr aktiv sind). Man kann jedoch die restlichen 64 Buttons auch "hard" in den Code reinprogrammieren. Wenn lediglich Note oder CC Events versendet werden sollen, und auf eine Editierfunktion verzichtet werden kann, ist das keine grosse Sache. Programmierbeispiele gibt es in der MIOS Download Section (vielleicht erbarmt sich ja mal jemand, ein HowTo zu schreiben) Zu 2) durchaus - es handelt sich hierbei um verschiedene Applikationen - MIOS ist das Betriebssystem Zu 3) das waere aufwaendiger als 1) ;-) Auch in diesem Fall waere das editieren der zugewiesenen MIDI Events nicht moeglich Gruss, Thorsten.
-
If the troubleshooting guide doesn't give you a clue, I cannot give you any more suggestions... Best Regards, Thorsten.
-
Hi Julian, I guess that you assigned the AOUTs to channel 1-4. In this case CV 2/4/6/8 output the velocity parameter (just select Layer B, press "All" and "Fast", and modifiy the velocity values) here the same: the "second MIDI byte" (see documentation) is located in Layer B yes, this must be a PSU problem - simplest solution: for the LM324 just use the same transformer like for your synths. You can power the OP amps from +/- 5V to +/- 15V see ToDo List ;-) (the next release will route gate #3 and #4 to free IO pins of the PIC) Best Regards, Thorsten.
-
Changing the MIOS startup will be difficult, since the bootstrap loader already enables the driver of this pin. Yes, you can put the TRISD, 4 at the beginning of USER_Init, MIOS won't overwrite this once more. But take care: the driver of this pin will still be initialized at power-on for ca. 2 seconds. And if you would upload another application, you could also run in trouble. Therefore I recomment a resistor (let's say 220 Ohm) between J14 and the switch in order to avoid a short. Best Regards, Thorsten.
-
Hi Robin, very good progress! Normaly I'm trying to group all BANKED registers which are used directly (without the use of pointers), so that the BSR can always be restored with SET_BSR *_BSR (replace * by the application name). So, for MIDIO128: "SET_BSR MIDIO_BASE" more details about the addressing methods I used can be found here: http://www.ucapps.de/mios/mios_ram_handling.txt You could also save and restore the BSR by writing it into a temporal register --- but in this case you have to know which register (address) is not used by the application itself. Best Regards, Thorsten.
