Jump to content

TK.

Administrators
  • Posts

    15,247
  • Joined

Everything posted by TK.

  1. 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.
  2. TK.

    Midibox LC mit PCD5844

    Gibt es fuer das farbige Display auch ein Datenblatt im Netz? Hoert sich interessant an! Gruss, Thorsten.
  3. 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.
  4. SmashTV: are you reading this? I've the same problem. Julian: you can change the page without sign in :) Best Regards, Thorsten.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. TK.

    MIDIbox FM V1.0

    Thank you! :) Best Regards, Thorsten.
  10. Thats interesting! Which caps and which crystal are you using exactly? Best Regards, Thorsten.
  11. 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.
  12. It was so clear, sometimes people only have to be forced to double-tribble-quadruple check the solderings ;) Best Regards, Thorsten.
  13. TK.

    MIDIbox FM V1.0

    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.
  14. 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.
  15. If the troubleshooting guide doesn't give you a clue, I cannot give you any more suggestions... Best Regards, Thorsten.
  16. 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.
  17. 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.
  18. 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.
  19. Hi Julian, which application controls the AOUT module? If you are using MIDIbox SEQ, then take care for the special MIDI channel->AOUT routing which is described at the bottom of this page: http://www.ucapps.de/midibox_seq_options.html So long the gates and the first channel are working, the interconnections between core and AOUT are ok. I would continue with the MAX525 outputs, they can be measured from the jumper sockets (voltage range: 0..2.048V) Results? Best Regards, Thorsten.
  20. Hi Jorge, there is no other way to enable the link without control surface, you already made it correctly by sending the sysex string. Power supply issues: maybe 9V is too much (did you measure the effective voltage at the 7805 input? It could be more than 9V) - a larger head sink can help, another solution is the use of a second converter stage - means: use a 7809 to reduce the voltage to 9V (I still assume that your transformer delivers a higher voltage), then the 7805 to reduce it again to 5V. Thats no professional, but a simple solution. Best Regards, Thorsten.
  21. Hi Jitterbug, a joystick just consists of two pots, I don't see problems so long the resistance of each pot is ca. 10k Best Regards, Thorsten.
  22. The 1.2k pull-up doesn't hurt (it isn't required so long you don't plan to disconnect the MIDI Out driver during runtime) Best Regards, Thorsten.
  23. Hi Sjakie, I guess that you want to select the interface depending on PORTD, 4 (and not PORTC, 4) Yes, this should work. But don't forget to bring this pin into TriState mode (bset TRISD, 4), otherwise you will get a short circuit Best Regards, Thorsten.
  24. Hi Yair, I've absolutely no experiences with such a material, but the idea sounds exciting. Yes, you can use the same ground. The noise can be filtered by using a "schmitt trigger" before the DIN input - a description can be found here: http://www.play-hookey.com/digital/experiments/rtl_schmitt.html I would suggest the use of an integrated circuit - eg. the 7414, which provides 6 schmitt triggers in a single chip: http://www.nullohm.de/datenblaetter/index.htm Best Regards, Thorsten.
  25. Hi Robin, I never really used the simulator, it's mostly more effort then debugging in-system - a valuable debugging help is the use of the MIDI interface in conjunction with a MIDI-Monitor (MIDI-Ox). You can send out common MIDI events (or SysEx streams) to protocol what happens with your code. Example: in order to notify that a certain parts of the code have been executed, you could send out program changes with a continuous number (I call this the "checkpoint method"). Example: ;; some code.. ;; ... ;; checkpoint #1 reached movlw 0xc0 call MIOS_MIDI_TxBufferPut movlw 0x00 call MIOS_MIDI_TxBufferPut ;; some code.. ;; ... ;; checkpoint #2 reached movlw 0xc0 call MIOS_MIDI_TxBufferPut movlw 0x01 call MIOS_MIDI_TxBufferPut [/code] the content of variables can also be sent via MIDI. Here I'm normaly using SysEx streams --- but take care, the bytes within a SysEx stream must be limited to 7-bit! [code] ;; send MIOS_PARAMETER[12] movlw 0xf0 ; begin SysEx call MIOS_MIDI_TxBufferPut movf MIOS_PARAMETER1, W andlw 0x7f ; MIOS_PARAMETER1 & 0x7f call MIOS_MIDI_TxBufferPut movf MIOS_PARAMETER2, W andlw 0x7f ; MIOS_PARAMETER2 & 0x7f call MIOS_MIDI_TxBufferPut movf MIOS_PARAMETER3, W andlw 0x7f ; MIOS_PARAMETER3 & 0x7f call MIOS_MIDI_TxBufferPut movlw 0xf7 ; end SysEx call MIOS_MIDI_TxBufferPut if the full resolution (8-bit) is required, then you have to send the high- and low nibble seperately: ;; send MIOS_PARAMETER[12] movlw 0xf0 ; begin SysEx call MIOS_MIDI_TxBufferPut swapf MIOS_PARAMETER1, W andlw 0x0f ; send upper nipple of MIOS_PARAMETER1 call MIOS_MIDI_TxBufferPut movf MIOS_PARAMETER1, W andlw 0x0f ; send lower nipple of MIOS_PARAMETER1 call MIOS_MIDI_TxBufferPut movlw 0xf7 ; end SysEx call MIOS_MIDI_TxBufferPut [/code] [b]Important:[/b]: MIOS_MIDI_* modifies the BSR, this means: if you are doing BANKED transfer, then BSR has to be restored after the MIDI events have been sent Best Regards, Thorsten.
×
×
  • Create New...