Jump to content

TK.

Administrators
  • Posts

    15,247
  • Joined

Everything posted by TK.

  1. Hi Fabrizio, if you measure the latency from the time the MIDI byte has been received to the time it will be sent out, and so long there is no collision, then it is identical: PIC16F: 0, PIC18F: 0 If you still have some spare PIC16F: use them. Otherwise I would prefer PIC18F just because of the reusability with other MIDI projects (maybe some time later you want to build a MIDI filter/processor or something like that) Best Regards, Thorsten.
  2. TK.

    Envelope Midibox SID

    Nein, macht wenig Sinn wegen der niedrigen Aufloesung und des bekannten Zippernoise-Problems beim Umschalten der Lautstaerke. Doch Du koenntest den Volume Parameter per Wavetable steuern - 32 Steps fuer einen 4bit Wert sollte ausreichen :) Gruss, Thorsten.
  3. If you would read my replies, propably you wouldn't run into such problems. Not without any reason, I gave you the individual suggestion to use the MIDIO128 application for testing. In the meantime it should be very clearly stated at my website, that the software will send random MIDI events when the analog inputs are not connected to ground. This is especially mentioned in the new webpage I updated after your request for more detailed informations! -> http://www.ucapps.de/mios_bootstrap_newbies.html Search for "Additional Hints" Of course, it's a lot of information, and I don't assume that anybody will understand all terms immediately. But please: if you notice problems, read the relevant HowTo/Troubleshooting pages and check if there is something which could match with the effects you've noticed. This will help you to solve the problem much faster than waiting for an answer at the forum, and maybe by this way you will also get some useful hints which could be useful for upcoming troubleshooting. Best Regards, Thorsten.
  4. (ich mach jetzt erstmal ne kurze pause, um Raphael nicht staendig in die Quere zu kommen ;-)
  5. Hallo Nexus, Bei den meisten Modulen kann man den Stromverbrauch gegenueber Potis, LEDs und LCD-Beleuchtung vernachlaessigen. Die Potis werden ca. 30..40 mA verbrauchen, die Module (+Core) ca. 30 mA, der Rest zusammen vielleicht nochmal 300 mA, deshalb wirst Du mit einem 500 mA Netzteil locker auskommen. Die Empfehlung war ja so gedacht, dass man eine "normale" MIDIbox (doch was ist schon normal ;-) voll ausbauen kann, ohne ein neues Netzteil kaufen zu muessen. Ich haette natuerlich auch fuer jeden nur denkbaren Fall eine genauere Angabe machen koennen, doch damit schafft man nur mehr Verwirrung als eigentlich notwendig ;-) Das reicht locker. Und wenn die Grenze erstmal erreicht ist, wird die Schaltung trotzdem funktionieren. Vielleicht wird die Hintergrundbeleuchtung ein bisschen dunkler, vielleicht hat das Netzteil aber auch noch soviel Reserve, dass das gar nicht ausfaellt. Laesst sich schwer im vorraus sagen. Nein, aber ich kann das nur Experten empfehlen, die mit 220 V umzugehen wissen (deshalb gibt es zu diesem Thema keine expliziten Tips auf meiner Website) Ich halte es nicht fuer geeignet. Auf 9V wirst Du nur kommen, wenn auch wirklich > 1.5A verbraucht werden. Ansonsten wird die Spannung am 7805 bei ca. 500 mA Stromaufnahme (wenns wirklich hoch kommt) vielleicht 10..11V betragen. Somit muesste der 7805 ca. 3W in Waerme umwandeln -> er wird sehr heiss (evtl. waere dann sogar ein Kuehlkoerper notwendig). Genereller Tip: die guenstigsten Netzteile gibt es bei pollin.de (Restposten) - manche lassen sich auch direkt ins Gehaeuse einbauen. Gruss, Thorsten.
  6. habe den Merger gerade auf PIC18F migriert: http://www.ucapps.de/midimerger.html Gruss, Thorsten.
  7. Thats not true, it wouldn't simplify the debugging on some special error cases. But thanks to the flexible MIOS concept, propably more is possible than you already know? E.g., you can set/clear individual DOUTs from MIOS Studio debug window Or you could just upload the very comfortable debugging application "dout_enc_v1_3", which allows you to lit single LEDs by turning the MBSEQ datawheel If not stuffed yet, you could also upload MIDI128 and control the LEDs from a MIDI keyboard, or from a virtual keyboard Best Regards, Thorsten.
  8. Hi, MIOS as well as the application can be uploaded with MIOS Studio, see also: http://www.ucapps.de/mios_bootstrap_newbies.html Thats not supported by default, you either have to do some changes in the assembly code (before you have to learn it...), or if you have some C skills, you could create a new C application from scratch, e.g. by reusing the ain64_din128_dout128_v2_0 app Programming such functions under C is a piece of cake if you know the language... Best Regards, Thorsten.
  9. The PIC16F877 version isn't that bad, but it doesn't offer so much features (don't know anymore which ones are not available... it's too long ago). I also cannot support the PIC16F877 version, since all my MIDIboxes are upgraded to MIOS. Best Regards, Thorsten.
  10. This would be very difficult to handle - either SHX8, or software implemented modulation sources... Best Regards, Thorsten.
  11. TK.

    Design Idee

    Guckst Du hier: http://www.midibox.org/forum/index.php?topic=5995.0 ;-) Gruss, Thorsten.
  12. Hallo, ich halte es fuer sinnvoll, auch diese Firmware endlich auf PIC18F zu portieren, habs mal auf meine ToDo Liste gesetzt Gruss, Thorsten.
  13. Hallo Rio, 1) das hinzufuegen von neuen Encodern ist nicht einfach, doch Du kannst auch einfach einen Encoder der Assign Ebene (bspw. die der OSC Section) hernehmen (schau mal in cs_menu_enc_table.inc rein) Problem: es gibt zwar Modi fuer das OSC, LFO und ENV menu, nicht jedoch fuer das CFG Menu, wo sich der Volume Parameter befindet. Bevor ich nun eine halbe Stunde damit beschaeftigt bin, dir die notwendigen Aenderungen zu beschreiben, wuerde ich vorschlagen, dass Du einfach auf die naechste Release wartest, dort wird sich dann ein selektierbares Beispiel im cs_menu_enc_table.inc File befinden (wenn ich es nicht vergesse ;-) - so kostet mich das nur 5 Minuten... 2) sid_midi.inc oeffnen, und nach SID_MIDI_CC suchen. In der darunterliegenden Zeile einfach ein "return" einbauen. Das gleiche gilt fuer "SID_MIDI_ProgramChange" Du koenntest das auch selektierbar machen, bspw. ueber den CC Button (CCs/Program Changes werden nur dann angenommen, wenn die CC Funktion selektiert ist), dazu statt des returns folgende Zeile einfuegen: SID_MIDI_CC IFCLR CS_MENU_MODE, CS_MENU_MODE_CC, return Gruss, Thorsten.
  14. The MIOS Bootstrap Loader page has been updated and should be more "newbie friendly" now: -> http://www.ucapps.de/mios_bootstrap.html Best Regards, Thorsten.
  15. Based on your description I think that you though about an internal BPM timer, which is synchronized to the MIDI clock. The general problem is, that it will get out of sync once you are changing the song speed at the host. A simple solution would look like this: configure the Timer() function, so that it is called each 500 uS (thats enough accuracy when you think about the latency of your MIDI interface..). Within the timer just increment a counter A Add also some code to the MPROC_NotifyReceivedByte function. Check for 0xf8 (MIDI clock), once received, copy the current counter A value into a new variable V and reset counter A. Now you know the number of Timer() ticks between two MIDI clocks. Add some new code to the Timer() function: a second counter B, which is decremented until it reaches zero, and preloaded with V each time it reached zero - if this happens, send a MIDI clock And thats all ;-) Problem: if the MIDI clock jitters, the content of preload value V will jitter, too. But this can be compensated by calculating the average value of the last determined V's Best Regards, Thorsten.
  16. It's easier to set 8 pins at once with the MIOS_DOUT_SRSet() function, it should be done within the SR_Service_Prepare() hook, which is called each mS before the LEDs will be updated. Programming handling for this circuit: http://www.ucapps.de/mbhp/mbhp_doutx4_ledrings.pdf First cycle: set D7 of the first shift register (SR1) to 0 (ground), and all other outputs of SR1 and SR2 to 1 (+5V) As a result, only the first row of LEDs will lit, all others will close (cathode driven with +5V) set the data outputs of SR3 and SR4 to the pattern which should be displayed by the first row On the next cycle (1 mS after SR_Service_Prepare() has been called again), set D6 of SR1 to 0, all other to 1, and apply the pattern for the second row to SR3 and SR4 Once the 16th row has been reached, switch back to the first So - a loop takes 16 mS. And now the trick: if a LED row is not supplied with power for 15 mS, it will continue to lit for a short moment. The brightness will be lower, but you won't regognized that it's switched off/on very quickly. Btw: see the code in mm_vpot.c of the MIDIbox MM application for an example which drives 8 LED rings: ///////////////////////////////////////////////////////////////////////////// // This function should be called from SR_Service_Prepare in main.c // it copies the current LEDring pattern to the DOUT registers ///////////////////////////////////////////////////////////////////////////// void MM_VPOT_LEDRing_SRHandler(void) { #if LEDRINGS_ENABLED static unsigned char sr_ctr; unsigned int anode_pattern; // increment the counter which selects the ledring that will be visible during // the next SRIO update cycle --- wrap at 8 (0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, ...) sr_ctr = ++sr_ctr & 0x07; // select the cathode of the LEDring (set the appr. pin to 0, and all others to 1) MIOS_DOUT_SRSet(LEDRINGS_SR_CATHODES, cathode_patterns[sr_ctr]); // set the LEDring pattern on the anodes anode_pattern = ledring_pattern[sr_ctr]; MIOS_DOUT_SRSet(LEDRINGS_SR_ANODES_1, anode_pattern & 0xff); MIOS_DOUT_SRSet(LEDRINGS_SR_ANODES_2, (anode_pattern >> 8) & 0xff); #endif } [/code] Best Regards, Thorsten.
  17. Hi Artesia, thats a great panel design, I'm just only missing your midibox.org logo in the middle ;-) Yesterday I updated the bootstrap loader page, hope it's better understandable now: http://www.ucapps.de/mios_bootstrap.html Best Regards, Thorsten.
  18. Ok, I see ;-) So, anything missing in the list? 2 LFOs with Sine/Triangle/Ramp/Pulse/Feedbacked waveform, rate (0.001..50Hz), selectable phase (0..180°), selectable amplitude, optional MIDI clock sync 2 EGs with selectable general amplitude and ADDSR curve and optional loop point between AD, ADD or ADDS, optional MIDI clock sync modulation matrix with four busses Sources: LFO1/LFO2/EG1/EG2/Velocity/ModWheel/4 analog inputs Targets: 8*AOUT, LFO1/LFO2 feedbacked waveform, LFO1/LFO2 frequency, LFO1/LFO2 phase, EG1/2 decay1, EG1/2 decay 2, LFO1/2/EG1/2 amplitude Makes 4*22 = 88 depth parameters trigger matrix: Sources: 8 MIDI inputs, LFO1/LFO2 period, 8 digital inputs, MIDI clock, MIDI start Targets: 8 digital outputs, LFO1/LFO2/EG1/EG2 restart arpeggiator with selectable octave range (1..3), up/down/updown/random mode, selectable speed and gatelength AIN->AOUT note quantizer with configurable scales, base note and scale can be selected with an external keyboard (just made some experiments with this last weekend) optional interpolation of output curve Best Regards, Thorsten.
  19. Hi, after you've uploaded MIOS and the main.hex (! not the main.asm !) file of MB64 to the PIC, the single pot should send 8 CCs at once (since it isn't multiplexed via AIN) If not, the pot is propably not connected correctly? One outer pin has to be connected to ground, the other outer pin to +5V, the middle pin (taper) to the analog input. Best Regards, Thorsten.
  20. The disadvantage is, that such a method doesn't allow to change the master clock dynamically from the host application, you always have to readjust it, and thats not flexible enough. A combination of the BPM detection routine used in the MIDImon + the clock pin output routine used in MBSEQ and MBCV would bring very accurate results. Unfortunately so many people are requesting new features from me, that I'm propably not able to combine the two codes this year - anybody else? It isn't so difficult, and it could also be made in C instead of assembly. Finding out how it can be realized was the main effort, and I've added a lot of comments to the code in order to make the functionality clear. Best Regards, Thorsten.
  21. No, you don't need new boards - the main difference is, that the oscillator will be removed (see also http://www.midibox.org/forum/index.php?topic=5748.0, and that a 1:1 pinning to J10 of the core will be possible. The circuit will be the same. If you want to fix the oscillator issue, then just don't mount it and connect the SID clock input directly to PIC Pin #17 like described at the MBHP_SID page. (the purpose of the new layout is, to make it more newbie friendly...) Best Regards, Thorsten.
  22. TK.

    MIDIbox SEQ V2.4

    Ok, v2.4a can now be downloaded from the MIOS download page: http://www.ucapps.de/mios_download.html New features: if not in songmode, the Fwd and Rew button can now be used to increment/decrement the menu value. This is a nice alternative possibility for "fine adjusting" values without the datawheel the clock rate of the external clock pin is now selectable from 96 ppqn to 24/13 ppqn in the BPM menu - just press one of the 16 general purpose buttons. With 96 ppqn the clock output is permanently 1 (thats not a bug) 24 ppqn is the standard setting (GP button #4) a new option has been added which allows synchronized pattern switching, the pattern will be changed with the next measure (after the 16 steps of the "master track" have been processed) a new option has been added for arpeggiator mode which avoids that the track position will be reset if no note/chord is played there is a new "MBSEQ Options" menu page which allows to select these two new features online Have some fun :) Best Regards, Thorsten.
  23. Is anybody else interested in such features? Best Regards, Thorsten.
  24. TK.

    MIDIbox SEQ V2.4

    I will consider this in the next release (as well as the synchronized pattern change feature and a "don't reset arpeggiator when keys depressed" option) Best Regards, Thorsten.
  25. Hi, it shouldn't be a big problem to realize this, the timings are pretty stable. Of course, this depends on the CPU load, but so long the application is doing nothing else than receiving MIDI clock, determine the BPM and sending/generating a MIDI clock to slaves, you can expect a latency of less than 100 uS and a jitter of less than 20 uS! Even if the CPU is doing some additional stuff, the latency should always be less than 1 mS (thats for example the jitter of MIDIbox SEQ). For comparison: todays USB interfaces for PCs have mostly a latency of > 10 mS, and a jitter of +/- 5 mS! Especially the jitter does hurt if you are planning to sync external devices, therefore I prefer to use my MIDIbox SEQ as a MIDI clock master. You could use the "clockbox" application as basis for your project, it's easy to build: http://www.midibox.org/forum/index.php?topic=5691.0 and since it's written in C, it's also easy to enhance by additional features. E.g., in order to get the same functionality like the Sync2 device, a BPM detector has to be added - and a good timing interpolation routine, which compensates the jitter effects of your PC application. Best Regards, Thorsten.
×
×
  • Create New...