# Offline App

**URL:** <https://forum.electra.one/t/offline-app/4642>\
**Category:** Developers\
**Created:** [October 12, 2026, 12:49pm UTC](https://forum.electra.one/t/offline-app/4642 "2026-10-12T12:49:56Z")\
**Posts on this page:** 16\
**Page:** 1

<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:** [October 12, 2026, 12:49pm UTC](https://forum.electra.one/t/offline-app/4642/1 "2026-10-12T12:49:56Z")

</div>

Downloaded the offline app. Looking forward to trying out the features. @martin I see how to grab public library presets and import, but what about my private online presets? Is it only via import project?

---

<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:** [October 12, 2026, 5:32pm UTC](https://forum.electra.one/t/offline-app/4642/2 "2026-10-12T17:32:16Z")

</div>

Having fun with the AI feature of the offline editor. Building a preset just got a lot faster! What’s the best way to report things that the AI agent has found about the firmware that it didn’t like/expect? Not sure if it is the agent making wrong assumptions or its a feature of the firmware that could be improved. @martin you can be the judge of that. In building an extended ARP preset the Claude agent found a couple of bugs in its lua script.

> Fixed a real bug uncovered while wiring up the new controls: the firmware clamps a control’s **message** minimum to 0 even when the project correctly declares a negative one, which meant `toMidi()` — previously used indiscriminately for every control, including Swing — silently remapped bipolar fader values onto the wrong, non-negative range (swing at the “0% / centered” position was actually evaluating as +40, and every negative swing value was being read as positive). I split the config reader into `cfgList()` (index→label translation, still needed for Pattern/Octaves/Sync/routing lists) and `cfgValue()` (a straight, unmangled display-value read for every proportional fader: Tempo, Gate, Swing, Chance, and the two new Transpose controls), and re-pointed every call site accordingly — this was a pre-existing defect in Swing, not something introduced by Transpose, but it only became visible once the Transpose tests demanded exact arithmetic.

> Found another instance of the same class of bug: the firmware stores a list item’s negative `value` as an **unsigned 16-bit wraparound** (e.g. `-2` becomes `65534`), so `toMidi()` on the new Octave list returns huge positive numbers instead of negative ones. Fixing `cfgList()` to un-wrap that.
> 
> Clean. Transpose Octave is now a 5-item list (-2, -1, 0, +1, +2 Oct) instead of a fader, so it’s picked exactly rather than hunted for on a dial. Converting it surfaced a third instance of the same firmware quirk: a list item’s _negative_ label value comes back from `toMidi()` wrapped as an unsigned 16-bit number (−2 reads as 65534), so I added the standard two’s-complement unwrap to `cfgList()` — this makes negative-valued lists safe in general, not just for this one control.

Also, “ParameterMap::forget: cannot remove file” cache messages appear on every preset. Seems harmless but unneccessary?

---

<div class="post-metadata">

**Author:** ![martin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/martin/32/145_2.png) [@martin](https://forum.electra.one/u/martin)\
**Post date:** [October 13, 2026, 7:54am UTC](https://forum.electra.one/t/offline-app/4642/3 "2026-10-13T07:54:52Z")

</div>

> [@kiwigrass](#):
>
> @martin you can be the judge of that. In building an extended ARP preset the Claude agent found a couple of bugs in its lua script.

All three are wrong assumptions, stemming from one particular misunderstanding. I made changes to the embedded AI reference to prevent it. The change will be part of next offline app release.

> [@kiwigrass](#):
>
> Downloaded the offline app. Looking forward to trying out the features. @martin I see how to grab public library presets and import, but what about my private online presets? Is it only via import project?

I think I was too focusd on the sharing aspect of that, will adjust it to allow sync of private projects too.

---

<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:** [October 13, 2026, 12:39pm UTC](https://forum.electra.one/t/offline-app/4642/4 "2026-10-13T12:39:28Z")

</div>

@martin What does this mean?

> The reply was cut off before it finished - the turn reached its output limit. Nothing was changed. Try again, or ask for a smaller step.

Getting it frequently for what seem to me like pretty small tasks. $ spent each time.

---

<div class="post-metadata">

**Author:** ![davehouse](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@davehouse](https://forum.electra.one/u/davehouse)\
**Post date:** [October 13, 2026, 3:13pm UTC](https://forum.electra.one/t/offline-app/4642/5 "2026-10-13T15:13:55Z")

</div>

Is it possible to connect to an OpenAI account? I have access to most LLMs via work but the API key they provide is for OpenAI models.

---

<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:** [October 13, 2026, 4:14pm UTC](https://forum.electra.one/t/offline-app/4642/6 "2026-10-13T16:14:04Z")

</div>

I think you can use openAI’s codex.

---

<div class="post-metadata">

**Author:** ![martin](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.electra.one/martin/32/145_2.png) [@martin](https://forum.electra.one/u/martin)\
**Post date:** [October 13, 2026, 7:11pm UTC](https://forum.electra.one/t/offline-app/4642/7 "2026-10-13T19:11:14Z")

</div>

> [@kiwigrass](#):
>
> The reply was cut off before it finished - the turn reached its output limit. Nothing was changed. Try again, or ask for a smaller step.

There is a “safety” limit that stops the work to prevent excessive charges. I was not able to reach that during my work 😉 I will change it so that it warns you but it will not stop it - because it is actually quite a silly idea.

Would you be willing to share (PM) URL or project Id and examples of prompts that ran into that issue?

---

<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:** [October 13, 2026, 8:30pm UTC](https://forum.electra.one/t/offline-app/4642/8 "2026-10-13T20:30:59Z")

</div>

Yes. I’ve gone a bit mad with asking the AI agent to do things 🤖 . I think sometimes the timeout happens because for some reason the E1 and the app lose connection. The agent says there is not a prob at their end, and when I exit I see the app reporting that the E1 is not connected. But I have not systematically tested that. I think sometimes it times out just because I have given it too big a task. Breaking into smaller tasks often avoided repeating the timeout. Anyway, a warning would be useful. Maybe also a hard timeout option that the user can set?

So far I have used it to build a pretty sophisticated ARP and chord/harmonizer engine with chord shapes/inversions, and SATB choir-type harmonization that I can use with any synth rather than relying on the synths often limited set of built-in ARP and Chord tools. The biggest advantage I see is the fact that it can load the preset and conduct tests directly versus me constantly cutting and pasting.

---

<div class="post-metadata">

**Author:** ![DenernenSonfi](https://avatars.discourse-cdn.com/v4/letter/d/7cd45c/32.png) [@DenernenSonfi](https://forum.electra.one/u/DenernenSonfi)\
**Post date:** [October 14, 2026, 12:25am UTC](https://forum.electra.one/t/offline-app/4642/9 "2026-10-14T00:25:42Z")

</div>

> [@kiwigrass](#):
>
> So far I have used it to build a pretty sophisticated ARP and chord/harmonizer engine with chord shapes/inversions, and SATB choir-type harmonization that I can use with any synth rather than relying on the synths often limited set of built-in ARP and Chord tools

Please share. Pretty please 🥺

---

<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:** [October 14, 2026, 11:11am UTC](https://forum.electra.one/t/offline-app/4642/10 "2026-10-14T11:11:22Z")

</div>

I will post to public library when finished. Still working on a few ideas and making sure there aren’t any UI or musical bugs. It’s only 1 page but close to 1600 lines of code. One nice thing is that the agent can conduct a battery of functional tests (currently 80) on the preset before signing off on a change. But it is not a musician.

---

<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:** [October 16, 2026, 4:26pm UTC](https://forum.electra.one/t/offline-app/4642/11 "2026-10-16T16:26:31Z")

</div>

AI assistant added some labels and AI tells me the controller’s screen font has no glyph for ♮ (U+266E) or ♯ (U+266F) at all, so they render as nothing. Can that be changed @martin? We found a workaround. But the symbols would be useful.

---

<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:** [October 18, 2026, 8:13pm UTC](https://forum.electra.one/t/offline-app/4642/12 "2026-10-18T20:13:44Z")

</div>

Here you go. Still some things to test and add but lets call this a working draft. [Electra One App](https://app.electra.one/preset/4yn8h6FD8mHN55ahrEqp)

Let me know if you get it working OK. In terms of what it does there is a fairly detailed description. But the TLDR version is: If you have a poly synth and one finger then you can make chord voicings or 4-part harmonies, and run them through an ARP that has various rhythmic options. Its only 2 pages of controls but close to 2500 lines of lua. Absolutely not possible without 🤖 . Enjoy!

---

<div class="post-metadata">

**Author:** ![DenernenSonfi](https://avatars.discourse-cdn.com/v4/letter/d/7cd45c/32.png) [@DenernenSonfi](https://forum.electra.one/u/DenernenSonfi)\
**Post date:** [October 19, 2026, 12:43am UTC](https://forum.electra.one/t/offline-app/4642/13 "2026-10-19T00:43:31Z")

</div>

Sweet, thanks a lot!

> [@kiwigrass](#):
>
> Let me know if you get it working OK

I’ll try to find some time during the week, and let you know.

---

<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:** [October 19, 2026, 3:25pm UTC](https://forum.electra.one/t/offline-app/4642/14 "2026-10-19T15:25:43Z")

</div>

Use this version. It is the latest. A few bug fixes and better user guide. [Electra One App](https://app.electra.one/preset/iN7HGvXm3kvzKMl7rhnW)

---

<div class="post-metadata">

**Author:** ![DenernenSonfi](https://avatars.discourse-cdn.com/v4/letter/d/7cd45c/32.png) [@DenernenSonfi](https://forum.electra.one/u/DenernenSonfi)\
**Post date:** [October 20, 2026, 1:31pm UTC](https://forum.electra.one/t/offline-app/4642/15 "2026-10-20T13:31:46Z")

</div>

Just tried to open it, and am getting this:

> Broken project. Remove it or contact support.
> 
> The preset could not be read: Missing or insufficient permissions

But no hurry - it’s late, I still have work to do. Perhaps tomorrow I’ll give it (another) try.

---

<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:** [October 20, 2026, 1:35pm UTC](https://forum.electra.one/t/offline-app/4642/16 "2026-10-20T13:35:27Z")

</div>

Sorry. Try this link [Electra One App](https://app.electra.one/preset/w8TvuOMvboVaA3mKMooo)
