-
Posts
15,254 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
Hi, general question: do you really need 4 SIDs? No, I guess that you have to canibalize 4 C64s Best Regards, Thorsten.
-
Hi Bret, I guess that you mean MIOS V1.8 (not sure if MB64 v2.4 runs properly on older OS versions) By default the LEDs are not switched via external MIDI events, this has to be enabled for each DOUT register seperately in the .ini file (-> mk_syx script), or with Serge's MIDIbox editor. Here the options and the default mapping: [tt] ################################################################################ # LED Map: assignes the LED shift registers to the Button Shift # registers or special values # Currently following values are supported: # 0 Default Setting (see Map below) # 1 Button Shift Register 1 (Button ID #1-#8) # 2 Button Shift Register 2 (Button ID #9-#16) # 3 Button Shift Register 3 (F1-F4 and Navigation Buttons: ID #17-#24) # 4 Button Shift Register 4 (Button ID #25-#32) # 5 Button Shift Register 5 (Button ID #33-#40) # 6 Button Shift Register 6 (Button ID #41-#48) # 7 Button Shift Register 7 (Button ID #49-#56) # 8 Button Shift Register 8 (Button ID #57-#64) # 9 reserved # 10 External Bank (1 of 8 ) # 11-15 reserved # 16 MIDI Status received for Button ID #1-#8 # 17 MIDI Status received for Button ID #9-#16 # 18 MIDI Status received for Button ID #17-#24 # 19 MIDI Status received for Button ID #25-#32 # 20 MIDI Status received for Button ID #33-#40 # 21 MIDI Status received for Button ID #41-#48 # 22 MIDI Status received for Button ID #49-#56 # 23 MIDI Status received for Button ID #57-#64 # 24-31 reserved ################################################################################ [LED_MAP] LED_SR1 = 1 # (Button ID #1-#8) LED_SR2 = 2 # (Button ID #9-#16) LED_SR3 = 3 # (F1-F4 and Navigation Buttons: ID #17-#24) LED_SR4 = 4 # (Button ID #57-#64) LED_SR5 = 5 # (Button ID #25-#32) LED_SR6 = 6 # (Button ID #33-#40) LED_SR7 = 7 # (Button ID #41-#48) LED_SR8 = 8 # (Button ID #49-#56) If you don't need all the MB64 features, you could also create a MIOS C based application, here an code snippet which allows you to control 128 LEDs from external: http://www.ucapps.de/mios_c_set_dout.html Best Regards, Thorsten.
-
I've added some code snippets to the MIOS C page - hope that they are useful: http://www.ucapps.de/mios_c.html Best Regards, Thorsten.
-
Hi Vix, the structure is defined in sid_sysex_table.inc - here the 128 first SysEx bytes are mapped to the related CCs. The upper 128 bytes are part of the wavetable. A more readable format can be found in the source code of the JSynthLib MIDIbox SID module, or in the mk_sid_random.pl script Best Regards, Thorsten.
-
It always makes sense to use the latest version, but not the official one which is available at jsynthlib.org (because in this version the SID SysEx structure is wrong), but the one from my website. It could also be related to the infamous Java MIDI bug, which appears when Java communicates with some special MIDI interfaces (my own interfaces are also affected). Workaround: install MIDI Yoke from www.midiox.com, use MIDI-Ox to forward MIDI Yoke 1 to the output port of your interface. Configure JSynthLib, so that it sends all MIDI data to MIDI Yoke 1 instead of directly to the output. This helps Best Regards, Thorsten.
-
Hi Adam, maybe it makes sense to make this check in order to ensure, that the MIDI connection to the core is working: Use the virtual keyboard of MIOS Studio to send a Note event - it should be received back (Note added to In and Out monitor) Results? Best Regards, Thorsten.
-
Hi Matteo, the wavetable is always sent when you open the edit window. Thereafter updates are only sent on changes. So, did you change a line in the wavetable? Note that it will also be updated automatically when the cursor changes the line - in this case an "update wavetable" has also no effect (since it is not required anymore) "Update wavetable" is only useful if you made a change in a line, and don't want to move the cursor to another line... Best Regards, Thorsten.
-
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.
-
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.
-
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.
-
(ich mach jetzt erstmal ne kurze pause, um Raphael nicht staendig in die Quere zu kommen ;-)
-
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.
-
habe den Merger gerade auf PIC18F migriert: http://www.ucapps.de/midimerger.html Gruss, Thorsten.
-
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.
-
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.
-
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.
-
This would be very difficult to handle - either SHX8, or software implemented modulation sources... Best Regards, Thorsten.
-
Guckst Du hier: http://www.midibox.org/forum/index.php?topic=5995.0 ;-) Gruss, Thorsten.
-
Hallo, ich halte es fuer sinnvoll, auch diese Firmware endlich auf PIC18F zu portieren, habs mal auf meine ToDo Liste gesetzt Gruss, Thorsten.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
