Midihub Pipes Suggestions

Sample and hold LFO type

4 Likes

A similar effect can be achieved via microtunings - the memory holds 128 notes pitch mappings, you could import a specially prepared .scl file to achieve the exact mapping you want to have.

It would be SO useful to be able to convert between NRPN and CC, this would open up a lot of possibilities with my studio that aren’t currently possible to me.

Also wondering what potential there is in Logic functions? For example: Every 4 times the note C4 is played (____) happens. I love using these kinds of things in my music and would like to be able to completely ditch the computer and all the problems in brings to my music experience.

Ordered a Midihub today and am very excited for what’s already on offer and it’s very exciting to see how active you all are in supporting it! Will definitely be recommending you :slight_smile:

4 Likes

Could you provide some examples of what the (____) part could be? :slight_smile:

2 Likes

I realise now that this pipe would be a complex one to implement as the list of variables would ideally need to be quite big an from a UI point of view I’m not sure how it’d best be done…

I’m going to have a think about what some good variables would be in practise but a few examples of what (____) could be and how it could be used:

Patch change message - after a certain amount of whatever chosen variable the patch on a synthesizer could advance by one.

CC message - My sequencer responds to these in various ways but a great example is the use of CC 69 for selecting sequences (mute states etc.) so you could use this for your music to progress through it’s various stages in algorithmic ways.

CC message then looped back to control the parameter of another pipe (or maybe this could be implemented more directly somehow?) Having your LFO speeds or amounts increase / decrease as your song progresses / changes could be interesting / useful.

Anyway, those are just a few, I’ll think about this more and come back with better suggestions.

2 Likes

At the moment there is not a “time line” implemented in the way a sequencer progress its midi data through time. But there are suggestions - feature requests that propose such a workflow, note as steps, root notes, start, stop, loops, intervals etc. In general there has to be some kind of a basic sequencer pipe [with a start and a possible end point] to handle messages through time in order to add more functions like program changes to act progressivelly. Just a guess.

For the loopback control there might be a future update to include this function internally. This will expand capabilities and more complex paths will open.

2 Likes

I would like to suggest a different note remap pipe that allowed the user to specify a list of output notes for any chosen input notes. Also, a toggle switch to optionally filter out any incoming notes for which note-to-list relations weren’t specified.

I think 16 slots for incoming notes and a list of up to 8 notes for each should be flexible enough.

At the moment this is possible to achieve with Note Range Filter (set to a single note) and Harmonize, but the patch becomes difficult to navigate when multiple such combinations are created. With the proposed pipe custom chords / voicings / inversions could be easily assigned to single incoming notes and managed from the same property page.

What do you think?

1 Like

How would you plan to use such feature? How often would you want to change the note mappings?

A specially crafted Micro Scale can be used to specify the note pitches for the entire range of MIDI notes (0-127), so it could be used to remap the notes as desired. Building chords and filtering would still have to be done by separate pipes.

Some special layout of a Micro Scale may enable simplifying the pipelines for making chords, enabling reuse of the same harmonizer pipes.

1 Like

I would use the feature to define note to chord relations. For example:
C4 (60) → C4 Major chord (60, 64, 67)
C#4 (61) → C4 Major 7th no fifth (60, 64, 71)
D4 (62) → D4 Minor 7th no third (62, 69, 72)

To complicate things a little, let’s say some chords are 3-voice, some 4-voice, some 5-voice, etc…

The Harmonizer allows only a static upper interval structure, (which can be quantized to a scale), but this is limiting.

Another example:

C4 → CMaj7
C#4 → CMin7

These chords do not belong to the same (diatonic) scale, but they may be desired in a chord progression.

This is sort of do-able with Harmonizer / Scale Quantizer, but I would have to create mapping for the type of the scale, and switch to a minor scale to play my CMin7… so it’s pretty complicated…

Thus I suggest a tool to specify custom note to chord relations based on midi note numbers. What do you think?

Also, I do not intend to be able to change these mappings in live use. Only when developing the pipeline

3 Likes

When I said “mapping”, I was thinking of mapping one note to multiple notes, so it’s probably better to think of it as “chord building”.

1 Like

It’s a good idea, we’ll have to think about what’s the best way to have this implemented. We may have to include some sort of special UI to make the input of these chord mappings convenient.

Would you expect only these particular note keys to produce the chords, and C3 would simply be ignored?

2 Likes

Is this about a per “key chord mapping” ? I use novation launchpad pro mk3 and the chord mode looks like this. You could take a look at this and get some ideas out of it.

1 Like

I am open to both, so a toggle would be best IMO.

As long as the UI allows to set arbitrary list of numbers as the output chord. I imagine two columns in the properties pane: incoming note, output note(s). Maybe that toggle switch too.

The only other desired feature would be to allow input as note number and/or note string (“c#4”). Same for displaying the data, but you have this in place for other pipes already.

What UI do you have in mind?

Hi all, just setting up my new Midihub for the first time, excited to see what I can do with it.

Apologies if I’m not using the votes for features correctly, not quite sure how to vote for a specific feature request in a post that has several suggestions… (if I’ve missed something please let me know :slight_smile:

As has been mentioned above a couple of times:
Velocity to CC please.
I was a little disappointed to not see that in the possible transformations, it seems like a pretty fundamentally useful one to me!

Also a suggestion - in my initial setups, I’m doing quite a lot of channel filtering. Say I want a pipe to only operate on events that are on channel 16 (for example). Rather than having to make a channel filter that discards 1-15, it would be convenient if I could just say ‘select channel 16’ - it would do the same thing, but be faster and more intuitive to work with, imho.

Anyway - thanks for a great tool that I’m looking forward to diving into…

3 Likes

This feature is there!

2 Likes

For that, just use a Channel Range Filter and set the range to ‘16’, untick the ‘Drop In Range’ argument, so it only keeps messages in Ch. 16.

1 Like

Haha thanks so much for pointing out my error - great news. I misunderstood the documents and didn’t try it yet - THANKS and sorry to bother you!

For that, just use a Channel Range Filter and set the range to ‘16’, untick the ‘Drop In Range’ argument, so it only keeps messages in Ch. 16

Great, thanks so much, again sorry to bother you with simple questions!

While we’re at it, @Giedrius is there a way to have an external string of messages define the notes being allowed through the filter?

I’m thinking of the very practical, very musical example:

Plug a keyboard on one input of the Midihub, plug a sequencer on a second input of the Midihub, play a chord on the keyboard. The notes on the chord define the “scale” which the notes of the sequencer play in, by essentially quantizing incoming notes to the chord notes.

It’s not exactly filtering, and it’s equally musical to @Adomas’s suggestion, so I’m wondering if there’s a way of doing this already or if we need a new pipe for this.

Your thoughts?

PS: if we need a new pipe, there should be a toggle option for whether the incoming chord toggles the scaling or if it only happens while notes are held.

Hi, I’m also a new user, and I can’t find any way to transform note velocity into cc messages either!
I just updated to the latest editor and firmware released yesterday. I did manage to program some other cool stuff today though, like mapping a certain cc# to program change, and selecting and triggering different sample slices with midi notes to my octatrack. Powerful stuff, but this one velocity thing has me puzzled.
Here is a screenshot of the setup for the transport tool:

cheers, Oskar