Jump to content

Discussion about Preset Patterns for MBSEQ V4


TK.
 Share

Recommended Posts

On the subject of labels, it would be nice to be able to create specific label/preset maps for separate instruments/instrument setups, and access them easily from the track event page.

Thats no problem if you give me a list/some concrete ideas

Even better, if I can just dump them as an easily editable text file into the root of the SD card. For example in the drum case, I have a modular drum machine and a couple others (Drumulator, Ensoniq Mirage) that respond to MIDI. It would be nice to have a preset map with labels and midi notes for each of these instruments, so that I can quickly just select the instrument I want and start programming. If I could set up preset label/note maps for each of my instruments, my workflow would speed up 200%.

It was clear to me that sooner or later somebody will request to load predefined labels/maps from SD Card.

But the reason why I don't store them in RAM is neither lack of programming skills, neither lack of time, but just because I want to reserve the remaining 4k RAM for more useful features. ;)

There could be a way to transfer a .txt file from SD Card into flash memory later.

Or alternatively: to provide different preset patterns stored in a special bank. Would the availability of preset patterns really slow down the editing process so much - would a text file entry complicate the editing process too much? What would people prefer? (I for myself would prefer to edit preset patterns directly from the MBSEQ CS instead of using a text editor)

But so long nobody sends me ideas for labels/drum maps I'm not sure how much memory should be reserved for this. In addition, I will have to balance the memory usage with the required code size for future features.

My proposal: write a new forum topic in the MBSEQ section with a list of your label/drum map ideas.

Let other users add their own ideas.

This should give me a good overview about the requirements, so that I can implement the appr. functions into the firmware quickly w/o the fear that I will have to change the programming concept again and again due to new requirements.

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Thorsten -- thanks for your reply and your attention to my request!

I completely agree -- Your suggestion of "preset patterns" or "pattern templates" is absolutely perfect, at least for me. I would have no real need/desire to have additional drum/instrument maps or presets if this is the case.

Here are a couple suggestions that would fit my personal needs:

1) Instead of saving pattern to bankstick, you have the option to save it to a new "pattern template"... it would not save any of the sequence data, just category/track/drum labels and track mode configuration. The name/label of the track would become a new option when scrolling through track event modes in the "track event" page.

2) Or alternately, a special track event mode could be set up to inherit track event properties/labels from another pattern. Then any saved pattern could be used as the "template".

As far as number of allowed templates, 16-32 would be more than enough for me.

I will post on the SEQ forum as you've suggested, I just wanted to share my feedback here first. Thanks!

Link to comment
Share on other sites

1) Instead of saving pattern to bankstick, you have the option to save it to a new "pattern template"... it would not save any of the sequence data, just category/track/drum labels and track mode configuration. The name/label of the track would become a new option when scrolling through track event modes in the "track event" page.

2) Or alternately, a special track event mode could be set up to inherit track event properties/labels from another pattern. Then any saved pattern could be used as the "template".

