Jump to content

TK.

Administrators
  • Posts

    15,247
  • Joined

Everything posted by TK.

  1. TK.

    v1.7303 beta

    The upcoming release has reached it's final beta state: feature freeze. Now the time has come to check if the old functions are still working. A snapshot can be downloaded from this location: http://www.ucapps.de/mios/midibox_sid_v1_7_303beta11.zip One of the last feature is the constant time glide function, which was discussed here: http://www.midibox.org/forum/index.php?topic=6044.0. It can be activated with sound engine option bit #2, e.g. CFG menu, select OPT=4, or JSynthLib, click on flag #2 More details are listed in the CHANGELOG.txt file Best Regards, Thorsten.
  2. Concerning the control extension I've some bad and good news. The bad news is, that the required code won't fit into the MBSID release anymore, even if I would spent some more effort in code optimizations (which I already did several times in order to realize the new 303 features) But the good news: Not for the next months, but propably next winter I will start with a totally overworked version (V2) which will run on a PIC18F4620 (64k device, pin compatible to PIC18F452). Until then I will collect ideas for the new V2 engine. General requirement: the main panel will be identical (I don't want to throw away my own one), but there will be more sound parameters, a stereo option, an extensive AOUT modulation matrix, a trigger matrix, a special "wavetable" for note sequences, a second MIDI Out for the slaves, etc.. etc.. and especially a 303ish control extension, which will look like a keyboard, and which will support several recording modes. I cannot give more details, since they are changing from time to time ;-) Best Regards, Thorsten.
  3. Hi Gideon, I'm happy that this new application helped. And thank you very much for the donations! :) Raphael: I will ask Twin-X, the icon vanished during the last forum software update Best Regards, Thorsten.
  4. Super, dann sollte ich auf meiner Page den Roland Treiber vor dem Yamaha Treiber erwaehnen. Das geht gerade nicht so ohne weiteres (vom Laptop aus...) - doch wo bleibst Du denn haengen? Warum klappt es nicht, die Zeile im main.asm zu aendern, und die Applikation neu zu assemblieren? Gruss, Thorsten.
  5. As always, you guys are requesting things which are not possible, please give me my freedom to say "done" without spending more nights in coding of a feature, which will propably only be used by a small number of people. I'm very happy with the current implementation, and I can live with the limitation, that ENV2 will not be available in this mode. Thinks which make it impossible: code consumption, register consumption, availability of free CCs (to modify the curve), time to update all the tools (e.g. JSynthLib) However, I can take a seperate curve feature for portamento into account for the MBSID V2 engine Btw.: it doesn't work with tables, but with an algorithm which calculates the bended curve in realtime (a very dynamic thinky, once you modulate the curve parameter with the wavetable sequencer :) the sound engine option CC has 7 bit, 2 are currently used (TB303 and filter interpolation), 5 are free - so, the third one will be used to route ENV2 to portamento. I think this is a flexible solution, no? :) Best Regards, Thorsten.
  6. Ja, wenn Du den to-COM Treiber verwendest, ist die ID 100 richtig. scheinbar funktioniert der COM Treiber vom Yamaha nicht richtig auf Deinem System. Das habe ich schon des oefteren gelesen, deshalb gibt es noch zwei alternativen von Roland und Kawai. Probiere die mal aus Gruss, Thorsten.
  7. Maybe somebody wants to try to re-program the floorboard on a C based MIOS application? http://www.ucapps.de/mios_c.html It's simple! Best Regards, Thorsten.
  8. Sorry, habe beim "Post"-clicken noch aufgeschnappt, dass Du ja ein AIN Modul gebaut hast. Umso einfacher: klemme alle ungenutzen analogen Eingaenge an Masse wie unter http://www.ucapps.de/mbhp/auaimbctc.pdf beschrieben, und lade die MB64 applikation auf. Falls Dir das Klemmen zuviel aufwand ist, muesstest Du die Applikation halt wie oben beschrieben aendern (in diesem Fall wird DEFAULT_MUX_ENABLED jedoch auf 1 gesetzt) Gruss, Thorsten.
  9. Hallo Kay, Du koenntest die MIDIbox64 Applikation neu konfigurieren, einfach main.asm oeffnen, DEFAULT_NUMBER_POTS auf 1 setzen und DEFAULT_MUX_ENABLED auf 0 Danach ein neues main.hex bauen wie unter http://www.ucapps.de/howto_tools_mpasm.html beschrieben Die "Ausgabeelemente" (LCD/LEDs) sowie die Buttons verhalten sich passiv, hier musst Du nichts aendern Gruss, Thorsten.
  10. TK.

    LCD stoppt MidiOut

    Hallo, irgendetwas stimmt mit den Verbindungen zwischen Core und LCD Modul nicht, evtl. gibt es sogar einen Kurzschluss. Checke mal in Ruhe die Daten und Control Leitungen durch. Gruss, Thorsten.
  11. TK.

    [Blog] MidiBox Sid

    Anmerkung: bei Loetarbeiten an den verklebten LEDs muss man hoellisch aufpassen, dass man nicht allzulange mit den (giftigen?) Daempfen in Beruehrung kommt. Sie brennen vor allem in den Augen. Am besten macht man das im Freien (was im Winter jedoch etwas schwierig wird ;-)) Gruss, Thorsten.
  12. TK.

    NRPN->CC

    Hi Jesper, this: if (ccValue < 0x7e){ ccValue++; ccValue++; break; } else{ break; } [/code] can be simplified as: [code] ccValue += 2; if( ccValue >= 128 ) ccValue = 127; and decrements with: ccValue -= 2; if( ccValue >= 128 ) ccValue = 0; [/code] Checking for ccValue >= 128 is not an error - ccValue is an "unsigned char" (an 8bit value), which means, once there is an underrun, the resulting value will be <= 255 Best Regards, Thorsten.
  13. Hi, with TL's patch manager (-> http://www.automatic-brain.de/midibox/) the upload is normaly not a big deal, since it waits for a response from the MBSID before sending the next patch. But on a Mac you have to adjust the delay between two SysEx messages (patches) manually. A good starting point is 500 mS. If you are able to run a MIDI monitor in parallel, check that each patch gets an acknowledge message (.... 0F F7). If an acknowledge is missing, then the delay is too short. Best Regards, Thorsten.
  14. Hi Kokoon, it's not so easy to demonstrate all the possibilities, since there are 127*127 different possibilities (attack rate * curve parameter). However, I've created a new demo where at the first half a linear curve is used, and at the second half a bended curve. -> http://www.ucapps.de/tmp/mbsid_constant_slide4.mp3 not exactly, I've mapped the output of ENV2 to the input of the portamento routine. The amplitude of ENV2 is scaled by the difference between the previous and the target frequency. By doing so, we always have a constant rate (-> the attack rate), and the shape can be freely bended to the negative and positive direction without changing any code :) For the case that you don't know the ENV curve feature, here some older snapshots (in my examples, I only used the attack phase, decay is 0, sustain is 127, release is 0) Best Regards, Thorsten.
  15. There are some other possible connection errors, which you've propably not tested (e.g. signals against the 5V line). However, in order to simplify the debugging procedure, I've written a new test program which simplifies this: http://www.ucapps.de/mios/srio_interconnection_test_v1.zip from the main.asm header: [tt] ; A CORE->DIN/DOUT Module Interconnection Test ; ; This application allows you to check the interconnections to the DIN and DOUT module ; with a multimeter. You can control the SR/RC/DO pins by sending a Modulation Wheel ; event to your MIDIbox Core - just connect a keyboard or use ; MIDI-Ox (View->Control Panel) ; ; By default all unselected pins are 0V, except for the CS# pin which is 5V ; ; The Pins are mapped to following Modulation Wheel Values: ; ; # 0: Pin CORE::J8:DO and DOUT::J1:DO = ca. 5V ; # 1: Pin CORE::J8:SC, CORE::J9:SC, DOUT::J1:SC, DIN::J1:SC = ca. 5V ; # 2: Pin CORE::J8:RC, CORE::J9:RC, DOUT::J1:RC, DIN::J1:RC = ca. 5V ; ; The pin names are also visible on LCD (if connected) ; ; If you measure a voltage much less than 4.8V (e.g. < 3V or even 0V), then ; there is either a short circuit or a missing connection between ; the signal lines ; ; If a certain shift register is not working, you could measure the ; SC/RC voltages directly at the pins of the 74HC595/74HC165, please have ; a look into the schematics: ; http://www.ucapps.de/mbhp/mbhp_doutx4.pdf ; http://www.ucapps.de/mbhp/mbhp_dinx4.pdf ; ; The J9:DI pin can be tested with the MIDIO128 application, ; once you've ensured that SR/RC are working ; Each digital input of the DINX4 module has to trigger a single MIDI event [/tt] Maybe a bad soldering joint? (waggly connection) The new program should help you to identify this. Best Regards, Thorsten.
  16. Hi Matteo, this is propably the field is still in edit mode (white background), and therefore the value hasn't been taken. If this is the case, you have to click on another field first, before pushing the update button (it's not my fault, but just the behaviour of the Java GUI interface) However, the easiest way is just to move the cursor one field down- or upwards. Best Regards, Thorsten.
  17. After tinkering with the ENV2 mod, I think that the simplest solution (linear slide, suggested by Kokoon) is sufficient, see following examples: http://www.ucapps.de/tmp/mbsid_constant_slide3.mp3 * at the beginning a slide with linear curve * thereafter with "negative curve" * at the end with "positive curve", which fits best with a cap charging curve The differences are so small, that it isn't really worth the effort to integrate the ENV2->portamento path into the engine (it consumes some resources...). I will make this feature selectable with sound engine option #3, so that it's possible to switch between the two different behaviours :) Best Regards, Thorsten.
  18. Hi David, yes, even the PIC16F877 based solution provides a configuration mechanism, which allows you to alter the channels (and even the MIDI events which are sent). Details can be found in the mk_syx_midio128 script, which can be downloaded from the MIDIO128 page Best Regards, Thorsten.
  19. Thanks for the input! To the ASCIImatic: it looks like an envelope follower, and this is propably what I have to do for a more accurate slide/glide/portamento/whatever, regardless if it is linear or exponential. You are right so long the available resources don't matter. E.g., the simplest way to create a capacitor charging curve is the use of a precalculated table, and to scale the output values depending on the difference between the starting and end frequency. Problem: 256 16bit entries consume 512 bytes, so much is not free. Another way: re-using the existing code, which produces a non-linear curve. Problem here: it requires at least 7 bytes per oscillator, makes 21 for all. So many bytes are not free anymore (within the reserved range for SID variables) The way I will propably go: an optional switch which allows to use ENV2 for portamento. By doing so, the rate as well as the curve is freely controllable, and maybe the release rate allows to add some more analog behaviour (frequency change when cap not completely charged). thats an interesting point - maybe it can be realized without much effort by re-using ENV2 (gain is free adjustable) Let's see... Best Regards, Thorsten.
  20. For the records: this is, how a linear slide sounds like (delta = abs(target_frequency-current_frequency) / slide_rate http://www.ucapps.de/tmp/mbsid_constant_slide2.mp3 Best Regards, Thorsten.
  21. Haven't tried a linear slide yet, since I think that it doesn't lead to the desired effect. Guess what happens when the frequency sweeps from a high to low note. In the meantime I think, that the exponential charging and decharging curve of a capacitor has to be modelled. I did something similar with the envelope curve feature (algorithm found by Jess D. Skov-Nielsen), maybe using the same for portamento will result into the desired effect: Best Regards, Thorsten.
  22. only lamers (and managers ;-)) are using excel. At the begining I used this short perl program - I made a lot of modifications, which haven't been saved, but I guess that it helps you: my $porta_rate1 = 0.1; my $current_frq = 220; my $target_frq = 2*440; #my $target_frq = 4*440; #my $target_frq = 8*440; my $porta_rate2 = $target_frq / $current_frq; my $porta_rate = $porta_rate1 * $porta_rate2; printf "Current Frequency: %5d\n", $current_frq; printf "Target Frequency: %5d\n", $target_frq; printf "Portamento Rate: %5.4f * %5.4f = %5.4f\n", $porta_rate1, $porta_rate2, $porta_rate; my $step = 0; while( $current_frq < $target_frq ) { ++$step; $current_frq += $current_frq * $porta_rate; if( $current_frq > $target_frq ) { $current_frq = $target_frq; } printf "%6.3f mS: %d\n", 0.8192 * $step, $current_frq; } [/code] then the 5 semitones modification will be skipped. it seems, that at least rebirth is doing the same, maybe also because they payed more attention for the sound result, than for accuracy. Not sure, how a real TB303 behaves here. It should The idea isn't that bad, it would mean, that higher notes are sweeped more slowly than lower notes. Best Regards, Thorsten.
  23. Suppa! Tja, das Problem im Forum ist, dass in den alten Artikel neue Erkenntnisse nicht nachgetragen werden. Vielleicht sollte ich den .hex hack einfach mal auf der MBHP_BURNER Seite dokumentieren... Gruss, Thorsten.
  24. No, a wrongly connected encoder cannot cause this behaviour. MIDIO128 sends all 128 events which are assigned to the digital inputs. So, it seems, that there is a problem with the clock line (in simple words: if the shift registers cannot be clocked, the first pin in the chain will send all events at once) Either the clock line is not connected properly, or there is a short. This can be measured very easily: put all ICs (PIC, 74HC165) out of the socket, and use your measure to check the contacts (if it provides a "beeper", then use it, otherwise use the ohm-meter function). Check: - Core J8:SC against ground: no contact - Core J8:RC against ground: no contact - Core J8:SI against ground: no contact - Core J8:SC against J8:RC and J8:SC against J8:SI: no contact - Core J8:SC to J1:SC of the DIN module: there must be a contact Best Regards, Thorsten.
  25. I've moved your post to the old one, because it's not really useful when you spread your questions over the whole forum. If you have some programming skills, you should be able to merge the C based MIDIbox LC application with the DIN Velocity project (this is not trivial, but it works) Without programming skills, the easiest way is the use of two cores Best Regards, Thorsten.
×
×
  • Create New...