Portamento As Program Parameter
  • Does anyone else feel that it would be good for Portamento time to be saved with patches, rather than being a global setting? Maybe it could have a MIDI CC, too.
    Just a thought.

  • There’s a standard MIDI CC for it: 5.

    As for this being saved with the patch, this is not possible as the patch data structure is now filled. When I wrote the first version of the firmware, I had planned a few bytes for “upcoming features”, which were filled by the filter routing settings and the modulation operators… looks like I hadn’t planned enough…

  • This is such an important thing, I would easily give up another feature for it.

    The modulation matrix is amazing, but I don't *need* to have so many different modulations, whereas I *need* to have different portamento settings per patch. One extra filter LFO or envelope PWM isn't going to make or break a patch, whereas portamento and legato can be a defining element of a synth sound.

    I just built my Shruthi-1 this week, and was shocked to find that the portamento was a global setting. Basically this means that in a live performance environment I have to choose for all my patches to have portamento, or not. . . Or I could have my sampler send the CC with every song, but that seems like a roundabout way to go about it, and frankly, a bit of a pain in the ass.
  • I have to 2nd what TYLR says. It would be great if some way could be found to save portamento settings per-patch.

  • i’m not sure how many different portamentos could be needed at a time in a monophonic synth, maybe one per oscillator?
    but i’m fine with portamento controllable via CC#, if i really need it i can send it with the sequencer. but i wouldn’t like to waive a slot in the modulation matrix (ok for me the portamento is a minor feature, but i could probably make use of even more modulations, sometimes)

  • Mhhh
    Actually I like to have portamento as a separate thing, same with arp and step-seq.
    And especially in a live performance environment, I think it's very userful to be able to select another patch while retaining some of the caracteristics of the previous one.
    Think about it as a morphing feature, sort of.
  • you’re right, i misunderstood the patch changing part….

  • For how I'm planning on using my Shruthi-1, I think I'll be able to live with having to use CC# for sending portamento information. It'll be annoying to make every sequence on my MPC send the CC#, but I'm used to having to work around hardware developers' particular preferences and decisions.

    Theoretically I could not have any patches saved at all, and simply send all of the relevant information from my sequencer. Is this ideal? Not at all. Portamento is really a crucial and defining feature of a synth patch. Especially when I use dramatically slow values for some, and absolutely none for others.

    I haven't tried it yet, since I only just built my Shruthi, but is portamento assignable to the performance knobs? Then at least I would only have to tweak one knob per patch in order to have the desired amount of portamento. Still not ideal, but I can live with it.

    Maybe this is a good opportunity for the code to fork, if people are really attached to the current patch data, but there are also enough people who agree with me that portamento saved in each patch is necessary.
  • Well that’s the point of open source. If someone is willing to maintain and support a hacked version of the firmware + an update tool for a different patch data layout, everything is ready for this person to start working on it!

    Given the state of the current version of the code, I don’t see how I can do it without breaking anything in the current code and the hundreds of units currently deployed.

  • That is too bad! But I'll happily make due with what I've got. I've been meaning to learn how to send CC# with my MPC anyhow.
  • One possible hack would be to sacrifice the 7th character of the patch name to store the portamento settings. As a hack it would work, but it won’t make it to the main branch of the code.

  • Would certainly make the setting “face up”, that’s for sure! ;-)

  • I would definitely be willing to use that hack.
  • I figured the way it works currently is pretty standard, right? Im not sure i’d want a significant deviation from that myself..

  • In my experience it is definitely standard for portamento and legato to be stored in patch memory. Every synth has its quirks though, and this isn't anything that can't be dealt with.
  • I’m pretty sure that on all the Roland synths until at least the D50, the portamento, along with the transposition and arpeggiator settings, are independent of patch settings. I’m confident it worked the same way on the casio CZ and the Kawai K3 – which are the other synths I’ve spent a lot of time with. It’s likely that the designers of these synths – and this is a view I agree with – consider portamento / arpeggiator settings as something “orthogonal” to the sound itself – the same sound could be played with different settings depending on the context in which it is used. This calls for a distinction between a “patch” (the sound production settings) and a “program” (the sound production + the keyboard/sequencer/scale etc. settings). There might be a better way to call it.

    The ESQ-1 and the Access Virus saved portamento information with patch.

    It’d be interesting to gather more data points!

  • Not a particularly representative cross-section of MIDI hardware, but for what it’s worth:

    Novation Nova:
    Portamento per-patch

    Novation XStation:
    Portamento per-patch

    Waldorf Pulse:

    Korg EX-8000:
    Per-patch, I think (can’t check right now)

    Korg EX-800/Poly-800:
    No portamento (why!?)

    Red Sound Darkstar:


  • Some data from my collection:

    Waldorf MicroWave: with Patch
    Waldorf MicroWave2: with Program
    Waldorf MicroQ: with Program
    Waldorf Pulse: ne destinction between Patch and Program…
    Sequential Circuits SixTrak: seems to be Global
    Roland MKS-50: with Program
    Roland JX-8P: Global
    Korg Wavstation: Lost track ;-).. with Program

  • i can have a look tonight how it’s done on the S1000 and the VZ-1, if that is of any significance.
    on the MBSID every oscillator has individual portamento if i remember right, but that’s not standard at all…

  • In the firmware directory there’s a hacked v0.94 in which the 8th character of the patch name has been sacrificed to save the portamento / legato info. This is the last time I compile this code – you’ll have to build it yourself or find someone to build it for you if you want to catch up with further update. The hack can be enabled with the -DPORTAMENTO_SAVE_HACK pp define, to be added in the makefile.

  • jupiter 4 independent, and I like it like DAT, as I play my modded presets (40 presets on mine).

    Yamaha big blue cs-1x & dx-7 in the patch, dx-7 Supermax is its own world.
    Oberheim matrix 6r its in the patch.

    my Akai’s s-900/1100s don’t hav eit, they warp instead. didn’t see it in the menus of my korg dss-1 or my Kurzweil.

  • I don't have a lot of reference points with vintage synths that have patch memory, but

    Korg Micro-X with patch

    Micro Korg with patch

    Pretty sure the Korg MS-2000 is with patch

    Nord Stage synthesis portion with patch (all other Nord synths I've used too)

    In fact all modern digital analogue modelling synths that I've used, Alesis, Novation, and so on, have it per patch.


    Thanks for the Compile Pichenettes! Going on Vacation for the next while, but I'll try to update my firmware when I get back, and then try to learn how to hack the source code next time there is an update.

    The problem with having the portamento "orthagonal" to the patch with the Shruthi is that the portamento is not easy to modify on-the-fly. I have to use up to 4 key-presses to access the Prt parameter, and have not had success assigning it to the performance knobs, so I assume that isn't a possibility.
  • Hey Tylr,

    this might be a superb use for the Mutable Instruments Midi SMT Thingy… A Shruthi-1 Portamento Switch ;-)

  • Olivier, if I take a look at the code, would it be easy enough for a non-programmer to also make arpeggio settings patch-specific as well? I don't mind losing another character or two ;)
  • Look for occurrences of PORTAMENTO_SAVE_HACK in the code and see if you understand what this changes. Also, you’ll need to have a good command of bit manipulations if you want to pack all the arpeggiator settings into “a character or two”.

  • Yeah, I wouldn't mind having 3 or 4-char names if I could have both arp and portamento saved to patch.

    I doubt I'll be able to figure this out on my own, but I'll give it a shot, and if not try to get some friends who know C++ to help.

    Thanks a bunch!

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion