Instruction manual
Fulwave Designer is the Mac studio for Fulwave sessions: layer audio and spoken text into each stage, mix it properly, and export one file that plays in FulwaveTimer on iPhone. This manual follows the same order you'll actually work in: build, mix, preview, export.
A Fulwave session is an ordered list of stages. In Designer, each stage isn't limited to one sound. It can hold as many audio tracks and spoken-text cues as you need, each its own layer with its own timing, gain, and pan. Mix the layers, set how the stage begins and ends, then export the whole session as a single .fws file that FulwaveTimer plays on iPhone.
One segment of the session: a duration, a color, and any number of layers.
One audio track or spoken-text cue inside a stage, with its own start delay, gain, and pan.
Your working file. Layers stay un-mixed and re-editable. Save and reopen like any Mac document.
The exported, shareable file, mixed down and playable in FulwaveTimer. See Saving & exporting.
The shortest path from a blank window to a session you can send someone.
Save your working file as a .fwd project first (⌘S). You can keep reopening and editing it, and export a fresh .fws any time without losing your layers.
The left-hand list is your session, top to bottom in playback order.
Name the session, set how many times the whole thing Repeats, and pick a session Color Tag to keep multiple projects visually distinct in your library. Turning the repeat count down past 1 gives you Repeats: forever. The session loops until the listener stops it, which is what you want for ambient beds and open-ended meditation.
Add Stage appends a new stage to the end of the session; drag any stage to reorder it. Each stage gets its own name, color, and length, plus its own repeat count for looping just that stage before moving on.
Type the length straight into the Length field: 5:30, 90, and 1h30m all work, and the field tidies what you typed into a proper time when you leave it. The stepper beside it nudges by a second at a time.
The preset chips underneath cover the common lengths in one click. A click sets the length: click 5m and you're at exactly 5:00, whatever was there before. Hold ⌥ Option and a click adds instead, so you can build a length from parts: click 5m, then Option-click 30s to land on 5:30. While Option is held the chips relabel themselves +5m, +30s, so you can see which one you'll get before you click. In a narrow window the chips collapse into a Presets menu that behaves the same way.
Give the session artwork from the Session Graphic control: pick an image already embedded in one of your audio tracks, or choose a PNG or JPEG from your Mac. This is the artwork FulwaveTimer shows for the session once imported.
A stage's Layers list is where the sound actually comes from.
A stage can hold as many layers as you like, of any kind, and they all play together for the stage's length. Any layer can be shaped with filters, delay, movement and drawn curves.
Each layer sits in its own card, colored by what it is: teal for audio, orange for spoken text, and gray for text that only shows on screen without being spoken. The badge on each card pairs that color with the layer's number, so two audio layers stay tellable apart, and the card's border brightens while it's expanded. The same three colors are used for the lanes in the transport timeline, so a layer looks like itself wherever you meet it.
A spoken text layer can reach the listener two ways, set by Deliver as live speech on the layer.
Baked speech always shows its words on screen during the stage, whether or not you turned Show text on screen on. Once a phrase is inside the mix, the words are the only part of it the listener can still work with, so Designer never lets them disappear entirely. Before you export, the Export pane names any stages that are baking a phrase.
The Voice menu groups what's installed by quality: Premium, Enhanced, then Standard. That order matters more than the names do. Premium and Enhanced voices are neural and sound close to a recording, while Standard voices are the small compact ones and sound synthetic no matter which you pick. macOS ships only Standard voices; the rest are a free download, and Download More Voices… opens the right page of System Settings to get them. New voices appear in the menu as soon as the download finishes, without restarting Designer.
This is worth doing before you bake anything, since a baked voice can't be changed afterwards. It has no effect on live speech, because those words are spoken on the listener's device in a voice they chose, from what's installed there.
Every layer can start partway into the stage instead of at the top. Run a 60-second bed from the start of the stage and drop a 30-second voice layer in at the 25-second mark. The delay is set per layer.
Two mix stages: each layer, then the stage as a whole.
Every layer has its own gain and pan control, shown next to it in the Layers list.
The speaker button on a layer's card mutes it. A muted layer is left out of the export as well as the preview. It isn't a monitoring switch you can forget about, so a layer you muted while working stays silent for the recipient too. On a display-only text layer the same button shows an eye instead and hides the words rather than silencing them.
Muted layers also don't count against the pass-through rule in Saving & exporting: a stage carrying one untouched audio track plus a muted layer still exports without re-encoding.
Below the layers, Stage Mix sets a master gain and pan applied to the summed mix of every layer in the stage. Sliders snap to unity gain and dead-center pan, so the values that matter are easy to land on exactly.
If the summed layers would clip, the whole stage mix is scaled down automatically to peak just under 0 dBFS, so you won't get distortion from stacking layers.
Everything here changes how a layer sounds before it reaches the mix. It all happens inside Designer: on export the result is mixed into the stage's audio file, so FulwaveTimer needs nothing special to play it.
Each layer has a chain where you add filter blocks, and the Stage Mix has one of its own for filtering the whole stage. A block is one of:
| Kind | What it does |
|---|---|
| Low cut | Takes out everything below the frequency you set. |
| High cut | Takes out everything above it. |
| Band | Lifts or dips a band of frequencies. Q sets how wide: low is broad, high is narrow. |
| Low shelf / High shelf | Lifts or drops everything below, or above, the frequency by a fixed amount. |
Cuts have a Slope: gentle (12 dB per octave), steep (24, the usual working choice) or wall (48). The add menu also offers ready-made Band Pass and Brick Wall starting points. A filter response curve draws what the chain is doing to the spectrum. Every block can be bypassed, removed, or moved earlier or later in the chain, and order matters.
A layer or the Stage Mix can carry a delay: Time, Feedback and how much is wet. Bounce between the speakers sends each repeat to the opposite side from the one before. Moving the delay's time while it plays drags the repeats out of tune, which is the sound people mean by a tape delay. A layer with a delay keeps playing after its source ends, so the echoes finish instead of being cut off.
Anything that can move on its own is called movement. A movement source can be a sine, triangle or square wave, random steps (a new value each cycle, held) or random drift (the same values eased into each other). Set its rate and depth, then aim it at a layer's gain or pan, a filter's frequency or gain, or a delay's time. A slow sine on pan sweeps a sound across the room; random drift on a filter keeps a pad from sitting still.
For changes you want to place exactly, draw a curve instead. Time runs left to right across the stage and the value runs bottom to top, with a dashed line at unity gain or dead center. Press anywhere on the curve to add a point, and drag to shape it. Use a curve to fade a bed up over a stage, or to move a voice from one side to the other. Layers and the Stage Mix each have gain and pan curves.
For a layer: source, then its filters and delay, then its plugins (see Plugins & MIDI), then its gain and pan. The layers are then summed, and the Stage Mix applies its own filters, delay, plugins, and finally its master gain and pan. The preview and the export follow the same order.
Audio Unit plugins and MIDI controllers are available in the Direct build of Fulwave Designer, which is distributed outside the Mac App Store. This section describes what that build adds; the rest of the manual applies to both builds.
Any Audio Unit effect installed on your Mac can be added to a layer's chain, or to the Stage Mix, alongside the built-in filters. Open shows the plugin's own window; its settings are saved with the project. Plugins can be bypassed, removed and reordered like any other block, and they run after the built-in filters and before gain and pan.
An instrument layer is a layer whose sound comes from a plugin: a synth holding a chord, or a generator. Choose the notes on the on-screen keyboard, then set velocity (how hard they're struck, which on most instruments changes tone as well as level) and release (how long before the stage ends the notes let go, so the instrument's own tail happens inside the stage). Which sound it makes is chosen in the plugin's own window. A layer with no notes makes no sound, and export will stop until you add one.
Two buttons let you hear an instrument without playing the whole session:
Both play the layer through its own filters and chain plugins, without its gain and pan or the stage mix.
Chain plugins run live as the transport plays, and a knob turned in a plugin's window is heard as you turn it. The live / dry switch beside Render Mixes turns that off if a heavy chain makes playback stutter; the stages using those plugins then play without them, and the transport says so. Render Mixes always plays the exact result, and it is what the export uses. An instrument layer's own sound is heard in the mix once the stage has been rendered.
A MIDI controller's knob can be wired to a gain or pan control. Press the small radio-waves button beside the control, move a knob, and they're linked; press the button again to stop listening. A knob writes values into the project exactly as dragging the slider would, so the change is saved, can be undone, and is what gets exported. It doesn't record movement over time; for that, use movement or a drawn curve. Each control can be wired to one knob.
A project made in the Direct build opens in the App Store build with every plugin, setting and mapping preserved exactly. The App Store build can't host plugins, so those layers stay silent there, say so on the layer, and export warns instead of baking a different mix. Open the project in the Direct build to hear and edit them.
Closing a project window closes its plugin windows too.
Choose how much of the editor you see, in Settings ▸ Editing. Both are free, both are in every build, and they never change what a session sounds like.
| Simple | Full | |
|---|---|---|
| Audio and text layers, gain and pan, loop, start delay | Shown | Shown |
| Tones and noise, recording | Shown | Shown |
| Filters & EQ, delay, movement | Hidden | Shown |
| Drawn gain and pan curves | Hidden | Shown |
| Plugins and MIDI (Direct build) | Hidden | Shown |
Simple hides controls; it never resets, trims or removes the settings behind them. A project made in Full opens in Simple with everything intact and exports exactly the same audio. A layer or Stage Mix that is using something Simple is hiding says so, for example uses filters and EQ, kept and applied, and shown in Full, so you're never left hearing something you can't find. A plugin that is an instrument layer's own source keeps its Audition, Hold and Open buttons in Simple, and the plugin buttons in the Session Overview always open that plugin.
Window ▸ Session Overview opens the whole session in one compact list, stage by stage with each stage's layers under it. It follows whichever project is in front. Click a stage or a layer to jump to it in the editor. Badges show which stages are rendered and which are only approximated, a missing audio file, a layer that starts after its stage ends, and anything hidden by Simple.
Each stage sets how its audio starts and ends, independently:
| Mode | What happens |
|---|---|
| Cut | Snaps in or out instantly, no ramp. |
| Fade | Ramps volume smoothly over the transition. |
| Crossfade | The outgoing stage fades out while the next stage fades in, overlapping. |
Turn on Voice cues to have the exported session announce stage names as it plays. Stage end warnings add a spoken “10 seconds” call and a 3-2-1 countdown near the end of a stage. Both are set per session, and recipients can re-enable everything on their own device even if you ship a session pre-quieted.
The transport bar at the bottom plays the whole session timeline, not just one stage.
The transport is still a preview: it plays one pass through, and doesn't simulate stage repeats, alert tones, or haptics. Those are play-time behavior in FulwaveTimer. Export and open it there to hear the finished session exactly as recipients will.
Turn on Lock session before exporting if you want to control what a recipient can change. A locked session lets whoever opens it in FulwaveTimer adjust stage times, haptics, alert sounds, voice cues, the shortcuts that set their own Focus, and how they file it in their own library, but not the media, stages, or transitions you built. This is a client-side policy, not copy protection or DRM.
Before exporting, check I own or hold the necessary rights to distribute all audio, text, and voices included in this session. This attestation is required to enable the Export button. Make sure it's actually true for every audio file and voice you've included before checking it.
System voices are the exception you're most likely to trip over. Apple licenses the voices built into macOS for content you create for your own personal, non-commercial use. Recording them and passing the recording on is not permitted, which covers selling a session and giving one away publicly alike. A baked phrase is exactly that recording, so a session you intend to share or sell should deliver its speech live instead: the words travel as text and the recipient's own device speaks them, under their own license, with no recording of the voice anywhere in the file. The Export pane warns you when a stage bakes a system voice. If you need a fixed voice in a session you'll distribute, record a real one or use a text-to-speech service that grants commercial rights, and bring it in as an audio layer. This is a summary, not legal advice. The terms that bind you are in Apple's macOS Software License Agreement.
Save your project as a .fwd file (⌘S) at any point. Layers stay un-mixed and fully editable, exactly like any other Mac document. Reopen it later and keep working.
When you're ready to share, use Export Session (.fws)…. Each stage is mixed down and baked into one clean audio file on export. A stage whose only sound-producing layer is one untouched audio track passes through without re-encoding, and a text-only stage stays live (FulwaveTimer synthesizes it on-device, keeping the teleprompter feature working) as long as that layer is still set to Deliver as live speech; turn that off and its phrase is baked like any other. The Render summary in the Session panel shows exactly what will happen, for example “2 baked mixes, 1 live text.” A stage with nothing audible in it exports as a silent stretch of its full length, which is how you build a deliberate pause.
Send the resulting .fws file to anyone with FulwaveTimer on iPhone: AirDrop, Messages, email, whatever you'd use for any other file. No account or server is involved.
Fulwave Designer follows your Mac's Light or Dark appearance automatically, and is built for full keyboard control: every panel and control is reachable without the mouse. It's a standard Mac document app. Your projects live wherever you save them, and no sign-in is required.
.fwd is your editable project: layers stay separate so you can keep adjusting gain, pan, and timing.
.fws is the exported, shareable result: each stage's layers are mixed down into one file, ready for FulwaveTimer to play. Keep the
.fwd around if you'll want to revise the session later.
.fws file, which FulwaveTimer plays the same way. The only difference is that a plugin layer stays silent in the App Store build, and says so. See
Plugins & MIDI.
Questions, bug reports, or feature requests: use the support form and choose Fulwave Designer. Privacy details are in the Privacy Policy.