Jump to content

MIDIbox SEQ V4 Release + Feedback


TK.
 Share

Recommended Posts

On 8-1-2017 at 10:07 PM, TK. said:

See core/seq_chord.c: up to 6 notes, up to 6 chars.
In the step display I will print the first 4 chars, this should be considered while naming the chords.
Yes, just provide the table in C format so that I can directly take over w/o translation

Best Regards, Thorsten.

Here you go. 108 to start with.   I realize it is a lot and I hope it is practical to work with.  Community suggestions welcome of course.

Some explanations about the chord names used:

  • chords with r, 1, 2,3 mean root position, 1st, 2nd, 3rd inversion, d3 or dr3 = drop 3, d5 or dr5 = drop5. top3 tp3 have octaved-up thirds.
  • things like gC, gE, gD, gG  are guitar voicings based on C, E, D, G chord shapes. Guitar players will know. Just try them arped with a pluck sound! 
  • things like g4, g5, g6 are complex guitar voicings with roots on 4th, 5th, 6th etc strings.  Mostly jazzed up guitar chords encyclopedia stuff.
  • occasional n4 and n5 are 4 note // 5 note versions of the chord.
  • Maj, Mj and M refer to major chords, m, min to minor, 7,9 etc to dominants
  • pwr5 and pwr8 are fat power chords without roots.

 