How about following implementation (I think that this is feasible without much programming effort):

  • template tracks can be stored as separate files into a special directory (e.g. presets/*.V4T)
  • parameters are stored in text format, so that they could also be edited from a computer
  • they can be selected in the Track Event mode page as suggested
  • they can also be stored from there (last item in list "Store new Template")
  • while importing a template it will be possible to selected parameter groups which should be inherited (e.g. Name, Chn, Layer Config (e.g. to import a drum map only), Steps, All)

As far as number of allowed templates, 16-32 would be more than enough for me.

By storing templates into files the number of patterns wouldn't be limited, and we could easily share the presets :)

Any other ideas?

I will post on the SEQ forum as you've suggested, I just wanted to share my feedback here first. Thanks!

I splitted the thread and moved this part into the MIDIbox SEQ section.

Best Regards, Thorsten.

Link to comment
Share on other sites

This sounds absolutely perfect to me. It will cut the time it takes for me to hammer out tracks with my rig in half, easily.

Thanks again

...and I thank you for this nice inspiration - this new method will speed up my own workflow as well.

I already implememted the dialog pages and export function today (most functions already exist and only had to be customized).

So, I decided to provide a special "PRESET" button in the track event page:

trkevnt1.gif

It opens a dialog which allows to select the preset file (left side), or to store a new preset:

trkevnt3.gif

Different sections can be selected before the preset is imported:

trkevnt4.gif

Exporting a track: just enter the name - done:

trkevnt5.gif

And this is how an exported track looks like.

Some values are hard to edit for a non-programmer, but as mentioned earlier, the most comfortable way is to use the CS anyhow.

Alternatively somebody could program a GUI (running on a computer) which allows to edit such a file as well.


# Only keyword and the first value is parsed for each line
# Value ranges comply to CCs documented under doc/mbseqv4_cc_implementation.txt
# The remaining text is used to improve readability.

# DON'T CHANGE THE ORDER OF PARAMETERS!

ParInstruments 16
ParLayers 1
ParSteps 64
TrgInstruments 16
TrgLayers 2
TrgSteps 64
EventMode 3 (Drum )

# Track will be partitioned and initialized here.

# The parameters below will be added to the default setup.

# | | | | | | | | | | | | | | | | |
Name ' BD SD LT MT HT CP MA RS CB CY OH CH Smp1 Smp2 Smp3 Smp4 '
TrackMode 1 (Normal)
TrackModeFlags 3 (Unsorted: on, Hold: on, Restart: off, Force Scale: off, Sustain: off)
MIDI_Port 0x00 (Def. )
MIDI_Channel 0 (#1)
DirectionMode 0 (Forward)
StepsForward 0 (1 Steps)
StepsJumpBack 0 (0 Steps)
StepsReplay 0
StepsRepeat 0 (0 times)
StepsSkip 0 (0 Steps)
StepsRepeatSkipInterval 3 (4 Steps)
Clockdivider 15 (16/384 ppqn)
Triplets 0 (no)
SynchToMeasure 0 (no)
Length 15 (16 Steps)
Loop 0 (Step 1)
TransposeSemitones 0 (+0)
TransposeOctaves 0 (+0)
MorphMode 0 (off)
MorphDestinationRange 0 (1..16)
HumanizeIntensity 0
GrooveStyle 0
GrooveIntensity 0
TriggerAsngGate 1 (A)
TriggerAsngAccent 2 (B)
TriggerAsngRoll 0 (-)
TriggerAsngGlide 0 (-)
TriggerAsgnSkip 0 (-)
TriggerAsgnRandomGate 0 (-)
TriggerAsgnRandomValue 0 (-)
TriggerAsgnNoFx 0 (-)
DrumParAsgnA 9 (Roll )
DrumParAsgnB 0 (None )
EchoRepeats 0
EchoDelay 7 ( 8 )
EchoVelocity 15
EchoFeedbackVelocity 15 (75%)
EchoFeedbackNote 24 (+0)
EchoFeedbackGatelength 20 (100%)
EchoFeedbackTicks 20 (100%)
LFO_Waveform 0 ( off )
LFO_Amplitude 192 (64)
LFO_Phase 0 (0%)
LFO_Interval 15 (16 Steps)
LFO_Reset_Interval 15 (16 Steps)
LFO_Flags 0 (Oneshot: off, Note: off, Velocity: off, Length: off, CC: off)
LFO_ExtraCC 0
LFO_ExtraCC_Offset 64
LFO_ExtraCC_PPQN 6 (96 ppqn)
NoteLimitLower 0
NoteLimitUpper 0

# MIDI Notes for Drum Instruments:
ConstArrayA 0x24 0x26 0x29 0x2b 0x2f 0x27 0x46 0x4b 0x38 0x31 0x2e 0x2a 0x2c 0x3c 0x3d 0x4c

# MIDI Velocity:
ConstArrayB 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64

# MIDI Accent Velocity:
ConstArrayC 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f

# Parameter Layers:
Par 0x000 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x010 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x020 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x030 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x040 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x050 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x060 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x070 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x080 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x090 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x0a0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x0b0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x0c0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x0d0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x0e0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x0f0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x100 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x110 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x120 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x130 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x140 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x150 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x160 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x170 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x180 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x190 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x1a0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x1b0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x1c0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x1d0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x1e0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x1f0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x200 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x210 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x220 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x230 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x240 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x250 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x260 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x270 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x280 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x290 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x2a0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x2b0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x2c0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x2d0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x2e0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x2f0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x300 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x310 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x320 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x330 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x340 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x350 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x360 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x370 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x380 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x390 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x3a0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x3b0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x3c0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x3d0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x3e0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Par 0x3f0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

# Trigger Layers:
Trg 0x000 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x010 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x020 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x030 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x040 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x050 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x060 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x070 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x080 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x090 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x0a0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x0b0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x0c0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x0d0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x0e0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Trg 0x0f0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
[/code]

I will implement the parser (for the import function) tomorrow, thereafter this feature is completely available.

Importing a file will take less than one second, and sequencer timings won't be affected thanks to FreeRTOS based task handling. :)

Best Regards, Thorsten.

Link to comment
Share on other sites

This is great! I was thinking to request something like this after upgrade to new core.

This will ease usage for sure. I have few friends who love to work on mbseq but I noticed that setting track event page (midi ch, port, etc.) is hardest thing to understand for them.

I do it in few seconds because I know connections. Named presets are great. Excellent work TK!

Thanks,

koki.

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...