Just got a pyramid and so far I love it; great way to get into music composition without the usage of a computer (to an extent); although moving between patterns is a bit cumbersome, so I thought that since the pyramid can accept CC from hardware, maybe it can also send data out, so something like a launchpad X could interface to it, and you can use the buttons on the Launchpad X to augment the pyramid?
This would fundamentally make a stand alone ableton live style workflow, where you can sue pads on the launchpad to control not only functionalities on the pyramid that require contortionist moves to press multiple buttons, but also get to the point where you can augment the pads on the device, making it a clip launcher of sort. I have been looking at the pyramid manual but found no way to do so.
Is it possible? Did anyone try to use a launchpad with pyramid? Thanks
Thanks, so pyramidi is the only venue; there is no backdoor or sysex usable that is documented.
I was looking at the options used by pyramidi and there are only few of them, so I guess I have to do with start-stop, mute-unmute and track selection. Nice to see that I can trigger record too, but what is not clear to me is if I use those midi CC, are they picked only by the pyramid? I have a master keyboard that send midi to the pyramid through a MioXM, and the pyramid send back to the mioXM the midi for my hardware synths and computer. Maybe I need to revise my midi setup to change the routing, if I have to use CC from the launchpad to the pyramid
There are many Pyramid features you can control from an external controller. I have no idea of the capabilities of the Novation hardware might be, though.
Simple Note Events or CC messages can Mute/Unmute Tracks. This can also be significant compared to using SEQ for Mute/Unmute states since using SEQ for this applies to all 64 Tracks - using an external controller your can Mute/Unmute Tracks without affecting others. This becomes significant if you are able to pgm a single button to send multiple MIDI Events. Example: Pressing This Button here [_] will Mute/Unmute Tracks 1A, 2A, 3A, and 7B. This way you can have one button for “All Drum Tracks”, rather than having to remember for this song which individual Tracks belong to ‘drum’.
Note: Using Patterns nerfs this whole scheme since Patterns are not addressable via MIDI.
Master FX: You can program a Fader (I think you can do Fader pages with the Novation stuff) to send a MIDI CC and Assign this to parameters like Global Swing, Scale, Quantiser Grid, Mute Probability, etc. Being able to modulate Quantiser Grid in realtime is extremely fun. If you have everything Quantised to 1/16 or 1/32, set a button for when pressed will change the Grid to 1/12 and when released returns to the original value. Great fun! Also Mute Probability is amazing! You can Mute Notes in your Tracks. By assigning an External MIDI Controller to a CC to change Mute Probability you give those muted notes a chance to voice. Of course, you can do this with the Encoders & Pad, but there’s only 5 Encoders and one pad. (For myself, after a ‘song’ is created on the Pyramid, I only press the [Play] button - everything else is controlled via external controllers)
Individual FX Parameters: All your MIDI Fx are controllable via External CC, including turning them On/Off (Enable) or varying the parameters, such as increasing Chance or MIDI Delay or MIDI LFO, etc. A fun one is to affect the MIDI Eq, which affects the Velocity of outputted Note Events.
Chance 0% Scheme: If you do the Chance 0% hack, you can set up grids of Relatched and Freelatched Tracks. This is my own personal soapbox, so i won’t go into it anymore. Sorry. heh heh (Basically it allows you to Unmute/Start Relatch Tracks but have them not send Note Events until you Disable a Chance Effect that is set to 0%. It helps synchronise Tracks when uneven looping screws up Free Mode, but Relatch Mode forces things to be audible)
Please Note: I have no idea of the flexibility of the Novation hardware. I control my Pyramid with a Prophet12, an Impact Lx49 (studio only), and a button box (the latter of which is mostly for LED feedback) in a complex (for me, at least) and convoluted organisation that makes musical sense to me so that I don’t have to think while playing/performing.
I’m not good at thinking.
That being said, there is much power to be gained by using an Event Processor to allow you to send multiple messages with single button presses, while enabling LED feedback on your control devices.
yeah, the only documented interfacing is via pyramidi.
beyond pyramidi, of course you an
you can send notes to tracks (e.g. omni=multibank A could be useful),
use CCs to modulate effects via learn
but none of that is going to get the features you described in your OP.
(and would require a specific setup of the pyramid which is not ideal)
really there are a few things missing to do what you would like
the biggest issue is that the pyramidi is received only, there is no information broadcast back to a ‘pyramidi’ controller… so it cannot know which tracks have midi on them, which are muted, or even which is currently selected.
does this make pyramidi ‘useless’
of course not… it was obviously designed for stateless controllers… so really things like pedal, e.g. imagine a pedal bank where pressing a particular pedal would activate that track, and another pedeal might intiate record.
its a pity, I do think its a bit of a missed opportunity, it’d be nice to tie in other controllers.
I sent a few feature requests in this area quite a while back.
I also regret that pyramidi does not even exist on the hermod… I think there could have been an interestign ‘tie up’ between the two… if they could communicate over something like pyramidi.
unfortunately, I think its a bit late to add now (but who knows )
with so few cc and notes available over midi (1.0) , pyramidi is pretty ‘wasteful’ of those e.g. it uses 64 notes to just enable per track muting… so its hard to see how much more functionality could be added… unless backwards compatibility was ditched (which I guess is an option)
Got it; although I see value in the approach of multiple midi messages for each button for live execution; while for me, it is more a matter of having control over the creative part. Nothing wrong in moving through pages on the device itself, but having a 64x64 pad board is too tempting to not use it If I can achieve what I have in mind, I have fundamentally an Ableton live standalone device, which is fundamentally what I have in mind (ableton is fine but still you need to use the mouse and keyboard, unless you buy a push 2; which is a waste of money IMO for just a controller that won’t even work standalone).
So there are more parameters exposed than what I see on that single page with pyramidi then; looking at the document you linked. Although I am not sure I understand: the midi CC on each page is the same (there are 128 CC messages in total), so how do you decide when that CC is used to mute, versus when you use it to trigger swing, arp, or anything else? Do you change the channel attached to each set of 128 CC, so for example on Ch1 the pyramid use a specific CC for something, but on Ch2 the same CC does something else?
Programming the launchpad is pretty easy but limited: a button can only be either a CC message, a program change or a note; you can use widgets to add faders (which to be honest are horrible used on buttons; serviceable if you are in a pinch, but a fader should always be mapped to an analog control, so either a real fader or a knob), so the options are limited. Sadly Novation decided that launchpad users are not that smart so they must use only the widgets available, instead of being able to make their own widget (I would like to have logic for buttons; so I can apply a PC message that increase the program number; making 2 buttons go through a whole bank; which is impossible with Novation current PC implementation. Same for a button that if pressed multiple times, increase its value in a discrete way, like 10 units at time, so to get to 128 you can press it multiple times)
But back to your document: how do you use that on your keyboard? Having an example would be really appreciated!
Thanks, so fundamentally I can’t get some sort of feedback like when I use the launchpad with Ableton live; where the buttons change color or flash, depending if I am recording or playing and if that cell has a clip or not.
And of course those shortcomings does not make the pyramid useless; it is just less effective for my setup; which I admit, is almost unique more than rare; which is why in most cases I think about making my own gear controllers, because nothing on the market fit my needs. I just see potential in having the pyramid as standalone with so many tracks, and have such limitations. I don’t know its architecture, nor I know the CPU used or the language used to make the software; although considering that most sequencer out there for midi, are very limited to few tracks, or limit you on the bars for each track, so I assume that what they did to allow 32 tracks with 300+ bars per track means that there are corners that had to be cut.
I think my final hope is to see a device easy to use, that allow me to have a stand alone workflow like Ableton live; not much for live recording but for creation and writing purposes; the DAW is great when you want to finalize content; but for creation; I am a fan of minimalism and ease of use; because you should not even think about how you use those equipment, you should focus on playing your instrument.
And yes, use 64 notes for mute is a waste when you think that a single CC holds values from 0 to 126, you can see how much you could do with 127 CC over 16 channels, if you implement everything in a thoughtful way.
Okay, so those CC pages/ Those are just the values.
The Pyramid will recognise CC0 -> CC119,which you can use to control MIDI Fx and other functions.
These are on a different MIDI Channel than the one you use for PyraMIDI, because CCs on the PyraMIDI Channel doing specific stuff.
Example: I have my system communicating PyraMIDI messages to the Pyramid on Ch16, but I use Ch01 to send CC data specific to modulating Master Effects and Track specific MIDI FX.
These are not ‘exposed’, these are just your Assign options.
Example: I want to Turn On/Off the Harmoniser on Track 05A so that it will play chords when I press a button. I simply choose a CC that is currently not being used to pass data TO the Pyramid (in cases of many CC’s I highly recommend documenting and/or if you are old or have brain malfunctions like myself then a ‘system’ for choosing CC’s is suggested) and have my controller send a value out on the MIDI Channel I want to use for controlling the Pyramid. (Again: this is NOT the PyraMIDI Channel because that communication is documented elsewhere, specifically the MIDI Implementation Chart)
Then, while the Pyramid is not currently playing (I mess this up all the time - it’s gotta be stopped), make the Track in question Current (as in, the Active Track). Then hold the [Assign] button on the Pyramid and operate my controller button sending out the CC I want to use to control. Then a menu will pop up:
ASSIGN CC nn TO
(Note: If you’ve had this CC assigned previously, you will also get the option to REMOVE ASSIGN)
Then Select “EFFECT PARAM”, Select the Harmoniser, Select “Enable”.
Now if I send to the Pyramid that CC# with a value of 0-63, the Harmoniser will turn OFF, and 64-127 the Harmoniser will turn ON.
I typed a lot, but it’s super simple - and once you do it 3 times it will be so second nature you won’t even think about it.
So, in addition to all the values for each of the FX I documented in the PDF, you also have Master FX such as Mute Probability, Swing, Quantise Grid, etc.
Again: This is NOT PyraMIDI
Now, as for how I use this with my keyboard, well…sorry I have to admit a few things in a short anecdote: years ago when I was thinking I could handle Elektron quirks (Narrator: He couldn’t, and still can’t) I was trying to send MSB and LSB Bank info from an Octatrack and my destination synth didn’t like any of the OT workarounds - so I started using MIDI Translator Pro. Then the BomeBox came out and I was one of the first people with that puppy.
Then the rabbit hole kept going…and going…and going.
Now it’s an entire beast - I don’t even touch the Pyramid when playing once a song is set up definining a sort of ‘meta modulation matrix’ for MIDI throughput (stuff like conditional altering of Note Velocity based on an “Intensity” control - like using the MIDI EQ, but requiring fewer bytes of data running around)
This is why I have the system I use.
Someday I’ll document it, but it’s super convoluted because I keep adding ‘new stuff’.
I know this is on a different topic, sorry for butting in here…
You can have feedback, but it’s not necessarily direct. Well, it could be if by some majikal convergence of planetary alignments and spiritual hallucinogenics the heavens opened and a Pyramid based control surface appeared to the huddled, frightened masses.
However, if you ever remotely consider using an Event Processor, you can actually implement plenty of feedback. It’s not native, but there’s plenty of ways to do it.
It is easiest if your system is designed to go Controller -> Event Processor -> Pyramid
My system has feedback that tells me which Groups and Layers (my terms for organising Pyramid Tracks) are playing via LED colour & on/off status, in addition to a Beat Counter and Status for some of my control specific routines. Actually, I primarily use a button box for this feedback as all the buttons for control are duplicated on other controllers.
I think we should be careful to distinguish between what the pyramid ‘supports’ and what you can do with it by building your own ‘infrastructure’.
at the end of the day, you can build a ‘system’ from any number of components, be it midi processor, or just use max/msp or pd from your laptop… or build it with an arduino/rpi…
at this point the question becomes… what are you actually doing with the pyramid that you cannot do directly in that processor!? are you potentially not introducing more complexity by having more components? of course the pyramid can add value in this role, as a kind of router, midi fx, pattern store… but honestly, a lot of that is pretty easy to code on an arduino or similar.
but I think at this point we are straying from the OP questions…
the pyramid is not providing support for this, pyramidi is uni-directional and is pretty limited in scope.
I tend to use my midihub mainly for ‘intelligent’ routing and fixing midi limitations.
so a few typical uses are
physical : provides more usb routing and 4in/4 out midi din , so thats handy for pyramid.
(its a shame it cannot be a usb midi host, but still useful)
decide which midi channel goes to which physical port, I might also filter out certain midi messages e.g. sysex, or clock.
Ive some drum machines that only use a limited set of midi notes/cc, so using an entire midi channel for them is a bit overkill., so I can split one midi channel up for multipe
some devices I have,only work on midi channel 1, so I use the hub to give them a different midi channel, but they see as channel 1
this is where I personally find most utility of the midihub.
whats nice is its pretty quick to set these things up, so Ive I only need a particular setup for one or two sessions, then I can do it quickly with midihub.
I also like that you can store 8 presets.
e.g. at times Ive used it to have a different midi configuration where
1=pyramid is master
2=octatrack is master
so a quick press of a button flips setup, rather than having to go to each device individually, then into menus etc…
It has other stuff, like midi lfos, but those are already present on the pyramid, so Ive not really been into the ‘generative’ side of the midihub (which has a few limitation, since it cannot really ‘create events’ from nothing)
one thing that can be useful, is it does support midi control over its pipeline modules, so you can do ‘odd’ things, like send it a cc to change the midi channel its sending other data on (so potentially route midi to a different device) … so it can all get a bit ‘meta’
with these things, you can build quite a ‘custom setup’ , which can do all sorts of interesting things… the difficulty I find, is that this can lead to quite some complexity, as often the feedback on whats going on is a bit lacking.
of course, if you keep that setup pretty ‘constant’ you can build up muscle memory for what everything does in that setup …
but loads of tools out there, really just comes down to having a vision of what you are trying to acheive, then finding the right ones to build it
@thetechnobear, thank you for your input. Very much appreciated. Having some sense of vision indeed helps and thru contributions from this and others threads here, other forums, YT vids, etc. all help expand our knowledge base of what is possible. Often times a simple idea can spark into something much larger.
Thank you so much for the in depth explanation! So if I understand correctly, the Pyramidi implementation AND the CC implementation are 2 different things?
I am not sure I understand which channel is used though; because looking at the midi implementation of pyramidi, there is no trace of the channel used; just of the values used and CC used
So the CC messages are “bound” like you would bind any other hardware device, to a CC control? If I get this right; I can modify my current midi setup for the launchpad to send messages like on CH16, then I have 64 buttons and I could have 64 toggles to set up values for different operations; and then in the Pyramid menu, enter the assign mode so I can assign parameters to those CC controls I set?
I am currently looking at your doc: Page 2 has the arpeggiator values; so for example, rate 1/8 is set by sending a value between 19 and 36; and 1/16 is set by sending a value between 55 and 72, although on which CC ? Or that does not matter because from the menu of the pyramid I can pick “arpeggiator rate” as parameter, and then wiggle the knob on my controller and that will assign whatever I wiggle to the arpeggiator rate, so moving the knob will change the value accordingly to the values you specify? Hope I got this right
I have created a profile on my launchpad X, set all the buttons to be momentary; and set different values using the same CC; so I can switch for example between rate of the arpeggiator by pushing those buttons; I have also set a fader widget to try it out; although I am missing something I guess, because the Pyramid does nothing when I move those controls; it does not show any midi in, coming into the pyramid. I guess I am missing something… I am using the launchpad X connected to my computer, and sending the data via midi USB to the Pyramid, connected to the computer too via USB; and using Cubase as way to send the midi to the Pyramid. I suspect I am doing something wrong with the communication.
Totally legit to distinguish what is supported from what is “doable”. After all, midi can be programmed with different languages (I’ve been using python for that); although if you get feedback or not from the device, that is a whole different story; and same goes if the device use SYSEX to handle things. I do not have the patience to break down messages and translate them to be honest; so I try to use what is actually supplied through the firmware where possible.
As far as what am I doing: Ideally I would like to leverage my launchpad X to use the pyramid as if it was an instance of ableton live; but in hardware. So control its various parameters without pushing 2-3 buttons at the time (the interface I am sorry to say but it is really not well thought); and on top of that, be able to switch scenes and tracks using a 64 button grid, instead of the buttons on the pyramid.
While the pads of the pyramid are OK; they are not that great for playing on it (as it should be, they are a sort of compromise after all; it is not a MPC after all, so nothing wrong with it); and on top of that; if you are playing and composing something, going to swap view to go in the track or sequence mode, is just a distraction.
The launchpad X support 4 sets of custom settings; so I have 64x4 buttons available, to do all I need with one tap, instead of use the pyramid controls when composing. For anything else, I am fine using the pyramid interface, but when I am playing; 80% of my focus is on my master keyboard, and 20% on my midi devices to control parameters and effects; so if I can remove any distraction while composing (the whole point why I went toward the DAW-less approach while composing, to avoid the computer distraction), that means I can make better music faster and avoid to miss a creative moment, just because I had to fiddle with menu, buttons and such
I think the idea of pyramidi (and things like pedal control) is (as you want) they cover the time you are performing/composing at your master keyboard.
it doesn’t cover the setup , or deeper functionality. - so the idea is you have to setup the pyramid in advance - a bit like you might create a template in ableton.
well, at least thats how it has worked out fo me,
so what I do is:
I have the pyramid running on omni=multibank a , Ive a pedal which triggers recording on pyramid
so my flow is… change channels on master keys to select track, press pedal to record/loop.
midi controls on the keyboard can be assigned to either synth parameters (and recorded) or things like fx parameters on the pyramid.
so when Im playing there is no distraction.
really I only have to reach over to the pyramid, when I want to start messing copying things around, or changing setup (things like midi channels)
(thats even without pyramidi which does allow for more)
As for ableton like clip launching, well… the pyramid was never designed to be like Ableton, patterns were added quite late, and are not meant to be like ableton clips… similarly sequences are not really like scenes in Ableon - so your never really going to get that ableton workflow, as thats not its design/goal
don’t get me wrong, I love the way Ableton works…
but if I want that, then I just use my Push2 with Live running on a laptop…
that can give you a very close to ‘hardware experience’ , but with all the bells and whistles that a full daw brings you.
Agree, and to be clear, I am not planning to replace everything in the workflow with the pyramid; it is more like a matter of convenience for no-distraction workflow with the hardware, to create the bulk of the idea. Once I get that, I can move everything on my DAW and finish things there.
This allow me to get closer to the metal when composing; and away from the computer. Not planning to replace Ableton, but to augment it in a way
The setup phase is fine; I can set up things in advance, after all I have to do that with my hardware too, so adding the pyramid in the mix is not affecting me.
So you mention that you use your master keyboard to change parameters of fx parameters; could you please give me an example of how you do that? I tried to send to the pyramid on every channel, various CC messages and none did do anything. Not sure what am I missing, because from your explanation, it should just work as long as you send the right value for what you want to use. Same for my launchpad X; set up few buttons with different CC sending different messages on different channels, and nothing really happens on the pyramid
simply hold down assign,
twist knob on your controller.
a popup will appear asking what to assign to…
select effect parameter (or whatever you one)
you have to be on the track of the fx parameter you want
a midi cc can only be assigned to one fx parameter (on one track, or fx master)
it is not midi channel specific
these are not really problematic for me, since it means we potentially have 120 cc available.
that said, I have a synth which exposes uses all cc’s for its synth parameters. so it’d be handy if we were able to specify a midi channel for this learning. but ive got around this with filtering on my midi router…
I’ll also say, in last few months, I’ve moved to using a dedicated controller (rather than my keyboard) for sending these CCs (same process, just a different box) , this has simplified this alot for me
the advantage of this approach is that I can control many synths/vsts/octatrack/pyramid all from one interface… and can customise the UI depending on what setup im using at that particular time.
you can see it in some of my videos
note: I’ve not mapped it to the pyramid in this example… as it was not needed.