{{0,7,-1,-1,-1,-1}, 'pwr5'},
{{0,7,12,-1,-1,-1}, 'pwr8'},
{{0,4,7,-1,-1,-1}, 'Maj'},
{{4,7,12,-1,-1,-1}, 'M1inv'},
{{7,12,16,-1,-1,-1}, 'M2inv'},
{{4,12,19,-1,-1,-1}, 'drp3'},
{{7,12,16,-1,-1,-1}, 'drp5'},
{{0,7,16,-1,-1,-1}, 'top3'},
{{0,4,7,12,16,-1}, 'MgC'},
{{0,7,12,16,-1,-1}, 'MgD'},
{{0,7,12,16,19,24}, 'MgE'},
{{0,4,7,12,19,24}, 'MgG'},
{{0,3,7,-1,-1,-1}, 'Min'},
{{3,7,12,-1,-1,-1}, 'm1inv'},
{{7,12,15,-1,-1,-1}, 'm2inv'},
{{3,12,19,-1,-1,-1}, 'mdr3'},
{{7,12,15,-1,-1,-1}, 'mdr5'},
{{0,7,15,-1,-1,-1}, 'mtp3'},
{{0,7,12,15,19,24}, 'mgEm'},
{{0,7,17,15,19,-1}, 'mgAm'},
{{0,7,12,14,-1,-1}, 'mgDm'},
{{0,4,7,9,-1,-1}, 'M6r'},
{{4,7,9,12,-1,-1}, 'M61'},
{{7,9,12,16,-1,-1}, 'M62'},
{{9,12,16,19,-1,-1}, 'M63'},
{{7,16,21,24,-1,-1}, 'M6g2'},
{{7,12,16,21,-1,-1}, 'M6g3'},
{{0,9,28,31,-1,-1}, 'M6g6'},
{{0,3,7,10,-1,-1}, 'm7r'},
{{3,7,10,12,-1,-1}, 'm71'},
{{7,10,12,15,-1,-1}, 'm72'},
{{10,12,15,19,-1,-1}, 'm73'},
{{0,7,10,15,22,24}, 'm7gE'},
{{0,7,10,15,19,24}, 'm2gA'},
{{0,10,15,-1,-1,-1}, 'm7g5'},
{{0,3,7,9,-1,-1}, 'm6r'},
{{3,7,9,12,-1,-1}, 'm61'},
{{7,9,12,15,-1,-1}, 'm62'},
{{9,12,15,19,-1,-1}, 'm63'},
{{9,15,19,24,-1,-1}, 'm6g2'},
{{0,9,15,19,-1,-1}, 'm5g5'},
{{0,9,15,19,24,-1}, 'm6g6'},
{{9,19,24,27,-1,-1}, 'm6g2'},
{{0,3,6,10,-1,-1}, 'm7b5r'},
{{3,6,10,12,-1,-1}, 'm7b51'},
{{6,10,12,15,-1,-1}, 'm7b52'},
{{10,12,15,18,-1,-1}, 'm7b53'},
{{0,7,10,12,-1,-1}, 'm7b5g5'},
{{10,15,18,24,-1,-1}, 'm7b6g3'},
{{0,10,15,18,-1,-1}, 'm7b5g6'},
{{3,12,18,22,-1,-1}, 'm7b5g4'},
{{0,4,7,11,-1,-1}, 'Mj7r'},
{{4,7,11,12,-1,-1}, 'Mj71'},
{{7,11,12,16,-1,-1}, 'Mj72'},
{{11,12,16,19,-1,-1}, 'Mj73'},
{{4,12,19,23,-1,-1}, 'Mj7d3'},
{{7,12,16,23,-1,-1}, 'Mj7d5'},
{{0,7,11,16,19,-1}, 'Mj7g5'},
{{7,12,19,23,28,31}, 'Mj7g6'},
{{0,11,16,19,24,-1}, 'Mj6g6b'},
{{7,12,16,23,-1,-1}, 'Mj7g3'},
{{0,4,7,10,-1,-1}, '7r'},
{{4,7,10,12,-1,-1}, '71'},
{{7,10,12,16,-1,-1}, '72'},
{{10,12,16,19,-1,-1}, '73'},
{{0,4,10,12,16,-1}, '7gC'},
{{0,7,10,16,-1,-1}, '7gD'},
{{0,7,10,16,19,24}, '7gE'},
{{0,4,7,12,16,22}, '7gG'},
{{0,7,10,17,19,-1}, '7gA'},
{{0,10,14,-1,-1,-1}, '7g6'},
{{0,4,10,-1,-1,-1}, '7g5'},
{{0,3,7,14,-1,-1}, 'm9n4'},
{{0,3,7,10,14,-1}, 'm9n5'},
{{0,4,7,14,-1,-1}, 'Mj9'},
{{0,4,7,11,14,-1}, 'Mj9'},
{{0,4,7,10,14,-1}, '9'},
{{0,3,7,10,14,17}, 'm11'},
{{0,4,7,10,14,17}, '11'},
{{0,4,7,11,14,21}, 'Mj13'},
{{0,3,7,10,14,21}, 'm13'},
{{0,4,7,10,14,21}, '13'},
{{0,5,10,-1,-1,-1}, 'ply4'},
{{0,7,14,-1,-1,-1}, 'ply5'},
{{0,3,6,9,-1,-1}, 'dim'},
{{0,3,6,-1,-1,-1}, 'dm3'},
{{0,5,7,-1,-1,-1}, 'sus4'},
{{0,5,7,10,-1,-1}, '7sus'},
{{0,4,8,-1,-1,-1}, '+ '},
{{0,4,8,10,-1,-1}, '7+'},
{{0,3,7,11,-1,-1}, 'm(Mj7)'},
{{0,4,6,10,-1,-1}, '7b5'},
{{0,4,8,10,-1,-1}, '7#5'},
{{0,4,7,10,13,-1}, '7b9'},
{{0,4,10,13,-1,-1}, '7b9'},
{{0,4,7,10,15,-1}, '7#9'},
{{0,4,10,15,-1,-1}, '7#9'},
{{0,4,6,13,-1,-1}, '7b5b9'},
{{0,4,8,13,-1,-1}, '7#5b9'},
{{0,4,6,15,-1,-1}, '7b5#9'},
{{0,4,8,15,-1,-1}, '7b5b9'},

 

 

Link to comment
Share on other sites

There is an item on the wishlist, "Add command which copies the current pattern configurations into multiple pattern slots". It was made by me.

I have a few suggestion about how it could perhaps be implemented by using the current interface.

In UTIL -> Disk -> Import, the Group & Track selection buttons select tracks (in the background), but perhaps it would be more useful if they worked like they do on the Pattern page, i.e. they select banks. Currently if you want to copy patterns to or in Bank 4, you have to scroll all the way from 1:A1 through everything that's in between to 4:A1. The Group/Track buttons could perhaps select both Source and Destination banks, depending on which one is selected for editing with GP buttons (you need to select Source or Dest for editing now too).

This is just to make it easier to copy a single pattern, or a few ones.

