# Sequential / Oberheim OB-6 V3: patch parsing, extra LFO and sound layering

**URL:** <https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316>\
**Category:** Instruments\
**Tags:** preset\
**Created:** [March 13, 2026, 8:25pm UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316 "2026-03-13T20:25:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [March 13, 2026, 8:25pm UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316/1 "2026-03-13T20:25:08Z")

</div>

I created an updated version of my old 2021 preset for the OB-6.

> **[Electra One App](https://app.electra.one/preset/fuHmYe4PY8gbb1TNNhOl)**

It’s still work in progress, but as it already parses patch names, it’s so gratifying to finally see what names were given!  
You can now also set names yourselves.

The rest of the patch parsing I still need to do. I had some documentation lying around, but forgot where I stored it…

---

<div class="post-metadata">

**Author:** ![kiwigrass](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/kiwigrass/32/4983_2.png) [@kiwigrass](https://forum.electra.one/u/kiwigrass)\
**Post date:** [March 14, 2026, 1:32am UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316/2 "2026-03-14T01:32:23Z")

</div>

If you find it, perhaps you will also know where I left my keys 😂

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [March 14, 2026, 9:49am UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316/3 "2026-03-14T09:49:27Z")

</div>

Doc found, and keys as well. A key in G!

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [March 24, 2026, 8:49pm UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316/4 "2026-03-24T20:49:23Z")

</div>

Just published new version V2 with full patch parsing. If you choose a new patch on the E1, the parsing happens automatically, and the patch name appears as well.

A beautiful synth with a not too elaborate number but very musically thought of controls !

> **[Electra One App](https://app.electra.one/preset/fuHmYe4PY8gbb1TNNhOl)**

---

<div class="post-metadata">

**Author:** ![NewIgnis](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/newignis/32/767_2.png) [@NewIgnis](https://forum.electra.one/u/NewIgnis)\
**Post date:** [March 27, 2026, 11:46am UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316/5 "2026-03-27T11:46:55Z")

</div>

Just finished V3, probably my last, for the OB-6.

With this version, the OB-6 gets an additional performance LFO and a layering function.

> **[Electra One App](https://app.electra.one/preset/1fjUGotij1FiacaSgyGN)**

**Performance LFO**  
The OB-6 has this really wonderful creamy sound, but it is known it lacks a bit in the LFO area: there is only one. Of course you can sacrifice VCO2 for LFO duties, but that is not always desirable.

So I borrowed @martin 's LFO code from “Send LFO” [Electra One App](https://app.electra.one/preset/hXZd5qXpoMx82gIz6qWP), adapted it for OB-6 LFO duties. Now we have 2 LFO’s 🙂 on an OB-6 .

 ![image](https://europe1.discourse-cdn.com/flex017/uploads/electraone/original/2X/2/2f34fed31b0d385c28f7034dbb25c3f01cc99e16.png)

Here’s the heart of the code doing the LFO stuff:

```auto
function timer.onTick () -- timer callback
    updateLFO(timerInterval)
    local lfoShape = {}
    lfoShape[3] = getLFOSawtooth()
    lfoShape[4] = getLFOSquare()
    lfoShape[2] = getLFOTriangle()
    lfoShape[1] = getLFOSine()
    local depth = math.floor(ampMod[parameterMap.get(deviceId, PT_VIRTUAL, 4016)])
    for i = 1, SCOPE_WIDTH - 1 do -- scroll left and append newest sample
      scope.y[i] = scope.y[i + 1]
    end  
    scope.y[SCOPE_WIDTH] = depth/100*lfoShape[parameterMap.get(deviceId, PT_VIRTUAL, 4017)] -- draw what we actually output
    local modValue = math.floor(254*scope.y[SCOPE_WIDTH]) -- mimick MIDI value behaviour
    if prevModValue ~= modValue then
      parameterMap.modulate(deviceId, PT_NRPN, modDestination,lfoShape[parameterMap.get(deviceId, PT_VIRTUAL, 4017)],depth)
      prevModValue= modValue
    end
    scopeControl:repaint()
end

```

**Sound layering with another synth**  
Next I wanted to layer this synth with others in an easy way. So a control let’s you simply choose to which MIDI channel you’d like to copy all incoming NoteOn and NoteOff messages that were originally meant for the OB-6.

![image](https://europe1.discourse-cdn.com/flex017/uploads/electraone/original/2X/b/b7eea63f34f00e5ffde5d4308b77b4bd4ee1a26b.png)

---

<div class="post-metadata">

**Author:** ![kiwigrass](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/kiwigrass/32/4983_2.png) [@kiwigrass](https://forum.electra.one/u/kiwigrass)\
**Post date:** [March 27, 2026, 7:02pm UTC](https://forum.electra.one/t/sequential-oberheim-ob-6-v3-patch-parsing-extra-lfo-and-sound-layering/4316/6 "2026-03-27T19:02:03Z")

</div>

Nice! That’s given me the idea to add a sneaky LFO to a couple of my LFO limited synths. Thanks.
