-
Posts
15,247 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
After reading the specs it seems that this could be the brain of a future MBHP_CORE_xxx module :) Adapting MIOS32 to this platform won't be so much effort, and there are enough IOs available to connect commonly used hardware extensions (DIN/DOUT/LCDs/AIN via SPI/AOUTs - even MIDI could be made available via the "debug console" UART) Accordingly a migration of MBSEQ V4 is feasible. Graphical extensions will be available for free, e.g. to visualize sequences on a huge TV screen in HD resolution (I already see Hawkeyes smiling face ;-)) In addition it seems that it has some nice interfaces for Audio, and an integrated DSP. Best Regards, Thorsten.
-
Ich bin mir nicht sicher, ob ich hier etwas uebersehe, oder ob es etwas aehnliches schon gibt - nur eben ein wenig anders. Anstatt: Wuerde ich wie folgt vorgehen: ich habe mir eine schoene grundlage gebastelt MENU+SAVE, jetzt speichere ich das pattern schnell in die A1/A2/A3/A4/A5/A6/A7 slots (Nomenklatur entspricht der in V4 gebraeuchlichen Schreibweise, Du definierst die Buchstaben anders) in der Pattern page stelle ich mir meine Pattern fuer die 4 Track-Gruppen zusammen Song Page, Position anwaehlen, Snapshot vom aktuellen Patternset machen, optional Loopcounter erhoehen nun optional mit copy&paste die Patternsets in die nachfolgenden Songpositionen kopieren. wenn ich nun an A2 editiere, und es spielen moechte, dann trage ich es einfach in die entsprechende Songposition ein (habe mir die Liste ja mal schnell vorbereitet) Gruss, Thorsten.
-
yes - the echo will start once the delayed note is triggered like an audio echo. :) Classical buffer overrun, the fix is now available in the repository. I also integrated a new footswitch extension implemented by Midilab which allows to enable live record mode from any page, delete a track by tapping on the switch, and more (in future) Best Regards, Thorsten.
-
I've committed the changes into the repository for beta testers! :) Personally I will prefer to use DATAWHEEL_MODE_SCROLL_CURSOR, therefore it's default. Following modes are available: const char datawheel_mode_str[DATAWHEEL_MODE_NUM][11] = { " Cursor ", " StepView ", " Value ", " ParLayer ", " TrgLayer ", }; [/code] The mode can be selected by pressing SELECT + GP7 (decrement) or GP8 (increment) Note that the Up/Down buttons of Wilba's CS have the same function which is assigned to the datawheel. Best Regards, Thorsten.
-
It works at my side, and I'm sure that it was also working before, as I use this combination in many of my own tracks :) Or do you mean, that echoed events should take care about the groove? Thats impossible. We could use it for both: scrolling the cursor and switching to the next page if the cursor reached the boundary. This would be the most perfect usage, as in most cases the page wouldn't be switched immediately if you move the datawheel (e.g. by accident) Best Regards, Thorsten.
-
You forgot to mention the important detail that you are trying to compile the code for MIOS32... MIOS_ENC_TABLE isn't supported anymore, instead encoders have to be installed with the MIOS32_ENC_ConfigSet() function. See also: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Ftutorials%2F014_enc_relative%2F (especially README.txt and app.c) In order to assign the encoders to SR6/SR7 (as in your table), write: // initialize rotary encoders of the same type (DETENTED2) int enc; for(enc=0; enc<NUM_ENCODERS; ++enc) { u8 pin_sr = enc >> 2; // each DIN SR has 4 encoders connected pin_sr += 6; // because Sparx connected the first encoders to SR6..SR7 u8 pin_pos = (enc & 0x3) << 1; // Pin position of first ENC channel: either 0, 2, 4 or 6 mios32_enc_config_t enc_config = MIOS32_ENC_ConfigGet(enc); enc_config.cfg.type = DETENTED2; // see mios32_enc.h for available types enc_config.cfg.sr = pin_sr; enc_config.cfg.pos = pin_pos; enc_config.cfg.speed = NORMAL; enc_config.cfg.speed_par = 0; MIOS32_ENC_ConfigSet(enc, enc_config); } [/code] More MIOS32 programming examples can be found under: http://www.ucapps.de/mios32_c.html Don't mix them with MIOS8 examples. Best Regards, Thorsten.
-
yes, Kicad files will be provided once we've finalized the layout, and it has two layers. Best Regards, Thorsten.
-
Could it be, that two (or more) BankSticks are assigned to the same CS configuration, so that they can't be addressed anymore? Best Regards, Thorsten.
-
Happy Birthday, Alter! :smile:
-
Unfortunately this won't be possible, because each track has only a single length layer. The whole MIDI event handling is based on this (e.g. to handle special cases correctly, such as notes which are longer than a step, or sustain flag enabled), so that I don't see a solution to solve this without writing a completely different sequencer engine (with limited edit capabilities). Note that this is the reason why common MIDI sequencers (like Yamaha RM* or Korg Electribes) are so inflexible in step processing, because they store sequences in a stream based format where every note has an individual length, but where it's almost impossible to change the track direction, or to repeat a step, etc... without consuming a lot of CPU power. In fact some time ago I hacked a stream based track mode into the firmware, but never released it since some existing features wouldn't work anymore, and since the required changes in the editor would take too much effort. Meanwhile the code has been removed... Note: you could use the integrated MIDI file player if you only want to playback such a sequence which has been edited on your software sequencer. I already considered this possibility, and I think that I should even enable it by default (behaviour could be changed by pressing SELECT button and switching an option) Another option could be to use the datawheel for switching between parameter and trigger layers (especially useful in drum mode). Since I'm not the only one anymore who misses this quick navigation capability, it will be added soon! :) Best Regards, Thorsten.
-
For me it's normally faster to implement it into the firmware than explaining somebody who never programmed in assembly language before how to get it working. So, you are asking me to do the work, right? Would it be ok to use a single button to select the arpeggiator mode? Best Regards, Thorsten.
-
yes, of course! :) Best Regards, Thorsten.
-
Hallo, es fehlt der Hinweis an MIOS, wann der Stream beginnt, und wann er zuende ist - ohne diese "Markierung" (dass hierbei F9 und FA gesendet wird, hast Du ja bereits gemerkt) wird das Event am Endpoint gefiltert. Das Tunneln sollte wie folgt funktionieren: void ENC_NotifyChange(unsigned char encoder, char incrementer) __wparam { MIOS_MIDI_BeginStream(); MIOS_MIDI_TxBufferPut(0xb0); // CC at MIDI Channel #1 MIOS_MIDI_TxBufferPut(0x20 + encoder); // CC# is 0x10 (16) for first encoder MIOS_MIDI_TxBufferPut((0x40 + incrementer) & 0x7f); MIOS_MIDI_EndStream(); } [/code] Gruss, Thorsten.
-
In this code I saved some RAM by storing the toggle state (which you are storing in "st40") in individual bits of a byte. In order to store 128 flags, I'm using 16 bytes in an array... However, as long as you don't need more than 32 flags, the implementation could also be done with the "u32" variable type: Declare it globally as: u32 toggle_flags; [/code] Assumed, that the flag number which should be changed is stored in the variable "flag" (or "pin"), you can now set the flag with: [code] toggle_flags |= (1 << flag); and clear it with: toggle_flags &= ~(1 << flag); [/code] and you can use following expression to check if the flag is set: [code] if( toggle_flags & (1 << flag) ) { // flag set } else { // flag cleared } or if you want to store the result, write: u8 flag_set = (toggle_flags & (1 << flag)) ? 1 : 0; [/code] Best Regards, Thorsten.
-
To be honest: I never tried this function on the LPC17xx variant of the USB driver due to bad experiences that I made with the STM32 variant, which implements Virtual COM and USB MIDI correctly. The parallel usage of both protocols is only possible under Linux (tested ca. 2 years ago, I'm unsure if it's still working) and MacOS 10.5..7 WinXP crashed with blue screen, I haven't tried it on Vista or Win7. Due to the (extremely) fast USB MIDI handling, and due to the possibility to embed strings into SysEx streams (thats what I'm doing to communicate with the MIOS Terminal), I don't see a need for the virtual COM feature anymore. Meanwhile I consider to remove it from the driver. Best Regards, Thorsten.
-
The height of the (soldered) transistors is 6mm (almost the same as for the LEDs), whereas the height of the buttons is 9.5mm This means, that the 2mm acryl panel will sit on the top of transistors, LEDs will be under the (transparent) panel. Christian will continue to work on this once he's back from vacation. Best Regards, Thorsten.
-
I do agree that the PCB could also be used for other projects, especially since an isolated driver is available (blm_cheapo). Link to usage example The size is 25x10 cm, it fits over the MBHP_CORE_LPC17 module if two 18mm spacers (-> 36mm) are used. Advantage of this size: there is no need to cut the LPC-Link interface Best Regards, Thorsten.
-
I'm starting a bulk order for frontpanel PCBs of the MIDIbox SEQ V4 Lite project: http://www.ucapps.de/midibox_seq_lite.html Please add your name and desired quantity to the list if you are interested: http://www.midibox.org/dokuwiki/doku.php?id=tk_mbseqv4l_pcb_bulk_order The estimated price is ca. 10..20 EUR, depending on the quantity. I will order the PCBs end of november, so that you should receive them before christmas! :smile: Update: Again some good news: Due to the high demand I decided to hand over the bulk order to Tim aka. SmashTV! This has some advantages: I give it into the hands of a professional (he already improved the Gerber Files! :) ) you can order the MBHP_CORE_LPC17 and MBSEQV4L FrontPanel PCB from a single source you will be able to order the PCBs from the Low Value Order Page Shipping costs to Europe (e.g. Germany): ca. 5 EUR PCBs will be available by end of november Long-Term availability of both PCBs! All people who have already added their name to the bulk order list will be informed via PM once the PCBs are available. Therefore it still makes sense to enter your name if you are interested. Best Regards, Thorsten. Best Regards, Thorsten.
-
I'm happy to announce the official release of MIDIbox SEQ V4 Lite! :smile: Please find the documentation + some demo samples under: http://www.ucapps.de/midibox_seq_lite.html Discussion about new features, bug reports, release notifications here: Frontpanel PCB Bulk order: Best Regards, Thorsten.
-
no problem It should work with these parts Yes, it will work without SD Card, just the boot time is a bit longer, but all buttons/LEDs are configured correctly by default. Release will be today (once I've finished the documentation :)) A kit won't be available, because the handling would be too time consuming. I will give a list of required parts and possible webshops. There will only be a bulk order for the Frontpanel PCB (not for the acryl case, because it can be ordered directly - this also gives you the chance to customize the case) Best Regards, Thorsten.
-
Thanks for reporting this! MIDI IN wasn't working due to a stupid copy&paste error in the MIOS32 driver (seems that I need an automated regression ;-)) MIDIboxSEQ V4.053 ~~~~~~~~~~~~~~~~~ o bugfix: MIDI IN ports are working again on MBHP_CORE_STM32 build [/code] The error message is probably caused by a syntax error in your MBSEQ_HW.V4 file. Could you please send me the file for further analysis? Best Regards, Thorsten.
-
The first public release V4L.052 is now available in the MIOS32 Download section. Next weekend I will have some time to write the documentation and to publish some samples (I already prepared some) The application is running pretty stable and I already had a lot of fun with it! E.g. yesterday I was trying it with a Vintage Synth (Prophet5) and Korg Electribe from a friend and immediately got some nice sequences that we never heard before! :) An important note: if no SD Card is connected, the application will hang for the first 5 seconds (to search for the SD Card) Once a SD Card is connected the first time, a directory will be created under /SESSIONS/DEF_V4L and pattern banks will be generated. This takes some seconds (ca. 20..30 seconds depending on the performance of your SD Card) - the LEDs will show a status bar, and the MIOS Terminal will show some messages. Please don't switch off the MIDIbox until this process is finished. Once the default session has been created, your MBSEQV4L will be available immediately ca. 1 second after power-on, considered that the "fastboot" option has been enabled in MIOS32 Bootloader. Another important note: most MIDI Fx only work well with Force-To-Scale enabled. Press & Hold the Scale button to select the scale (e.g. SCALE+#8 for Pentatonic Major), thereafter release the Scale button to select the root node (e.g. #1 for C, #2 for C#2, #3 for D, etc...) This will be properly documented under http://www.ucapps.de/midibox_seq_lite.html of course! ;-) Best Regards, Thorsten.
-
MBSEQ V4.052 is available now: MIDIboxSEQ V4.052 ~~~~~~~~~~~~~~~~~ o bugfix: CC values were influenced when they were displayed on the edit page o Hawkeye fixed the BPM/STEP digits output and added a "TPD" (track position display) option for those who like to add more blink to their MIDIbox! [/code] Hawkeye: you might want to make your latest video public so that people can see how the TPD is working :) Best Regards, Thorsten.
-
To be honest: I can fully understand this spamming. There are so many good apps available, but it's really hard to find the gems in Apple's iTunes store. E.g. the app mentioned by Wilba looks very interesting, it seems that a lot of work went into it - but I never saw it before. Does it make sense to start a thread where we list our (MIDI/music related) favorite apps? Best Regards, Thorsten.
-
Hi Per, the checksum is calculated over the data part only (256 bytes) Calculation (pseudo code): // data block is located in data[] array // create sysex string: Array<uint8> sysEx; sysEx.add(0xf0); sysEx.add(0x00); sysEx.add(0x00); sysEx.add(0x7e); sysEx.add(0x49); sysEx.add(deviceNumber); sysEx.add(0x02); sysEx.add(type); sysEx.add(bank); sysEx.add(patch); uint8 checksum = 0x00; for(int i=0; i<256; ++i) { uint8 b = data[i]; sysEx.add(b); checksum += b; } sysEx.add(-(int)checksum & 0x7f); // 7bit !!! sysEx.add(0xf7); [/code] Best Regards, Thorsten.