On the topic of copying a "seed pattern" (e.g. 1:A1), to several pattern slots with one command, you could perhaps have Destination options "Bank 1", "Bank 2", "Bank 3", "Bank 4", "All Banks" as target, instead of a pattern range. So for example

Source         Destination
1:A1-1:A1 --    Bank 1

would copy pattern 1:A1 to all slots in Bank 1, just like with the normal Import/Export copy, only more easily.

On the question of where to put the extra destination options, they could be put before the current options, or after them. In my opinion they would work best if they came before the current options: There's only five of them, and it's less work to scroll over these five options than to select Bank 4 with a Group/Track button and scroll beyond 4:H8 to find the extra options. Also it would be ok if the default option for Destination is still 1:A1-1:A1, and you would access the extra options by scrolling left.

Or, the multiple copy option could have its own page ("Seed Pattern" or something), selectable with GP9 on the Import/Export page, which now selects different Types – "Patterns", "Songs", "Grooves" etc. – for import or export.

Other stuff that I have in mind at the moment:

On the pattern save page, when writing the name for the pattern, GP button 10 selects "0–_ " (zero, dash, underline, empty space), but the display indicates "–_ 0" (dash, underline, empty space, zero). In my opinion the display should be made to reflect button behaviour (and not vice versa). Also, on the naming page, the cursor blinking could be made more prominent, to better indicate the cursor position. (EDIT: at the moment, the blinking is the same as everywhere else in the menus when something is selected for editing. This kind of blinking is ok on the naming page when the cursor is over a character, but when it's on empty space you have to squint to see where it is.)

Also on the naming page, you can select presets for Category and Label parts with GP knob 15 (one or the other, depending on cursor position). Are they hard-coded in the firmware? It would be useful if there was a limited number of customisable presets for Category and Label (perhaps max 16 each?) in the HW-config file where the bookmarks are too.

On Follow Mode: I haven't considered all possible ways of using the Follow Mode, but the way I'm using it has this problem: when it's selected, the display follows the cursor when the seq is running, but if you stop the seq to edit and scroll back and forth, you will be able to scroll only within the 16 steps that are currently on the screen, unless you turn Follow Mode off. From my point of view it would be more useful if you could use the datawheel to scroll around the track freely, whether or not Follow Mode is on. But like I said, I don't know if changing the datawheel behaviour in Follow Mode when the seq is stopped messes up other functions Follow Mode is used for. Just an idea based on my own use case, but it might conflict with others' use cases.

 

Edited by jjonas
Link to comment
Share on other sites

On 4/4/2017 at 6:23 PM, k2z3k0 said:

im using using v4.092 and when SAVE ALL looks like it doesnt save MIDI -> Transposer And Arpegiator -> Bus,Port and Channel settings

I'm on 092 as well, but I wasn't able to reproduce this. However, Port settings are the same across all sessions, as if it was a global setting. I don't know if this is intended or not. Other settings on the page in question depend on what their last value in the session was (regardless of whether the session was saved or not).

Link to comment
Share on other sites

I was updating the Wiki for some of the 092 changes, when I noticed this. The Changelog notes that

Quote

"individual steps of CC, PitchBender, Program Change and Aftertouch layers can now be disabled so that they won't play. Turn the encoder to the rightmost position (value 128) Also the init value has been changed: for these layers, the steps are now disabled by default."

However, when selecting a new layer on the Event page and confirming the selection with the GP button, the default PrgCh value is still "0" instead of "---" (disabled), and same for AfTch.

Link to comment
Share on other sites

  • 2 months later...

In a separate topic I asked a question about OSC in the Seq4 and ik looks like there something with the implementation of OSC in the software.

Ik looks like that the parsing of the Midi data type is shifted.

Instead of

/midi1 ,m MIDI [0x00 0x90 0x3c 0x39]

My SEQ4 sends:

/midi1 ,m MIDI [0x90 0x3c 0x39 0x00]

The first is compliant with the standard found here: http://opensoundcontrol.org/spec-1_0 

Problem is that when the SEQ4 receives a compliant message, it does not parse is right.

Am I right and if so, can it be fixed?

Cheers,
Kees

 

Edited by Keeze
typo
Link to comment
Share on other sites

Hi TK.

Thanks! But...

With the original version of OSC2MIDI

When I send from my SEQ4 to my osc2midi thingie and I route the incoming message to an usb->midi port to an syntbox it plays everything correct!

When I send from my osc2midi device to my SEQ4 it recognizes it as a SYSEX message.

When I switch to the alternative compiled version of OSC2MIDI

Midibox recognizes the incoming message and play it (routed to a midiport)

OSC2MIDI does not recognize the incoming message.

Conclusion

Outgoing messages from SEQ4 to osc2midithingie works, the other way around not yet.

There must be a second place where incoming messages are translated? Perhaps Lines 446 - 462 in mios32_osc.c?

Thanks,

Kees

 

Link to comment
Share on other sites

So, this means that with the changed version, MBSEQV4 sends MIDI events correctly now, but the receive part is not working, right?
Which probably means that I've to shift the bytes for the receive routine as well (which wasn't clear from your first message)

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi, I think the Track instrument feature that allows you to automatically send a PC when a pattern is loaded is really great, but at the moment it is a surefire way to lose all unsaved patch edits.

