Award we're going for: Next Gen Award (RevenueCat Shipaton 2026, student category)

About the video's sound: all audio in the demo video is EffectPass's own processed output, recorded live while the app was running (on the iPad simulator through BlackHole, and on the real iPad from its screen recording). When a slider moves or an effect turns on in the video, that is the change you hear. No effects were added in editing; the audio was only cut, crossfaded and loudness-matched.

Inspiration

EffectPass is a separate, experimental project made for RevenueCat Shipaton 2026. It is based on the code of EffectDeck, my free and open-source app that runs a chain of audio effects on the sound of other apps. EffectDeck stays completely free and open source, and I have no plans to add a subscription or any of these restrictions to it. Shipaton was a chance to try, in a separate app, what a fair subscription could look like for this kind of tool.

EffectPass is that experiment: a separate app with its own name, icon and bundle ID. It is not EffectDeck and not an official edition or "Pro" version of it.

What it does

  • All 107 effects come from EffectDeck, where every one of them stays free. EffectPass only tests gating some of them in a separate app.
  • Runs a live chain of audio effects (EQ, dynamics, reverb, delay, lo-fi, saturation, modulation, spatial and more) on the audio of other apps.
  • In EffectPass, correcting sound is free: EQ, dynamics, basics, reverb, delay, restoration and the analyzers.
  • EffectPass Pro unlocks five creative categories: Lo-Fi, Saturation, Modulation, Spatial and Resonator. That is 50 of the 107 effects.
  • In the effect picker, locked effects show a lock icon. Tapping one opens a RevenueCat paywall (monthly $2.99 or annual $19.99 in the demo). After the purchase the paywall closes, the locks disappear right away, and the effect can be added.
  • Existing chains and presets always load and run, even if they contain Pro effects. Only adding a Pro effect from the picker is gated.
  • Settings has a Pro section: current status ("Active" after purchase), a button to get Pro, and Restore Purchases.

How we built it

  • SwiftUI app with a C++ DSP engine (the effects come from the open-source EffeTune project) and a JSFX host, all inherited from EffectDeck.
  • RevenueCat purchases-ios 5.91.0 (RevenueCat and RevenueCatUI) via Swift Package Manager.
  • One entitlement, pro, with monthly and annual packages in the default offering. The paywall is built in the RevenueCat dashboard and shown with PaywallView.
  • Entitlement state comes from Purchases.shared.customerInfoStream. The paywall also applies the returned customer info as soon as the purchase or restore completes, so the locks do not linger after it closes.
  • The API key lives in an untracked xcconfig (Config/Secrets.xcconfig). A build with no key never configures the SDK: everything is unlocked and the Pro section in Settings is hidden. Release builds ignore a Test Store (test_) key, because the SDK crashes on it.
  • The demo uses RevenueCat's Test Store, so the whole purchase flow runs without App Store Connect.
  • The simulator demo is recorded by a UI test (Tests/UI/DemoWalkthroughUITests.swift, run with Scripts/record_demo.sh).

Challenges we ran into

  • Finding one clean place to gate. The gate sits on the picker row itself, so tapping and searching are covered, and locked rows cannot be dragged into the chain.
  • Keeping the lock state honest: the list must unlock the moment the purchase finishes, not a moment later.
  • Keeping EffectPass fully separate from EffectDeck: its own name, icon, bundle IDs, app group, audio device and privacy policy, and no links into EffectDeck's website, store page or community.

Accomplishments that we're proud of

  • In EffectPass, chains and presets that contain Pro effects always load and run; only adding a new Pro effect is gated.
  • The gate is small: one 68-line file plus a few lines in the picker and Settings. EffectPass's code is open source.

What we learned

  • RevenueCat's Test Store makes it possible to build and test the entire purchase flow before touching App Store Connect.

What's next

  • If EffectPass continues as its own experiment, test it with real App Store products. None of this would ever apply to EffectDeck.

Testing it yourself

To run it: build the simulator target from the README (Building for the simulator), create a RevenueCat Test Store key with an entitlement pro and a monthly and an annual package, and put the key in Config/Secrets.xcconfig (see Config/Secrets.xcconfig.example). Build Debug, launch with -ETMock 1 -ETSeed demo -ETLayout wide (the last pair keeps the iPad two-column layout). Without a key the app builds and runs with everything unlocked.

Built With

Share this project:

Updates

Submission history