-
Posts
15,198 -
Joined
Content Type
Profiles
Forums
Blogs
Gallery
Everything posted by TK.
-
To finish the endless USB discussions, I finally decided to realize a MBHP USB module based on the Cypress AN2131SC. This chip has some advantages compared to ready-made serial USB solutions: 8051 compatible (I already programmed some applications with 8051 derivatives some years ago) 2 UARTS (-> 2 MIDI INs, 2 MIDI OUTs) 8k internal SRAM - only a few number of external pins have to be connected; this reduces the probability for failures 2-stage bootstrap loader allows to transfer the firmware via USB to SRAM without the need for a EPROM or FLASH programmer no propritary USB solution, allows the implementation based on official USB-MIDI specs from http://www.usb.org therefore this module will run under Windows, Mac, Linux without a dedicated driver free development environment & good documentation Since this quarter the chip is available @ Reichelt for 10.50 EUR, therefore it's really a long-term solution In the US it is available @ Digi-Key for US $10.53 the whole module (components, plugs + PCB) will cost about 20 EUR can also be used as MIDI merger and processor, but further enhancements (mini MIDI controller or similar) are not planned from my side (the chip is too slow for such tasks, and MIOS is the better solution for this purpose) implementation in assembler and/or C, code will be published under GNU public license Disadvantage: it's a SMD chip. But this will not be my problem ;-) It has only 44 pins and the pitch is large enough for a common soldering iron with a small tip (="loetspitze") Mike wrote me that he is able to handle with the SMD size, so a PCB will be available once I've finished the firmware development. Best Regards, Thorsten.
-
Hi, I neither know the MC-505, nor the RPS function, but I can tell you that the step triggers are working on a very efficient way: you can trigger a single step with one of 16 buttons, the note(s) and controller(s) will be played exactly with the original parameters and length, and you can modify the values in this mode by using the pots. The main purpose of the PIC18F version will be to replace the PIC16F firmware. All PIC16 projects will be "phased out" on this way. However, the implementation will be easier to understand, the source code will be available under GNU public license and everybody will be free to reuse the sequencer engine for other control surfaces (303, 909 or whatever...) Best Regards, Thorsten. P.S.: lemonhorse: nice pictures! :)
-
I'm on leave until end of next week, so don't wait for my answers, help each other and don't let too much open questions here ;-) Best Regards, Thorsten.
-
Hi Lo, thats an imperfection in the PIC18F implementation which will be fixed with MIOS V1.2 --- problem: it takes a little bit longer to save values in a BankStick, as MIOS also verifies (read back & compare) the content. This enlarges the upload of new patches and can corrupt the data transfer. There are two possible workarounds: upload the whole bank twice (yes, this works! ;-)) or change the delay between the patch transfers directly in JSynth: synthdrivers/MIDIboxSID/MIDIboxSIDBankDriver.java, search for SlowSender.sendSysEx and increase the delay value from 500 to 750, go back into the root menu and compile the source with "javac synthdrivers/MIDIboxSID/MIDIboxSIDBankDriver.java" MIOS V1.2 will provide a "fast write" function without verify which will solve this problem Best Regards, Thorsten.
-
After exactly two years and a lot of beta versions, v1.00 of MIDIbox64seq is available now. This is the final version for the PIC16F chip --- the features are frozen, only bugfixes will be provided in the future. More features can be expected with the upcoming MIOS based implementation. :) References: Firmware: http://www.ucapps.de/midibox64seq/midibox64seq_v1_00.zip Introduction of the major menu functions http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=news;action=display;num=1035749682 Module connections: http://www.ucapps.de/mbhp/mbhp_midibox64seq.gif Button assignments: http://www.ucapps.de/mbhp/mbhp_dinx4_mb64seq.pdf Tutorial: will be provided after my holidays ;-) Compared to the last beta version, following functions are new: 32 buttons: since most people built a DINX4 module, 8 additional functional buttons are provided now: 4 "Mute Track" buttons, one "Menu Shortcut" button and Sequencer Start/Stop/Continue buttons. However, the box can still be used with 24 buttons only Menu Shortcut button: allows a quick access to all 16 menu pages - you don't want to miss it :) The available menu pages are listed here: http://www.ucapps.de/mbhp/mbhp_dinx4_mb64seq.pdf 128 Patterns: ...are available now with every BankStick. They are named from A1, A2, A3... A8... B1... to h8 Copy function: allows you to duplicate patterns Variable offset: allows you to set a global start point for all patterns BPM: internal clock or slave synced is now a global setting for all patterns Manual Trigger: stops the sequencer and allows you to trigger single steps manually with the general purpose buttons. It's usefull if you want to check or edit every single note Next Pattern: is a mighty function which allows you to create sequences of patterns. Also a repeat function is available (see below) Event config: the MIDI learn function has been replaced by a simple config menu for Note and Controller Events. Other events are not supported anymore (by the PIC16F version!) Some words to the pattern sequencer: the use of this feature could be a little bit unfamiliar at the first time, but in fact this is the easiest solution for live playing - and thats the main purpose of the MB64seq - it's no groovebox, but an analog style sequencer :). Here a usecase: select bank A1 and load preset 4 (N1/C1/C1/C1). Change the notes on the first track so that it sounds cool. Use track 2/3/4 to send controller events for different sound parameters of your synth (e.g CutOff, filter envelope decay, slide/portamento). Go into the copy menu and copy this pattern to A2, A3, A4, ... A8. Go into the "next pattern" menu, set the repeat value to 1, select Bank A1, set A1->A2, select Bank A2, set A2->A3, ... select Bank A8, set A8->A1 press the start button Now you will hear the sequence and you will be able to change the controllers in realtime. Changes will be recorded automatically. If the sequencer is running too fast for you, just slow down the BPM and make your changes without ruffle. Or go into the "manual trigger" mode and edit the steps there. Have fun! :) Best Regards, Thorsten.
-
Hi Cyril, which PCB are you using? If it is Greg's layout, take care for the DIN chain (must be terminated) and check the connections to the DOUT chain (other people reported problems as well, but after some time they got it running - just soldering errors or missed bridges). Just compare the PCB layout with the DINXx and DOUTXx schematics, this should help. Best Regards, Thorsten.
-
Hi Steve, yes, thats correct, you need Logic 5 or higher Best Regards, Thorsten.
-
Yes, really weird. Must be a problem with the bridge between pin 2 of the 74HC00 and the resistor... if not: exchange the IC by another 74HC00 to check if it still works Best Regards, Thorsten.
-
I'm not sure if this rotary encoder is really applicable for MIOS. The additional pins are not documented, maybe they are used for a push-button function (this would be great) or they are used in conjunction with another movement coding (thumb down) This is the webpage of the manufacturer http://www.nobleusa.com/ Unfortunately the datasheet of the SDE161PUB encoder is not freely available... Best Regards, Thorsten.
-
Hi Sephult, see also this thread http://www.midibox.org/cgi-bin/yabb/YaBB.cgi?board=concepts;action=display;num=1046190688 once I've ported the MB64SEQ to MIOS, it will be easy to reuse the sequencer engine also for other control surfaces. Best Regards, Thorsten.
-
Hi Dan, the "snap" mode allows a similar use like with motorfaders. However, the pots will not be moved automatically, but they won't send new values until the received target position has been reached. See also the MB64 tutorial for additional infos Best Regards, Thorsten.
-
Hi Pearl, ok, with the houston emulation it makes sense, as it controls the LED rings directly. The difference of the two code lines is not only the comment, but also the value which will be "or"ed to the LED pattern: 0x08 for the 12th LED, 0x80 for the 16th LED Best Regards, Thorsten.
-
Hi Richard, thanks for the nice words :) PWM works only with the pulse waveform, maybe you've selected saw or triangle, therefore you won't hear an effect Multitimbral: there is an undocumented feature which allows you to play the SID in this mode: when you look into the sid_presets.inc file, you will find three different MIDI channel settings named EEPROM_V1_CHANNEL, EPPROM_V2_CHANNEL, EEPROM_V3_CHANNEL. When you change the channels to different values, you are able to play the oscillators independently Have fun! :) Best Regards, Thorsten.
-
Hi Dan, currently I'm working (and testing :)) on the final PIC16F based MB64seq. I set some limits for this firmware so that a) it ever get finished, and b) I can save time & effort. So, outlook for the final PIC16F based firmware: 128 patterns per BankStick copy function for patterns steps can be triggered by buttons manually steps can be shifted syncable pattern switching sequences of patterns (A1->A2->A3->A4->A1->...) repeat function (*1, *2, *4, *8 ) MIDI Learn replaced by cheap & easy config submenu fixed button layout (means not customizable) fixed pot layout fixed LED layout (16 LEDs only) I made the layouts not customizable because the PIC16F version is mainly for existing PIC16F based Midiboxes. The MIOS based version will be much more flexible (e.g, up to 128 LEDs, much more buttons, also rotary encoders and graphical LCDs can be used, etc.) Finally my answer: if you require a special adaption for less pots, wait for the MIOS based firmware... :) MIDI Out LED: this is the wrong board for such questions. However, the LTC module is so small that I just only can suggest: check the wires! Best Regards, Thorsten.
-
Hi Rogic, you can just activate the toggle function of the MB64 for each button seperately, in this mode the LED will indicate the status. In this case the toggle function of Traktor should be deactivated! Meta events: for virtual instruments not interesting. Meta events are programmed sequences of MIDI data and useful for MIDI devices which are working with SysEx messages or similar. Best Regards, Thorsten.
-
If you don't want to change the data structure, you could use the min/max entry as 3th and 4th parameter. In midi.inc you have to remove the call to MIDI_GetPotValueAndScale and in your meta handler you have to write: FLASH_H 0 ; prepare flash pointer rlf POT_CTR, W ; (pot_ctr << 2) & 0x7e andlw 0x7e addlw 0x01 ; add 1 for the min/max entry FLASH_WL ; this is the low byte of the pointer call BANK_Read ; get flash entry thereafter the Min and Max value are in FLASH0 and FLASH1 and can be used for NRPN Release date for MB64 18F: currently absolutely unknown Best Regards, Thorsten.
-
You could change IFSET MIOS_PARAMETER1, 6, iorlw 0x08 ; set 12th (center) LED if bit 6 of received CC value is set to IFSET MIOS_PARAMETER1, 6, iorlw 0x80 ; set 16th (center) LED if bit 6 of received CC value is set but note that Logic/Cubase sends 12 different patterns only, therefore more than 11 LEDs doesn't really makes sense in a LC emulation. Best Regards, Thorsten.
-
I would prefer the slow one, so that peaks don't blow the fuse Best Regards, Thorsten.
-
Like everytime when I start to improve the MIDIbox64 SEQ firmware, also this time I was distracted by a nice sequence that I found during the tests of a new function. But only a special gimmick makes this sequence so vital as it can be heart in the mp3 example - my thought: hey, this could be interesting for the community, a starting point for exchanging tips & tricks in sound enhancements. The demo (SID Demo 10, mixed for headphones ;-)) http://www.midibox.org/midibox_sid/mbsid_demo10.mp3 So, my intention was to use three filtered audio delays in this setup: MB64SEQ+Keyboard ---[MIDI]--> SID ---[audio]--> Logic ---[VST]--> Compressor ---[VST]--> 3 filtered Delays --> Audio Out The filtered delays are VST effects, realized with Reaktor like shown here: (but I think that also common VST delays and VST filters could be used) Three different filters are selected: lowpass, highpass and bandpass. The cutoff frequency is modulated by a LFO (!) for an automatic varied timbre. Also the panning is modulated. The delay time depends on the BPM, factor: 1.5 for BP, 1 for HP, 2 for LP. The results: from 0:00 to 0:16 - just a phased bass as entry from 0:16 to 2:00 - a single SID + the delay effect is played, more and more notes fill the sequence from 2:00 to 2:17 - two SIDs (brass preset) with a VST chorus effect + dynamic filter, controlled by MB64SEQ from 2:17 to 2:50 - plus a second track which controls a single SID (+ the delay effect) from 2:50 to the end - the ultimate sequence w/ three SIDs (slightly detuned and tranposed) + the filtered delay effect, played by MB64SEQ + RM1x + Logic (drums are played by a RM1x groovebox, synced to MB64SEQ, strings played with an AN1x, bass with Reaktor SalEM1 VSTi, everything recorded and arranged with Logic) Ok, how about your favourite effects? :) Best Regards, Thorsten. P.S.: thanks to György Birki, the creator of the Reaktor based filter delay macro, which comes with the standard library - it's really a fine toy when you combine multiple instances :)
-
Hi Noskule, quick question: are you using the most recent version v1.01? Best Regards, Thorsten.
-
Hi Dan, incompatibility isn't an issue - the SID input is just an option which allows you to mix the oscillator outputs with an additionial audio source before it goes into the filter unit. It can result to nice effects :) Best Regards, Thorsten.
-
Hi Noskule, now you have to modify the "LED map" with the editor so that only the received status will be displayed. For the first shift register change it from "DIN SR #1 (Button ID #0-7)" to "MIDI Status rec. for Entry #0-7", for the second "DIN SR #2 (Button ID #8-15)" to "MIDI Status rec. for Entry #8-15", etc Best Regards, Thorsten.
-
Well, you could modify the meta event, so that the parameter value is taken from another pot, and you could also modify display_l.inc, so that a string depending on that pot position will be displayed. Sure, you could also define two meta events which decrement/increment the parameter as replacement for the "selection" pot. But all these solutions require a different data structure and therefore a new editor -> have fun with programming ;-) From my experience controlling synthesizers on this way isn't really ergonomic, parameters should be grouped and should be selectable from hierarchical menues. My suggestions can be found under Projects->SID->Control Surface, and as I wrote in the news section, a generic "MIDIbox TC" is planned with the same possibilities. Release: maybe in 6 months, when all current projects have been finished. Best Regards, Thorsten.
-
Hi Pearl, I don't have so much experience with transformers, but the circuit looks good (well balanced). To the seperate supply for the displays: should go to the backlights only (draws 100mA and more), and not to the general +5V input of the displays (draws just only ca. 1mA). On this way you will not run into trouble with the polarities. Motorfaders: 2 x LM317 have to be used for 16 faders due to the max rating of the LM317 (if you are using the original MF layout, you will do this anyhow). A power consumption of 1A per 8 faders is very common when you switch to a new song and all faders are moving to a new position. "Current too much": yes, thats the other side.... I would recomment fuses (buy 10 or 20 at once!). Best Regards, Thorsten.
-
Hi Dan, in far future I will provide a special mod for MIDIbox SID with a small amplifier and a panorama circuit (Mono In->Stereo Out), controllable via MIDI and Modulation Matrix. But in the meantime the only solution is to use 4 seperate audio outs or one stereo out (audio outs can be joined by using 10k resistors). I would prefer the first solution, as it allows you to mix the channels, to set the panorama, and not at least to attach EQs and effects seperately. Yes, you could realise a stereo input, too, but this really depends on your final circuit. Example: if you join SID1+2 for left channel and SID3+4 for right channel, the input of SID1 should be the L input, SID2: open, SID3: R input, SID4: open Or create two chains: Audio In L->SID1->SID2->Audio Out L Audio In R->SID3->SID4->Audio Out R But as I already wrote: I would prefer seperate outputs Best Regards, Thorsten.