The manual states the following behaviour:

Note: together with the bank change events the PC event will only be sent if it is different compared to the previous track, since it could cause an additional delay on your synth before the newly selected patch is ready! Note also that the first note could be delayed for this reason, therefore it's recommended to use this feature only if the receiving MIDI device can handle patch changes quickly!

However, this is not the case. If I change to another pattern with the same PC assigned, it does get resent. Could an Option be added if it gets resent? If you are modifying the sound, then switching to a different pattern, you don't always want the sound to revert back to the saved one.

Also, I think a second Option whether the PC should be resent after stopping and restarting the sequencer would be essential. At the moment, it gets sent again. This means any unsaved edits to a sound get lost due to the saved one being reloaded in case of stop-start'ing  - not an ideal situation to say the least! 

Edited by u-link
typo
Link to comment
Share on other sites

Well, thinking more about the above issue, I guess it would be even better if you could set PER PATTERN if the PC gets resent or not than just globally. 

On the other hand I don't really see a reason why you'd want to resend the PC when stop-start'ing, but maybe there is a use case I fail to see? 

Link to comment
Share on other sites

On 11.6.2017 at 0:09 AM, Keeze said:

You are exactly right! My apologies for the confusion.

Cheers,
Kees

Please try this version, bytes are swapped now (untested at my side, since I can't use osc2midi)
-> http://www.ucapps.de/mios32/midibox_seq_v4_093_pre4.zip

Note that this pre-release also provides a new feature: Chord3 Parameter layer as proposed by EsotericLabs! :)

On 12.6.2017 at 10:50 AM, u-link said:

Hi, I think the Track instrument feature that allows you to automatically send a PC when a pattern is loaded is really great, but at the moment it is a surefire way to lose all unsaved patch edits.

The manual states the following behaviour:

Note: together with the bank change events the PC event will only be sent if it is different compared to the previous track, since it could cause an additional delay on your synth before the newly selected patch is ready! Note also that the first note could be delayed for this reason, therefore it's recommended to use this feature only if the receiving MIDI device can handle patch changes quickly!

However, this is not the case. If I change to another pattern with the same PC assigned, it does get resent. Could an Option be added if it gets resent? If you are modifying the sound, then switching to a different pattern, you don't always want the sound to revert back to the saved one.

Also, I think a second Option whether the PC should be resent after stopping and restarting the sequencer would be essential. At the moment, it gets sent again. This means any unsaved edits to a sound get lost due to the saved one being reloaded in case of stop-start'ing  - not an ideal situation to say the least! 

Ok, I added following item to the wish list:

PC Send behaviour: option to avoid that already selected PC will be re-sent

 

On 12.6.2017 at 11:13 AM, u-link said:

Well, thinking more about the above issue, I guess it would be even better if you could set PER PATTERN if the PC gets resent or not than just globally. 

On the other hand I don't really see a reason why you'd want to resend the PC when stop-start'ing, but maybe there is a use case I fail to see? 

The use case is the following: somebody connects the synth to MIDI OUT and doesn't want to power-cycle MBSEQ
Or somebody wants to tweak parameters while a pattern is playing, but wants to reset to the sound setup when another (or the same) pattern is selected.
Therefore I've to ensure that a PC will be sent consistent with start or pattern change.

