Jump to content

TK.

Administrators
  • Posts

    15,247
  • Joined

Everything posted by TK.

  1. Thanks! :) I've to upload a new version, as there was a mistake in the mix (bassline too loud) - I noticed this while listening the video on YouTube. Sorry - but hey, it's a teaser ;) /Edit: updated the link Best Regards, Thorsten.
  2. Demonstration of an early alpha version of the upcoming MIDIbox SEQ V4. Stereo Version at Vimeo Many planned features are not available yet. However, most functions of MBSEQ V3 have already been re-implemented in C for the new MBHP_CORE_STM32 module and for an accurate PC/Mac based emulation. I also started to add new functions which were too complex for the old PIC based core. [0:00] new frontpanel designed by Wilba (but the firmware will also support the frontpanel of MBSEQ V2 and V3) [0:02] a drum track can play up to 16 instruments [0:10] patterns are stored on a SD card now, and can be loaded (and stored) w/o sequencer hickups [0:18] zoomed step view (shows 64, 128, 256 steps on a single page) [0:10] snare is triggered with the overworked (more flexible) roll function at 384ppqn resolution [0:20] new pattern selection page with pattern labels and categories [0:23] MIDIbox SID V2 in bassline mode [0:30] Roll function used on the bassline [0:38] a loopback track controls the transposer, it doesn't matter anymore at which position this track is located [0:53] Piano controlled from a track in chord mode [1:13] some randomly selected chords [1:24] simple synth line [1:45] now with MIDI echo in Force-to-Scale mode (synth is in mono mode, therefore only one sound will be played - it sounds like an arpeggio) [2:14] a second MIDIbox SID bassline is played [2:43] slowly muting the tracks [3:00] thanks for listening! :-) This track has been made in a 2 hours session on a sunday afternoon after the last blocking bugs have been fixed Best Regards, Thorsten.
  3. available at YouTube and Vimeo in ca. 1 hour :)
  4. 1..24 was required for 96 ppqn with MBSEQ V4 we have 384 ppqn, accordingly the length is 1..96 for a single step (higher resolution) Best Regards, Thorsten.
  5. Danke fuer den Input - etwas anderes haette ich mir auch nicht vorstellen koennen. Ich habe das Interface in die Blacklist eingetragen Gruss, Thorsten.
  6. To give you some impressions (pictures taken from emulation, but it already works on the real HW as well): Drum Edit Page: Step View selection with zoom function (64 steps): Step View selection with zoom function (256 steps): (unfortunately, due to the LCD limitation of 8 special chars, only 15 of 16 dots (gate triggers) can be displayed per stepview) Trigger View selection: Now it's time to implement a 16x16 BLM for the emulation ;) Best Regards, Thorsten.
  7. yes, because 2 * 16 * 64 = 2048 bytes, but only 1024 bytes (per track) are reserved for parameters (for various reasons) Just use two tracks with 8 instruments each, it doesn't make a big difference (in distance: it gives you more flexibility when defining direction/progression parameters) You won't be able to send CCs on drum tracks, since CCs are channel based, but drum instruments are note based. Thats the MIDI protocol. Instead, you would either control a sound parameter via velocity (if your drum machine allows this, e.g. it's supported by MBSID), or you would send the CCs from another track within the same pattern. You can comfortably switch between the drum and CC track with the track button - in fact, if you wouldn't know that these are different tracks, you wouldn't see a difference. Or you would use a common track with 4, 8 or 16 parameter layers, and control the drums which really require sound parameter changes from there. If you would like to send two notes, just use two trigger layers Btw.: I noticed, that a drum track is nice to play polyphonic sequences with up to 16 predefined notes (scale) on a synth as well. :) This means: "Drum" track doesn't mean, that you can only play drums and "Note" track doesn't mean, that you cannot play drums from there... Basically the track type only defines, how MIDI events are generated and edited. Best Regards, Thorsten.
  8. Alternatively to StrydOne's vX (which is the most flexible solution of course), you could simply use the MBSIDV2 firmware, and output the modulation path values via MIDI. The easiest solution would be to write a special "AOUT" driver, which outputs MIDI instead of accessing the AOUT module. MBSID V2 has some nice integrated sequencers as well (e.g. wavetable or bassline), and beside of LFO you can realize portamento, ADDSRR envelopes, mathematical operations, Sample&Hold, etc. as well - and all this synchronized to the MIDI clock, with an already available user interface, and with an already available SysEx editor. Best Regards, Thorsten.
  9. I simplified the layer configuration concept to a minimum of userful possibilities, because I fear that more variations will only confuse you, and disturb the workflow. My questions (please read the black code box in previous posting): - Note/Chord/CC mode: is any useful layer parameter option (like Notes/Velocity/Length/Base Note/CC/Pitch Bender/Loopback/Delay/Probability) missing? - drum mode: does anybody really see the need for more variations, e.g. 4 parameter layers with 64 steps, if only 8 drum instruments are played per track? (I think: no) Note that the actual track length can be configured separately (like before) - "number of steps" means the maximum track length, taken as constraint for segmenting the track memory Best Regards, Thorsten.
  10. You can create so many presets as you want by storing them into a special bank, and copy over to the pattern or track you want to edit. Patterns in a bank get a category (5 characters) and name (15 characters). There are some presets (under construction), but these are soft-presets which you can easily edit by entering the characters directly in the SAVE page. Current preset names (under construction - they will be read from a .txt file later) const char preset_categories[][6] = { " ", "Synth", "Bass ", "Drums", "Break", "MBSID", "MBFM ", "Ctrl" }; const char preset_labels[][16] = { " ", "Vintage ", "Synthline ", "Bassline ", "Pads ", "Lovely Arps ", "Electr. Drums ", "Heavy Beats ", "Simple Beats ", "CC Tracks ", "Experiments ", "Live Played ", "Transposer " }; [/code] Screen of the "save" page: [code] // layout: // 00000000001111111111222222222233333333330000000000111111111122222222223333333333 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 // <--------------------------------------><--------------------------------------> // Grp. Save Pattern to Target Category: xxxxx Label: xxxxxxxxxxxxxxx // G1 (Track 11-11)/1:A1 -> 1:A1 Char Cur Ins Clr Undo Presets SAVE Overworked screen of the pattern selection page: // layout: // 00000000001111111111222222222233333333330000000000111111111122222222223333333333 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 // <--------------------------------------><--------------------------------------> // G1: xxxxxxxxxxxxxxx G2: xxxxxxxxxxxxxxxG3: xxxxxxxxxxxxxxx G4: xxxxxxxxxxxxxxx // >>> xxxxx 1:A1 ____ xxxxx 2:A1 ____ xxxxx 3:A1 ____ xxxxx 4:A1 ____ [/code] Example pattern selection: [code] // 00000000001111111111222222222233333333330000000000111111111122222222223333333333 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 // <--------------------------------------><--------------------------------------> // G1: Breakbeats 2 G2: Lovely Arps 5 G3: My fav.Bassline G4: Transposer Emaj // >>> Drums 1:B2 ____ Synth 2:A5 ____ Bass 3:B1 ____ Ctrl 4:C1 ____ Best Regards, Thorsten.
  11. No, each track can be configured to control 16 drums, means: yes, you could control 256 drums at the same time. Note that drum assignments are part of the pattern. This means: you can change the instruments by selecting a different pattern. And: a pattern consists of 4 tracks (= up to 64 drum instruments, or 16 drums + 2 basslines + 1 pad line, or ... or... or...) And: 4 patterns + a MIDI file can be played in parallel So - at the end I must say, I cannot really give you a sufficient answer for your question ;) 80 characters are reserved for each track to store labels. On common tracks, we take only 5 characters to select a "category" (e.g. Lead, Pad, Fx, ...), and 15 additional characters to name the instrument (e.g. "MIDIbox SID" or track type ("Lovely Arps"). Using more characters doesn't make much sense here, just keep in mind that we want to display it somehow on a 2*40x2 LCD together with other informations. Drum tracks will take 5 characters per instrument. This is especially useful if you select a drum layer (16*5 characters can be displayed at the upper line of the 2*40x2 screen) Btw.: here my current plans how to configure track constraints in the "Event" page. Please compare with the "Track Event Page" of MBSEQ V3 Targets: easy configuration limited to a set of parameters which really make sense to be controlled from a single track - you can always use additional tracks to send more events to the same channel/MIDI port if required. This usually results into more interesting sequences anyhow. E.g., use Track #1 to trigger 16 drums, use track #2 to change drum sounds via CCs, and run the two tracks with different lengths, step direction/progression parameters, clock dividers, etc... This quickly results into a complex pattern which will never repeat in 2..3 minutes, especially if you are changing the parameters while the sequence is playing. Use the remaining 14 tracks for other useful stuff - e.g. loopback to Track #1 and #2 to automate parameter changes ;) // layout: // 00000000001111111111222222222233333333330000000000111111111122222222223333333333 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 // <--------------------------------------><--------------------------------------> // Trk. Type Steps/ParL/TrgL Port Chn. Layer controls Edit // G1T1 Note 256 4 8 IIC2 12 D Prob Name INIT // Trk. Type Steps/ParL/TrgL Port Chn. Layer controls Edit // G1T1 Note 256 4 8 IIC2 12 D CC #001 ModWheel Name INIT // Track Type "Note", Chord" and "CC": // Note: Parameter Layer A/B/C statically assigned to Note Number/Velocity/Length // Parameter Layer D..P can be mapped to // - additional Notes (e.g. for poly recording) // - Base note (directly forwarded to Transposer, e.g. for Force-to-Scale or Chords) // - CC (Number 000..127 assignable, GM controller name will be displayed) // - Pitch Bender // - Loopback (Number 000..127 assignable, name will be displayed) // - Delay (+/- 96 ticks @384 ppqn) // - Probability (100%..0%) // - "Roll/Flam Effect" (a selection of up to 128 different effects selectable for each step separately) // Chord: same like Note, but predefined Chords will be played // CC: Layer A/B/C play CCs (or other parameters) as well - no note number, no velocity, no length // Available Layer Constraints (Partitioning for 1024 bytes Par. memory, 2048 bits Trg. memory) // - 256 Steps with 4 Parameter Layers A-D and 8 Trigger Layers A-H // - 128 Steps with 8 Parameter Layers A-H and 8 Trigger Layers A-H // - 64 Steps with 16 Parameter Layers A-P and 8 Trigger Layers A-H // layout: // 00000000001111111111222222222233333333330000000000111111111122222222223333333333 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 // <--------------------------------------><--------------------------------------> // Trk. Type StepsP/T Drums Port Chn. Glb LayA LayB Drum Note VelN VelA Edit // G1T1 Drum (64/2*64) 16 USB1 10 yes Prb. ---- BD C-1 100 127 Name INIT // Trk. Type StepsP/T Drums Port Chn. Glb LayA LayB Drum Note VelN VelA Edit // G1T1 Drum (2*64/256) 8 USB1 12 no Vel. Len. SD D-1 --- --- Name INIT // Track Type "Drums": // 1 or 2 parameter layers for each trigger layer (drum instrument). // If parameters layers consist of more than 1024 steps in total, steps > 1024 will be mirrored // assignable to Velocity/Gatelength/Delay/Probability/Roll/Flam only // (no CC, no Pitch Bender, no Loopback, as they don't work note-wise, but // only channel wise // just send them from a different track) // Each drum instrument provides 4 constant parameters for: // - Note Number // - MIDI Channel (1-16) - optionally, we can select a "local" channel definition for the instrument // - Velocity Normal (if not taken from Parameter Layer) // - Velocity Accented (if not taken from Parameter Layer) // Available Layer Constraints (Partitioning for 1024 bytes Par. memory, 2048 bits Trg. memory) // - 16 Parameter Layers with 64 steps and 2*16 Trigger Layers A-P with 64 steps taken for Gate and Accent // - 2*16 Parameter Layer with 32 steps and 16 Trigger Layers A-P with 128 steps taken for Gate // - 8 Parameter Layer with 128 steps and 2*8 Trigger Layers A-P with 128 steps taken for Gate and Accent // - 2*8 Parameter Layer with 64 steps and 8 Trigger Layers A-P with 256 steps taken for Gate [/code] Best Regards, Thorsten. /Edit: simplified drum mode partitionation Layer Button assignments in edit page: Trigger Layer A: select Gate, Trigger Layer B: select Accent, Trigger Layer C: select drum instrument with GP buttons (alternatively use Datawheel or Up/Down button to select instrument) /Edit2: simplified again - this is really a concept in progress
  12. Der Bootloader meldet einen Overrun error, das deutet auf eine (hardwaremaessige) Feedback Loop hin. Vielleicht ist es auch ein Problem mit dem MIDI Interface - welches verwendest Du? Gruss, Thorsten.
  13. Mit den PICs wirst Du diese Performance nicht hinbekommen - viele Applikationen - wie bspw. MBSID/FM/SEQ - leben von der relativ niedrigen Baudrate, und wuerden schnell in einen Buffer Overflow reinlaufen, wenn die Daten schneller uebertragen wuerden. GM5 supported nur die normale Baudrate - hier koennten u.U aehnliche Probleme auftreten, da 4 IOs ja softwaremaessig emuliert werden. Der neue STM32 Core hat bereits einen integrierten USB Port - der wird so schnell bedient, dass die Bandbreite hauptsaechlich vom Host (PC/Mac) vorgegeben wird. Ich halte den Turbo-MIDI eher fuer einen Marketing-Gag ohne Relevanz fuer die Allgemeinheit (und schon gar nicht fuer MIDIbox Projekte). Man haette auch einfach einen USB Port spendieren koennen, der hat den Vorteil, dass eine echte Datenflusskontrolle stattfindet, die mit UART basierendem MIDI nicht moeglich ist. Gruss, Thorsten.
  14. I will check this soon. What is the setting of the HOLD and SORT flag? Best Regards, Thorsten.
  15. TK.

    Record CC??

    You have to assign parameters to Knob functions, they can be recorded. For an alternative CC mapping, see this discussion: http://www.midibox.org/forum/index.php/topic,12774.0.html Best Regards, Thorsten.
  16. Really well done - not only technical-wise (e.g. the voice-over), but also sound-wise. I especially like how you combine MBSEQ with other sequencers. IMHO this results into a much better workflow than playing everything from the MBSEQ, as every sequencer has it's own strengths and optimized user interface (e.g. it's much easier to setup sample loops in ableton than triggering the samples from MBSEQ) And I realized, that I've to add new features to MBSEQ V4 very carefully to ensure, that you can still operate so quickly with your fingers like demonstrated in this video! :) Best Regards, Thorsten.
  17. J2 ist fuer die direkte Einspeisung von 5V vorgesehen. Hier befindet sich bspw. der zentrale Massepunkt. Ja, den Gleichrichter kannst Du ebenfalls weglassen. Gruss, Thorsten.
  18. Hallo Andreas, ist das wirklich der Upload Request, oder hast Du Dich bei den Hex-Werten vertan? Verwendest Du die aktuelle MIOS Studio Version? Aeltere Versionen (7.4 und aelter) konnten den oberen Speicherbereich des PIC18F4620 nicht adressieren, deshalb wurde die Firmware evtl. nur zur Haelfte aufgeladen. Gruss, Thorsten.
  19. Ok, you asked for the changes: RC27: o Super Poly voice queue now handled centrally from master. Slaves notes are triggered via MBNet o SPV value now changed simultaneously for all slaves It can only be changed if master SID selected o PLAY button now plays a chord in superpoly mode o Mod matrix changes forwarded to all selected SIDs [/code] Don't forget to update the firmware on the slave cores as well! Please note: while we previously had an asynchronous voice handling with the risk for inconsistencies, we now have a central voice handling with the risk that the master has to wait too long for a slave (depending on the SID engine load), so that a MIDI IN buffer overflow could happen. The PIC just hasn't enough memory for preemptive multitasking, which would easily solve such issues... However, so long the master doesn't receive MIDI Notes back-to-back over a period of more than ca. 20 mS, it should work properly. If you notice hanging notes, press the PLAY button to reset the voice queue. Now I would like to see a full bank of new patches provided by users! :) Best Regards, Thorsten.
  20. TK.

    MIDIbox SEQ V3.4

    And it doesn't fit my programming style! ;-) Open cs_menu.inc, search for the keyword "DIRTY DIRTY DIRTY", and remove everything between BEGIN and END marker Best Regards, Thorsten.
  21. confirmed (although I don't know, why it isn't working as intented anymore - it worked in earlier versions) confirmed - it happens due to a MIDI In buffer overrun at the slave side while a patch is transfered via CAN. I cannot provide a fix for such issues under PIC based MIOS. The whole RAM is allocated, no place to enlarge the MIDI In buffer (64 bytes can only bridge 20 mS) We've two solutions: either I provide a workaround (Re-init voice allocation after a patch change on any SID, or by pushing a special button), or I have to cancel this experimental feature, as it doesn't work under all conditions and leads to a lot of support effort at my side. I already spent too much time to fix issues here and there although I knew that it's only a tinkering solution to try out, how 4 stereo SIDs would sound while they are played poly. I will be more careful in future before publishing such experiments. It will definitely work properly with a MIOS32 based solutions, as FreeRTOS provides such nice features like preemptive multitasking and Mutex for a proper synchronisation between tasks. Best Regards, Thorsten.
  22. TK.

    MIDIbox SEQ V3.4

    Thanks for testing! MIDIbox SEQ V3.4a is available now Best Regards, Thorsten.
  23. Ok, I added simultaneous Mute changes and the initial cursor pos change in Song page (on an extremely dirty way, otherwise too many critical changes are required) I don't feel motivated to add the other feature requests in the old MBSEQ V3 firmware, as it would cost me another evening (not considered, that I probably have to spend a second evening to free some memory, which will lead to new bugs, etc.)... For comparison: in MBSEQ V4 I can integrate such improvements within 10..20 minutes. Thanks for your understanding Best Regards, Thorsten.
  24. Here a MIOS32 based MIDI file player, which plays .mid files from a SD card: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fexamples%2Fsequencer%2Fmid_player_sd%2F All you need to do is to add a Tx Callback, parse for the relevant events (e.g. Notes and CCs) and forward them to the lights: ///////////////////////////////////////////////////////////////////////////// // Installed via MIDI Tx Notificaton hook, called when a MIDI event should be sent ///////////////////////////////////////////////////////////////////////////// s32 MyMIDIOutSniffer(mios32_midi_port_t port, mios32_midi_package_t package) { if( port == USB0 && (package.event == NoteOn || package.event == NoteOff) ) { int light_on = package.event == NoteOn && package.velocity > 0; // filter here channel and note number to select a light... } return 0; } [/code] I've no tips for the best solution to control the lights... Best Regards, Thorsten.
  25. Did you update the firmware for all slaves? Once this firmware is booting, and the version number is displayed, press&hold the MENU button of your Control Surface to "clone" the new firmware to the slaves via CAN interface.[/code] Does it always happen for SID2 and SID3 only? How does it behave if you swap the PIC of SID2 with the PIC of SID4? Best Regards, Thorsten.
×
×
  • Create New...