Jump to content

TK.

Administrators
  • Posts

    15,247
  • Joined

Everything posted by TK.

  1. Never saw this website before; enjoyed the audio samples! :) Best Regards, Thorsten.
  2. Halo Jan, ja, das ist fuer alle "Realtime SysEx" Events (>= 0xf8) erlaubt. Sie duerfen auf der Empfaengerseite auch den Running Status nicht veraendern, so dass man sie wirklich voellig ruecksichtslos jederzeit "einstreuen" kann. Vorrausgesetzt natuerlich, dass sich die Empfaengerseite auch an die MIDI-Spec haelt. Und hier liegt das Problem: MIOS und MIOS32 Applikationen kommen damit bspw. zurecht, doch mir schrieb mal jemand, dass die Elektron-Kisten durcheinander kommen. Auch bei manchen Billig-MIDI Interfaces fuer Mac/PC waere ich mir nicht so sicher (GM5 und MIDIsport 2x2 parsen jedoch korrekt). Gruss, Thorsten.
  3. TK.

    Meeblip

    If I would have the choice to use the enhanced flash memory either for comfort reasons (duplicated firmware), or for more synth features, I would always prefer the latter one :) Basically the MIOS8 bootloader works the following way (please note that "MIOS" doesn't mean that an adaption of the MIOS operating system is required): 1) whenever the chip is powered up or reset, the so called "1st level bootloader" sends an upload request (a specific SysEx string) 2) the bootloader stays active for two seconds, and if it doesn't receive a response from MIOS Studio, it checks for a "magic word" at a special memory location. If it exists, MIOS, resp. the actual firmware will be started. Otherwise it restarts at 1) 3) a received code/data block will be programmed into flash/EEPROM, thereafter the bootloader restarts at 2) 4) MIOS itself provides a "2nd level bootloader" with enhanced features. This approach has following advantages: no special pin required to select bootloader mode. This means that users can update a firmware w/o opening the device, resp. adding a special switch to the case due to 2) and 3) code can even be uploaded without the bidirectional protocol. E.g. firmware could be embedded into a .mid file, or provided as a .syx file (some SysEx tools allow to insert delays between SysEx blocks) This means that code could even be uploaded if no MIDI Out is connected (but debugging capabilities are limited - users don't get diagnose messages if code upload was ok and complete). due to 4) it's possible to upload new code during runtime w/o touching the device due to 1) following mechanism is provided: to upload a new firmware, press "START" button in MIOS Studio and repower or reset the device -> upload will start automatically. This is a fallback solution for the case that the application hangs up (e.g. caused by a programming error during development of new code) due to 4) it's possible to keep the size of the 1st level bootloader limited to less than 1k The 1st level bootloader only supports the programming of internal flash and internal EEPROM. The 2nd level bootloader (part of MIOS) allows to program external EEPROMs in addition. With MIOS32 I modified the bootloader approach a bit - since much more memory is available (512k flash), I reserved 16k for the bootloader so that some "dreams came true" (also because it wasn't required to consider incompatibility issues ;) [*]1) native USB MIDI support makes code uploads even faster than via JTAG! UART based MIDI still provided [*]2) bootloader mode active for 2 seconds after power-up/reset like before, a LED flashes to notify that the chip is running - thats an important debugging help for DIY people who want to check if the chip is up&running at all. [*]3) once code upload has started, bootloader mode won't be exit anymore before a special command has been received (solves the race condition of MIOS8 bootloader) [*]4) added a special "bootloader hold" pin which lets bootloader activated as long as a certain jumper is connected on the board. It ensures that code can be uploaded via USB-MIDI even if the application crashes (because Windows/MacOS needs some time to detect the device) [*]5) 2nd level bootloader has been removed. Instead a special SysEx command has been added to enter the initial bootloader during runtime (so that the complete firmware can be updated - no separation between MIOS and application anymore) [*]6) MIOS and the bootloader allow to query parameters, e.g. Flash and RAM size, but also chip derivative, the "Board ID", application version, etc. - they could be considered later to select the right firmware for the given infrastructure, or just to abort the transfer if the .hex file doesn't fit into flash, or to warn the user if the usage on a certain derivative or "board" is risky. Both solutions are failsafe: if the application crashes (e.g. due to a programming error or corrupted firmware upload), the bootloader will still be available so that code can be uploaded again. More safety can be added by protecting the flash section where the bootloader is located, so that the appr. code can even not be overwritten if the application should ever branch to a code fragment which initiates a flash erase or programming sequence. For the next steps I would recommend you to decide if you prefer the MIOS8 solution (less code size) or MIOS32 solution (more flexibility). You could also define an own approach, MIOS Studio is flexible enough to handle multiple solutions (I would add this on request) Sources (for reference - more details on request): MIOS8 bootloader in assembly language: http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fbootloader%2Fmain.asm MIOS8: documentation about the SysEx format: http://svnmios.midibox.org/filedetails.php?repname=svn.mios&path=%2Ftrunk%2Fdoc%2Fmios%2Fmios_sysex_implementation.txt MIOS32 bootloader in C language: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fbootloader%2Fsrc%2F MIOS Studio - the part which handles the upload: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Ftools%2Fmios_studio%2Fsrc%2FUploadHandler.cpp Best Regards, Thorsten.
  4. Great work! I hope to see your MBSEQ next sunday - not only to evaluate the performance of the VFD display (and to integrate app_lcd.c), but also to check why the incorrect RAM size is displayed: http://midibox.org/forums/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=8016 The RAM value is stored at a special STM32 memory location, it seems that your chip works different from others. Best Regards, Thorsten.
  5. Ooops! :-/ Beta33 is available now: MIDIboxSEQ V4.0beta33 ~~~~~~~~~~~~~~~~~~~~~ o "SAVE AS.." name check now working as intended: - if filename is identical to current session, only the current 4 patterns will be stored (like if you would push the SAVE button) - if filename is not identical, the current session will be transfered into a new directory [/code] Best Regards, Thorsten.
  6. TK.

    Meeblip

    Hi James, If you are interested I could give you the details how to interact with MIOS Studio It can transfer any .hex file, offers checksum protection and retry mechanisms; it isn't restricted to PIC and STM32. In any case, I strongly recommend you to reduce the block size to < 1024 bytes because some dedicated MIDI drivers under Windows (e.g. M$ legacy USB-MIDI under WinME) have such restrictions for SysEx streams. Best Regards, Thorsten.
  7. Hi, there is a simple reason why a format menu option isn't available: some people use their MB808 w/o a LCD. There is no way to warn the user that the BankStick will be formatted if they don't release a certain button *now* We also have the situation that sometimes users are trying the firmware w/o knowing if all buttons are working correctly, so that even a special button combination is not safe! So: I saved you from some trouble. As a compromise I implemented some SysEx commands to format BankSticks remotely: ;; called with following SysEx command: ;; first BS: ;; F0 00 00 7E 40 00 0D 01 00 60 0C 00 00 00 00 00 00 00 00 F7 ;; second BS: ;; F0 00 00 7E 40 00 0D 01 00 60 0C 00 01 00 00 00 00 00 00 F7 ;; ... ;; 8th BS: ;; F0 00 00 7E 40 00 0D 01 00 60 0C 00 07 00 00 00 00 00 00 F7 ;; we use this hook to invalidate the magic bytes of a BankStick to trigger a reformat ;; (BS number, will be available in WREG when function called) [/code] Ben: by sending F0 00 00 7E 40 00 0D 01 00 60 0C 00 03 00 00 00 00 00 00 F7 the fourth BankStick should be re-formatted. If this doesn't really help, it would be interesting which data is read out by your EEPROM programmer exactly. I expect 0x7a at 0x0000 and 0x5c at 0x0001 All other bytes should be 0 Best Regards, Thorsten.
  8. Your session files were really helpful, as the issue only happened under special circumstances. CC links were not updated correctly as some of them depend on the number of (drum) instruments. Since CCs are recovered before the number of instruments is configured, SEQ_CC_LinkUpdate(track) failed. -> fixed! :) Looking forward to see some pictures of your session, and maybe also a MP3 of your track, as I listened to it multiple times during debugging - on a GM synth it sounds promising ;) So - ChangeLog of Beta32: MIDIboxSEQ V4.0beta32 ~~~~~~~~~~~~~~~~~~~~~ o now it's possible to import/export songs/mixer maps/groove templates/local config as well o added DEBOUNCE_DELAY to MBSEQ_HW.V4 o fixed pattern change on Normal->Drum tracks [/code] Best Regards, Thorsten.
  9. Hi David, in MBSEQ V3 the delay value was set to 32 mS by default. MIOS32 supports this as well, but I forgot to add this function to the MBSEQ_HW.V4 file - nobody complaint about this yet, accordingly it seems that most users don't need button debouncing at all. However, it's supported by Beta32 now: http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fsequencers%2Fmidibox_seq_v4%2FCHANGELOG.txt It will be released once I got feedback from Mastomo about the MIDI channel issue. Best Regards, Thorsten.
  10. The iPad screen is a bit too small for an ergonomic 16x16+X BLM: Touching the real BLM buttons is much better! But there are applications which really make sense. Wilba already gave some links - here another one of my personal fav: http://moocowmusic.com/PianistPro/index.html It sends OSC messages which can be received and transformed by MBSEQ: It's especially nice for playing flutes and harps! (I don't use the internal synthesizer...) Sometimes I'm playing Piano Pro with the left, and BLM with the right hand - it works, and you will never hit a wrong note ;) Best Regards, Thorsten.
  11. Unfortunately I'm not able to reproduce this. Could you please send me your session in a .zip file? Best Regards, Thorsten.
  12. Gustl passt scho! :) das darfst Du dann beim naechsten Mal gerne selbst mitbringen, doch Vorsicht: lass Dich an der Weisswurstgrenze nicht vom Zoll erwischen! Gruss, Thorsten.
  13. Hi, the DIN/DOUT modules cannot be controlled without pull-up resistors, because pins are working in Open Drain mode, which means that they are switching between Vss (for logic-0) and high-impedance (for logic-1) Nothing to be worried about, you measured the resistance between VS -> any other component (e.g. chips) -> VD -> pull-up resistor The path between Vd->SC/RC/SI/SO is the interesting one. It would be interesting what you mean exactly with "they don't work correctly" - what is the effect? Are they not working at all (no LEDs enabled, no button event regognized), or do they behave randomly? Are LEDs even flickering, and/or do buttons trigger the wrong functions? Best Regards, Thorsten.
  14. Bin natuerlich auch dabei - den Kasten Bier nehme ich dann auch dankend entgegen! ;) Allerdings werde ich mit dem Auto kommen muessen, ansonsten bekomme ich meine Sachen nicht nach Pasing. Marco: verschickst Du noch die Adresse via PM? Uhrzeit: 15 Uhr? Gruss, Thorsten.
  15. You probably mean LM385-Z2,5, it's a voltage reference and looks like a transistor. Both transistors will work fine. 16V is sufficient, actually even a 5V type would be ok ;) Best Regards, Thorsten.
  16. Beta31 is available now: MIDIboxSEQ V4.0beta31 ~~~~~~~~~~~~~~~~~~~~~ o a powerful session import/export function has been added. It allows you to copy one or multiple patterns to any session location. Both functions are available in the Utility->Disk page o "Save as.." shows the current session name as default name [/code] Snapshot of the new pages: and and I really missed this! :) Best Regards, Thorsten.
  17. yes, I could simply add a range, but this also means that I will have to restructure the CV configuration page which is a bit time consuming :-/ If you want to change all patterns at once, just use the Phrase feature (-> song page) It allows you to predefine 16 sets of patterns (but also mutes, tempos, mixer pages, etc) and to "fire" them with the GP buttons. Best Regards, Thorsten.
  18. It is impossible as the PIC18F84 has no internal UART Best Regards, Thorsten.
  19. I tried this some time ago, but it was too complicated. Especially gsim didn't behave like expected, so that I gave up! :-( I'm not able to try MPLAB as it doesn't run on a Mac, but as mentioned before: the setup will be very complicated! Best Regards, Thorsten.
  20. There are already available applications which use OSC, such as: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fexamples%2Fethernet%2Fosc%2F and http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fmisc%2Fusb_osc_midi_cv_proxy%2F I also started a documentation (for MBSEQ V4, but it's valid for other OSC applications as well): http://www.ucapps.de/midibox_seq_manual_osc.html Note that your friend is wrong, OSC isn't more low-cost (performance and pricewise) Best Regards, Thorsten.
  21. In USER_MPROC_NotifyReceivedEvent you could check if the CC has been received and set all J5 outputs to 0 in this case. It might be easier for you to implement this in C Best Regards, Thorsten.
  22. TK.

    Meeblip

    Note that sammichSID is already a fully hackable DIY synth, it's open source, it's easy to build. So, the idea itself isn't really new, although some websites (which mostly take Arduino based designs as basis) promote this as something new and special... We go this way since more than 10 years. ;) A digital STM32 based synth in a sammichBox would be nice of course! :) Best Regards, Thorsten.
  23. It would be better to add a second core for such a purpose, because the original MBSEQ V4 application has no free pins for that. So: just use a second STM32 which scans and converts the 96 analog inputs and passes it to the second core via MIDI. Best Regards, Thorsten.
  24. Very nice tune indeed! Blogged :) Best Regards, Thorsten.
  25. Please also ensure that the Mono switch is not enabled in your ensemble setup. See also: http://www.ucapps.de/midibox_sid_manual_e.html The drum patches are made for 6 oscillators (stereo setup), with Mono switch enabled they cannot be played correctly as only 3 oscillators are available. Best Regards, Thorsten.
×
×
  • Create New...