But I understand your use case, and assumed that you are aware of the limitations, you will find your way...

On 15.6.2017 at 5:25 PM, k2z3k0 said:

hello everyone

quick question here

is there chance for a Global Transpose function

which i could control via loopback Bus

i tried remote transpose with duplicate function but didn't worked

No, this doesn't exist, but I don't understand the use case.

Usually somebody would use the transposer to achieve this.
The transposer especially allows you to avoid that tracks which should not be transposed (such as drum tracks) are not affected.

On 16.6.2017 at 2:40 AM, k2z3k0 said:

one more little thing

is there posibility to set DUMP for mixer pages when starting sequencer?

such a possibility doesn't exist, and it's also counter productive, because the MIDI messages will delay the first notes!

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Tk,

Tnx again!

When I send to SEQ4, the midi monitor on the SEQ4 recognizes sysex. I route the incoming OSC to USB1 and MIOS Studio gives me:

mios2.png.63f220e658a6aa6357b36e07b8c50d

While I send:

matches found:
  midimessage ( 144, 60, 116 ) -> /midi1 ,m MIDI [0x00 0x90 0x3c 0x74]

matches found:
  midimessage ( 128, 60, 127 ) -> /midi1 ,m MIDI [0x00 0x80 0x3c 0x7f]

These are the last two messages.

and should give:

90 3c 74
80 3c 7f

Same messages sent to OSC tool (velocity changes due to real keyboard used ;)):

mios4.thumb.png.8b7615b92134e920f20a4ab6

Cheers,

Kees

Edited by Keeze
Link to comment
Share on other sites

Hey TK.,

This works! So the order is correct. Now I have to find out why I get !! HARD FAULTS !! after some time (20 to 30 seconds of playing)

Setup: Akai LPK25 -> via usb -> RPi B+ -> via osc -> SEQ4 -> routed to Midi out1 -> Shruthi

The address location is different every time..

hardfault.thumb.jpg.afbba6a6165704b391cd

Cheers,

Kees

Link to comment
Share on other sites

I have some more suggestions: 

  • In the Mute menu, the encoders just duplicate the buttons while the wheel doesn't have any function. It would be great to have an option to combine the Mixer Maps with the Mute menu, so that buttons do the muting, encoders send CCs, wheel selects page. Like this, you could perform with much less menu switching.
  • The spot erase feature is still a little tricky to use I think. Now, in Live Recording mode, when you hold a key, it gets deleted. It's really easy to accidentally delete notes when recording fast  patterns (with sloppy timing). Also, it means that you always first add a note to delete it again in the second pass. I think it would be better to only delete notes when you press the delete button and a key. EG: Sequencer playing, Live recording on. Hold Clear. Nothing happens. Still holding Clear, press A1, A1 gets deleted until you release either A1 or Clear.
  • Still on the subject of Clearing, it would also be great to be able to selectively clear whole Trigger/ Parameter layers, so that when you hold Clear, something akin to the Mute screen *while Mute button held* comes up, where you can mute individual PL. So you could eg. clear individual drum lines at once.
  • I also wonder if it wouldn't be better if the PL would get reset on clearing the TL. If you programmed a Roll or an Nth Parameter previously, it can be rather confusing to still find this in place after recording new note information.
Link to comment
Share on other sites

2 hours ago, u-link said:

In the Mute menu, the encoders just duplicate the buttons while the wheel doesn't have any function. It would be great to have an option to combine the Mixer Maps with the Mute menu, so that buttons do the muting, encoders send CCs, wheel selects page. Like this, you could perform with much less menu switching

good suggestions, but regarding this point: I've grown very accustomed to do the muting and unmuting with the encoders instead of the GP buttons, and maybe other users have grown accustomed to this too, because some of the old-style Wilba tactile switches may go bad over time and trigger unreliably, which is not good during a live performance - the encoders are just working fine! :-)

Many greets,
Peter

Link to comment
Share on other sites

I get your point, Peter, but I meant to suggest to have this as an option. As in Utility->Opt. I think it would be a very useful feature. If it were there, it might even convince you to replace your unreliable tact switches. And of course, if the new design with the Matias switches becomes available, it won't be an issue anymore.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...