# Floe> Floe is a free, open-source sample library engine. Available as an audio plugin for Windows, macOS and Linux. --- # Beta Testing > Information about beta testing for Floe Beta releases give you early access to new features and improvements before they're included in stable releases. However, they may also come with some incomplete functionality and increased risk of bugs. important To see documentation for beta features on the website, change the version selector (top right) from 'Stable' to 'Beta'. ## How it works - You can download and install beta releases from the [download page](/download) when available. - All your libraries, presets and settings are preserved. - Change the documentation to 'Beta' (top-right of the website) to see beta-specific docs. - Switch back to the stable version anytime by installing the latest stable release (overwriting the beta). ## Current status There are no beta versions available. The latest stable release, 2.0.4, is the newest possible version of Floe. ## How Beta Downloads Work Beta downloads are available on the [download page](/download) when there's a beta release newer than the latest stable version. If no beta link appears, it means the current stable release is already the newest version available. The download page lists all available files - read the filenames carefully and download the appropriate one for your system. Just like stable releases, most users will want the standard installer file rather than manual-installation files. The installation process is the same as for stable releases, see the [installation docs](/docs/installation/download-and-install-floe) if you need help. On Linux, substitute the beta download link into the regular install command or follow the manual-install instructions on the help page. Your libraries, presets and settings are always preserved even when switching from stable to beta versions or vice versa. ## Feedback Floe is an independent project, and your feedback helps us improve the software. If you encounter issues or have suggestions, we'd love to hear from you. For beta testing feedback in particular, we often post about the specifics that we're looking for on the [blog](/blog) page. There's many ways to provide feedback, please choose one that suits you best: - Open a [GitHub Discussion](https://github.com/floe-audio/Floe/discussions). You will need a GitHub account to do this. - Report bugs or issues on the [GitHub Issues page](https://github.com/floe-audio/Floe/issues). - Use the built-in 'Share Feedback' form in Floe itself (we're aware the text input is a bit clunky right now - it's on the roadmap). - Reach out to Sam via email. - Post on [FrozenPlain's forum](https://forum.frozenplain.com/t/floe) in the Floe section. ## Installation and Versioning Beta releases install just like stable releases and will overwrite any existing Floe installation (whether beta or stable). If you want to return to the stable version after trying a beta, simply download and install the latest stable release. Version numbers indicate release order: for example, v1.0.0-beta.2 is newer than v1.0.0-beta.1, but both are preview versions that come before the final v1.0.0 release. ## Always Stay Updated Always have the latest version of Floe - including beta features - by enabling _Include beta version when checking for updates_ in the preferences panel. This way, Floe will let you know when there's a new version available, whether it's stable or beta. --- # Mirage Compatibility > Floe is the successor to FrozenPlain's Mirage, with full backwards compatibility Floe includes full compatibility with Mirage, a sample library platform developed by FrozenPlain from 2018 to 2024. Floe evolved from this foundation - expanding into open-source development and broader platform compatibility. ## Technical Details Mirage libraries use a custom `.mdata` binary format for storing samples and metadata. The **Mirage Compatibility package** provides additional assets such as images and audio files that were previously embedded within Mirage but are handled separately in Floe. This package is automatically included with FrozenPlain's Mirage-format products, but you can also [download Mirage Compatibility](/packages/mirage-compatibility) separately. Floe automatically detects existing Mirage installations and loads libraries without requiring conversion or re-installation. Both Mirage and Floe can coexist on the same system without conflicts. For information about FrozenPlain's transition from Mirage to Floe, including product catalogue details and customer migration guidance, see [FrozenPlain's transition page](https://www.frozenplain.com/support/mirage/mirage-floe-transition). --- # Sponsorship > Support Floe's development through sponsorship We're open to discuss sponsorship for aspects such as: priority support, submissions to our [Package Directory](/packages), and creating/converting sample libraries to Floe. Please get in touch with [Sam](mailto:sam@frozenplain.com). ## Supporters [![Gig Performer](https://assets.floe.audio/website/sponsor-gig-performer.8300960f4bcbecb8.png)](https://gigperformer.com) Thanks to [Deskew Technologies](https://gigperformer.com), creators of Gig Performer, for supporting Floe's development. * * * [![FrozenPlain Logo](https://www.frozenplain.com/icons/logo-adj.svg)](https://www.frozenplain.com) Floe and [FrozenPlain](https://www.frozenplain.com) are companion projects created by the same developer. However, Floe is intentionally encapsulated as its own platform: an outlet for Sam's open-source software passion, freely available for others to explore and build sample libraries for. It's totally free and is here for the wider music-making community. Looking to sell your own libraries? FrozenPlain offers a revenue-sharing partnership for high-quality sample libraries, handling payment processing, marketing, and distribution. [Get in touch](https://www.frozenplain.com/contact) to learn more. --- # Beta Testing > Information about beta testing for Floe Beta releases give you early access to new features and improvements before they're included in stable releases. However, they may also come with some incomplete functionality and increased risk of bugs. important To see documentation for beta features on the website, change the version selector (top right) from 'Stable' to 'Beta'. ## How it works - You can download and install beta releases from the [download page](/download) when available. - All your libraries, presets and settings are preserved. - Change the documentation to 'Beta' (top-right of the website) to see beta-specific docs. - Switch back to the stable version anytime by installing the latest stable release (overwriting the beta). ## Current status There are no beta versions available. The latest stable release, 2.0.4, is the newest possible version of Floe. ## How Beta Downloads Work Beta downloads are available on the [download page](/download) when there's a beta release newer than the latest stable version. If no beta link appears, it means the current stable release is already the newest version available. The download page lists all available files - read the filenames carefully and download the appropriate one for your system. Just like stable releases, most users will want the standard installer file rather than manual-installation files. The installation process is the same as for stable releases, see the [installation docs](/docs/beta/installation/download-and-install-floe) if you need help. On Linux, substitute the beta download link into the regular install command or follow the manual-install instructions on the help page. Your libraries, presets and settings are always preserved even when switching from stable to beta versions or vice versa. ## Feedback Floe is an independent project, and your feedback helps us improve the software. If you encounter issues or have suggestions, we'd love to hear from you. For beta testing feedback in particular, we often post about the specifics that we're looking for on the [blog](/blog) page. There's many ways to provide feedback, please choose one that suits you best: - Open a [GitHub Discussion](https://github.com/floe-audio/Floe/discussions). You will need a GitHub account to do this. - Report bugs or issues on the [GitHub Issues page](https://github.com/floe-audio/Floe/issues). - Use the built-in 'Share Feedback' form in Floe itself (we're aware the text input is a bit clunky right now - it's on the roadmap). - Reach out to Sam via email. - Post on [FrozenPlain's forum](https://forum.frozenplain.com/t/floe) in the Floe section. ## Installation and Versioning Beta releases install just like stable releases and will overwrite any existing Floe installation (whether beta or stable). If you want to return to the stable version after trying a beta, simply download and install the latest stable release. Version numbers indicate release order: for example, v1.0.0-beta.2 is newer than v1.0.0-beta.1, but both are preview versions that come before the final v1.0.0 release. ## Always Stay Updated Always have the latest version of Floe - including beta features - by enabling _Include beta version when checking for updates_ in the preferences panel. This way, Floe will let you know when there's a new version available, whether it's stable or beta. --- # Mirage Compatibility > Floe is the successor to FrozenPlain's Mirage, with full backwards compatibility Floe includes full compatibility with Mirage, a sample library platform developed by FrozenPlain from 2018 to 2024. Floe evolved from this foundation - expanding into open-source development and broader platform compatibility. ## Technical Details Mirage libraries use a custom `.mdata` binary format for storing samples and metadata. The **Mirage Compatibility package** provides additional assets such as images and audio files that were previously embedded within Mirage but are handled separately in Floe. This package is automatically included with FrozenPlain's Mirage-format products, but you can also [download Mirage Compatibility](/packages/mirage-compatibility) separately. Floe automatically detects existing Mirage installations and loads libraries without requiring conversion or re-installation. Both Mirage and Floe can coexist on the same system without conflicts. For information about FrozenPlain's transition from Mirage to Floe, including product catalogue details and customer migration guidance, see [FrozenPlain's transition page](https://www.frozenplain.com/support/mirage/mirage-floe-transition). --- # Sponsorship > Support Floe's development through sponsorship We're open to discuss sponsorship for aspects such as: priority support, submissions to our [Package Directory](/packages), and creating/converting sample libraries to Floe. Please get in touch with [Sam](mailto:sam@frozenplain.com). ## Supporters [![Gig Performer](https://assets.floe.audio/website/sponsor-gig-performer.8300960f4bcbecb8.png)](https://gigperformer.com) Thanks to [Deskew Technologies](https://gigperformer.com), creators of Gig Performer, for supporting Floe's development. * * * [![FrozenPlain Logo](https://www.frozenplain.com/icons/logo-adj.svg)](https://www.frozenplain.com) Floe and [FrozenPlain](https://www.frozenplain.com) are companion projects created by the same developer. However, Floe is intentionally encapsulated as its own platform: an outlet for Sam's open-source software passion, freely available for others to explore and build sample libraries for. It's totally free and is here for the wider music-making community. Looking to sell your own libraries? FrozenPlain offers a revenue-sharing partnership for high-quality sample libraries, handling payment processing, marketing, and distribution. [Get in touch](https://www.frozenplain.com/contact) to learn more. --- # Changelog > A detailed changelog of all versions of Floe ## 2.0.5 - Open the license file that comes with each of your libraries, from the new Library Terms of Use item in the main menu - Fix Open Folder buttons on macOS opening the folder above the one you wanted ## 2.0.4 A big update with redesigned browsers, a reworked Distortion effect, a new Limiter and lots of improvements throughout. In summary: - Redesigned preset, Instrument and IR browsers, with a new Browse mode that gets you to a library, preset bank, folder or tag in a few clicks. See the [browsers docs](/docs/beta/usage/browsers) - Overhauled Distortion effect: 10 new or upgraded types, cleaner sound with 4x oversampling, new Punish and Tilt controls, and Auto Gain to keep the volume steady as you turn up the drive. Existing presets and DAW projects load with the older types, kept as Legacy types - New Limiter effect, mainly for the end of the effects chain - Faster audio engine, up to 2.5x faster in heavy granular use - Granular Share Grains option: shared grains keep the same density however many notes you play, per-voice grains build chords into a dense wash - Variation option for granular layers and random LFO shapes, so a preset can repeat the exact same grain scatter or LFO movement on every note or on each key - Clearer macros: see macro movement on the filters, EQ, LFO, envelopes and waveform, see a parameter's macro-adjusted value in its popup, and set the 0% and 100% values directly with Edit Range - More descriptive tooltips, with values shown straight away on hover - Set a default preset for new instances of Floe to open with - New displays and meters: a LUFS meter, peak-hold lines, Compressor meters, a High-pass filter graph, and shape previews for Distortion and Bitcrush - Redesigned effects switches: bypass, add/remove, and jump to an effect in the rack from one place - Smoother, more useful Bit Crush controls - Swap layers and macros from their right-click menus - LFO Amount as an MPE press and slide target - Wider layer Pitch range of ±88 semitones - Respond to MIDI panic messages (All Notes Off and All Sound Off) - Many smaller improvements and fixes This release includes all changes listed in the beta changelogs below: 2.0.4-beta.1 through to 2.0.4-beta.3. ### Changes since 2.0.4-beta.3 - Fix clicks sometimes being ignored when Floe is busy, for example very quick clicks or moving the mouse away straight after clicking - Fix notes looping forever when a loop mode is set but the volume envelope is off - Fix the arpeggiator's step right-click menu not opening in Overview - Fix a granular Harmony interval you've just clicked off still looking on until you move the mouse away - Respond to MIDI All Notes Off (CC 123) and All Sound Off (CC 120), so a DAW or controller's panic or stop can silence stuck notes - Fix renders sometimes coming out with different random variations (grains, random LFO shapes, the arpeggiator's Humanise and Random orders, and more) depending on your DAW's buffer size, such as between playback and bouncing. Some DAW projects that use these may play a different variation than in earlier versions - Make error messages easier to read: short titles, no repeated package names, and no internal source code details - Installing a preset bank that doesn't name a default preset now suggests its first preset alphabetically, so a blank Floe opens straight onto something playable - Change the granular Harmony "Fifths" preset to a 5th above plus the same note an octave lower, so it reinforces the root rather than adding a 4th. Existing presets and DAW projects keep their intervals - Always show User presets in the preset browser, even before you've saved any, so the layout no longer changes as preset banks come and go and it's clear where saved presets go - Sort preset banks alphabetically by name in the preset browser, regardless of which folder they're installed in - Add a preference to show Floe's default background behind every layer when layers use different libraries, for a calmer, more consistent look on the Layers page - Packager: make each library's 'About' document a PDF, so it opens on any computer, and have it point to the library's license file rather than summarise it. Add `--no-about-doc` to leave it out ## 2.0.4-beta.3 - Show a parameter's macro-adjusted value in its value popup, along with which macros are changing it - Add Edit Range to the right-click menu of macro destination knobs: set the parameter's value at 0% and 100% of the macro directly, and hear each end while you adjust it. Moving one end leaves the other where it is, and an option moves the macro so the sound stays as it is now - Fix wrapped text such as preset descriptions sometimes starting a line with a full stop, for example when the text contained an ellipsis - Fix the per-note markers on a layer's Volume slider ignoring macros, so they now sit at the level you actually hear - Add an "All" row to library and preset bank pages in the browsers' new Browse mode (from beta.2), making it clear when the whole collection is shown and giving a quick way back to it from a folder - Add Share Grains to granular mode: choose between shared grains, which keep the same grain density however many notes you play, and per-voice grains, where each note adds its own grains and chords build up into a dense wash. New layers start with shared grains, and presets and DAW projects from earlier versions keep per-voice grains so they sound the same - Rename the granular and LFO Seed Mode menu to Variation, with options Different on every note, Identical on all notes, and Identical on each key, so it's clearer what each one does - Stop the LFO display flipping a random Shape upside down for a negative Amount when Variation is Different on every note, since it sounds the same either way ## 2.0.4-beta.2 ### Browsers The preset, Instrument and IR browsers have been redesigned. See the [browsers docs](/docs/beta/usage/browsers) for a full walkthrough. #### What's different - Add Browse mode, now the default: click through a few short pages to narrow down to a library, preset bank, folder or tag, rather than scanning a long tree of filters. Switch to Filter mode for the previous behaviour - Swap the left and right panels: items are now on the left, so they drop down directly beneath the selector you clicked and need less mouse movement - Restyle the browsers to feel like a menu rather than a dialog window - Keep the selector that opened the browser usable while the browser is open, so its next, previous, randomise and unload buttons replace the browser's duplicate ones - Make Favourites narrow the current list rather than act as a separate filter, so you can see just your favourites within a preset bank, for example - Make preset search match preset names only, not preset bank or folder names, so results are more precise and predictable #### Improvements - Make the browsers resizable - Add a line beneath the items saying what you're looking at, such as "Showing from Abyss preset bank". Click any part of it to undo that narrowing down - Make also open the current item's library or preset bank in the right panel in Browse mode, rather than just scrolling to the item - Show the current item more reliably when a browser opens - Remember your place in Browse mode, so the next new instance of Floe opens the browser there - Group preset banks into Factory preset banks and User presets when you have both - Rename the preset browser's Libraries section to Libraries used, since it shows presets that use a particular sample library - Fix clicking an already-loaded item unloading it. This was easy to do by accident and left the preset blank. To unload, use the on the selector instead ### Other changes - Improve performance of the audio engine to be easier on the CPU, up to 2.5x faster in heavy granular use cases - Add a seed option to granular layers and random LFO shapes , so a preset can save the exact grain scatter or LFO movement. Choose Fixed for the same pattern on every note, or Fixed Per Key for a repeatable variation on each key - Add LFO Amount as an MPE press and slide target, so you can dig into a key to bring in vibrato or tremolo on just that note - Add 'Swap with Left/Right' options to the right-click menu of Layers (the instrument selector button) and Macros (the knobs). So that you can reorder them easily. Swapping a layer also migrates the macro assignments so they now point to the new location. - Add a display to the Distortion and Bitcrush effects showing a representitive preview of the current shape - Improve the Bit Crush effect. Bits and Sample Rate parameter are now smooth and continuous allowing for more granularity. The Bits parameter also now focuses on a more useful range of around 8 to 3 - where most of the audible changes happen. These changes required new parameters and therefore run through our Legacy Parameters system where necessary (loading DAW projects). - Add input, gain-reduction and output meters to the compressor effect, showing the level going in, how much it's turning the signal down, and the level coming out - same as the Limiter - Add a graph showing the High-pass filter's response, draggable to set the cutoff - now matching what the Convolution Reverb does - Improve how granular lines are drawn on the UI - each grain now fades in/out based on their real envelope from the Smooth parameter - Improve how waveform instruments are displayed (sine, white noise). Now, the 'play mode', reverse and 'loop mode' controls are hidden, since a waveform has always ignored them anyways. Additionally, the red line voice markers now appear on the waveform display in a more useful way, placed left to right by pitch. - Smooth changes to the LFO Amount, so moving or automating it while notes play doesn't step audibly - Fix the Ring Mod (44.1k) legacy distortion type modulating 4 times too fast - Fix voice persisting in Granular Playback mode even when the playback has finished - Fix tooltips persisting when the mouse leaves Floe's window - Fix library icons and backgrounds sometimes staying missing until Floe was restarted, when they were requested while libraries were still loading ## 2.0.4-beta.1 ### Distortion Huge improvements to the distortion effect: - 10 new/upgraded distortion types: more musical and balanced with smooth gain compensation - Cleaner sound with 4x oversampling, anti-aliasing and DC offset removal - Punish parameter added to push the distortion even further - Tilt EQ parameter added to musically shape the tone (deep through to bright) - Auto-gain parameter added to legacy distortion types to opt in so the volume level stays steady as you turn the drive up - Fully backwards compatible with existing presets and DAW projects - they will load as one of the 'legacy' distortion types. The new algorithms are not directly equivalent to the legacy types. Changing your preset from a legacy type to a newer type has to be done by ear. Some things to keep in mind if doing that: turn on the Auto Gain parameter for an easy win - the Drive knob will have a much more consistent volume level across the whole knob; consider these legacy to modern migration suggestions (but use your ears!): Atan -> Overdrive, Clip -> Hard Clip, Tube Log -> Tape, Tanh (Decimate) -> Tape, Tube Asym3 -> Overdrive (+15% Punish), Sine -> Sine Fold, Raph1 -> Warp, Foldback -> Wavefolder, Rectifier -> Octave, Ring Mod (44.1k) -> Ring Mod. ### Limiter - Add a new Limiter effect: a lookahead true-peak brickwall limiter with Gain and Ceiling controls, plus input, gain-reduction and output meters, intended primarily for the end of the effects chain ### Effects switches Redesign the effects switches, rather than a simple button, they have a few interactions: - See and toggle the 'bypass' state by clicking the little rectangle 'light' left of the FX name - Click on an active FX name to scroll and flash the FX in the rack, making it much quicker than lots of scrolling, paritcularly when the rack has lots of FX - Add/remove the FX using the checkbox on the left rather than clicking the name ### Tooltips - Made all tooltips much more descriptive and helpful - Split tooltips into two boxes: a control's value appears straight away when hovered (and while dragging), while its description appears in italics after a short pause. Only the description is affected by the 'Show tooltips' preference. A new 'Instant value readouts' preference can be turned off to show the value only after the pause or while dragging - When hovering a macro destination knob, it now also displays what the destination parameter will be at macro 0% and 100%, plus its current value. For example when the destination is a volume knob, it might say -60dB to 0dB (now -12.4dB) which means when the macro knob is at 0% this parameter will be -60dB and when it's at 100% it will be 0dB, and it's currently at -12.4dB - Increase how long it takes after hovering on a knob that the tooltip appears ### Meters - Add a LUFS meter to top panel - useful for getting presets to a similar perceived loudness. Turn it on using the new checkbox on the Preferences panel. - Add a peak-hold line to all peak meters: it marks the highest level reached, holds there for a moment, then falls back - Change the peak meter ranges and add min/max markers. The top panel meter: -60dB to +10dB becomes -36dB to +6dB with markers every 6dB - allows for more visibility where you need it - closer to 0dB. The layer meters: -60dB to +10dB becomes -60dB to +12dB with markers every 12dB. - Make the layer peak meters always green. The yellow/red segments falsely suggest that there's a problem when actually any level is fine for layers. ### UI Behaviour - Make the LFO waveform display draggable: drag left or right to change the Time, up or down to change the Amount - Show macro modulation on the filters, EQ, LFO, envelopes and waveform. This is done by either showing a faint 'ghost line' or using the existing display elements that now move separately when needed. - Macro destination targets on the waveform sit on the handles themselves (loop start, loop end, crossfade) rather than in a column at the right edge - Add support controlling a layer's sample start offset with a macro - Add right-click on the effects switchboard to 'Tidy FX Order', which groups all the turned-on effects at the top without changing their order - Remove the drag-to-change behaviour from most menu controls. It was more annoying than useful: too easy to accidentally change values. Click to open the menu or use the arrow buttons instead. Some of the 'rate' menu still support draggins such as the LFO rate, arpeggiator rate and delay time, where dragging through the values is useful - Add ability to drag up/down on filter/EQ nodes to change resonance (for types that don't have a gain control) - Improve the responsiveness and feeling of dragging number/knob parameters - Make scrollbars clearer and show up/down buttons on them. Clicking the scrollbar channel scrolls a page at a time towards the click (hold to repeat); shift-click jumps straight to that spot ### Default preset - Add a default preset: the preset a new instance of Floe opens with. Right-click any preset in the browser to set it, or use the Default Preset row in Preferences > General to set the currently loaded preset or clear the default - Preset banks can suggest a default preset with a new `default_preset` key in `floe-preset-bank.ini`. Installing a package containing such a bank applies the suggestion unless you've chosen your own default. If Floe is blank when the install finishes, the preset is loaded there and then; otherwise the install-complete dialogue offers to load it. That dialogue's actions - sending the package file to the trash, loading the default preset - are now optional, with a Done button to close it ### Misc - Widen the layer Pitch range from ±36 to ±88 semitones. Existing presets and DAW projects are unaffected: the previous parameter is kept as a legacy parameter - Change the icon for performance controls from 'sliders' to 'gauge'. The old icon didn't look very good and was a little confusing due to ambiguity with the Preferences button and that it didn't actually feature any sliders. - Standarise displaying Hz or semitones everywhere for filter cutoff parameters. There's a new preference checkbox to pick either which mode you want. When shown in semitones, the value is displayed as a note name (e.g. A3) instead of a plain number. - Change the Performance Controls MIDI CC tab icon to a MIDI DIN connector - Fix pops in audio when rapidly changing the Modern compressor threshold or ratio, or Vintage compressor Gain - Change button text from 'Copy to clipboard' to 'Copy message' or 'Copy error' - Add a quick sliding-up animation for the key-range popup below the bottom panel - Add preferences and performance controls to the Main Menu as well as icons on the top panel. - Improve icons for Mute and Solo buttons - Fix the loop crossfade shrinking when quickly dragging the waveform loop region - Fix a crash when the host sends a malformed MIDI event - Fix buttons not being visible when the path is long on the Preferences window - Fix the layer filter getting stuck (sometimes almost silent) when its envelope moves slowly, until the cutoff was nudged ## 2.0.3 - Add MPE (MIDI Polyphonic Expression) support: enable it in the Performance Controls panel for per-note pitch bend, press (channel pressure) and slide (CC74), and choose what press and slide control on each layer's Config tab. CLAP per-note expressions (pitch, pressure, brightness) are also supported - Replace the Instance Config and MIDI CC Assignments panels with a unified Performance Controls panel (top panel, sliders icon): make the current instance settings and MIDI CC mappings the ones new instances start with, and optionally save named profiles bundling them for switching between setups - Add a dialog after installing a package offering to send the now-redundant package file to the trash - Show velocity markers on the layer volume slider - Highlight the recommended button in dialogs with an accent colour, and grey-out buttons that need text input first - Add right-click menu and double-click value entry to macro destination knobs, with options to enter, copy, paste, reset and invert the amount - Add copy and paste for effects: right-click an effect or the empty space of the FX rack to copy a single effect or the entire rack (all effects, their order and settings) and paste it, including from one preset to another - Add the ability to activate multiple encrypted packages at once by loading a single license file - Fix newly played notes ignoring the current pitch wheel position until the wheel next moved - Fix preferences file becoming blank or truncated: preferences are now written atomically - Fix window opening larger than the screen when the saved window size is invalid: window sizes are now always constrained to fit the current display - Fix possible crash when a host fires a timer callback without a timer being registered - Fix possible crash when loading a library background image with a very large window size - Fix possible crash when reading a corrupted or invalid package file: such files are now reported as errors - Fix possible crash and broken audio when a host or corrupted preset/DAW project provides invalid parameter values: values are now sanitised - Fix possible crash when a host sends an invalid pitch bend message - Fix note-off triggered samples playing forever when a loop mode is set: they now always play as one-shots - Fix note-off triggered samples not playing under the arpeggiator: each arp step now triggers release samples like a manually played note - Fix stuck notes and hanging voices in several cases: using the sustain pedal while notes play on other MIDI channels, releasing the sustain pedal after toggling MPE, and very large bursts of MIDI events - Fix instance config reverting to its previously-saved values when a DAW saved and reloaded a project - Fix the tempo-synced LFO rate, arpeggiator rate and delay time controls feeling inverted: dragging up or right now speeds them up - Fix unnecessary left side gap in macro destination right-click menu ## 2.0.2 - Fix possible crash when opening the General tab of the preferences panel - Fix crash when installing packages requires more than one file-conflict decision - Fix possible crash when opening file dialogs on macOS: dialogs are now attached to Floe's window as a sheet - Fix package installation issue on macOS when attempting to install to old Mirage folder (admin required) - Improve CPU usage of pitch LFO ## 2.0.1 - Fix crash when trying to install multiple encrypted packages at once - Fix clicks in audio related to using large resonance values in the filters/EQ - Add right-click utilities to Pitch and Detune parameters such as +1 octave - Packager: change how the package name override works to be more intuitive ## 2.0.0 Massive set of new features and improvements. In summary: - UI split into 3 pages: perform, layers, effects - Granular synthesis - Arpeggiators - Visual design improved throughout including displays for filters, EQ, etc. - Improved shape of many parameters - New LFO shapes - New compressor mode - Extra band added to EQ - EQ added to the FX rack - Better settings for MIDI CC setup, and reproducibility - Random variation strip for exploring new presets - New default background image This release includes all changes listed through the beta changelogs: 1.2.0-beta.1, and 2.0.0-beta.1 through to 2.0.0-beta.6: Additionally, this version differs from 2.0.0-beta.6: - New background image - Show Modern compressor Attack and Release as milliseconds instead of percentage - Fix remaining issue with carat position in text inputs - Packager CLI: change to subcommand format: info or pack. ## 2.0.0-beta.6 - Preset favourites now survive re-saving and library updates: each preset file carries a stable UUID embedded by Floe at save time, used as the identity for favourites and the "currently loaded" indicator. Older preset files without an embedded UUID continue to work via a content-derived fallback. Existing favourites are migrated automatically. - Show the revision number of a library/preset in the browsers, e.g. v1.2. - Lua and preset banks: rename `minor_version` to `revision` to better reflect what it means - Fix legacy parameters panel 'Modernise all' sometimes not correctly retaining perfect sound compatibility when macros are involved - Packager CLI: change shape of JSON output - Tweak preset auto-description logic - On the PERFORM page, make the library name use the larger font - Fix buggy multiline text input like the description box on the Save Preset panel - Fix the lowest MIDI velocities mapping slightly too high; velocity 1 now reaches the bottom of the velocity-to-volume curve and the softest velocity layer - Add option to abbreviate parameter names in the DAW - Packager CLI: include preset\_banks in JSON output ## 2.0.0-beta.5 - Higher precision for holding shift while dragging waveform handles (loop, crossfade, offset) - Show 2 decimal places for layer loop points and sample offset - Show 1 decimal places for all percentage parameter printouts to aid precision - Fix recent regression where right-click menu for libraries didn't work - File pickers remember the last folder you used across sessions - Packager CLI: rename flags to singular form (`--library-folder`, `--preset-folder`, `--input-package`, `--output-dir`, `--info-json`), add short aliases (`-l`, `-p`, `-i`, `-o`, `-n`, `-j`, `-e`), rename `--omit-unreferenced` to `--prune`, support `--info-json -` to write JSON to stdout - Fix case where voices weren't retriggering when changing instrument/preset - Tweak PERFORM page layer layout - Fix FX Mix knob not being correct when loading an old preset that has a macro assigned to either Wet or Dry of Convolution, Chorus or Bitcrush FX. - Lua: replace `vignette_intensity` with a `background_overlay` sub-table for tuning the mid-panel vignette (colour, inner radius) and an independent panel tint when this library is the active background - Preset bank `floe-preset-bank.ini` supports an optional `library_for_visuals` field to pick which library's icon/background represents the bank ## 2.0.0-beta.4 - Fix package install failing on Linux in sandboxed environments such as steam-run - Show the underlying error in the notification when a package install fails - Instance Config (reset on transport, reset keyswitch, seed) is preserved when loading presets - Sample library creation: add 'fade\_out\_frames' to add\_region - Expanded arpeggiator Auto Rate from on/off to a menu with speed multipliers (0.25x–4x) and dotted/triplet variants. Note: existing DAW parameter automation written against the old on/off toggle may not behave as expected - Show the auto-picked rate as a read-only readout when Auto Rate is on, instead of greying out the Rate menu - Fix arpeggiator step gate being ignored when the step was followed by tied steps - Fix arpeggiator sliced instrument length and offset not loading from saved state - Show step numbers at the end of tie chains and always label the final step in the arpeggiator overview - Fix missing tooltip on LAYERS page instrument selection buttons - Add mute/solo buttons to the PERFORM page - Minor layout improvements to PERFORM page UI ## 2.0.0-beta.3 - Fix arpeggiator not resetting when loading a preset or changing instruments - Fix AU parameter automation lane order when loading a Floe 1.x session into Floe 2.x - Fix misc VST3/AU format details (clap-wrapper library bump) - Improve tag descriptions and category questions for clarity - Fix preset name not updating when undoing past initial state - Library development: use instrument ID on the library dev panel, not name - Library development: add `kit` tag ## 2.0.0-beta.2 Our biggest update to date. This follows on from 1.2.0-beta.1; we chose to skip 1.2.0 and jump straight to 2.0.0. ### Major new features - Added granular synthesis (including a random detune parameter) - Added EQ to effects rack - Added arpeggiator - GUI: split the single main page into separate Layers, Effects and Perform pages - Added perform page with access to common controls and visual display, with 'Vary' random-variation control replaces the old randomise buttons; click-position strip lets you choose how much to vary - Original/Modified toggle on Perform page to audition the original vs modified preset - 7 new LFO shapes: Random Steps, Random Glide, Pluck, Pluck Sharp, Pulse Narrow, Pulse Wide, Trapezoid - Effects rack improvements: - Bypass button for each effect - Mix knob for each effect - replacing separate Wet and Dry controls where appropriate. Loading presets that were saved with the separate wet/dry parameters are perfectly re-mapped to the new Mix and Output parameters where necessary. Loading an old DAW project with separate wet/dry actives the _legacy parameters_ system. - Bypass-all and remove-all buttons on the effects panel header - Right-click reset menus on effect headings and switchboard buttons - New EQ effect - Improve Stereo Widen effect with Bass Mono and Balanced modes - New Modern compressor algorithm alongside the original - Third EQ band per layer - New EQ band types: low-pass, high-pass and notch - Visual graphs added for the layer filter, effect filter, EQ, LFO, convolution reverb pre-filter/post-shelf, and delay filter. EQ and filter graphs have draggable nodes for editing. - Undo/redo system added - Per-layer stereo width knob - Copy/paste/reset added throughout the GUI on right-click menus: parameters, EQ bands, layer tabs, macros, envelope background, and curve maps - Reproducible playback added. New panel (3-dots menu -> Instance Config) offers features to reset variability in performances so that you can always render the exact same audio from Floe. - Added a new MIDI CC Assignments panel (3-dots menu) for viewing and controls your MIDI CC mappings to Floe parameters - New default background image - Library-provided background images can declare attribution via `floe.set_attribution_requirement`, shown as a subtle credit on the Perform page ### Improvements - Improve parameters: - Filter and EQ frequency controls now use logarithmic mapping - Compressor ratio now skews towards more control for ratios nearer 1:1 - Improved legacy parameter system - Legacy-override params now show a warning badge - Redesigned legacy parameter panel (3-dots menu -> Legacy Parameters) - 'Modernise' feature to convert params from legacy to modern - Effect filter: new 12dB and 24dB low-pass and high-pass types - Layer filter type menu reworked: clearer band-pass names, all-pass removed - New menu option to rescan all libraries and presets - Auto-generated preset descriptions for presets that have none - Quality of life improvements: - 'Unload' x-mark button on instrument selector and IR selector to clear the item - 'Unload all instruments' button on the layers page - Support encrypted packages (`.floe-pkg-enc`) that require a license key to install, with a paste button on the licence key dialog - Fix voices from jumping into the loop region if you toggle the 'reversed' mode of a playing voice. - GUI: improve browsers panels: - Collections are now expand and collapsible, selecting all items in a collection is now done with a separate 'All' button. - Left panel (filters) is now dark to better differentiate it and make the collections and icons look nicer. - Sections are collapsed by default, but retains the collapse/expand state across Floe sessions. - Fix toggle not working for Favourites button - Use smaller radius corner rounding for tag buttons to match the rest of the UI - Remove 3-dots menu and instead put the filter selection modes (One, AND, OR) at the top of the filters panel. - Remove dividers between filter sections - Remove "Show Primary Filter Section Header" option. Libraries/folders are now always collapsible - more consistent and intuitive. - Expanded keyboard navigation: section headings, library/preset-bank collections, and filter buttons in the left panel are now reachable with the arrow keys and toggled with Enter - Library development: removed the ability to add custom tags for instruments/IRs. Only tags from the known set are now allowed. This change allowed for simpler and faster code and enforces standardisation. Non-standard tags are now ignored. [https://floe.audio/docs/develop/tags-and-folders](https://floe.audio/docs/develop/tags-and-folders) - Library development: new [`floe-library-inspector` CLI tool](https://floe.audio/docs/beta/develop/develop-libraries#library-inspector) for debugging libraries — dumps the parsed library as JSON or Lua, captures `print()` output, and reports orphan/missing samples - Info panel moved from the top of Floe into a menu item within the 3-dots menu. - The tabs within a layer have been adjusted: MAIN tab now contains the envelope and the filter, and the old 'Play' tab has been renamed CONFIG. - Added ability to reset parameters and groups (try right-clicking on things!) to their default settings OR the settings of the last loaded preset. - Lua: add `vignette_intensity` for controlling background image - Save and load preset functions now remember the folder that you chose and will use that when you next use the action. - LFO: show a warning icon next to the Target label when the selected destination is silent (Filter target with the filter off, or Grain Position target when not in a granular playback mode). - macOS: fix keyboard text input not working in some hosts such as Logic Pro, while still letting the host receive its own keyboard shortcuts ## 1.2.0-beta.1 Small but noticeable improvements - mostly GUI related. Behind the scenes, a huge amount of work has been put into restructuring our GUI system for upcoming features. This is the first step towards the bigger 1.2 update. Help us out by giving this beta a spin and test that it's working well. - GUI: improve crispness of all visuals - GUI: minor visual improvements throughout: even spacing, move layer menu labels to left, standardised colours, updated popup menus, legacy parameters and error panels to the new style - GUI: add instrument info strip with info about sample length, root key, number of samples - GUI: split loop controls into a new Playback tab, ready for new engine mode that need more space - GUI: notifications now appear on top of the window you have open and can be closed - Add 'Copy to Clipboard' for errors - Support installing packages with `.floe-pkg` as well as `.zip` - Help protect against rare edge-case crashes - Fix package installation errors due to a timeout - Fix rare memory bug - Fix possible memory leak related to background images - Fix possible rare crash when closing Floe - GUI: fix some strange behaviours when using the velocity curve map control - Dev-only: support a kind of hot-reload in the standalone version - File pickers: show both Mirage and Floe presets under the same file filter ## 1.1.2 Bug-fixes and robustness. Includes all changes from 1.1.2-beta.1 and 1.1.2.beta.2, plus: - Fix Windows text input - no more duplicate letters, proper focusing and passing keyboard shortcuts back to DAW - Fix some rare edge-case crashes - Fix some rare cases where macro destination changes weren't being applied ## 1.1.2-beta.2 - GUI: improve default size of Floe UI, it now considers the real DPI of the monitor if possible - GUI: only show full paths for preset banks if there's ambiguity - Fix error related to trying to install invalid ZIP files - Windows: fix error related to graphics change in 1.1.2-beta.1 - Linux: changed required glibc from 2.29 to 2.31 - Improve GUI performance slightly (batched draw-calls and smaller memory usage) - Update FLAC library and protect against edge cases - Linux: fix error related to filesystem watching - macOS: fix error related to opening a file dialog - Handle edge cases related to loading images for sample libraries ## 1.1.2-beta.1 - Improve graphics reliability on Windows (use DirectX instead of OpenGL) - GUI: fix the UI keyboard octave offset defaulting to 2 rather then 0 when first loading Floe - Fix possible memory leaks related to graphics (OpenGL texture destroying) and improve error checking - Improve automatic error reporting - Add 'drone' tag ## 1.1.1 - New monophonic mode: latch. The monophonic switch parameter is replaced by a menu with this new option. In latch mode, the note only ends when all notes are released; new key-presses are ignored and the original note continues playing unchanged. - GUI: show more decimal points with very slow LFO rates - GUI: better icon for 'missing library' on the preset browser - Add infrastructure for updating Mirage libraries to backwards-compatible Floe versions of the library. IDs are now used for libraries, instruments and IRs allowing for changing names without breaking backwards compatibility - Add 'fluctuating', 'ringing' and 'whining' tags - Package installation: support upgrading preset banks based on minor\_version field - Package installation: add 'keep both' option when user input is required - Fix EQ parameters sometimes not being correctly applied when changing presets. - Fix some parameters not loading correctly related to the velocity curves - Fix layer voices duplicating when just changing one instrument at a time - Fix error with displaying presets with many unknown libraries - Fix possible hang when installing packages - Fix incorrect loop end\_frame when set in Lua as 0 ## 1.1.0 - Fix pop sometimes possible at ping-pong loop boundary and make adjusting the loop points while playing have less audible artefacts. - Fix sometimes not correctly loading in Reaper or FL Studio, leaving UI looking correct but audio not reflective of the current state. - Fix preset being silent when convolution reverb effect had -inf dB dry level. - Fix possible crash related to file paths on Windows. - Fix possible crash related to error reporting. - Fix possible package installation failure - Fix Mirage presets sometimes being too quiet if they used certain convolution reverb IRs. - Major infrastructure improvements to how we build and release Floe. ## 1.1.0-beta.1 - **Browser UI overhaul** (instruments, presets, IRs) - Filtering mode is now 'one' mode by default, and alternate modes for 'AND' or 'OR' filtering are selected in the 3-dots menu - New 'collections' on left panel for libraries or preset-packs - Full keyboard arrow navigation, enter to select, CTRL+F/CMD+F to focus search box, page up/down, home/end, CTRL+up/down to jump sections - Search for libraries, preset-packs and tags - Favourites system - 'star' items as for easy access later - Scrollbars are less intrusive and only appear when needed - Header is more compact leaving more space for the content - Tooltips no longer get in the way of the browser items - Load images in a background thread so the GUI stays responsive - Uninstall libraries and presets by right-clicking them in the browsers. Or use the Info panel uninstall libraries. - New concept of 'preset banks' - a folder of presets can be tagged as a bank and given more metadata such as a description. To create one add `floe-preset-bank.ini` to a folder of presets. - Press escape on the keyboard to close panels - Increase threads for loading audio up to 75% of CPU cores instead of maximum of 4. - Fix silent output in Ableton Live 10 - Fix rare startup crash (#179) - Add 'Include beta version when checking for updates' preference ## 1.0.6 - Add Reset Audio Engine to the menu for stopping all sound and voices - macOS installer: use different method to try and avoid 'cannot install to system volume' error - Fix rare crash when shutting down Floe on macOS when file-browser is open - Fix rare crash when host sends an out-of-bounds parameter value - Fix 'library not found' error message repeating itself - Fix hover effect for tag button on the Save panel ## 1.0.5 - Fix issue where mute/solo buttons sometimes wouldn't correctly work - Website: improve download page layout - Add additional check for existing Mirage folders, and add ability to run this manually from the menu - Fix potential crash when host has a tempo near to 0 BPM ## 1.0.4 - Add Linux support - CLAP and VST3 ## 1.0.3 - Fix issue with Bitwig, where presets wouldn't sometimes load completely - Fix crackle possible crackle in audio when host uses an odd-sized audio buffer - Fix rare crash when MDATA file is corrupted ## 1.0.2 - Tweak the smoothing of very short attack times to allow for more sharpness - GUI: show more decimal places on parameters for less than 10 ms ## 1.0.1 - Fix crackle in audio when the hosts use audio buffers that are not a multiple of 32 frames. - Fix crackle in Bitwig Studio due to the host not correctly using the thread\_pool extension. ## 1.0.0 - Ready for widespread use. ## 0.12.2-beta - Fix sample offset start being too large and triggering an assertion failure ## 0.12.1-beta - Fix pops and clicks related to note-starting: a regression introduced in 0.12.0-beta ## 0.12.0-beta - Macros parameters: - Bottom GUI panel now has tabs: Play and Macros - Macros parameters allow for controlling multiple other parameters at once with a single knob and with a custom name - On the Macros tab, you can add and remove the parameters that are linked to each macro and control the strength of the link - Add pitch wheel support: configure the bend range using the 'Pitch Bend Range' parameter on each layer. - Add key range controls for splitting the keyboard into zones for each layer. These ranges are shown above the keyboard. They are controlled using new parameters on the Config tab of each layer. - Fix velocity curves being clear when randomising parameters - Add more information to the velocity curve tooltips - New documentation pages for velocity curves - Include instrument/preset descriptions in tooltips for open-browser buttons - Fix window size jumping if the width was exactly 1000 pixels - Fix jumps when first grabbing the resize corner - Improve smoothness of audio processing when using parameter automation; Floe's engine now processes parameter changes at a fixed interval of 32 frames. - Slightly improve top and bottom panel layout and colours - Fix noise caused by reverb history not being cleared when loading a preset - Library creation: support more than 100 velocity layers and add helper functions `midi_range_to_hundred_range` and `midi_range_to_thousand_range` ## 0.11.3-beta - Revert unintended change in intensity of Atan distortion in version 0.11-0 - unfortunately this will make presets/DAW projects (created using Floe 0.11.0-0.11.2) sound different if they used Atan distortion. - Fix regression where GUI might not update when sound is playing - Library creation: add audio\_properties for impulse response for setting gain\_db for IRs ## 0.11.2-beta - Fix rare crash when resizing the GUI to a very small size - Improve UI size control on the preferences panel so that incrementing/decrementing feels more significant - Fix memory leak ## 0.11.1-beta - Add sitemap.xml for the website - Improve the website homepage, installation, mirage, packages, roadmap pages. - Packager tool: - Add ability to merge multiple packages into one - Add ability to output a JSON file with comprehensive information about the package - Improve error reporting: show RAM, let Sentry decide on fingerprint, fix getting reports of crashes from outside of the plugin - Fix a whole bunch of rare crashes - Windows: fix uninstaller not uninstalling some small files ## 0.11.0-beta - Add new velocity -> volume curve for each layer. This replaces the old mapping buttons and the master 'Velo' button. There's now much more control. The old parameters are available in a new 'legacy' parameters section but are no longer used unless loading a DAW preset that uses them. - Add new algorithms to distortion: foldback, rectifier and ring-modulator - Fix LFO and delay time not updating with the tempo - Reduce pops and clicks with high-frequency LFOs, sharp changes in ADSR and some parameter changes - GUI: improve browsers behaviour: - Background darkens when panel is open - New close button on the top right - Remove unnecessary padding around the browser content - Single-click loads an item, double-click loads and closes the browser - Add right-click menu on libraries with option to open the library folder - Add right-click menu to presets and preset folders with option to open the folder, or delete the preset - Improve menus: - Add left/right buttons to all menus on the GUI - Allow most menus to be dragged like a slider to change the value - Add randomise button to convolution IR menu as well as left/right buttons - Make all left/right buttons on the UI the same style - Move the left/right buttons to the right of the menu so it's consistent and easy to click forward and back without having to move the mouse long distances - Make the UI window size buttons consistent with the left/right buttons - GUI: show loop points if an instrument has a single sample with built-in loop - GUI: add resize corner to the bottom right of the GUI window - Add missing tooltips for some preferences - Work-around CLAP Studio One not using the correct threads - GUI: right-click menu for the IR browser with 'unload IR' option - GUI: don't show markers on ADSR when it's inactive - GUI: Instrument browsers now have their own stat for filters (libraries, tags, etc.) allowing for more flexibility particularly with the randomise buttons - GUI: remove option to show/hide the keyboard. It's not often used, and coming soon are new features that only make sense with the keyboard shown. - Fix crash when changing tabs on the 'Legal' tab of the Info panel - Fix presets browser not showing nesting of folder on Windows - Fix rare crash when loading a library on Windows ## 0.10.3-beta - Sample library creation: add 'fade\_in\_frames' to add\_region - GUI: remove the status panel from the browsers, instead, items show a tooltip when hovered for a moment. This make the browsers less cluttered and fixes the issue where the text would be too long to fit in the status panel. - GUI: make sections in the browser collapsible - GUI: improve the layout of the browser filters ## 0.10.2-beta - Fix issue where layer volume would be automatically MIDI learned - Fix some persistent MIDI CCs not being applied ## 0.10.1-beta - Replace 'Reset all parameters' option with 'Reset State' which also clears things such as instruments. - Fix crash with floe-package when using relative paths - Fix possible error with installing/opening preset-browser - Fix a set of possible rare errors ## 0.10.0-beta - Browsers: - Add filters for folders (tree view) - Put tags into categories and add icons - Add 2 filter modes: match-all and match-any, allowing for more powerful filtering. Every filter button has a label showing the number of matching items that dynamically updates as you change the filters. - Fix instrument browser not showing waveform instruments when no Mirage libraries installed - Show library icons for each library used by a preset - Show (?) icon for missing libraries - Add `` filter for items that don't have any tags - Add "Library Developer Panel" on the GUI with tag-builder tool for generating instrument tags in Lua. - Add right-click menu to the instrument browser button with 'unload instrument' option. - Add lock/unlock mode for Save Preset panel for allowing changing presets with it still open - Sample library creation: add support for multiple Lua files by using `dofile()` - Sample library creation: add set\_required\_floe\_version function - Sample library creation: add generated Floe API definition file for Lua Language Server allowing for code completion and documentation as you type - available on the Library Developer Panel - GUI: slightly improved icons - GUI: use same toggle icon for all toggle buttons - GUI: make mute/solo buttons more obvious when they're on - Fix mute/solo buttons not greying out layers - Fix cases where mute/solo button would get stuck on - Fix preset selection buttons not working on the first click due to the scanning not having started. Now, scanning begins when the cursor is hovering over the button. ## 0.9.9-beta - Sample library creation: add start\_offset\_frames to add\_region - Sample library creation: add tune\_cents to add\_region - Normalise waveform GUI so that quiet samples are easier to see - Fix rare crash related to sample library folder scanning ## 0.9.8-beta - Fix rare error on Windows when closing the GUI when there's a file picker open - Fix rare errors in some VST3 hosts - Fix rare crash related to sample library folder scanning ## 0.9.7-beta - Fix rare crash related to closing the GUI on Floe AU - Fix rare crash related to library images - Fix rare crash related to voice stealing - Fix edge cases related to file paths on Windows ## 0.9.6-beta - Check for updates on startup; a small indicator on the Info button will appear - leading to more information on the Info panel. Can be disabled in the preferences. - Fix file picker on Windows not opened when there's missing folders - Fix rare crash in Floe AU in Ableton Live ## 0.9.5-beta - Fix potential crash in Floe AU format - Fix errors related to filesystem watching on Windows - Fix error related to sample library folders - could happen when installing a package ## 0.9.4-beta - Offer separate downloads for Intel and Apple Silicon Macs rather than a universal binary, this reduces the size of the download to ~50 MB. - Fix missing diagnostic information on macOS ## 0.9.3-beta - Fix more errors with threads - Fix memory leaks - Fix some edge cases with certain hosts - Improve automatic error reporting allowing us to fix bugs faster - Protect against hosts that try to use multiple main threads ## 0.9.2-beta - Slightly improve performance of Intel Mac builds - Fix crash with Intel Mac builds - Fix errors with threads ## 0.9.1-beta - AU: fix crash when trying to open the file/folder picker - Fix missing logo on macOS ## 0.9.0-beta - Library creation: fix specifying loop end points relative to the end of the file. - Library creation: replace always\_loop, never\_loop field with enum `loop_requirement`. - Library creation: add round\_robin\_sequencing\_group field to allow for different sets of variations. - Library creation: separate note-off round-robin sequencing group from note-on round-robin sequencing group. - Library creation: disable volume envelope for note-off regions - Library creation: improve memory usage when reading Lua scripts - Library creation: fix crash when an image file is empty - VST3: fix not responding to note-on/note-off messages when they weren't on channel 0 - GUI: on the Save Preset dialog, add the ability to store/load a preset author - GUI: make the Save Preset dialog larger and scroll to top when a new preset is loaded - Fix potential crash when reporting an error - Rename parameter right-click menu Set Value to Enter Value - Support CLAP reset() function ## 0.8.3-beta - Fix crash when error occurs in the Windows native file picker - Fix crash when given invalid arguments to CLAP activate - Fix crash when opening VST3 in FL Studio on Windows ## 0.8.2-beta - Fix crash when trying to randomise instruments, presets or IRs when there's only one of them - Fix presets folder still showing tags after a folder is removed. #120 - Fix crash when first opening the GUI ## 0.8.1-beta See the [main release notes](https://github.com/floe-audio/Floe/releases/tag/v0.8.0-beta). - Fix issue where Mirage and Floe libraries with the same name would conflict ## 0.8.0-beta First beta release of Floe. This release is feature-complete. We are looking for feedback on the new features and any bugs you find. - Add AU (Audio Unit v2) support - Brand new instrument browser supporting tags, search, and filtering by library - Brand new impulse response browser featuring all the options of the instrument browser - Brand new preset browser with tags, search, and filtering by library. Preset metadata is tracked, library information is tracked, file changes are detected, duplicate presets are hidden. - New built-in convolution reverb impulse library with 33 impulse responses - New save preset dialog with author, description, and tags - Fix instrument left/right and randomise buttons - Fix instance ID not retaining - Fix freeze when trying to resize GUI - Fix GUI opening but only ever showing black - Fix randomise parameters Note: we have jumped from 0.0.7 to 0.8.0. This is to signify the change from alpha to beta but also because it wasn't really right in the first place only incrementing by the patch number. To make the jump obvious we start the minor version at 0.8.0 rather than 0.1.0. ## 0.0.7-alpha The focus of this version has been bug fixes; in particular around loading Mirage libraries and presets. - Max voice is increased from 32 to 256 allowing for more complex instruments - Show the instrument type on the GUI: single sample, multisample or oscillator waveform - Rename 'Dynamics' knob to 'Timbre' and fix its behaviour - for instruments such as Arctic Strings, it can be used to crossfade between different sets of samples. - Fix missing code signing on Windows installer resulting in 'Unknown Publisher' warning - Fix layer filter type menu being the incorrect width - Fix crash when loop points were very close together - Improve loop modes on GUI: it's obvious when a loop is built-in or custom, what modes are available for a given instrument, why loop modes are invalid. - Add docs about looping - Fix sustain pedal incorrectly ending notes Mirage loading: - Fix incorrect loading of Mirage on/off switches - resulting in parameters being on when they should be off - Fix incorrect handling of Mirage's 'always loop' instruments - Fix incorrect conversion from Mirage's effects to Floe's effects - Improve sound matching when loading Mirage presets - Fix failure loading some FrozenPlain Squeaky Gate instruments Library creation: - Re-organise the fields for add\_region - grouping better into correct sections and allowing for easier expansion in the future. - Sample library region loops now are custom tables with `start_frame`, `end_frame`, `crossfade` and `mode` fields instead of an array. - Add `always_loop` and `never_loop` fields to sample library regions allowing for more control over custom loop usage on Floe's GUI. - Show an error if there's more than 2 velocity layers that are using 'feathering' mode. We don't support this yet. Same for timbre layers. ## 0.0.6-alpha - Add VST3 support - Standardise how tags and folders will be used in instruments, presets and impulse responses: [https://floe.audio/develop/tags-and-folders.html](https://floe.audio/develop/tags-and-folders.html) - Fix sustain pedal - Remove 'retrig CC 64' parameter from layer MIDI. This was mostly a legacy workaround from Mirage. Instead, we just use the typical behaviour that when you play the same note multiple times while holding the sustain pedal, the note plays again - stacking up. - Fix package installation crash after removing folders - Fix markers staying on ADSR envelope even when sound is silent - Fix MIDI transpose causing notes to never stop - Fix peak meters dropping to zero unexpectedly - Fix not finding Mirage libraries/presets folders ## 0.0.5-alpha - Fix text being pasted into text field when just pressing 'V' rather than 'Ctrl+V' - Windows: fix unable to use spacebar in text fields due to the host stealing the keypress - Fix crash when trying to load or save a preset from file - Improve the default background image ## 0.0.4-alpha Fix crash when opening the preset browser. ## 0.0.3-alpha Version 0.0.3-alpha is a big step towards a stable release. There's been 250 changed files with 17,898 code additions and 7,634 deletions since the last release. It's still alpha quality, and CLAP only. But if you're feeling adventurous, we'd love for you to try it out and give us feedback: - [Download Floe](https://floe.audio/installation/download-and-install-floe.html) - [Download some libraries](https://floe.audio/packages/available-packages.html) - [Install libraries](https://floe.audio/packages/install-packages.html) Error reporting has been a significant focus of this release. We want to be able to fix bugs quickly and make Floe as stable as possible. A part of this is a new a Share Feedback panel on the GUI - please use this! Floe's website has been filled out a lot too. New/edited documentation pages: - [Floe support for using CC BY libraries](https://floe.audio/usage/attribution.html) - [Autosave feature added](https://floe.audio/usage/autosave.html) - [New error reports, crash protection, feedback form](https://floe.audio/usage/error-reporting.html) - [New uninstaller for Windows](https://floe.audio/installation/uninstalling.html) ### Highlights - Add new Info panel featuring info about installed libraries. 'About', 'Metrics' and 'Licenses' have been moved here too instead of being separate panels. - Add new Share Feedback panel for submitting bug reports and feature requests - Add attribution-required panel which appears when needed with generated copyable text for fulfilling attribution requirements. Synchronised between all instances of Floe. Makes complying with licenses like CC BY easy. - Add new fields to the Lua API to support license info and attribution, such as CC BY - Add lots of new content to floe.audio - Add error reporting. We are now better able to fix bugs. When an error occurs, an anonymous report is sent to us. You can disable this in the preferences. This pairs with the new Share Feedback panel - that form can also be used to report bugs. - Add autosave feature, which efficiently saves the current state of Floe at a configurable interval. This is useful for recovering from crashes. Configurable in the preferences. - Add a Floe uninstaller for Windows, integrated into Windows' 'Add or Remove Programs' control panel - Preferences system is more robust and flexible. Preferences are saved in a small file. It syncs between all instances of Floe - even if the instances are in different processes. Additionally, you can edit the preferences file directly if you want to; the results will be instantly reflected in Floe. - Improve window resizing: fixed aspect ratio, correct remembering of previous size, correct keyboard show/hide, resizable to any size within a reasonable range. ### Other changes - Add support for packaging and installing MDATA libraries (Mirage) - Add tooltips to the preferences GUI - Add ability to select multiple packages to install at once - Rename 'settings' to 'preferences' everywhere - Rename 'Appearance' preferences to 'General' since it's small and can be used for other preferences - Make notifications dismiss themselves after a few seconds - Fix externally deleted or moved-to-trash libraries not being removed from Floe - Fix not installing to the chosen location - Fix Windows installer creating nonsense CLAP folder - Fix packager adding documents into the actual library rather than the package ## 0.0.2 - Fix Windows installer crash - Don't show a console window with the Windows installer - Better logo for Windows installer - Remove unnecessary 'Floe Folders' component from macOS installer ## 0.0.1 This is the first release of Floe. It's 'alpha quality' at the moment - there will be bugs and there are a couple of missing features. This release is designed mostly to test our release process. This release only contains the CLAP plugin. The VST3 and AU plugins will be released soon. ## Mirage Floe used to be called [Mirage](https://floe.audio/about-the-project/mirage.html). Mirage contained many of the same features seen in Floe v0.0.1. But there are large structural changes, and some new features and improvements: - Use multiple different libraries in the same instance. - CLAP version added - VST3 and AU coming soon, VST2 support dropped. - New installer: offline, no account/download-tickets needed. Libraries are installed separately. - Ability for anyone to develop sample libraries using new Lua-based sample library format. The new format features a new system to tag instruments and libraries. Hot-reload library development: changes to a library are instantly applied to Floe. - New [comprehensive documentation](https://floe.audio). - Floe now can have multiple library and preset folders. It will scan all of them for libraries and presets. This is a much more robust and flexible way to manage assets rather than trying to track individual files. - New, robust infrastructure: - Floe settings are saved in a more robust way avoiding issues with permissions/missing files. - Improved default locations for saving libraries and presets to avoid permissions issues. - New format for saving presets and DAW state - smaller and faster than before and allows for more expandability. - New settings GUI. - Floe packages: a robust way to install libraries and presets. Floe packages are zip files with a particular layout that contain libraries and presets. In the settings of Floe, you can install these packages. It handles all the details of installing/updating libraries and presets. It checks for existing installations and updates them if needed. It even checks if the files of any existing installation have been modified and will ask if you want to replace them. Everything just works as you'd expect. Technical changes: - Huge refactor of the codebase to be more maintainable and expandable. There's still more to be done yet though. - New build system using Zig; cross-compilation, dependency management, etc. - Comprehensive CI/CD pipeline for testing and creating release builds. - New 'sample library server', our system for providing libraries and audio files to Floe in a fast, async way. --- # Developing Libraries for Floe > Guide on how to create sample libraries for Floe using Lua scripting Creating sample libraries for Floe **requires programming knowledge**. While Floe itself is designed for all musicians, developing libraries involves writing Lua scripts to configure and map audio files. This programming-first approach enables automation, version control integration, AI-assisted workflows, bulk operations — scaling all the way to very complex libraries. It also allows creating custom functions for sample-mapping, normalisation, pitch-correction, and building instrument variations - a level of flexibility that cannot be achieved with UI-based sample-mapping tools. In the future, we're looking into ways for non-programmers to create libraries too. important We made these tools for our own use and are sharing them with the community. Consider contributing or [sponsorship](/docs/beta/about-the-project/sponsorship) if you'd like to see further investment in this area. ### What you'll need - Tools and experience writing and editing code - Understanding of sample mapping concepts (key ranges, velocity layers, etc.) - It's recommended to have experience programming other samplers like Kontakt, SFZ, Decent Sampler, etc. ## Floe's sample library format Floe's format is revolved around configuring audio files into playable _instruments_ (a playable sound-source loaded into one of Floe's 3 layers). Instruments are always created as part of a _library_. The format also allows for adding IRs to the convolution reverb. Floe has a fixed GUI and engine - offering the same powerful playback and sample-based synthesis features to all instruments that you can load. Typically, after creating a sample library, you'd create a bank of factory presets - this is done using Floe's standard GUI - saving preset files that utilise the instruments that you created. As someone in the community put it, our format is essentially _'[SFZ](https://sfzformat.com/) in Lua so you don't lose your mind'_ - which captures the gist pretty well. In terms of features, the basics are covered, but there are plenty of features that other samplers might have that Floe doesn't. We expand our format to meet the needs of our products rather than add add things that we don't currently need. We have chosen a design that we can easily extend whilst retaining backwards compatibility. Floe's format currently supports: - Velocity layers - Round-robin - Crossfade layers - Loop points with crossfade - Convolution reverb IRs - Velocity layer feathering - Trigger samples on note-off ### Why a new format? No existing format met our requirements for Floe, which are: - Libraries should be plain folders of audio files. - Libraries should be portable across filesystems & operating systems. - Libraries should be configured using a proper programming language to enable creating complex libraries in a maintainable way. - The format should be extensible - allowing us to innovate in the field of sampling. - The solution should easily integrate into Floe's codebase. We're not trying to replace existing formats or create a new standard. Instead, our custom format is specifically designed to align with Floe's architecture and philosophy, enabling us to rapidly develop and deliver the high-quality sample libraries our users deserve. ### Developer friendly Floe's format is designed to be developer-friendly. It plays well into the tooling and experience of people who are used to dealing with code: - Works with version control: libraries are just folders of files, they're portable across filesystems and operating systems. - Hot reloading: Floe automatically reloads the library whenever you change a file: Lua, audio, or images. It creates a very fast feedback loop. If a change isn't picked up, use the top panel's 3-dots menu → Rescan Libraries & Presets to force a rescan. - Uses a full programming language: Lua is simple, powerful, and widely used. You can use variables, functions, loops, and conditionals to configure your library. - Floe's Lua API is simple and concise. - [`floe-library-inspector`](#library-inspector) CLI tool dumps the parsed library as JSON or Lua so you can verify exactly what Floe loaded — useful for debugging without launching the plugin. ## The structure Let's look at the structure of a Floe sample library: ``` 📂FrozenPlain - Slow/├── 📄slow.floe.lua├── 📄Licence.pdf├── 📄About Slow.html├── 📁Samples/│ ├── 📄synth_sustain_c4.flac│ └── 📄synth_sustain_d4.flac└── 📁Images/ ├── 📄background.png └── 📄icon.png ``` There's only one essential part of a Floe sample library: the `floe.lua` file. This file can have a custom name so long as it ends with `.floe.lua` - for example, `woodwind-textures.floe.lua`. The rest of the structure are conventions that are recommended but not required: - **Licence**: Sample libraries are recommended to have a file called Licence that describes the terms-of-use of the library. It can be any format: PDF, TXT, etc. - **About**: A file that describes the library. Any file format. Information about a library is useful for when someone might not have Floe's GUI available. Use this document to explain what the library contains, website links and any other information that might be useful. Floe's [packager tool](/docs/beta/develop/packaging#packager-command-line-tool) can automatically generate this file. - **Library folder name**: The folder containing the `floe.lua` file should be named: "Developer - Library Name". - **Subfolders**: Subfolders are up to the developer. We recommend 'Samples' for audio files and 'Images' for images. These can have any number of subfolders. Your `floe.lua` file can reference any file in these subfolders. ## The `floe.lua` file The `floe.lua` file is the most important part of a library. It's a script that maps and configures the audio files into playable instruments, written in the Lua 5.4 programming language. This file uses [Floe's Lua functions](/docs/beta/develop/library-lua-scripts) to create the library, create instruments, and add regions and impulse responses. It can reference any file in the library using relative paths. Here's a made-up example of a `floe.lua` file: ``` local library = floe.new_library({ name = "Iron Vibrations", tagline = "Organic sounds from resonating metal objects", library_url = "https://example.com/iron-vibrations", description = "A collection of resonating metal objects sampled using a handheld stereo recorder.", author = "Found-sound Labs", id = "Iron Vibrations - Found-sound Labs", author_url = "https://example.com", revision = 1, background_image_path = "Images/background.jpg", icon_image_path = "Images/icon.png", background_overlay = { vignette = { colour = 0x00000066, inner_radius = 0.2, }, panel_tint = { colour = 0x0000000D, }, }})local instrument = floe.new_instrument(library, { name = "Metal Fence Strike", id = "Metal Fence Strike", folder = "Fences/Steel", description = "Tonal pluck metallic pluck made from striking a steel fence.", tags = { "found sounds", "tonal percussion", "metal", "keys", "cold", "ambient", "IDM", "cinematic" }, waveform_audio_path = "Samples/file1.flac",})floe.add_region(instrument, { path = "Samples/One-shots/Resonating String.flac", root_key = 60, trigger_criteria = { trigger_event = "note-on", key_range = { 60, 64 }, velocity_range = { 0, 100 }, velocity_range_high_resolution = { 0, 1000 }, round_robin_index = 0, round_robin_sequencing_group = "group1", feather_overlapping_velocity_layers = false, auto_map_key_range_group = "group1", }, loop = { builtin_loop = { start_frame = 24, end_frame = 6600, crossfade = 100, mode = "standard", lock_loop_points = false, lock_mode = false, }, loop_requirement = "always-loop", }, timbre_layering = { layer_range = { 0, 50 }, }, audio_properties = { gain_db = -3, start_offset_frames = 0, tune_cents = 0, fade_in_frames = 0, fade_out_frames = 0, }, playback = { keytrack_requirement = "default", }, slices = {}, loop_beats = 4, native_bpm = 120,})floe.add_ir(library, { name = "Cathedral", id = "Cathedral", path = "irs/cathedral.flac", folder = "Cathedrals", tags = { "acoustic", "cathedral" }, description = "Sine sweep in St. Paul's Cathedral.", audio_properties = { gain_db = -3, },})floe.set_attribution_requirement("Samples/bell.flac", { title = "Bell Strike", license_name = "CC-BY-4.0", license_url = "https://creativecommons.org/licenses/by/4.0/", attributed_to = "John Doe", attribution_url = "https://example.com",})floe.add_named_key_range(instrument, { name = "Extended Notes", key_range = { 80, 128 },})floe.set_required_floe_version("2.0.4+52196ddd")local extended_table = floe.extend_table({ foo = "" }, {})local hundred_range = floe.midi_range_to_hundred_range({ 0, 127 })local thousand_range = floe.midi_range_to_thousand_range({ 0, 127 })return library ``` `floe.new_library()` must be called, and the library it creates returned at the end of the script. All other features are optional. When Floe runs your Lua file, it will show you any errors that occur along with a line number and a description. ## How to get started 1. Create a new folder in one of Floe's [sample library folders](/docs/beta/installation/folders). We recommend naming it 'Author Name - Library Name'. 2. Create a file in that folder called `my-library.floe.lua`. 3. Create a subfolder called `Samples` and put your audio files in there. 4. Open the Lua file in your text editor. If you're not already familiar with an editor, then Sublime Text or Visual Studio Code are reasonable choices. 5. Use the `floe.new_library()` function to create your library, filling in all the fields marked `[required]` in the [Floe's Lua reference](/docs/beta/develop/library-lua-scripts). 6. Use `floe.new_instrument()` to create an instrument, and then add regions to it using `floe.add_region()`, again, filling in the fields that are documented. 7. At the end of the file, return the library object you just created: `return library`. 8. Floe automatically detects whenever any library file changes and will tell you if there's any errors. If a library is correctly configured, it will instantly appear in Floe. For a fuller view of what was parsed — regions, loop points, missing samples — run [`floe-library-inspector`](#library-inspector). ### Approach to sample mapping You can start by manually writing individual `add_region` calls for each sample, filling out the required information as you go. When things start getting repetitive or you need to apply consistent logic across many samples, you'll want to leverage Lua's programming features: - **[Signet](https://github.com/SamWindell/Signet)** to analyse your samples and generate metadata files - **Variables and tables** to store information about your samples - **Loops** to process multiple samples with the same logic - **Functions** to calculate parameters like tuning, velocity ranges, and key ranges - **Pattern matching** to extract information from filenames This programming approach can make it much more practical to work with larger sample sets - you write the mapping logic once and let the code apply it to all your samples. ## Using Signet The command line tool [Signet](https://github.com/SamWindell/Signet) in an excellent aid for developing Floe samples libraries. Signet can export data about your samples in Lua format which you can then use in your `floe.lua` file using `dofile`. For example, this file is generated by Signet: ``` -- signet . print-info --format lua --path-as-key -- NOTE: Signet can also detect the pitch of your samples when -- you use the `--detect-pitch` flag with print-info.return { ["my-sample-a.flac"] = { bit_depth = 16, channels = 2, crest_factor = 16.5734, crest_factor_db = 24.3883, frames = 208341, length_seconds = 4.34044, metadata = nil, peak_db = -3.00036, peak_frame = 5927, rms_db = -27.3886, sample_rate = 48000 }, ["my-sample-b.flac"] = { bit_depth = 24, channels = 2, crest_factor = 8.90268, crest_factor_db = 18.9904, frames = 2299122, length_seconds = 47.8984, metadata = nil, peak_db = -3, peak_frame = 877676, rms_db = -21.9904, sample_rate = 48000 },} ``` Then in your Floe Lua file you have access to all the information about your samples allowing you to easily create instruments and regions. With the features of a full programming language and Floe's hot-reloading of scripts, it's easy to create complex configurations and bulk-tweak tuning, normalisation, loop points, and other parameters of an instrument. For example, normalising all samples to a target level can be done using a simple calculation based on the sample's `peak_db` value. We often find it's useful to partially move levels towards a target level rather than fully normalising them in order to retain some of the character of the instrument. This can be computed in the Lua and tweaked as needed, with the results being immediately audible in Floe. Floe doesn't generate this kind of audio data for you because it can be slow to scan large folders of samples. It's better for the sample library developer to generate it once with Signet and bake it into a Lua file, instead of the sample library users having to wait every time they load the library. ## Library inspector `floe-library-inspector` is a small CLI tool for debugging libraries. It parses your library and dumps everything Floe loaded as JSON (or Lua with `--format=lua`) — surfacing parse errors, captured `print()` output, and any orphan or missing audio files. - **Floe Library Inspector Windows**: [Floe-Library-Inspector-v2.0.4-Windows.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-Windows.zip) (5 MB) - **Floe Library Inspector macOS Apple Silicon**: [Floe-Library-Inspector-v2.0.4-macOS-Apple-Silicon.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-macOS-Apple-Silicon.zip) (1 MB) - **Floe Library Inspector macOS Intel**: [Floe-Library-Inspector-v2.0.4-macOS-Intel.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-macOS-Intel.zip) (1 MB) - **Floe Library Inspector Linux**: [Floe-Library-Inspector-v2.0.4-Linux.tar.gz](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-Linux.tar.gz) (6 MB) Download the program, extract it, and run it from the command line. ``` Inspect a Floe sample library and dump structured information to stdout.Output includes library metadata, captured Lua print() output, parse errors,instruments, regions, IRs, and orphan/missing sample files. Defaults to JSON;use --format=lua for a loadable Lua chunk.Useful when developing or debugging sample libraries: it surfaces parse errorsalongside everything Floe actually loaded, so you can sanity-check the resultof your Lua script. The JSON output is also well-suited as input to AI agents.Examples (piping JSON output into jq): # Check whether the library parsed and show any error: floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.parse' # Top-level library metadata (name, author, version, counts): floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.library' # List orphan and missing sample files: floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.samples' # List every instrument id and how many regions it has: floe-library-inspector ./my-lib/my-lib.floe.lua \ | jq '.instruments[] | {id, num_regions}' # List every sample path referenced by an instrument: floe-library-inspector ./my-lib/my-lib.floe.lua \ | jq -r '.instruments[].regions[].sample_path' # Show the key/velocity range of every region of an instrument: floe-library-inspector ./my-lib/my-lib.floe.lua \ | jq '.instruments[] | select(.id=="My Inst") | .regions[].trigger' # List IR ids and their file paths: floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.irs[] | {id, path}'Usage: floe-library-inspector [OPTIONS]Optional arguments: --format Output format: 'json' (default) or 'lua'. Lua output is a single `return { ... }`chunk loadable with Lua's load()/dofile(). ``` ## Creating high-quality samples ### Levels It's important to ensure your audio samples have the right levels. This makes browsing and switching samples in Floe a consistent, nice experience. Additionally, Floe offers the ability to layer sounds together; this process is more ergonomic when instruments have similar volume levels. [Signet](https://github.com/SamWindell/Signet) can be a useful tool for changing the levels of your samples. When changing the volume levels of a realistic multi-sampled instrument, you probably don't want to normalise each sample individually because part of the character of the instrument is its volume variation. Instead, you should change the gain of the instrument _as a whole_. Signet has features for this. It also has features for proportionally moving levels towards a target level. This allows you to keep some of the character of an instrument while nudging it towards a more consistent level. Here are some guidelines for levels: - Each sample's peak level should be less than -3 dB. - Playing the instrument should barely cause Floe's peak meter to reach its yellow region. Another way to judge levels: RMS levels for an instrument _as a whole_ should be around -18 dB. Play the instrument polyphonically and watch the RMS level. If the instrument is designed to be monophonic, then adjust for that. - The noise floor should be as low as possible: -60 dB is a good target. Use high-quality noise reduction tools to remove noise from your samples if you need to. Noise levels can quickly stack up with a multi-sampled instrument played polyphonically. Being too aggressive with algorithmic noise reduction can make your samples sound unnatural - so it's a balance. - Impulse responses should be normalised by their energy (power) levels: `signet my-impulses norm -100 --mode energy --independently && signet my-impulses norm 0`. Or if not using Signet, then adjust their levels so that they feel similar to the volume levels of Floe's built-in IRs. ### Sample rate, bit depth, and file format Floe only supports FLAC and WAV files. We recommend using FLAC for your samples. It's lossless and can reduce the file size by 50% to 70% compared to WAV. Floe loads FLAC files very quickly. We find 44.1 kHz and 16-bit is often a perfectly reasonable choice. 48 kHz and 24-bit might also be appropriate in certain cases. FLAC also supports bit-depths between 16 and 24 bits (such as 20-bit). Floe supports these too. ### Volume envelopes of samples Floe blurs the line between a sampler and a sample-based synthesizer. It has lots of parameters for manipulating the sound in real-time. If your sample is a single continuous sound, then don't include a fade-in or fade-out in the sample. Floe has a GUI for volume envelopes that offer more control: they can be adjusted to any value, automated by the DAW, and they are independent of the playback speed of the sample. If you have a sample that is stretched across a keyboard range, it will be sped-up or slowed-down in order to be the correct pitch. If there's a volume fade, then the speed of the fade will change depending on the pitch of the voice. This is not normally a desirable effect. If your sound has important timbral variation over time, then don't cut that away. Only if the sound is a constant tone should you remove the fade in/out. ## Background images Floe allows libraries to have a custom background image that appear behind the interface when the library is loaded. These images are configured in your [Lua script](/docs/beta/develop/library-lua-scripts) through Floe's `new_library` function. Floe accepts any image. It uses "cover" scaling with top-left positioning — in other words, it scales up the image (maintaining its aspect ratio) until it covers the entire background of Floe. However, for optimal results consider these characteristics: - Roughly 16:9 aspect ratio to match the plugin GUI proportions - Approximately 1500 pixels wide as a starting point (consider high-DPI displays) - Consistent colour palettes and brightness levels throughout the image - Darker or mid-tone images rather than bright ones for better text readability - Avoid dramatic contrasts between very dark and very bright regions The most critical consideration is interface readability. Since Floe's knobs, buttons, and text render on top of your background image, the image needs consistent tones to ensure controls remain clearly visible. While some variation is acceptable, remember that interface legibility is paramount. Additionally, Floe has options to add a coloured vignette on the background image and an overlay tint to its blurred panels via options in the Lua code. Experiment with these options, starting with very transparent colours. --- # Develop Preset Banks > Best practices for developing preset banks for Floe Floe's preset management is open; it's just based on the files and folders on your computer. Presets are saved as individual files using the save button at the top of Floe's UI. These files can be freely renamed and put into subfolders; this is how categories and hierarchies are created in the preset browser. ## Preset Banks A _preset bank_ is a small, optional extension to this. Add a `floe-preset-bank.ini` file to a folder of presets and it becomes a preset bank. Every preset in that folder and its subfolders is then easier to identify as part of the bank, and the bank can carry metadata such as a subtitle and ID. Creating a bank is normally a good idea for custom presets: the preset browser can isolate the bank, present it with the best name, and surface it at the top level. In the preset browser, the icon for the bank is taken from the sample library used by the bank's presets. If the bank contains presets that depend on multiple different libraries, a 'mixed' icon is shown instead to denote that the bank spans more than one library. Alternatively, you can instruct Floe using the _preset bank file_ to use the visuals from a given library ID. The _preset bank file_ is a simple INI text file with the following fields - all are optional: ``` ; A short and descriptive name for the preset bank.subtitle = My Preset Bank Name; Any kind of unique identifier. Typically you might use a reverse; domain style string. Used so Floe can identify the bank uniquely.id = com.myname.mypresetbank; A revision number - just a single integer. When installing a; package, Floe can use this alongside the ID to determine if a bank; can be updated rather than installed to a new location. Revisions; are only designed for simple additions/fixes. If you make major; changes, it's probably better to create a new preset bank,; "My Bank 2", with a new ID. On the preset browser, this number will; be displayed with a 'v1.' prefix to make it clear to users that the; change is incremental and backwards-compatible.; The key `minor_version` is also accepted for this.revision = 1; The id_string of an installed sample library whose icon should; represent this bank in the preset browser. If omitted, or if the; library isn't installed, Floe falls back to deriving the icon from; the libraries used by the bank's presets.library_for_visuals = FrozenPlain - Slow; A preset within this bank, given as a path relative to the bank; folder including the file extension. When the bank is installed; from a package, Floe uses this preset as the default preset - the; one a new instance of Floe opens with. It's only a suggestion:; Floe ignores it if the user has chosen their own default preset.; If omitted, Floe uses the bank's first preset alphabetically.default_preset = Pads/Warm Welcome.floe-preset; Set to true if this bank ships with a library rather than being; user-made. The preset browser groups factory banks separately from; the user's own banks. Banks whose folder name contains; "factory presets" are treated as factory automatically, even; without this field.factory = true ``` You can create this INI file with any text editor such as Notepad or TextEdit. You just need to type in the various `field = value` with new lines between them. A side note for the particularly discerning user: Floe automatically identifies some well-known factory preset folders as preset banks even without the metadata file present. This is because some banks were created before the preset bank feature was added. We chose to enrich them with metadata retroactively. ## Packaging Once you've created your folder of presets and added a `floe-preset-bank.ini` file (optional but recommended), you can package it up for distribution. Read about packaging on the [packaging](/docs/beta/develop/packaging) page. Use the packager command-line tool, or alternatively package it manually. To manually package your bank first rename your bank folder to something like `My Preset Bank`. Next, put that into a folder called `Presets`. Next, put `Presets` into another folder `My Preset Bank - Floe Package`, then right-click and ZIP that folder. You should now have a ZIP called `My Preset Bank - Floe Package.zip` with a subfolder `Presets` and your bank folder inside that. Rename the `.zip` to `.floe-pkg`. The resulting file will contain the structure that _Floe packages_ require (Presets subfolder at the top level). Test your package by trying to install it using Floe's _Install package_ button. Refer to the packaging page for more details if needed. ## Best Practices - Make presets all feel the same volume: the master peak meter on Floe's GUI should just be the yellow zone when the preset is played at its fullest. - Give each preset a unique, descriptive name suggesting its tone or usage. Don't use all capital letters. Don't include a 'type' prefix such as "PAD - " or "LD - ". - Add as many tags as is relevant to the preset. Read more about tags on the [tags and folders](/docs/beta/develop/tags-and-folders) page. - Keep the description short, and end it with a full stop. - Organise presets into folders using your file browser. You can rename presets and folders as you like. See the best practises for folders on the tags and folders page. ## Designing macros Well-designed macros turn a static preset into something playable. Think about which aspects of the sound would be most musical to control. See [Macros](/docs/beta/usage/macros) for how to set them up. - Every macro should audibly do something. Moving it from 0% to 100% should make a clear difference. - Ideally a macro's name is a single word with no abbreviations. Check how it looks on both the _Perform_ page and the bottom panel: is it readable, or too cramped? - Describe what the macro does to the sound, not the technical details: _Pulse_ rather than _L1 LFO_, _Reverb_ rather than _Convol Mix_, or _Vibrato_ if turning it up adds vibrato. - Turning a macro up should increase whatever its name describes, just as turning up a _Volume_ knob increases the volume. A macro that turns down a high shelf might be called _Damp_ or _Muffle_, because turning it up makes the sound more muffled. Invert it so that it turns the shelf up, and _Brightness_ or _Highs_ would fit better. Which way round is up to you. - Both ends of the macro should be usable. A macro that all but mutes the sound at 0%, or clips the meters at 100%, isn't much help. The exception is something like a filter sweep, where filtering the sound away to nothing can be useful in a performance. - You don't have to use all four macros. If you use fewer, fill them from the left, with the unused ones at the end. _Swap with Left_ and _Swap with Right_ make this easy. --- # Library Lua Scripts > Documentation for the Lua API used to create Floe sample libraries The `floe.lua` file is the most important part of a Floe sample library. This page serves as documentation for all the functions that you can use in your script to create and configure the library and its instruments. Floe runs your script using Lua v5.4, providing you with access to these [standard libraries](https://www.lua.org/manual/5.4/manual.html#6): `math`, `string`, `table` and `utf8`. The other standard libraries are not available - including the `require` function. This is to minimise security risks. If there are any errors in your script, Floe will show them on the GUI along with a line number and a description of the problem. We are working on a standalone version of Floe that will allow you to more easily debug your Lua by outputting debug information to the console. ## Multiple files `dofile()` is available, so you can split your script into multiple files if you want to. Floe's `dofile` implementation is the same as the standard Lua version except that you can only specify files relative to the library folder — that is, the folder that contains the `floe.lua` file. For example, you could have a folder next to `floe.lua` called `Lua` and put a file in there called `data.lua`. You could then load that file with `dofile("Lua/data.lua")`. To pass data between files, you would typically use the ["module" pattern](http://lua-users.org/wiki/ModuleDefinition) (except using `dofile` instead of `require`). ## Library Functions Use these functions to create your sample library. Take note of the `[required]` annotations - omitting fields marked with these will cause an error. ### `floe.new_library` Creates a new library. It takes one parameter: a table of configuration. It returns a new library object. You should only create one library in your script. Return the library at the end of your script. The library is the top-level object. It contains all the instruments, regions, and impulse responses. ``` -- Creates a new library. You should only create one library in your script. -- Return the library at the end of your script.local library = floe.new_library({ -- The name of the library. Keep it short and use tagline for more details. -- [required] name = "Iron Vibrations", -- A few words to describe the library. [required] tagline = "Organic sounds from resonating metal objects", -- The URL for this Floe library. -- [optional, default: no url] library_url = "https://example.com/iron-vibrations", -- A description of the library. You can be verbose and use newlines (\n). -- [optional, default: no description] description = "A collection of resonating metal objects sampled using a handheld stereo recorder.", -- Who created this library. Keep it short, use the description for more -- details. [required] author = "Found-sound Labs", -- A unique identifier for this library. Specifying this field overrides the -- default ID of "library-name - author". It can be any text, its only meaning -- is to uniquely identify this library from others. However, in rare cases it -- may be shown on the UI so it should be human-readable and representative of -- the library. This field is useful if you want to change the name of the -- library: set this to the previous ID (otherwise the ID will change to -- "new-library-name - author") and bump the revision field. -- [optional, default: "library-name" - "author"] id = "Iron Vibrations - Found-sound Labs", -- URL relating to the author or their work. -- [optional, default: ] author_url = "https://example.com", -- The revision number of this library. Bump this whenever you publish a -- backwards-compatible update (additional content, fixes, tweaks); breaking -- changes are not allowed - you'd need to create a new library such as: -- "Strings v2". The legacy name `minor_version` is also accepted. -- [optional, default: 1] revision = 1, -- Path relative to this script for the background image. It should be a jpg -- or png. Look at Floe's 'Develop Libraries' docs for recommended specs. -- [optional, default: ] background_image_path = "Images/background.jpg", -- Path relative to this script for the icon image. It should be a square jpg -- or png. -- [optional, default: ] icon_image_path = "Images/icon.png", -- Controls the vignette and panel-tint drawn over the background image when -- this library is the active background. -- [optional, default: defaults] background_overlay = { -- Configures the radial vignette drawn over the background image when -- this library is the active background. -- [optional, default: defaults] vignette = { -- Edge colour of the vignette as a 0xRRGGBBAA integer. The alpha -- component controls the strength of the effect; set it to 0 to -- disable. -- [optional, default: 0x00000000] colour = 0x00000066, -- Radius of the unaffected centre area, as a proportion of the -- panel's smaller dimension. 0 means the vignette starts at the -- centre; values near 1 confine it to the very edges. On a range from -- 0 to 1. -- [optional, default: 0.2] inner_radius = 0.2, }, -- Configures a flat colour tint drawn over the blurred mid-panel surface. -- Independent of the vignette. -- [optional, default: no tint] panel_tint = { -- A flat tint drawn over the blurred mid-panel surfaces, as a -- 0xRRGGBBAA integer. Set alpha to 0 to disable. -- [optional, default: 0x00000000] colour = 0x0000000D, }, }}) ``` ### `floe.new_instrument` Creates a new instrument on the library. It takes 2 parameters: the library object and a table of configuration. It returns a new instrument object. You can call this function multiple times to create multiple instruments. An instrument is like a musical instrument. It is a sound-producing entity that consists of one or more samples (samples are specified in regions). Each library can have multiple instruments. You can use Floe's [Tag Builder GUI](/docs/beta/develop/tags-and-folders#instrument-tags) to generate tag tables. ``` -- Creates a new instrument on the library. You can call this multiple times to -- create multiple instruments.local instrument = floe.new_instrument(library, { -- The name of the instrument. [required] name = "Metal Fence Strike", -- A unique identifier for the instrument. If not specified, it will be the -- name of the instrument. Either way, IDs must be unqiue within a library. It -- can be any text but it's recommended to use a human-readable identifier -- (similar to the name). IDs are how presets and settings refer to -- instruments. -- [optional, default: same as name] id = "Metal Fence Strike", -- Specify a folder to group instruments under a common heading. It may -- contain slashes to represent a hierarchy. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no folders] folder = "Fences/Steel", -- A description of the instrument. Start with a capital letter an end with a -- period. -- [optional, default: no description] description = "Tonal pluck metallic pluck made from striking a steel fence.", -- An array of strings to denote properties of the instrument. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no tags] tags = { "found sounds", "tonal percussion", "metal", "keys", "cold", "ambient", "IDM", "cinematic" }, -- Path to an audio file relative to this script that should be used as the -- waveform on Floe's GUI. -- [optional, default: first region path] waveform_audio_path = "Samples/file1.flac",}) ``` ### `floe.add_region` Adds a region to an instrument. It takes 2 parameters: the instrument object and a table of configuration. Doesn't return anything. You can call this function multiple times to create multiple regions. A region is a part of an instrument. It defines an audio file and the conditions under which it will be played. For example, you might have a region that plays the audio file `Piano_C3.flac` when the note C3 is played. Each instrument must have one or more regions. ``` -- Adds a region to an instrument. You can call this multiple times to create -- multiple regions. Each instrument must have one or more regions.floe.add_region(instrument, { -- A path to an audio file, relative to this current lua file. [required] path = "Samples/One-shots/Resonating String.flac", -- The pitch of the audio file as a number from 0 to 127 (a MIDI note number). -- On a range from 0 to 127. [required] root_key = 60, -- How this region should be triggered. -- [optional, default: defaults] trigger_criteria = { -- What event triggers this region. Must be one of: "note-on" or -- "note-off". -- [optional, default: note-on] trigger_event = "note-on", -- The pitch range of the keyboard that this region is mapped to. These -- should be MIDI note numbers, from 0 to 128. The start number is -- inclusive, the end is exclusive. -- [optional, default: { 60, 64 }] key_range = { 60, 64 }, -- The velocity range of the keyboard that this region is mapped to. This -- should be an array of 2 numbers ranging from 0 to 100. The start number -- is inclusive, the end is exclusive. Use the -- velocity_range_high_resolution instead if you need more than 100 -- velocity layers. -- [optional, default: { 0, 100 }] velocity_range = { 0, 100 }, -- Alternative to velocity_range that allows for 1000 velocity layers -- instead of 100. -- [optional, default: { 0, 1000 }] velocity_range_high_resolution = { 0, 1000 }, -- Trigger this region only on this round-robin index. For example, if -- this index is 0 and there are 2 other groups with round-robin indices -- of 1 and 2 with the same round_robin_sequencing_group and -- trigger_event, then this region will trigger on every third press of a -- key only. round_robin_index should begin at 0 and be consecutive. The -- total number of round-robins is calculated automatically. -- [optional, default: no round-robin] round_robin_index = 0, -- Group together regions that have this same string, so that their -- round_robin_index is part of a separate sequence to other -- round_robin_sequencing_groups. Use this when you have multiple sets of -- regions that have a different number of round-robins with the same -- trigger_event. -- [optional, default: instrument-wide group] round_robin_sequencing_group = "group1", -- If another region in this instrument is triggered at the same time as -- this one and is overlapping this, and also has this option enabled, -- then both regions will play crossfaded in a proportional amount for the -- overlapping area, creating a smooth transition between velocity layers. -- Only works if there's exactly 2 overlapping layers. -- [optional, default: false] feather_overlapping_velocity_layers = false, -- For every region that has this same string, automatically set the start -- and end values for each region's key range based on its root key. -- [optional, default: no auto-map] auto_map_key_range_group = "group1", }, -- Loop configuration. -- [optional, default: defaults] loop = { -- Define a built-in loop. -- [optional, default: no built-in loop] builtin_loop = { -- The start of the loop in frames. Inclusive. It can be negative -- meaning index the file from the end rather than the start. -- [required] start_frame = 24, -- The end of the loop in frames. Exclusive. It can be negative -- meaning index the file from the end rather than the start. 0 means -- the end of the file. [required] end_frame = 6600, -- The number of frames to crossfade. [required] crossfade = 100, -- The mode of the loop. Must be one of: "standard" or "ping-pong". -- [optional, default: standard] mode = "standard", -- If true, the start, end and crossfade values cannot be overriden by -- a custom loop from Floe's GUI. -- [optional, default: ] lock_loop_points = false, -- If true, the loop mode value cannot be overriden by a custom mode -- from Floe's GUI. -- [optional, default: ] lock_mode = false, }, -- The requirement for this region to loop. Must be one of: -- "default" => Default looping behaviour. -- "always-loop" => This region will always loop - either using the built -- in loop, a user defined loop, or a default built-in loop. -- "never-loop" => This region will never loop even if there is a -- user-defined loop. Set all regions of an instrument to this to entirely -- disable looping for the instrument. -- [optional, default: default] loop_requirement = "always-loop", }, -- Timbre layering configuration. -- [optional, default: no timbre layering] timbre_layering = { -- The start and end point, from 0 to 100, of the Timbre knob on Floe's -- GUI that this region should be heard. You should overlap this range -- with other timbre layer ranges. Floe will create an even crossfade of -- all overlapping sounds. The start number is inclusive, end is -- exclusive. This region's velocity_range should be the full range. -- [optional, default: no timbre layering] layer_range = { 0, 50 }, }, -- Audio properties. -- [optional, default: defaults] audio_properties = { -- Apply a gain to the audio data in decibels. -- [optional, default: 0] gain_db = -3, -- The number of frames to skip at the start of the audio data. -- [optional, default: 0] start_offset_frames = 0, -- Tune the audio data in cents. -- [optional, default: 0] tune_cents = 0, -- The number of frames to fade in the audio data, applied at the start -- after any start_offset_frames. If the region has slices, the fade is -- applied at the start of each slice instead. -- [optional, default: 0] fade_in_frames = 0, -- The number of frames to fade out the audio data, applied at the end of -- the sample. If the region has slices, the fade is applied at the end of -- each slice instead. -- [optional, default: 0] fade_out_frames = 0, }, -- Playback configuration. -- [optional, default: defaults] playback = { -- The requirement for keytracking. Must be one of: "default", "always" or -- "never". -- [optional, default: default] keytrack_requirement = "default", }, -- An array of slices that divide this region's audio into segments for -- tempo-synced playback. Each slice defines a start frame and a relative -- length. The system sums all length_proportion values to determine the total -- number of steps; each slice's proportion of the total determines its -- playback duration in the sequence. -- [optional, default: no slices] slices = {}, -- The musical length of the loop in beats (e.g. 4 for a 1-bar loop in 4/4, 8 -- for 2 bars). Required when slices are set. Used by the arpeggiator's -- auto-rate to pick a tempo division that matches the loop's native timing. -- On a range from 1 to 255. -- [optional, default: ] loop_beats = 4, -- The BPM the loop was recorded at. Required when slices are set. Used by the -- arpeggiator's auto-rate together with loop_beats to compute each step's -- native duration. On a range from 1 to 999. -- [optional, default: ] native_bpm = 120,}) ``` ### `floe.add_named_key_range` Gives a name to a key range of this instrument. It takes 2 parameters: the instrument object and a table of configuration. Doesn't return anything. For example, with a multi-sampled keyboard instrument, you might mark the ranges beyond the natural range of the real instrument as "Extended" ranges. Alternatively, if the instrument contains multiple sounds, you can name each sound: "Kick", "Snare", etc. You can call this multiple times to create multiple named key ranges. ``` -- Gives a name to a key range of this instrument. For example, with a -- multi-sampled keyboard instrument, you might mark the ranges beyond the natural -- range of the real instrument as "Extended" ranges. You can call this multiple -- times to create multiple named key ranges. Alternatively, if the instrument -- contains multiple sounds, you can name each sound: "Kick", "Snare", etc. Don't -- overlap ranges.floe.add_named_key_range(instrument, { -- The name of the key range. [required] name = "Extended Notes", -- The range of the keyboard to give a name to. These should be MIDI note -- numbers, from 0 to 128. The start number is inclusive, the end is -- exclusive. [required] key_range = { 80, 128 },}) ``` ### `floe.add_ir` Adds a reverb impulse response to the library. It takes 2 parameters: the library object and a table of configuration. Doesn't return anything. You can call this function multiple times to create multiple impulse responses. ``` -- Adds a reverb impulse response to the library. You can call this multiple times -- to create multiple impulse responses.floe.add_ir(library, { -- The name of the IR. [required] name = "Cathedral", -- A unique identifier for the IR. If not specified, it will be the name of -- the IR. Either way, IR IDs must be unqiue within a library. It can be any -- text but it's recommended to use a human-readable identifier (similar to -- the name). IDs are how presets and settings refer to IRs. -- [optional, default: same as name] id = "Cathedral", -- File path to the impulse response file, relative to this script. [required] path = "irs/cathedral.flac", -- Specify a folder to group IRs under a common heading. It may contain -- slashes to represent a hierarchy. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no folders] folder = "Cathedrals", -- An array of strings to denote properties of the IR. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no tags] tags = { "acoustic", "cathedral" }, -- A description of the IR. Start with a capital letter an end with a period. -- [optional, default: no description] description = "Sine sweep in St. Paul's Cathedral.", -- Audio properties. -- [optional, default: defaults] audio_properties = { -- Apply a gain to the audio data in decibels. -- [optional, default: 0] gain_db = -3, },}) ``` ### `floe.set_attribution_requirement` Sets the attribution information for a particular file or folder. It takes 2 parameters: a path to the file or folder whose license information you want to set, and a table of configuration. If the path is a folder, the attribution requirement will be applied to all audio files in that folder and its subfolders. You can also point it at the library's `background_image_path` to credit the cover image — when set, a subtle credit line appears on the Perform page. ``` -- Sets the attribution information for a particular file or folder. If the path -- is a folder, the attribution requirement will be applied to all audio files in -- that folder and its subfolders. You can also point it at the library's -- background_image_path to credit the cover image — when set, a subtle credit -- line appears on the Perform page.floe.set_attribution_requirement("Samples/bell.flac", { -- The title of the work. [required] title = "Bell Strike", -- Name of the license. [required] license_name = "CC-BY-4.0", -- URL to the license. [required] license_url = "https://creativecommons.org/licenses/by/4.0/", -- The name/identification of the persons or entities to attribute the work -- to. [required] attributed_to = "John Doe", -- URL to the original work if possible. -- [optional, default: ] attribution_url = "https://example.com",}) ``` ### `floe.set_required_floe_version` Sets the minimum required version of Floe for this library. It takes one parameter: a string representing the version number (a [semantic version](https://semver.org/)). It's best to set this at the top of your `floe.lua` file so that Floe can check the version before running the script. Calling this function is recommended so that older versions of Floe behave predictably when trying to load an unsupported library. ``` -- Sets the required Floe version for this library. If the current Floe version is -- lower than the required version, an error will be raised.floe.set_required_floe_version("2.0.4+52196ddd") ``` ## Support Function Floe provides some additional functions to make developing libraries easier. ### `floe.extend_table` Extends a table with another table, including all sub-tables. It takes 2 parameters: the base table and the table to extend it with. The base table is not modified. The extension table is modified and returned. It has all the keys of the base table plus all the keys of the extended table. If a key exists in both tables, the value from the extension table is used. Floe doesn't have the concept of 'groups' like other formats like SFZ or Kontakt have. Instead, this function offers a way to apply a similar configuration to multiple regions. Alternatively, you can use functions and loops in Lua to add regions in a more dynamic way. ``` local group1 = { trigger_criteria = { trigger_event = "note-on", velocity_range = { 0, 100 }, auto_map_key_range_group = "group1", feather_overlapping_velocity_regions = false, },}floe.add_region(instrument, floe.extend_table(group1, { path = "One-shots/Resonating String 2.flac", root_key = 65,}))floe.add_region(instrument, floe.extend_table(group1, { path = "One-shots/Resonating String 3.flac", root_key = 68,})) ``` ### `floe.midi_range_to_hundred_range` and `floe.midi_range_to_thousand_range` Floe prefers to use a range from 0 to 100 or 0 to 1000 (where the end value is exclusive, A.K.A. one-past the last) for velocity rather than MIDI 1.0's typical range of 0 to 127 (where the end value is inclusive). These functions convert from the MIDI range to the Floe range. Useful when converting existing libraries to Floe. ``` -- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-100 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.local hundred_range = floe.midi_range_to_hundred_range({ 0, 127 })-- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-1000 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.local thousand_range = floe.midi_range_to_thousand_range({ 0, 127 }) ``` ## Lua Language Server If you are using the [Lua Language Server](https://luals.github.io/), you can get autocompletion and diagnostics for Floe's Lua API by using the following configuration. 1. Open Floe, and click on the 3-dot menu at the top of the window. Click "Library Developer Tools" and open the "Utilities" tab. 2. Click on the "Install Lua definitions" button. This will generate the necessary file on your system. 3. For the Lua LSP to find the definitions, you need to create a `.luarc.json` file in the same folder as your `floe.lua` file. 4. Paste the following code into the `.luarc.json` file: ``` { "runtime": { "version": "Lua 5.4" }, "workspace": { "library": [ "<< paste definitions file path >>" ] }} ``` 5. Replace the string with the path that is copied to your clipboard when you click the "Copy Lua definitions path" button in the Library Developer Tools. 6. Done. ## Lua LSP Definitions This file is also generated by the "Install Lua definitions" button in the Library Developer Tools. ``` ---@meta FloeAPI---@class FloeInstrumentConfig---@field name string The name of the instrument.---@field id? string A unique identifier for the instrument. If not specified, it will be the name of the instrument. Either way, IDs must be unqiue within a library. It can be any text but it's recommended to use a human-readable identifier (similar to the name). IDs are how presets and settings refer to instruments.---@field folder? string Specify a folder to group instruments under a common heading. It may contain slashes to represent a hierarchy. See https://floe.audio/develop/tags-and-folders.html for more information.---@field description? string A description of the instrument. Start with a capital letter an end with a period.---@field tags? string[] An array of strings to denote properties of the instrument. See https://floe.audio/develop/tags-and-folders.html for more information.---@field waveform_audio_path? string Path to an audio file relative to this script that should be used as the waveform on Floe's GUI.---@class FloeImpulseResponseAudioPropsConfig---@field gain_db? number Apply a gain to the audio data in decibels.---@class FloeBuiltinLoopConfig---@field start_frame number The start of the loop in frames. Inclusive. It can be negative meaning index the file from the end rather than the start.---@field end_frame number The end of the loop in frames. Exclusive. It can be negative meaning index the file from the end rather than the start. 0 means the end of the file.---@field crossfade number The number of frames to crossfade.---@field mode? "standard"|"ping-pong" The mode of the loop.---@field lock_loop_points? boolean If true, the start, end and crossfade values cannot be overriden by a custom loop from Floe's GUI.---@field lock_mode? boolean If true, the loop mode value cannot be overriden by a custom mode from Floe's GUI.---@class FloeRegionLoopConfig---@field builtin_loop? FloeBuiltinLoopConfig Define a built-in loop.---@field loop_requirement? "default"|"always-loop"|"never-loop" The requirement for this region to loop.---@class FloeRegionAudioPropsConfig---@field gain_db? number Apply a gain to the audio data in decibels.---@field start_offset_frames? number The number of frames to skip at the start of the audio data.---@field tune_cents? number Tune the audio data in cents.---@field fade_in_frames? number The number of frames to fade in the audio data, applied at the start after any start_offset_frames. If the region has slices, the fade is applied at the start of each slice instead.---@field fade_out_frames? number The number of frames to fade out the audio data, applied at the end of the sample. If the region has slices, the fade is applied at the end of each slice instead.---@class FloeRegionTimbreLayeringConfig---@field layer_range? number[] The start and end point, from 0 to 100, of the Timbre knob on Floe's GUI that this region should be heard. You should overlap this range with other timbre layer ranges. Floe will create an even crossfade of all overlapping sounds. The start number is inclusive, end is exclusive. This region's velocity_range should be the full range.---@class FloeRegionPlaybackConfig---@field keytrack_requirement? "default"|"always"|"never" The requirement for keytracking.---@class FloeRegionSliceConfig---@field start_frame number The frame position in the audio file where this slice begins.---@field length_proportion number A unitless value representing the relative duration of this slice when played in a tempo-synced sequence, similar to CSS flex-grow. The system sums all length_proportion values to determine the total number of steps, and each slice's proportion determines its playback duration.---@class FloeTriggerCriteriaConfig---@field trigger_event? "note-on"|"note-off" What event triggers this region.---@field key_range? number[] The pitch range of the keyboard that this region is mapped to. These should be MIDI note numbers, from 0 to 128. The start number is inclusive, the end is exclusive.---@field velocity_range? number[] The velocity range of the keyboard that this region is mapped to. This should be an array of 2 numbers ranging from 0 to 100. The start number is inclusive, the end is exclusive. Use the velocity_range_high_resolution instead if you need more than 100 velocity layers.---@field velocity_range_high_resolution? number[] Alternative to velocity_range that allows for 1000 velocity layers instead of 100.---@field round_robin_index? number Trigger this region only on this round-robin index. For example, if this index is 0 and there are 2 other groups with round-robin indices of 1 and 2 with the same round_robin_sequencing_group and trigger_event, then this region will trigger on every third press of a key only. round_robin_index should begin at 0 and be consecutive. The total number of round-robins is calculated automatically.---@field round_robin_sequencing_group? string Group together regions that have this same string, so that their round_robin_index is part of a separate sequence to other round_robin_sequencing_groups. Use this when you have multiple sets of regions that have a different number of round-robins with the same trigger_event.---@field feather_overlapping_velocity_layers? boolean If another region in this instrument is triggered at the same time as this one and is overlapping this, and also has this option enabled, then both regions will play crossfaded in a proportional amount for the overlapping area, creating a smooth transition between velocity layers. Only works if there's exactly 2 overlapping layers.---@field auto_map_key_range_group? string For every region that has this same string, automatically set the start and end values for each region's key range based on its root key.---@class FloeFileAttributionConfig---@field title string The title of the work.---@field license_name string Name of the license.---@field license_url string URL to the license.---@field attributed_to string The name/identification of the persons or entities to attribute the work to.---@field attribution_url? string URL to the original work if possible.---@class FloeNamedKeyRangeConfig---@field name string The name of the key range.---@field key_range number[] The range of the keyboard to give a name to. These should be MIDI note numbers, from 0 to 128. The start number is inclusive, the end is exclusive.---@class FloeBackgroundOverlayVignetteConfig---@field colour? number Edge colour of the vignette as a 0xRRGGBBAA integer. The alpha component controls the strength of the effect; set it to 0 to disable.---@field inner_radius? number Radius of the unaffected centre area, as a proportion of the panel's smaller dimension. 0 means the vignette starts at the centre; values near 1 confine it to the very edges.---@class FloeBackgroundOverlayPanelTintConfig---@field colour? number A flat tint drawn over the blurred mid-panel surfaces, as a 0xRRGGBBAA integer. Set alpha to 0 to disable.---@class FloeImpulseResponseConfig---@field name string The name of the IR.---@field id? string A unique identifier for the IR. If not specified, it will be the name of the IR. Either way, IR IDs must be unqiue within a library. It can be any text but it's recommended to use a human-readable identifier (similar to the name). IDs are how presets and settings refer to IRs.---@field path string File path to the impulse response file, relative to this script.---@field folder? string Specify a folder to group IRs under a common heading. It may contain slashes to represent a hierarchy. See https://floe.audio/develop/tags-and-folders.html for more information.---@field tags? string[] An array of strings to denote properties of the IR. See https://floe.audio/develop/tags-and-folders.html for more information.---@field description? string A description of the IR. Start with a capital letter an end with a period.---@field audio_properties? FloeImpulseResponseAudioPropsConfig Audio properties.---@class FloeRegionConfig---@field path string A path to an audio file, relative to this current lua file.---@field root_key number The pitch of the audio file as a number from 0 to 127 (a MIDI note number).---@field trigger_criteria? FloeTriggerCriteriaConfig How this region should be triggered.---@field loop? FloeRegionLoopConfig Loop configuration.---@field timbre_layering? FloeRegionTimbreLayeringConfig Timbre layering configuration.---@field audio_properties? FloeRegionAudioPropsConfig Audio properties.---@field playback? FloeRegionPlaybackConfig Playback configuration.---@field slices? table[] An array of slices that divide this region's audio into segments for tempo-synced playback. Each slice defines a start frame and a relative length. The system sums all length_proportion values to determine the total number of steps; each slice's proportion of the total determines its playback duration in the sequence.---@field loop_beats? number The musical length of the loop in beats (e.g. 4 for a 1-bar loop in 4/4, 8 for 2 bars). Required when slices are set. Used by the arpeggiator's auto-rate to pick a tempo division that matches the loop's native timing.---@field native_bpm? number The BPM the loop was recorded at. Required when slices are set. Used by the arpeggiator's auto-rate together with loop_beats to compute each step's native duration.---@class FloeBackgroundOverlayConfig---@field vignette? FloeBackgroundOverlayVignetteConfig Configures the radial vignette drawn over the background image when this library is the active background.---@field panel_tint? FloeBackgroundOverlayPanelTintConfig Configures a flat colour tint drawn over the blurred mid-panel surface. Independent of the vignette.---@class FloeLibraryConfig---@field name string The name of the library. Keep it short and use tagline for more details.---@field tagline string A few words to describe the library.---@field library_url? string The URL for this Floe library.---@field description? string A description of the library. You can be verbose and use newlines (\n).---@field author string Who created this library. Keep it short, use the description for more details.---@field id? string A unique identifier for this library. Specifying this field overrides the default ID of "library-name - author". It can be any text, its only meaning is to uniquely identify this library from others. However, in rare cases it may be shown on the UI so it should be human-readable and representative of the library. This field is useful if you want to change the name of the library: set this to the previous ID (otherwise the ID will change to "new-library-name - author") and bump the revision field.---@field author_url? string URL relating to the author or their work.---@field revision? number The revision number of this library. Bump this whenever you publish a backwards-compatible update (additional content, fixes, tweaks); breaking changes are not allowed - you'd need to create a new library such as: "Strings v2". The legacy name `minor_version` is also accepted.---@field background_image_path? string Path relative to this script for the background image. It should be a jpg or png. Look at Floe's 'Develop Libraries' docs for recommended specs.---@field icon_image_path? string Path relative to this script for the icon image. It should be a square jpg or png.---@field background_overlay? FloeBackgroundOverlayConfig Controls the vignette and panel-tint drawn over the background image when this library is the active background.---@class floefloe = {}-- Creates a new library. You should only create one library in your script. -- Return the library at the end of your script.---@param config FloeLibraryConfig---@return lightuserdata libraryfunction floe.new_library(config) end-- Creates a new instrument on the library. You can call this multiple times to -- create multiple instruments.---@param library lightuserdata---@param config FloeInstrumentConfig---@return lightuserdata instrumentfunction floe.new_instrument(library, config) end-- Adds a region to an instrument. You can call this multiple times to create -- multiple regions. Each instrument must have one or more regions.---@param instrument lightuserdata---@param config FloeRegionConfigfunction floe.add_region(instrument, config) end-- Adds a reverb impulse response to the library. You can call this multiple times -- to create multiple impulse responses.---@param library lightuserdata---@param config FloeImpulseResponseConfigfunction floe.add_ir(library, config) end-- Sets the attribution information for a particular file or folder. If the path -- is a folder, the attribution requirement will be applied to all audio files in -- that folder and its subfolders. You can also point it at the library's -- background_image_path to credit the cover image — when set, a subtle credit -- line appears on the Perform page.---@param file_path string---@param config FloeFileAttributionConfigfunction floe.set_attribution_requirement(file_path, config) end-- Gives a name to a key range of this instrument. For example, with a -- multi-sampled keyboard instrument, you might mark the ranges beyond the natural -- range of the real instrument as "Extended" ranges. You can call this multiple -- times to create multiple named key ranges. Alternatively, if the instrument -- contains multiple sounds, you can name each sound: "Kick", "Snare", etc. Don't -- overlap ranges.---@param instrument lightuserdata---@param config FloeNamedKeyRangeConfigfunction floe.add_named_key_range(instrument, config) end-- Sets the required Floe version for this library. If the current Floe version is -- lower than the required version, an error will be raised.---@param version_string stringfunction floe.set_required_floe_version(version_string) end-- Extends a table with another table, including all sub-tables. The base table is -- not modified. The extension table is modified and returned with all keys from -- both tables. If a key exists in both, the extension table value is used.---@param base_table table---@param t table---@return table extended_tablefunction floe.extend_table(base_table, t) end-- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-100 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.---@param midi_range table---@return table hundred_rangefunction floe.midi_range_to_hundred_range(midi_range) end-- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-1000 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.---@param midi_range table---@return table thousand_rangefunction floe.midi_range_to_thousand_range(midi_range) end_G.floe = floe ``` --- # Packages Page Submissions > Documentation for developers to submit packages to Floe's Package Directory Do you have a Floe package you'd like to add to the [Package Directory](/packages)? We're happy to help you get it listed. - If you're familiar with development workflows, please submit a [pull request](https://github.com/floe-audio/Floe/pulls) with a new entry to `package-database.json` following the schema below. - Otherwise, please [contact us](https://github.com/floe-audio/floe/discussions) and we'll help add your package. All packages must be compatible with the current Floe version and meet basic quality standards for audio, scripting, and presentation. Packages from larger-budget developers/studios may require [sponsorship](/docs/beta/about-the-project/sponsorship). ## Database Schema The package database (`website/static/package-database.json`) contains information about available Floe packages displayed on the website's packages page. Each entry represents a package that users can discover and install. - **`name`** - Package display name - **`slug`** - Lowercase version of name using dashes instead of spaces - used to make the URL - **`developer`** - Developer/studio name - **`developer_icon`** - URL to developer icon/logo - **`background_image`** - URL to package preview image - **`demo_video`** - Optional URL to a short demo video (MP4), shown with an HTML5 player on the package page - **`gallery`** - Optional array of image URLs (e.g. GUI screenshots), shown as a thumbnail grid with a click-to-expand lightbox - **`attribution_required`** - Boolean, shows ATTRIBUTION badge if true - **`description`** - HTML description with links allowed - **`category`** - `"community"` or `"professional"`, see below - **`direct_download_link`** - Direct download URL (null if external) - **`external_product_page`** - Developer's product page URL - **`instruments`** - Number of instruments in package - **`presets`** - Number of presets in package - **`irs`** - Number of impulse responses in package ## Categories **Community** - Open-source libraries, passion projects, independent conversions from other formats. Always free. Open to submissions from individual creators and non-commercial entities. **Professional** - High-quality libraries from established developers/studios. May be free or paid. [Requires project sponsorship](/docs/beta/about-the-project/sponsorship). --- # Package libraries & presets for distribution > How to create Floe Packages to distribute your sample libraries and presets The easiest and most reliable way to distribute your Floe content is with [Floe Packages](/docs/beta/installation/install-packages#what-is-a-package). Floe Packages are `.floe-pkg` files (ZIP files internally) containing **sample libraries** (which provide instruments and IRs) and/or **presets** (ready-to-use professional sounds). Packages are what users download and install into Floe. Floe also accepts `.zip` file extension. Floe offers an easy-to-use GUI for [installing packages](/docs/beta/installation/install-packages). This installation process carefully considers existing content, versions, installation preferences, and whether installed libraries have been modified. The result should 'just work' or provide clear instructions on what to do next. As with Floe's sample library format, openness is key. That's why Floe Packages are just ZIP files with a specific structure and a `.floe-pkg` extension. Anyone can create them and anyone can open them (rename to `.zip` to extract). Additionally, it gives the user the option to extract them manually rather than use Floe's GUI if they wish. Create Floe Packages using our command-line tool or any ZIP program. We often recommend not leaving packages with the `.zip` extension though because the common thing to do with ZIPs is extract them, which is not what Floe's 'Install Package' button wants, leading to confusion. Instead, always change the file extension to `.floe-pkg`. ## Encrypted packages Floe also supports encrypted packages. Whilst not open, these are implemented in a spirit of Floe's hassle-free philosophy. A license key is needed to unlock the package. No internet connection is required. Documentation is not currently provided for encrypted packages. ## Packager command-line tool If you're comfortable with such things, we have a command-line tool to create Floe Packages. It ensures everything is set up correctly and adds a couple of nice-to-have features, particularly for users who want to install the package manually rather than with Floe's GUI. However, for regular packages, you can use any ZIP program to create them. Just make sure they follow the structure described in the next section, and rename the resulting `.zip` to `.floe-pkg`. Creating encrypted packages requires `floe-packager` and is not yet documented. #### Download - **Floe Packager Windows**: [Floe-Packager-v2.0.4-Windows.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-Windows.zip) (14 MB) - **Floe Packager macOS Apple Silicon**: [Floe-Packager-v2.0.4-macOS-Apple-Silicon.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-macOS-Apple-Silicon.zip) (1 MB) - **Floe Packager macOS Intel**: [Floe-Packager-v2.0.4-macOS-Intel.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-macOS-Intel.zip) (1 MB) - **Floe Packager Linux**: [Floe-Packager-v2.0.4-Linux.tar.gz](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-Linux.tar.gz) (15 MB) Download the program, extract it, and run it from the command line. #### Usage Here's the output of `floe-packager --help`: ``` Packages libraries and presets into a Floe package file (.floe-pkg or .floe-pkg-enc).Existing packages can be merged into the output. Multiple libraries and preset foldersare supported. Additionally:- Validates any Lua files.- Ensures libraries have a License file.- Adds an 'About' document for each library (unless --no-about-doc).- Embeds a checksum file into the package for better change detection if the package is installed manually.Encrypted workflow: run gen-key once per product line and store the key securely (orgenerate the key by some other means). Pass it to pack via --package-key for every versionso that a single license key unlocks all of them.Usage: floe-packager [OPTIONS]Commands: pack Build a Floe package (.floe-pkg) from libraries and presets. Existing packages can be merged into the output. info Write a JSON manifest describing the package's instruments, presets, tags, etc., without producing a package file. gen-key Generate a random package key and print it to stdout.Run 'floe-packager --help' for more information on a command.Build a Floe package (.floe-pkg) from libraries and presets. Existing packages can be merged into the output.Usage: floe-packager pack [OPTIONS]Positional arguments: Directory to write the package into. Created if missing. The package filename is auto-generated.Optional arguments: -l, --library-folder ... Library folder to include (repeatable) -p, --preset-folder ... Preset folder to include (repeatable) -i, --input-package ... Existing package file to merge into the output. Files from --library-folder and --preset-folder take precedence on conflict. (repeatable) --prune Silently drop files that aren't used: for libraries, files not referenced from Lua (samples, images, IRs) or the .lua/license files; for preset folders, files that aren't presets or preset-bank info files. Without this, such files are warned about but still included. -n, --package-name Override the auto-generated package name. --package-key 64-character hex key for encrypting the package (gen-key can create one). When present, produces an encrypted .floe-pkg-enc instead of a plain .floe-pkg. Reuse the same key across versions so existing license keys stay valid. --no-about-doc Don't add the auto-generated 'About' PDF to each library folder.Write a JSON manifest describing the package's instruments, presets, tags, etc., without producing a package file.Usage: floe-packager info [OPTIONS]Positional arguments: JSON file path to write the manifest to. Use '-' to write to stdout.Optional arguments: -l, --library-folder ... Library folder to include (repeatable) -p, --preset-folder ... Preset folder to include (repeatable) -i, --input-package ... Existing package file to merge into the output. Files from --library-folder and --preset-folder take precedence on conflict. (repeatable) --prune Silently drop files that aren't used: for libraries, files not referenced from Lua (samples, images, IRs) or the .lua/license files; for preset folders, files that aren't presets or preset-bank info files. Without this, such files are warned about but still included. -n, --package-name Override the auto-generated package name.Generate a random package key and print it to stdout.Usage: floe-packager gen-key [OPTIONS] ``` #### Examples These examples use bash syntax. ``` # Creates a .floe-pkg from the Slow library and the Slow Factory Presets.# Slow and "Slow Factory Presets" are folders in the current directory../floe-packager --library-folder "Slow" \ --preset-folder "Slow Factory Presets" \ --output-dir .# Creates a .floe-pkg containing multiple libraries and no presets./floe-packager --library-folder "C:/Users/Sam/Floe-Dev/Strings" \ "C:/Users/Sam/Floe-Dev/Common-IRs" \ --output-dir "C:/Users/Sam/Floe-Dev/Releases" \ --package-name "FrozenPlain - Strings" ``` ## Package structure If you're not using the packager tool, you need to know the structure of the Floe Package. It's very simple. Requirements of a floe package: - The package must contain a folder called `Libraries` and/or a folder called `Presets`. If present, these folders must contain the libraries and presets respectively. Be careful that your ZIP program is not adding an extra folder when you create the ZIP file. There should not be a top-level folder in the ZIP file, just the `Libraries` and/or `Presets` folders. #### Example: single library & factory presets ``` 📦FrozenPlain - Arctic Strings Package.floe-pkg/├── 📁Libraries│ └── 📁Arctic Strings│ ├── 📄arctic-strings.floe.lua│ ├── 📁Samples│ │ ├── 📄strings_c4.flac│ │ └── 📄strings_d4.flac│ └── 📁Images│ ├── 📄background.png│ └── 📄icon.png└── 📁Presets └── 📁Arctic Strings Factory ├── 📁Realistic │ ├── 📄Octaved.floe-preset │ └── 📄Soft.floe-preset └── 📁Synthetic ├── 📄Bright.floe-preset └── 📄Warm.floe-preset ``` #### Example: multiple libraries ``` 📦Audioata - Synthwave Bundle Package.floe-pkg/├── 📁Libraries│ ├── 📁Synthwave Bass│ │ ├── 📄synthwave-bass.floe.lua│ │ └── 📁Samples│ │ ├── 📄bass_c1.flac│ │ └── 📄bass_d1.flac│ ├── 📁Synthwave Drums│ │ ├── 📄synthwave-drums.floe.lua│ │ └── 📁Samples│ │ ├── 📄kick.flac│ │ └── 📄snare.flac│ └── 📁Synthwave Synths│ ├── 📄synthwave-synths.floe.lua│ └── 📁Samples/│ ├── 📄synth_c4.flac│ └── 📄synth_d4.flac└── 📁Presets └── 📁Synthwave Factory ├── 📄Clean Pad.floe-preset ├── 📄Dirty Lead.floe-preset ├── 📄Nebula Drone.floe-preset ├── 📄Punchy Kickdrum.floe-preset ├── 📄Backing FX.floe-preset └── 📄Full Effect.floe-preset ``` --- # Tags and folders > Best practices for using tags and folders in Floe sample libraries Floe has 2 complementary features for browsing, searching and filtering: tags and folders. Presets, instruments, and impulse responses all use tags and folders. For developers, there are best practises for how to use tags and folders to offer the best experience for the user. On this page, we use the term 'item' to mean either preset, instrument, or impulse response: these all use tags and folders in a similar way. ## Folders Folders are used to group items under a common heading. Folders should be categories that relate to the theme or objective of the library. For example, for Lost Reveries, we wanted to explore the technique of using three complementary timbres to layer into a full-spectrum sound, so we choose folders: "Low", "Mid" and "Air". Another example might be a library of field recordings, folders might be "Urban/London", "Urban/York" or "Nature/New Forest". Folders may contain slashes to represent a hierarchy, just like a filepath. For example: "Piano/1978 Steinway". Use this to specify broad categories that narrow down to specific categories. It's not usually best to have more than 2 levels of hierarchy. It's best to have 5 to 30 items per folder. Folders with only a couple of items clutter the GUI and don't offer much value. Folders with too many items lose their focus. Folders might overlap with tags but, in general, they are more abstract and can use phrases that only make sense in the context of the library as a whole. However, if it makes sense to group items under a common heading such as 'Percussion' (a common tag), then that's fine too — but you should also add this as a tag. ## Tags Tags are the properties of an item. They are used for filtering and searching items across all libraries. Tags must come from the standard pool of tags so that there is a common language that enables standard usage across all libraries. Any tags not in the standard pool are ignored. Add as many relevant tags as possible. ## Instrument tags Instrument tags are set in the sample library's Lua file when calling `floe.new_instrument`. However, writing tags manually is quite laborious. Floe has a utility that allows you to use the GUI to select tags. It will write these tags as Lua code, ready to be included in your `floe.lua` file. `Lua/instrument_tags.lua`: ``` -- This file is generated by Floe's tag builder.return { ["Air - Restless Canopy"] = { "ambient", "bittersweet", "breathy", "dreamy", "ethereal", "nostalgic", "resonant", "smooth", "synthesized", "texture", }, -- ...} ``` `floe.lua`: ``` local instrument_tags = dofile("Lua/instrument_tags.lua")-- ...local instrument_name = "Air - Restless Canopy"local instrument = floe.new_instrument(library, { name = instrument_name, tags = instrument_tags[instrument_name], -- ...}) ``` This Tag Builder is found by clicking on the 3-dots menu at the top of Floe, and then selecting "Library Developer Tools". The tag builder works for whatever instrument is loaded in the first layer of Floe. As you click on tags, the generated Lua code will be placed in the library's folder in a subfolder called `Lua`. ## Standard tags We take a pragmatic approach to defining this set of standard tags. Rather than try to be completely comprehensive and technically accurate, we instead aim to strike a balance between correctness and common usage within the music production space. The goal of tags is to help users find the item they need. You can suggest edits to this list via Github or other means. For best results setting tags, go over each of the following questions and add all tags that apply to the item. ### 1. 🔊 Sound source: Where did the sound come from? | Tag | Description | | :-- | :-- | | `acoustic` | Originating from a real instrument | | `field recording` | Environmental or location recordings | | `found sounds` | Real objects not traditionally used for music | | `hybrid` | Combines acoustic/vocal sounds with processed/synthesized elements | | `synthesized` | Generated by algorithms or circuits | | `vocal` | Originating from a human voice | It's strongly recommended to specify a sound-source for instruments and impulse responses. This is sometimes not applicable for presets. ### 2. 🎻 Real instrument category: Does it fit in a real instrument category? `brass`, `cello`, `choir`, `double bass`, `drums`, `electric bass`, `folk`, `guitar`, `keyboard`, `organ`, `percussion`, `piano`, `plucked strings`, `strings`, `struck strings`, `tonal percussion`, `violin`, `wind`. **plucked strings:** Plucked strings such as guitar, harp, mandolin **strings:** Bowed strings such as violin, viola, cello, double bass **struck strings:** Struck strings such as hammered dulcimer, santur These are mostly relevant for acoustic or hybrid sounds, but can be used for synthesized sounds that emulate these instruments. ### 3. 👥 Number of players: How many players are involved? | Tag | Description | | :-- | :-- | | `solo` | Single player | | `ensemble` | Multiple players | This is typically used for acoustic sounds. Synthesized sounds usually don't have this tag. ### 4. ➡️ Sound type (long duration): If it's a long-duration sound, what type is it? | Tag | Description | | :-- | :-- | | `drone` | Sustained, minimal, static foundation with little movement | | `pad` | Playable harmonic support, pitched and chord-capable | | `texture` | Sustained atmospheric element, typically less of a musical pitch than \`pad\` | | `soundscape` | A complete environment or scene, complex sonic space | | `underscore` | Background tones or sequences for underneath dialogue | | `noise` | Non-pitched and constant, similar to white noise | Pick from here if the sound sustains. Mutually exclusive with short-duration and sequence sound types. ### 5. ↔️ Sound type (short duration): If it's a short-duration sound, what type is it? | Tag | Description | | :-- | :-- | | `hit` | Single impactful sound with pitch and percussive elements | | `keys` | Piano or keyboard-like | | `kit` | Different sounds mapped across keys, such as a drum kit | | `oneshot` | Non-looping single sound, typically not for playing chromatically | | `pluck` | Short melodic notes | | `stab` | Extra-short melodic notes | Pick from here if the sound is brief or transient. Mutually exclusive with long-duration and sequence sound types. ### 6. 🔁 Sound type (sequence or pattern): If it's a sequence or pattern, what type is it? | Tag | Description | | :-- | :-- | | `arp` | Arpeggiated pattern of notes | | `sequence` | Sequenced pattern timbre changes | | `loop` | Sampled repeating phrase | Pick from here if the sound is a repeating or arpeggiated pattern. Mutually exclusive with long- and short-duration sound types. ### 7. 🎛️ Sound type (role in a track): What type of sound is it? | Tag | Description | | :-- | :-- | | `lead` | Foreground melodic element | | `bass` | Low-frequency foundation | | `riser` | Building tension element | | `downer` | Descending tension element | | `sound fx` | Special effect sound | | `transition` | Section change element | ### 8. 🪵 Material: Is it made from a specific material? `glass`, `ice`, `metal`, `plastic`, `rubber`, `stone`, `wood`. This is typically used for non-standard instruments in the \`acoustic\` or \`found sounds\` categories. ### 9. 🏛️ Reverb type: What reverb type is it? `cathedral`, `chamber`, `church`, `hall`, `large room`, `open air`, `small room`, `studio`, `unusual`. Strongly recommended for impulse responses. Not applicable for instruments or presets. ### 10. 🙂 Mood (positive): What mood does the item evoke? `bright`, `dreamy`, `ethereal`, `hopeful`, `nostalgic`, `peaceful`, `playful`. **bright:** Positive, uplifting, clear It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 11. 😟 Mood (negative): What mood does the item evoke? `aggressive`, `chaotic`, `dark`, `disturbing`, `eerie`, `melancholic`, `menacing`, `tense`. **dark:** Unhappy, dim, unpleasant It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 12. 😐 Mood (mixed): What mood does the item evoke? `bittersweet`, `hypnotic`, `mysterious`, `quirky`, `subdued`. It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 13. 🎭 Mood (thematic): What mood does the item evoke? `dramatic`, `dystopian`, `epic`, `experimental`, `fantasy`, `heroic`, `noir`, `romantic`, `thriller`, `horror`, `sci-fi`, `western`. It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 14. 🎶 Pitch: What are its pitch characteristics? | Tag | Description | | :-- | :-- | | `multi-pitched` | Contains multiple distinct notes (excluding octave unison) | | `non-pitched` | Lacks identifiable musical pitch | | `dissonant` | Contains harmonically clashing pitches | Useful for non-typical sounds that have notable pitch characteristics. A sound is assumed to possess a musical pitch unless otherwise stated. ### 15. 🚂 Timbre (modulation): What is its timbre like? | Tag | Description | | :-- | :-- | | `evolving` | Significantly notable slow morphing changes over time | | `fluctuating` | Significant fast or semi-fast irregular movement | | `glitched` | Digital error artefacts | | `grainy` | Audibly composed of tiny grains | | `pulsing` | Obvious rhythmic pulse | ### 16. 🎷 Timbre (real instrument tone): What is its timbre like? | Tag | Description | | :-- | :-- | | `brassy` | Like brass instruments | | `breathy` | Containing air noise, like wind instruments | | `strings-like` | Characteristic resonance of string instruments | | `reedy` | Characteristic of reed instruments | | `choir-like` | Characteristic of choral voices | | `organ-like` | Characteristic of an organ | | `percussive` | Short, sharp attack | ### 17. 🎚️ Timbre (synthesis technique): What is its timbre like? | Tag | Description | | :-- | :-- | | `analog` | Warm, imprecise, vintage character | | `FM` | Frequency modulation synthesis | | `granular` | Granular synthesis | | `physical modelling` | Simulating real-world physics | ### 18. 💎 Timbre (frequency): What is its timbre like? | Tag | Description | | :-- | :-- | | `airy` | Soft, open, high-frequency hiss | | `circuit bent` | Characteristic of modified electronic devices | | `cold` | Thin, clinical, lacking warmth | | `digital` | Clean, precise, computer-generated character | | `distorted` | Overdriven, crushed, non-linear | | `full-spectrum` | Wide frequency range | | `fuzzy` | Indistinct, soft-edged, unclear | | `glassy` | Clear, fragile, transparent | | `gritty` | Rough, textured, unpolished | | `harsh` | Abrasive, aggressive high frequencies | | `hissing` | Sibilant, white noise | | `lo-fi` | Tape, vinyl, or bitcrush-style degradation — hiss, crackle, wow/flutter, reduced fidelity | | `lush` | Full, rich, densely layered | | `metallic` | Resonant, hard, bright, like metal | | `muddy` | Unclear low-mid frequencies | | `muffled` | Dampened high frequencies | | `nasal` | Strong mid-range resonance | | `noisy` | Contains noise components, imperfect. If the sound is 100% noise use \`noise\` instead. | | `pure` | Free from noise, clean sine-like quality | | `resonant` | Strong resonant peaks in frequency | | `ringing` | Clear high unrelenting resonant sound | | `rumbly` | Very low frequency non-pitch sustained noise | | `saturated` | Subtly distorted, harmonically enhanced | | `smooth` | Even, consistent, without sharp edges | | `thin` | Lacking in fullness, narrow frequency range | | `warm` | Pleasant mid-range and low-mid-range, rounded harmonics | | `whining` | High-pitched fluctuating sound | ### 19. 🎵 Genre: What genres might this item fit best into? `80s`, `EDM`, `IDM`, `ambient`, `blues`, `chillout`, `chiptune`, `cinematic`, `disco`, `downtempo`, `drum & bass`, `dubstep`, `electronic`, `folk (genre)`, `funk`, `future bass`, `glitch`, `hip-hop`, `house`, `industrial`, `jazz`, `lo-fi`, `metal (genre)`, `orchestral`, `pop`, `rock`, `synthwave`, `techno`, `trance`, `trap`, `vaporwave`, `world`. **lo-fi:** Tape, vinyl, or bitcrush-style degradation — hiss, crackle, wow/flutter, reduced fidelity Specifying at least one genre is recommended for all presets and instruments. --- # Quick Start Guide > {/* ## Before you start Floe is an engine — empty without sample libraries. Libraries and their presets come in files called _Floe packages_. If you've bought a library, you'll usually download its package from the developer's website, or find a link in your email. If you don't have any packages yet, browse the [packages](/packages) page to discover free and paid libraries. ## Install Floe and your packages 1. **Download Floe** from [floe.audio/download](https://floe.audio/download) and run the installer for your computer. See [Install Floe](/docs/beta/installation/download-and-install-floe) if you need more detail. 2. **Download your packages.** 3. **Open your DAW** and add Floe to an instrument track. It's usually listed as a virtual instrument under _Floe Audio_. 4. **Open Floe's preferences** by clicking in the top panel, then choose the _Packages_ tab. 5. **Click _Install package_** and select your package file. You can select several at once. ![The Packages tab of Floe's preferences, with the Install package button](https://assets.floe.audio/website/screenshots/install-packages.732780b46497022b.png) Some packages, often paid ones, need unlocking: Floe asks for the license key that came with your purchase. When the installation finishes, Floe shows a summary. Once you click _Done_, your libraries and presets are ready to use. There's no need to restart anything. You can delete the package files afterwards; Floe doesn't need them anymore. If you want to install to a different drive, or want more details, have a look at [Install Packages](/docs/beta/installation/install-packages). ## Play your first preset If the plugin was empty when you installed the package, it will have already loaded one of the library's presets for you — begin playing some notes on your MIDI controller. ### Try some presets ![The top of Floe's window, with the PERFORM tab and the preset arrows numbered](https://assets.floe.audio/website/screenshots/perform-tab-and-arrows.08e76e54b4999528.png)12 1. Click the PERFORM tab button near the top of Floe's UI. 2. Use the large arrow buttons, and , to step through presets. ### Explore the presets ![The preset browser, open beneath the outlined preset box](https://assets.floe.audio/website/screenshots/preset-browser.661d250ce632b3cd.png) 1. Open the preset browser by clicking the preset's name in the top panel. 2. Click a preset in the list on the left to load it. Narrow down the list using the right panel. 3. Close the browser by moving the mouse away from it, clicking outside it, or pressing `escape`. ## Finding your way around ### Tooltips If you hover over a control for a moment, a tooltip pops up explaining what it does. They go well beyond naming the control: each one tells you how it behaves and what's worth knowing about it. When you're not sure what something does, a tooltip is usually the quickest way to find out. If you'd rather not see them, turn off _Show tooltips_ in the preferences. ### Using the controls Knobs and sliders all work the same way: drag up or right to increase the value, hold `shift` for finer control, and double-click to type an exact value. Right-click a control, or a whole section such as a layer's tab or an effect, for more options like copy and paste, resetting and MIDI CC Learn. See [Controls](/docs/beta/usage/controls) for the full details. ### Window size To make the window bigger or smaller, drag its bottom-right corner. In some DAWs, such as Logic Pro, you need to grab this exact corner of Floe rather than the corner of the DAW's window around it. ### Some terminology A few words come up often in this manual. We mean something specific when we use them: - **Preset** — a complete, saved sound, with its own name, description and tags. - **Layer** — one of the three sound layers that this engine revolves around. See them side by side on the LAYERS page. - **Instrument** — the sound source that a layer plays. It might be a single sample or many samples spread across the keyboard. ### The three main pages Most of your time in Floe is spent on its three main pages. In future chapters we'll cover them in full detail: - [**Perform**](/docs/beta/usage/perform) — a distraction-free view for exploring presets and making quick changes. The easiest place to start with Floe. - [**Layers**](/docs/beta/usage/layers) — the three layers and their Instruments, each with its detailed controls. - [**Effects**](/docs/beta/usage/effects) — the effects rack that colours the whole sound. --- # System Requirements > The operating systems, processors and plugin hosts Floe runs on Floe is a plugin, so it runs inside your DAW or another plugin host. Here's what it needs: - **macOS:** macOS 11 (Big Sur) or later, on an Apple Silicon or Intel Mac. - **Windows:** Windows 10 or later, on a processor with SSE2 support (almost every PC since about 2006). - **Linux:** an x86 distribution with glibc 2.31 or later. Floe also needs the libcurl, OpenGL, GLX and X11 libraries (including Xcursor and Xext), plus `zenity` and `xdg-open`, which most desktop distributions already have. Floe is 64-bit only, so your DAW needs to be 64-bit too. ## Plugin formats Floe comes as a CLAP and a VST3 plugin, plus an AU (v2) plugin on macOS. If your DAW supports CLAP, we recommend using that version. There's no standalone application and no AAX (Pro Tools) support at the moment. - **CLAP** hosts include Reaper, Bitwig, FL Studio (2024 or newer) and Studio One Pro (v7 or newer). - **VST3** hosts include Cubase, Studio One, Ableton Live, Reason and Ardour. - **AU** hosts include Logic Pro and GarageBand. --- # Install Floe > Instructions for downloading and installing Floe on Windows, macOS, and Linux Installing Floe is quick: [download](https://floe.audio/download) the installer for your computer, run it, and open Floe in your DAW. This page has the details for each operating system, in case you need them. Before you start, check that your computer meets Floe's [System Requirements](/docs/beta/getting-started/system-requirements). ## Installing Windows macOS Linux 1. Download the installer from the [download page](https://floe.audio/download). 2. Extract the downloaded zip file, usually by double-clicking it. 3. Run the installer and follow its steps. It installs both the CLAP and VST3 versions. 4. Open your DAW and add Floe to an instrument track. If it doesn't appear, ask your DAW to rescan its plugins. To install by hand instead, download the manual-install zip from the same page, extract it, and move the files into your plugin folders: - `Floe.clap` into `C:\Program Files\Common Files\CLAP` - `Floe.vst3` into `C:\Program Files\Common Files\VST3` Once Floe is installed, it needs some sounds. See [Install Packages](/docs/beta/installation/install-packages) to add your sample libraries and presets. ## Updating To update Floe, download and run the latest installer, or run the Linux command again. The new version replaces the old one and is fully backwards-compatible. If you installed by hand, replace the old files with the new ones. Floe checks for new versions for you. When one is available, a red dot appears on the menu in the top panel. ![The red update dot on Floe's menu button](https://assets.floe.audio/website/screenshots/update-indicator.ca15b747cc83e19c.png) Open the menu and choose _Info_. The _About_ tab names the new version and gives you three options: _Download page_, _Changelog_ to see what's new, and _Ignore_, which hides the dot until an even newer version comes out. ![The About tab of Floe's Info panel, showing a new version](https://assets.floe.audio/website/screenshots/check-for-updates.298412ee4fa33aaf.png) To stop Floe checking, untick _Check for updates_ in Preferences. The same place has an option to be told about beta versions too if you want to try new features early: see [Beta Testing](/docs/beta/about-the-project/beta-testing). --- # File Locations > Quick reference guide for where Floe stores its files on Windows, macOS, and Linux You rarely need to know where Floe keeps its files, but it's handy when you're backing up, moving to a new computer or troubleshooting. This page lists them for each operating system. To change where your sample libraries and presets live, see [Folders](/docs/beta/installation/folders) instead. ## Your files Windows macOS Linux - Default sample library folder: `C:\Users\Public\Floe\Libraries\` - Default preset folder: `C:\Users\Public\Floe\Presets\` - Preferences: `C:\Users\Public\Floe\Preferences\floe.ini` - Autosaves: `C:\Users\Public\Floe\Autosaves\` - **Default folders** — where packages install sample libraries and presets unless you've chosen other folders. See [Folders](/docs/beta/installation/folders). - **Preferences** — `floe.ini` holds everything you set in Floe's Preferences panel. It's a text file you can edit by hand, and Floe picks up your changes straight away, though its contents aren't documented yet. - **Autosaves** — recent snapshots of each Floe instance's state, for recovering a lost sound. See [Autosave](/docs/beta/support/autosave). ## Plugins Windows macOS Linux - CLAP: `C:\Program Files\Common Files\CLAP\Floe.clap` - VST3: `C:\Program Files\Common Files\VST3\Floe.vst3` ## Small background files Windows macOS Linux - Persistent store: `%APPDATA%\Floe\persistent_store` - Device ID: `%APPDATA%\Floe\device_id` - Logs: `%LOCALAPPDATA%\Floe\Logs\` - **Persistent store** — a small file for things Floe remembers between sessions. - **Device ID** — a random ID used only when error reporting is on, so that we can measure how often each release crashes. See [Error Reporting](/docs/beta/support/error-reporting). - **Logs** — small text files describing what Floe has been doing. They can help when troubleshooting a problem. These are safe to delete at any time. Floe recreates them the next time it starts, though you may need to set a few things again. ## Mirage files These only matter if you used to have [Mirage](/docs/beta/about-the-project/mirage), Floe's predecessor, installed. Windows macOS Linux - Preferences: `C:\ProgramData\FrozenPlain\Mirage\Settings\mirage.json` - Preferences (alternative): `%APPDATA%\FrozenPlain\Mirage\mirage.json` - VST2: `C:\Program Files\VSTPlugins\mirage64.dll` - VST2 (alternative): `C:\Program Files\Steinberg\VSTPlugins\mirage64.dll` - VST2 (alternative): `C:\Program Files\Common Files\VST2\mirage64.dll` - VST2 (alternative): `C:\Program Files\Common Files\Steinberg\VST2\mirage64.dll` --- # Folders > Managing sample library and preset folders in Floe Floe keeps your sample libraries and presets as ordinary files in ordinary folders. You choose which folders it looks in, so you can keep large libraries on an external drive, keep your own presets somewhere you back up, and organise everything with your usual file manager. There are two separate kinds of folder: sample library folders and preset folders. Floe scans each one, including all its subfolders, and shows what it finds in the browsers. It also watches them, so anything you add, remove or change appears in Floe straight away, without a restart. Floe keeps no separate record of what's installed: whatever is in your folders is what Floe has. You manage the folders on the _Folders_ tab of Preferences. ![The Folders tab of Floe's preferences](https://assets.floe.audio/website/screenshots/folders.9b45bf20f066bfe9.png) Each kind of folder has its own list. The first folder in each list is Floe's default one, which is always scanned. Under each folder, Floe shows how many presets or sample libraries it contains. - **Add folder** — choose a folder for Floe to scan. Pick a top-level folder, such as "Floe Libraries", rather than each library inside it, since the subfolders are scanned too. You can select several folders at once. - **Open folder** — show the folder in your file manager. - **Stop scanning this folder** — remove a folder you've added from the list. Nothing is deleted from your computer; Floe simply stops looking there. The default folders can't be removed. ## Installing to your own folders When you install a package, Floe puts its sample libraries and presets in the install folders chosen on the _Packages_ tab. They start as Floe's default folders on your main drive. To install somewhere else, such as an external drive, choose a different folder from the _Sample library install folder_ and _Preset install folder_ menus. Each menu lists the folders Floe already scans, plus _Add folder_ to add a new one and select it in a single step. See [Installing to a different drive](/docs/beta/installation/install-packages#installing-to-a-different-drive). ## Moving your libraries or presets For now, moving is done using your file manager (Finder, File Explorer, etc.). Floe doesn't have a 'move' button. 1. **Create the new folder** in your file manager. For example, "Floe Libraries" on your external drive. 2. **Add it to Floe** with _Add folder_ on the _Folders_ tab. Be sure to use the right list: sample libraries and presets are separate. 3. **Open the old folder** with its button. 4. **Move everything across** in your file manager, usually by selecting it all and dragging it, or by cutting and pasting. Floe notices the change and updates its browsers instantly. If anything is missing, restart your DAW. To have future packages install into the new folder too, choose it as the install folder on the _Packages_ tab. ## Telling libraries and presets apart If you lose track of which files are which: - **Sample libraries** are folders, usually named like `Developer Name - Library Name`. They usually contain a `floe.lua` file and a `Samples` folder. - **Preset banks** are folders, usually named like `Library Name Factory Presets`. They usually contain category subfolders full of small `.floe-preset` files. We recommend keeping libraries and presets in separate folders, but Floe copes if they're mixed: add the same folder to both lists. ## Why libraries and presets are separate Most sample libraries come with a preset bank, so it's fair to wonder why they live apart. There are a few good reasons: - **They're edited differently.** Libraries are built by developers with programming tools and you rarely change them. Presets are made and changed by musicians all the time. Keeping them apart means you can save and reorganise presets freely without touching a library. - **They're different sizes.** A sample library can be large, with hundreds of audio files, so it often belongs on a big external drive. Presets are tiny, easy to back up and easy to share. - **A preset bank can use several libraries.** Its presets aren't tied to a single library, so they don't belong inside one. See [How Presets Are Stored](/docs/beta/presets/preset-storage) for more about preset files, and [File Locations](/docs/beta/installation/file-locations) for where the default folders are. --- # Install Packages > How to install Floe packages containing sample libraries and presets Sample libraries and presets come to you in _packages_. Download your package file, then present it to Floe via its _Install package_ button. 1. **Download your package(s)** — files ending `.floe-pkg` or `.floe-pkg-enc`. 2. **Open Floe** in your DAW. If you haven't installed it yet, see [Install Floe](/docs/beta/installation/download-and-install-floe). 3. **Open Preferences** from the top panel, and choose the _Packages_ tab. 4. **Click _Install package_** and select your package file. You can select several at once. ![The Packages tab of Floe's preferences](https://assets.floe.audio/website/screenshots/install-packages.732780b46497022b.png) ## Entering your license key Some packages, often paid ones, are locked and need a license key. They install in the same way, but Floe first asks for the key to unlock them. These packages end in `.floe-pkg-enc` and need Floe version 2 or later. Everything happens offline, without an account or an internet connection. There are two ways to give Floe your key: - **Load a license file** — if your purchase came with a `.floe-license` file, choose _Load license file_ and select it. One file can hold keys for several packages, so it unlocks everything you've selected in one go. - **Enter a key manually** — paste your key into the box, using _Paste_, then click _Activate_. A license key is personal to you and contains your details. The summary at the end of the installation shows who the package is licensed to. ## When the installation finishes The new libraries and presets are ready to use straight away, without restarting Floe or your DAW. Floe shows a summary of what it installed, with a couple of optional extras: - **Send to Trash** — delete the package file. Floe doesn't need it once it's installed, though you might like to keep a copy as a backup. - **Load Preset** — load the preset bank's default preset. If Floe was blank when you installed, this preset is loaded for you instead. Click _Done_ to close the summary. ## What is a package? A package is simply how content is delivered to Floe. It usually holds one sample library plus a bank of factory presets for it, but it can hold any mix: just presets, several libraries, or both. Floe doesn't keep track of packages; they're just the means of getting sample libraries and presets installed into your [folders](/docs/beta/installation/folders). To remove things, see [Uninstalling](/docs/beta/installation/uninstalling). ## Installing to a different drive Floe installs into its default folders on your main drive unless you tell it otherwise. To install somewhere else, such as an external drive with more space: 1. On the _Packages_ tab, open the _Sample library install folder_ menu. 2. Choose _Add folder_ and pick or create the folder you want, such as "Floe Libraries" on your external drive. Floe adds it to the folders it scans and selects it for installing. 3. Do the same with the _Preset install folder_ menu, if you want your presets somewhere else too. Future packages install into the folders you've chosen. Libraries and presets you've already installed stay where they are, but Floe updates them in place when you install a newer version. To move them, see [Folders](/docs/beta/installation/folders). ## Updates and conflicts Whenever a new version comes out, install it in the same way. Floe handles upgrades for you: - If you have an older version, Floe updates it where it is. - If you already have the same or a newer version, Floe skips it. - If you've changed the installed files yourself, Floe asks before touching them. You can skip that part to keep your changes, or overwrite it. For presets, you can also keep both. Whenever Floe replaces something, the old version goes to your Trash or Recycle Bin, with a name ending in something like `(old-3KJ9)`. If you change your mind, restore it from there and remove that ending from its name. ## ZIP packages Older packages (from Floe v1) are ZIP files (`.zip`). Floe still installs them. Don't extract the ZIP first: select the ZIP file itself with _Install package_. On macOS, Safari extracts ZIP files after downloading them. To stop it, untick _Open "safe" files after downloading_ in the _General_ tab of Safari's settings. ## Installing by hand You don't usually need to, but you can install a package without the _Install package_ button. This works for `.floe-pkg` and `.zip` packages, not ones that need a license key. A `.floe-pkg` file is really a ZIP file with a different ending. Rename it to end in `.zip` instead (on macOS: right-click › _Get Info_ › _Name & Extension_; on Windows, first turn on _File name extensions_ in File Explorer's _View_ menu, then rename it), and extract it with your usual tools. Then copy the contents of its `Libraries` folder into one of Floe's sample library folders, and the contents of its `Presets` folder into one of its preset folders. You'll find them on the _Folders_ tab of Preferences, and the button opens them. Floe picks up the new files straight away. ## Mirage libraries If a package contains a library made for [Mirage](/docs/beta/about-the-project/mirage), Floe's predecessor, you may see an error saying _Mirage Compatibility - FrozenPlain_ isn't installed. To fix it, download the [Mirage Compatibility package](https://github.com/FrozenPlain/floe-mirage-compatibility/releases/download/v1.2/FrozenPlain.-.Mirage.Compatibility.Package.floe-pkg) and install it like any other package. --- # Uninstalling > Instructions for uninstalling Floe and removing libraries and presets You can remove sample libraries, preset banks and Floe itself separately. To remove everything, work through the sections below in order. Libraries and presets are easiest to remove from inside Floe. When Floe removes a library or preset bank, it sends it to your Trash or Recycle Bin rather than deleting it outright, so if you remove one by mistake, you can restore it from there. You might be wondering why there's no mention of _packages_ on this page. Packages are just the means of installing content into Floe. Sample libraries and presets are what actually get installed, so they're what you uninstall. ## Uninstalling sample libraries 1. Open the menu in the top panel and choose _Info_. 2. On the _Libraries_ tab, click _Uninstall_ on the library you want to remove, and confirm. ![A library's card in Floe's Info panel, with the Uninstall button](https://assets.floe.audio/website/screenshots/uninstall-library.18c5ba53660143ab.png) You can also right-click a library's name in the Instrument or IR browser and choose _Uninstall_. ## Uninstalling presets 1. Open the preset browser by clicking the preset's name in the top panel. 2. Right-click the preset bank in the right-hand panel and choose _Uninstall_, then confirm. ![The right-click menu of a preset bank in the preset browser](https://assets.floe.audio/website/screenshots/uninstall-preset-bank.15ae5974b3fe9596.png) The same works for a single folder of presets. Repeat for each preset bank you want to remove. ## Uninstalling Floe ### Windows Close your DAW, then uninstall Floe like any other program, from _Installed apps_ (or _Add or Remove Programs_) in Windows' settings, where it's listed as _Floe Audio Plugin_. See [Microsoft's guide](https://support.microsoft.com/en-gb/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98) if you need help. This removes the Floe plugins, but not your libraries or presets. The uninstaller can also remove Mirage, Floe's predecessor. ### macOS and Linux There's no uninstaller: delete Floe's files yourself. The plugin files are the important ones, but you can delete the rest of Floe's files too, if you want to be thorough. See [File Locations](/docs/beta/installation/file-locations) for where they all are. --- # About Floe > What Floe is and its key features ## Welcome to Floe! Floe is an audio plugin for your digital audio workstation (DAW). It's a platform for performing, finding, and transforming sounds from compatible sample libraries. It hosts sample-based instruments (sampled pianos, synths, textures, and so on) and exposes an extensive set of parameters for venturing into sample-based synthesis. A comprehensive presets system with powerful browsers, macros, a random variation generator, and other features makes it a formidable engine for sample libraries. ![Floe's Perform page](https://assets.floe.audio/website/screenshots/floe-whole-gui-4.a40ff59a2509fcb3.png) It focuses on ease of use and performance, designed to offer a curated experience for producing music rather than overwhelming complexity. Floe is not designed for ad-hoc sampling — you can't currently import your own samples. Instead, it's an open platform for professional, curated, sample-library products. For those with programming experience, the means to make custom libraries is fully open. Floe itself is free and open source. It works offline, with no accounts or logins. ## Key features - 3 independent layers to blend and mix, even with Instruments from different libraries - 12 effects in a reorderable rack - Powerful [granular synthesis](/docs/beta/usage/playback-tab#granular-synthesis) - Per-layer [arpeggiator](/docs/beta/usage/arp-tab) - Comprehensive [browsers](/docs/beta/usage/browsers) for finding the right sound or preset - [Random variations](/docs/beta/usage/randomisation) for spontaneous inspiration - [Macros](/docs/beta/usage/macros) that shape a preset with a single knob - Sound-design friendly: undo/redo, and a switch to compare your edits with the original preset - All the fundamentals: envelopes, filters, EQ, MIDI CC and sustain pedal support - Efficient: multiple instances of Floe share the sample libraries they've loaded, keeping memory use low - Resizable window - Totally free and open source: offline, no logins, no catches - [Free sample libraries](/packages) to get you started --- # Loading Presets > How to find, load and audition Floe presets Presets are the quickest way into Floe's sounds. Each one is a complete, production-ready setup. Load one and it's ready to play in your track straight away. The factory presets give you a whole palette of sounds to start from. Their names hint at the sound or how you might use it, and they're sorted into folders so you can narrow down to the kind of sound you need. Presets are also how you keep sounds of your own. Save it as a preset and you can load it into any instance of Floe in the future. See [Saving Presets](/docs/beta/presets/saving-presets). Loading a preset replaces all your settings, except for your [Performance Controls](/docs/beta/usage/performance-controls). You can always use the _Undo_ button in the top panel to undo a preset load. ## The preset box The preset box in the top panel shows what's loaded and gives you quick ways to move between presets. ![Floe's top panel, with the preset box outlined](https://assets.floe.audio/website/screenshots/top-panel.6c17c53c76feceb5.png) On the left is the name of the current preset, with a short description underneath. If the preset has changed since it was loaded, Floe shows _(modified)_ after the name. Click the name to open the preset browser. The buttons on the right are: - **Previous/Next** — step to the previous or next preset. - **Random** — jump to a random preset. - **Save** — open the Save Preset panel. See [Saving Presets](/docs/beta/presets/saving-presets). - **Load from file** — load a preset file from anywhere on your computer, such as one someone has sent you. It doesn't need to be in one of Floe's preset folders. Right-click the name for two more options. _Load Blank Preset_ resets every setting to its default and clears all the Instruments and IRs, ready to build a sound from scratch. _Open Containing Folder_ shows the current preset's file in your file manager. ## Finding presets ![The preset browser, open beneath the preset box](https://assets.floe.audio/website/screenshots/preset-browser.661d250ce632b3cd.png) The preset browser is the place for browsing deliberately. Choose a folder or some tags in the dark panel on the right, then click presets on the left to hear them. The browser stays open, so you can play a few notes, click the next preset, and play again. Once you've loaded a preset, if you move your cursor outside of the browser it will close. See [Browsers](/docs/beta/usage/browsers) for everything it can do: filtering, search, keyboard navigation and more. For a quick audition without the browser, use the previous and next arrows, and . The large arrows on the _Perform_ page do the same. Both follow the filters you've set in the preset browser, so if you've chosen a particular folder or tag there, the arrows only step between presets that match. When you reach the end of the list, they wrap round to the start. Random follows the same filters, which makes it a handy way to dip into a chosen corner of your presets. For Floe's other ways to bring in an element of chance, see [Randomisation](/docs/beta/usage/randomisation). ## Default preset The default preset is the one a new instance of Floe opens with, instead of a blank state. There are two ways to set the default preset: - Right-click any preset in the [browser](/docs/beta/usage/browsers) and choose _Set as Default Preset_. The preset is then marked with a icon in the browser. - Or alternatively, load the preset, then open Preferences and, in the _Default Preset_ row on the _General_ tab, click _Use Current Preset_. Click the button to remove the default, so Floe opens blank again. The default preset doesn't apply if you open a saved DAW project — Floe uses the sound saved in the project as usual. After installing a preset bank a default preset will be set for you. You can always overwrite this using the options above. Once you set a custom default, installing further packages will not interfere with your choice. --- # How Presets Are Stored > Preset files, preset folders and preset banks Each preset is a single small file ending in `.floe-preset`, kept in a folder on your computer. Because they're ordinary files, you can organise them with your usual file manager (Finder, File Explorer, etc.): rename them, move them into folders, or delete them. Floe watches its [preset folders](/docs/beta/installation/folders) and updates the preset browser as soon as anything changes. The file name is the preset's name, so renaming the file renames the preset. The author, description and tags are stored inside the file: to change them, save over the preset in Floe. See [Saving Presets](/docs/beta/presets/saving-presets). Presets are tiny, typically just a few kilobytes, so even large collections take up very little space. ## Sharing presets You can simply share `.floe-preset` files. As long as the recipient has the same libraries installed, it works just the same. They can put it in one of their [preset folders](/docs/beta/installation/folders) so it appears in the preset browser, or do a one-off load with the load-from-file button. ## Preset banks A preset bank is a folder of presets, including all its subfolders, that belongs together, such as a set of factory presets. Preset banks are the top level of organisation in the preset browser. Presets in folders that aren't part of any bank might be grouped together as _Miscellaneous_. Floe also recognises some older factory preset banks that don't have an info file. --- # Saving Presets > How to save your own Floe presets with a description and tags You can save your own Floe presets ready to load into another project or another instance of Floe. It's worth doing whenever you've found something you'd hate to lose. Click the save button in the [preset box](/docs/beta/presets/loading-presets#the-preset-box) to open the Save Preset panel. All of its fields are optional: you can click _Save_ straight away and just choose a name. Filling them in helps you find the sound again later, especially once you've saved lots of presets. ![Floe's Save Preset panel with the tags outlined](https://assets.floe.audio/website/screenshots/save-preset.feb3ad1cf1db22ab.png) - **Author** — who made the preset. The buttons beside it store your name, so you don't have to type it out every time: stores the current name, and fills in the stored name. - **Description** — a few words about the sound. - **Tags** — the outlined section, describing the sound so you can find it again with the preset browser's filters. ## Naming and saving You name a preset by naming its file. When you click _Save_ or _Save As New_, your system's file dialog opens, and the file name you choose there becomes the preset's name. To rename a preset later, rename its file in your file manager (Finder, File Explorer, etc.). The files are portable. Copy/move them as you like. The buttons at the bottom of the panel depend on where the current sound came from. _Cancel_ closes the panel without saving, and the others are: - **Save** — choose a file name and folder for a new preset. This is the only option after _Load Blank Preset_. - **Overwrite** — save over the preset file you loaded, keeping its name. It doesn't ask for confirmation, and _Undo_ won't bring back the old file, so only use it when you're sure. - **Save As New** — save a new preset, leaving the one you loaded untouched. The first time you save, the file dialog opens in a `User` folder inside Floe's preset folder; after that it remembers where you last saved. Save inside one of Floe's [preset folders](/docs/beta/installation/folders) and the preset appears in the preset browser straight away. The button at the top of the panel keeps it open, so you can step through presets and edit each one's author, description and tags as you go. ## Writing a description When you load a preset, its description appears in two places on Floe's UI. As much as fits goes beneath the preset name in the top panel, and the rest continues on the _Perform_ page. To choose where it splits add a newline when you write the description: everything before the first line break goes in the top panel. If that line is too long to fit, Floe splits it where it runs out of room instead. You can leave the description blank. When Floe loads a preset with no description, it generates one on the fly from what's in the preset and displays that instead, so even quick saves get something helpful. ## Choosing tags Tags are grouped into categories such as sound source, sound type, mood and timbre. Choose the ones that describe the sound: they're what the preset browser's tag filters use. Some tags turn grey once you've chosen a related one. That's a hint that the combination is unusual, such as a real instrument category on a synthesized sound, but you can still click them if they fit. --- # Attribution > Information about attribution requirements for sample libraries in Floe Some sample libraries ask you to credit their creator when you share music made with them. If a library you're using requires attribution: - Floe shows you the exact attribution text. - Copy and paste the text wherever you share your music. - Your music is still yours: you can sell it, relicense it and so on. You just need to credit the creator of the sounds. These points assume the license is the "Creative Commons Attribution 4.0 International" license — a very common attribution-required license. Disclaimer: whilst this page is based on research and understanding of the topic, it is not legal advice. You should check the license details yourself. ## About attribution-required licenses A license tells you what you can and can't do with a sample library. Most developers choose a license that allows you to use the sounds in your music without having to credit them. However, some developers choose an attribution-required license such as the widely-used [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/) license (also known as "CC BY"). This license allows you to use the sounds for free, even in commercial projects, as long as you credit the creator by including a bit of attribution text along with your music. For example, you might include the text in a caption on your website, in the album notes or in a credits roll (or any ["reasonable manner"](https://creativecommons.org/licenses/by/4.0/legalcode.en#s3a2)). The music that you create with sounds under this license is yours: you can sell it, stream it, relicense it or give it away; you are just required to credit the sound's creator. For some people, giving attribution is a deal-breaker. But there are good reasons it might not be so bad: - Attributions support the creators of sounds, giving them recognition, traffic and potential customers. - Attributions can look professional and show a high level of care in your work. - Sharing where your sounds come from helps other musicians find great sounds too, raising the quality of music everywhere. ## How Floe helps Floe makes attribution easy. When you load a sound from a library that requires it, a small red icon appears at the top of the window. Click it to see the exact text to copy and paste wherever you need it. Floe gathers the requirements from every instance of Floe you have open, so you only need to do this once. ![Attribution GUI](https://assets.floe.audio/website/attributions-gui.9ac958f1481aaf52.png) --- # Glossary > {/* A few words have a specific meaning throughout this manual: - **[Package](/docs/beta/installation/install-packages#what-is-a-package)** — the file you download to install Floe content (`.floe-pkg` or `.floe-pkg-enc`). Packages may contain sample libraries, presets, or both. - **[Sample Library](/docs/beta/reference/sample-libraries)** — a collection of mapped, playable sounds along with images, tags, and other metadata. Sample libraries provide the Instruments and impulse responses that Floe loads. - **[Layer](/docs/beta/usage/layers)** — one of the three identical channels, which all play together. Each layer holds an Instrument and has its own playback, envelope, LFO and EQ controls. - **[Instrument](/docs/beta/reference/instruments)** — a playable sound source from a sample library, loaded into one of the layers. It might be a single recording or many samples mapped across the keyboard. - **[Impulse Response](/docs/beta/usage/effects#convolution-reverb)** — a recording from a sample library that gives the Convolution Reverb effect its character. - **[Preset](/docs/beta/presets/loading-presets)** — a saved sound: a snapshot of every parameter and option, along with a name, description and tags. --- # Instruments > Instruments are Floe's core building block An Instrument is a playable sound source. It might be a single sample that loops, or many samples mapped across the keyboard, with velocity layers and round robins. You load an Instrument into any of the three [layers](/docs/beta/usage/layers) with the [Instrument browser](/docs/beta/usage/browsers), which finds Instruments across all your installed sample libraries. A layer with no Instrument loaded shows _None_ in place of the name: click it to open the browser. Instruments come from sample libraries, which are made with Floe's open developer tools. --- # Legacy Parameters > How Floe ensures backwards compatibility When you open an older DAW project, some of Floe's controls might show a yellow badge and refuse to move. Don't worry: your sound is safe and sounds exactly as it did when you saved it. What's happened is that a Floe update replaced some parameters with new versions. The old parameters still exist and work exactly as before, but they're hidden out of sight. While one of them is in charge, the matching control on the main UI is locked. That's what the badge means. You have two options: - **Do nothing.** If you don't need to change the sound any further, leave it as it is. Floe is stable like this and sounds identical to when the project was saved. - **Update to the current parameters.** Do this if you want to keep shaping the sound: it unlocks the main UI and the new parameters. The update keeps the sound the same and is normally perfectly safe, but check for DAW automation first, as described [below](#updating-a-legacy-parameter). ## Why legacy parameters exist Floe aims for perfect backwards compatibility: a preset or DAW project saved with any version of Floe loads up sounding exactly the same in every later version. To make that possible without the main interface filling up with outdated controls, Floe never deletes a parameter. When a parameter needs to change, a new one goes on the main UI and the old one moves out of sight as a "legacy" parameter that quietly keeps doing its old job. ## When does a parameter become legacy? A parameter becomes legacy when it changes in a way that would otherwise alter how an existing project sounds. We keep this to a minimum. It can happen, though, when adding options to a menu, improving the response of a knob, or combining or simplifying controls. In every case, the old parameter stays alive behind the scenes so your projects sound the same, and a new parameter appears on the main UI. ## Presets and DAW projects When you load a preset, Floe usually updates any legacy values it finds by itself: it copies the equivalent value onto the new parameter and clears the legacy one. You won't see any legacy parameters, and the controls on the main UI work as normal. When you load a DAW project, Floe can't do this automatically, because it has no way of knowing whether your DAW is automating a legacy parameter, and silently changing the target would break your automation. Instead, Floe keeps the legacy value, lets it take charge of the new parameter, and shows the yellow badge on the affected control. The _Legacy Parameters_ panel, in the menu at the top of Floe's window, lists every legacy parameter that's currently in charge. ## Locked controls While a legacy parameter is in charge, the matching control on the main UI is greyed out and doesn't respond: moving it would do nothing, since the legacy value is what reaches the sound. Click the badge in its corner to open the _Legacy Parameters_ panel. The control's position, and any display linked to it (such as filter curves, EQ displays or envelope shapes), shows the new parameter's own value, not the legacy value you're hearing. The sound is right, since the legacy value is the one being applied. Once you update, the display, the control and the sound all match up again. ## Updating a legacy parameter Updating hands control from the legacy parameter to its replacement, copying across a value that sounds the same. The _Legacy Parameters_ panel has two ways to do this: - **Update all to current parameters** — updates every legacy parameter that's in charge at once. - **Update** — on each row, updates just that parameter. Your project sounds exactly as it did before, and the control on the main UI works again. If any DAW automation targets one of these parameters, remove or re-create that automation before updating. Floe decides whether a legacy parameter is in charge simply by checking whether it's at its default value, so as soon as the automation writes a different value, the legacy parameter takes charge again and the control locks. The recommended order: 1. Check your DAW for any automation lanes targeting the legacy parameter. 2. If there is automation, delete it in your DAW. If you still want it, re-create it on the new parameter. 3. Open the _Legacy Parameters_ panel and click _Update_ on the row, or _Update all to current parameters_. If there's no DAW automation on a legacy parameter, you can skip step 2: updating is then completely safe. --- # Parameters > A list of all parameters in Floe ## Shorter parameter names In your DAW, Floe's parameter names are long and descriptive, such as "Effect Distortion On". If your DAW shows them in a narrow space, you can switch to abbreviated names such as "Dist On": turn on _Abbreviate parameter names in DAW_ on the _General_ tab of Preferences. You might need to restart your DAW for the change to take effect. ## Parameter table This table lists every one of Floe's parameters, for when you need to look up an ID or a detail. To learn how to use them, see the pages on [layers](/docs/beta/usage/layers), [effects](/docs/beta/usage/effects) and the rest of the Using Floe chapter. | Module | Name | ID | Abbreviated Name | Description | | --- | --- | --- | --- | --- | | Layer 1 | Volume | 160 | L1 Volume | The Layer Volume sets the level of this layer. The marks on the slider show the level of each sounding voice: its velocity, key range fade and any MPE volume expression. Tip: to change how velocity relates to volume, edit the velocity to volume curve on the CONFIG tab. | | Layer 1 | Mute | 161 | L1 Mute | Mute silences this layer. Handy for hearing how the other layers sit together while you're designing a sound. A muted layer keeps running in the background exactly as if you could hear it, so when you unmute, the sound carries on seamlessly from wherever it has naturally got to. If you're trying to save CPU, unload the Instrument instead. If a layer is still audible after muting it, check whether it's also soloed: Solo takes priority over Mute. | | Layer 1 | Solo | 162 | L1 Solo | Solo lets you hear this layer on its own. Any layer that isn't soloed goes quiet. Handy for focusing on one part of a sound while you're designing it. Silenced layers keep running in the background exactly as if you could hear them, so when you unsolo, they carry on seamlessly from wherever they have naturally got to. If you're trying to save CPU, unload their Instruments instead. If a layer has gone quiet unexpectedly, check whether another layer is soloed. And if a muted layer is still audible, that's because Solo takes priority over Mute. | | Layer 1 | Pan | 163 | L1 Pan | Pan places this layer in the stereo field, anywhere from fully left to fully right. It uses a constant-power pan law (-3 dB at centre), so the layer stays at the same perceived loudness wherever you put it. Pan is applied after the Stereo control, so you can narrow a wide sound first and then place it as a single point. | | Layer 1 | Detune Cents | 164 | L1 Detune Cents | Detune fine-tunes this layer's pitch in cents (100 cents is one semitone). This works by speeding up or slowing down the audio. | | Layer 1 | Pitch Semitones (Legacy) | 165 | L1 Pitch Semitones (Legacy) | Legacy layer pitch in semitones. Kept for backwards-compatibility with DAW automation | | Layer 1/Playback/Loop | Start | 167 | L1Lp Start | Set the loop start point, where the loop begins within the sample. While a note is held, playback loops between here and the loop end. | | Layer 1/Playback/Loop | End | 168 | L1Lp End | Set the loop end point, where the loop finishes within the sample. While a note is held, playback loops between the loop start and here. | | Layer 1/Playback/Loop | Crossfade Size | 169 | L1Lp Crossfade Size | Set the size of the loop crossfade, which blends audio across the loop point so the loop doesn't click. A small amount usually helps, especially for sustained or tonal sounds. Floe keeps the crossfade within the loop and the sample, so it shrinks automatically if you make the loop too small for it. | | Layer 1/Playback/Loop | Sample Start Offset | 171 | L1Lp Sample Start Offset | Change the starting point of the sample | | Layer 1/Playback/Loop | Reverse On | 172 | L1Lp Reverse On | Play the Instrument's samples backwards, from the end to the start. It works in every play mode and whether looping is on or off. The waveform display flips to match, so playback always runs from left to right (unless in the reverse portion of a ping-pong loop). | | Layer 1/Main/Volume Envelope | On | 173 | L1Vol On | Switch the volume envelope on or off. It's typically best left on. When it's off, every note plays its sample straight through to the end, however briefly you press the key. Handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off, since nothing would ever bring a looping note to an end. Careful: with the envelope off, notes can't be cut short, so voices pile up if you play quickly, which costs CPU. | | Layer 1/Main/Volume Envelope | Attack | 174 | L1Vol Attack | Attack sets how long each note takes to fade in. A few milliseconds is enough to avoid clicks if you've moved the sample start point. | | Layer 1/Main/Volume Envelope | Decay | 175 | L1Vol Decay | Decay sets how long the note takes to fall to the Sustain level after the attack. | | Layer 1/Main/Volume Envelope | Sustain | 176 | L1Vol Sustain | Sustain sets the level the note holds at while the key is down. At 0 dB, Decay has nothing to do. | | Layer 1/Main/Volume Envelope | Release | 177 | L1Vol Release | Release sets how long the note takes to fade out after you lift the key. | | Layer 1/Main/Filter | On | 178 | L1Filt On | Switch the filter on or off. It's a clean, digital-sounding state-variable filter (12 dB per octave). Every voice gets its own copy, so the filter envelope and the LFO (on the LFO tab) can sweep each note independently. Tip: for broader tone shaping, the EQ tab has a three-band equaliser. | | Layer 1/Main/Filter | Legacy Cutoff Frequency | 179 | L1Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Main/Filter | Legacy Resonance | 180 | L1Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Main/Filter | Legacy Type | 181 | L1Filt Legacy Type | Legacy filter type parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Main/Filter | Envelope Amount | 182 | L1Filt Envelope Amount | Envelope Amount sets how strongly the filter envelope (shown to the right) moves the cutoff on every note. At 0% the envelope does nothing. Turn it up and the cutoff follows the envelope's shape, rising and falling with it. Turn it down and the cutoff moves the opposite way, falling as the envelope rises. The envelope is centred on the Cutoff setting: the top half of the display pushes the cutoff above it, the bottom half pulls it below. A negative amount flips this. For example, with a low-pass filter, a long attack opens the sound up gradually at the start of each note. | | Layer 1/Main/Filter | Attack | 183 | L1Filt Attack | Attack sets how long the filter envelope takes to reach its peak. | | Layer 1/Main/Filter | Decay | 184 | L1Filt Decay | Decay sets how long the filter envelope takes to fall to the Sustain level after the attack. | | Layer 1/Main/Filter | Sustain | 185 | L1Filt Sustain | Sustain sets the level the filter envelope holds at while the key is down. | | Layer 1/Main/Filter | Release | 186 | L1Filt Release | Release sets how long the filter envelope takes to fall back after you lift the key. | | Layer 1/LFO | On | 187 | L1Lfo On | Switch this layer's LFO on or off. Enable Floe's LFO (low frequency oscillator) for adding movement to a one of this layer's controls (such as the volume or filter cutoff). | | Layer 1/LFO | Legacy Shape | 188 | L1Lfo Legacy Shape | Legacy LFO shape parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Mode | 189 | L1Lfo Mode | Choose where the LFO starts when you play a new note. With Retrigger, every note starts the LFO from the beginning of its cycle. With Free, a new note joins in wherever this layer's sounding notes have reached, so every note modulates precisely together. | | Layer 1/LFO | Amount | 190 | L1Lfo Amount | Amount sets how far the LFO moves its target. 0% is no movement at all and 100% is the full range for that target: silence to full level for Volume, a semitone either way for Pitch, and so on. Negative values flip the shape upside down, so a falling sawtooth becomes a rising one. For random Shapes this only makes a difference when Variation is set to one of the Identical options. The LFO display shows the shape at the current Amount. | | Layer 1/LFO | Target (Legacy) | 191 | L1Lfo Target (Legacy) | Legacy LFO target parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Time (Tempo Synced) (Legacy) | 192 | L1Lfo Time (Tempo Synced) (Legacy) | Legacy LFO rate. Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Time (Hz) | 193 | L1Lfo Time (Hz) | Time sets how fast the LFO cycles, in Hz (cycles per second). Tip: for movement that stays in time with your track, switch Sync on and choose a note length instead. | | Layer 1/LFO | Sync On | 194 | L1Lfo Sync On | Sync ties the LFO's speed to your DAW's tempo. When it's on, Time is chosen as a note length that follows the tempo; when it's off, Time is set freely in Hz. Both settings are remembered, so you can flick between them without losing either. | | Layer 1/EQ | On | 195 | L1Eq On | Switch on this layer's three-band equaliser to shape its tone before it's mixed with the other layers. | | Layer 1/EQ/Band 1 | Legacy Frequency | 196 | L1EqB1 Legacy Frequency | Legacy band 1 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 1 | Legacy Resonance | 197 | L1EqB1 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 1 | Gain | 198 | L1EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 1/EQ/Band 1 | Legacy Type | 199 | L1EqB1 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 2 | Legacy Frequency | 200 | L1EqB2 Legacy Frequency | Legacy band 2 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 2 | Legacy Resonance | 201 | L1EqB2 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 2 | Gain | 202 | L1EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 1/EQ/Band 2 | Legacy Type | 203 | L1EqB2 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Config | Legacy Velocity Mapping | 204 | L1 Legacy Velocity Mapping | Choose how MIDI velocity should affect the volume of this layer. There are 6 modes that can be selected for this parameter via the buttons on the GUI. By setting one layer to be quiet at high velocities and another layer to be quiet at low velocities you can create an instrument that sounds different based on how hard the notes are played. (0) Ignore velocity, always play full volume. (1) Loudest at high velocity, quietist at low velocity (2) Loudest at low velocity, quietist at high velocity (3) Loudest at high velocity, quietist at middle velocity and below (4) Loudest at middle velocity, quietist at both high and low velocities (5) Loudest at bottom velocity, quietist at middle velocity and above, | | Layer 1/Config | Keytrack On | 205 | L1 Keytrack On | With Keytrack on, this layer follows the keyboard: higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which might be what you want for drum hits, loops and sound effects that shouldn't be transposed. Some sample libraries may override this - marking individual samples as always or never keytracked. | | Layer 1/Config | Legacy Monophonic On | 206 | L1 Legacy Monophonic On | Only allow one voice of each sound to play at a time | | Layer 1/Config | MIDI Transpose On | 208 | L1 MIDI Transpose On | Transpose shifts this layer up or down in semitones by changing which samples get triggered, rather than by speeding the audio up or down. On a multi-sampled Instrument that keeps the character of the sound intact, so it's the better choice for large shifts. The key range isn't affected: you play the same keys as before, they just reach for different samples. Tip: the Pitch control at the top of the layer transposes by re-pitching the audio instead. That's the one to reach for on a single-sample Instrument, and Detune beside it covers amounts smaller than a semitone. | | Layer 1/Playback/Loop | Loop Mode | 209 | L1Lp Loop Mode | Select the Loop Mode for this layer. Floe can loop a portion of the sound for as long as you hold a note, so even a short sample can sustain indefinitely. Some Instruments come with loop points built in, while others let you set your own on the waveform. You can also turn looping off. There's 2 modes: 'standard' wrap-around loops jump from the loop end back to the start; 'ping-pong' loops bounce back and forth, alternating playback direction. The options that are available depend on the Instrument: library authors can provide built-in loops, allow or disallow custom loops, or require that certain sounds always loop. | | Layer 1/Config | Key Range Low | 210 | L1 Key Range Low | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Key Range High | 211 | L1 Key Range High | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Key Range Low Fade | 212 | L1 Key Range Low Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Key Range High Fade | 213 | L1 Key Range High Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Pitch Bend Range | 214 | L1 Pitch Bend Range | Pitch Bend Range sets how far the pitch wheel bends this layer, in semitones. Each layer has its own, so for example, a lead can bend a whole tone while the pad underneath can be set to zero to ignore the wheel entirely. Bending re-pitches the audio by speeding it up or slowing it down, so large bends will noticeably change the character of the sound. With MPE enabled, this governs the wheel on the master channel; the per-note bend of each individual note follows the range the controller asks for. | | Layer 1/Config | Monophonic Mode | 215 | L1 Monophonic Mode | Monophonic decides what happens when notes on this layer overlap. Left off, the layer is polyphonic and every note you play gets a voice of its own; the other two modes hold it to one note at a time, in different ways. It's set per layer, so a monophonic lead can sit on top of a polyphonic pad in the same preset. The arpeggiator handles its own notes, so this has no effect while the arpeggiator is running on this layer. | | Layer 1/Playback | Play Mode | 216 | L1 Play Mode | Select the Play Mode for this layer: the engine it uses to play its Instrument. Standard Playback plays each sample straight through: the playhead moves steadily from start to end, with options for looping and reversing along the way. The granular modes instead rebuild the sound from a stream of tiny snippets called grains. In Granular Playback, the point grains are drawn from moves through the sample at a rate you set with Speed, giving a time-stretch-like effect. In Granular Fixed, you place that point yourself with Position, letting you freeze on one part of the sample and explore its texture. | | Layer 1/Playback/Granular | Length | 217 | L1Grn Length | Length sets how long each grain lasts, from a few milliseconds up to a second. Short grains chop the sound into a fine, buzzy texture that keeps little of the original's shape. Long grains preserve much more of the sample's natural character. Density and Smooth are both measured relative to Length, so changing it here changes how they feel too. | | Layer 1/Playback/Granular | Speed | 218 | L1Grn Speed | Speed sets how fast the playhead travels through the sample in Granular Playback mode. Grains are drawn from wherever the playhead is. 100% is the sample's original speed. Turn it down to slow the sound to a crawl or stop it altogether, or up to race through at up to eight times normal speed. The playhead still respects the sample start, looping and Reverse settings. In Granular Fixed, this knob is replaced by Position. | | Layer 1/Playback/Granular | Position | 219 | L1Grn Position | Position chooses where in the sample grains are drawn from, shown as the highlighted region on the waveform. Grains come from here for as long as you hold the note, so you can freeze on one moment of the sound and sustain it indefinitely. Tip: you can create movement with this parameter by setting the LFO's target to Grain Position, or by assigning this knob to a macro. | | Layer 1/Playback/Granular | Density | 220 | L1Grn Density | Density sets how many grains overlap at once, relative to their Length. At 0%, each grain starts as the previous one ends, so they follow on one after another. Turning it up starts new grains sooner, stacking more and more of them on top of each other. Low values give an open texture where individual grains can be picked out. High values pile up so many grains that they smear into a thick, continuous wash. | | Layer 1/Playback/Granular | Spread | 221 | L1Grn Spread | Spread widens the area of the sample that grains can start from. Each new grain begins somewhere between the playhead and a point up to this far past it, measured as a percentage of the whole sample. Small values keep every grain close to the playhead for a focused, precise sound. Large values scatter grains across a wide stretch of the sample. | | Layer 1/Playback/Granular | Smooth | 222 | L1Grn Smooth | Smooth shapes the envelope of each grain: how gently it fades in and out, relative to its Length. At 0% grains start and stop abruptly, giving a hard, percussive edge. At 100% the fade-in and fade-out meet in the middle, so neighbouring grains blend into each other for a seamless texture. | | Layer 1/Playback/Granular | Pan | 223 | L1Grn Pan | Pan randomises where each grain sits in the stereo field. Every new grain is given its own position, picked at random within the range you set here. At 0% every grain plays dead centre. At 100% grains can land anywhere from fully left to fully right, spreading the cloud from one side to the other. A quick way to create an interestingly wide stereo image. | | Layer 1/Playback/Granular | Detune | 224 | L1Grn Detune | Detune randomises the pitch of each grain. Every new grain is nudged sharp or flat by a random amount within the range you set here. At 0% all grains play in tune. At 100% each grain can be up to a semitone sharp or flat. Small amounts thicken the sound like a chorus; larger amounts get progressively more smeared and out of tune. | | Layer 1/Playback/Granular | Direction | 225 | L1Grn Direction | Direction gives each grain a chance of playing the opposite way to the main playhead. At 0% every grain follows the playhead's direction. At 100% each grain is equally likely to play forwards or backwards. In between, you can dial in a blend of the two for meandering, less predictable tones. | | Layer 1/Playback/Granular | Harmony | 226 | L1Grn Harmony | Harmony gives each grain a chance of playing at a musical interval above or below the note you played, so a single note can bloom into a chord or a shimmering octave. At 0% every grain plays at the root. Turning it up shifts more of the grains, until at 100% every grain picks at random from the root and the intervals you've chosen. Choose which intervals are allowed with the Intervals menu next to this knob: pick a preset such as Octaves or Major Triad, or toggle individual semitones yourself. | | Layer 1/LFO | Legacy Shape V2 | 227 | L1Lfo Legacy Shape V2 | Legacy LFO shape parameter (v2). Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Target | 228 | L1Lfo Target | Choose the Target: what the LFO modulates. The modulation is applied relative to the target's current knob/slider. For example, when Volume is chosen, the movement will occur around wherever the layer's volume slider is currently set. Hover over each option for details. | | Layer 1/Main/Filter | Resonance | 229 | L1Filt Resonance | Resonance emphasises the frequencies at the cutoff. At 0% the slope is smooth and rounded; at 100% it peaks by around 20 dB, without ever self-oscillating. For the band-pass, notch and band-shelving types it also narrows the band, and for Peak it sets the size of the boost. | | Layer 1/Arp | Note Order | 230 | L1Arp Note Order | Order sets how the notes you're holding are shared out across the steps: climbing, falling, bouncing between the two, picked at random, or one of the less common shapes. Chord is the odd one out — it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in Fixed Notes mode. | | Layer 1/Arp | Trigger | 231 | L1Arp Trigger | Trigger decides what a new note does to a pattern that's already running. Free lets it carry on, so you can change chord underneath without breaking the groove. Retrigger restarts it from step 1 every time you press a note, which keeps the pattern locked to your playing. | | Layer 1/Arp | Rate (Legacy) | 232 | L1Arp Rate (Legacy) | Legacy arpeggiator rate. Kept for backwards-compatibility with DAW automation | | Layer 1/Arp | Length | 233 | L1Arp Length | Length sets how many steps the pattern runs through before it loops back to the start. Steps beyond the length are hidden from the sequencer but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. | | Layer 1/Arp | Arpeggiator Mode | 234 | L1Arp Arpeggiator Mode | Choose where the steps get their notes from. Played Notes arpeggiates whatever you're holding, giving each step one of those notes in the order set by Order. Fixed Notes ignores what you play and runs a sequence of notes you've set yourself, either by dragging each step's note or by capturing a performance with the Record button. | | Layer 1/Arp | Humanise | 235 | L1Arp Humanise | Humanise loosens the pattern up by nudging each step's timing and velocity by a random amount. A few percent takes the machine-like edge off; higher settings give a much looser, hand-played feel, which suits percussion especially well. Steps are only ever pushed later, never earlier, and never by more than a fifth of a step. | | Layer 1/Arp | Auto Rate | 236 | L1Arp Auto Rate | Auto Rate lets Floe pick the step rate so a sliced Instrument plays close to the speed it was recorded at, rather than leaving silent gaps between slices when your host tempo is a long way from the loop's own. While it's on, the rate Floe has chosen is shown in place of the Rate menu. The multiplier shifts that choice: 2x for double speed, 0.5x for half, with Dotted and Triplet variants for a different feel. Because the choice has to land on a tempo-synced division it moves in jumps as the tempo changes, and every layer using Auto Rate jumps at the same points so they stay in the same rhythmic relationship. | | Layer 1/Arp | Polyrate | 237 | L1Arp Polyrate | Polyrate gives each octave of the notes you're holding its own speed, so a single chord can produce several interleaving rhythms at once. The octave starting at middle C plays at the Rate you've set, and the octaves above and below scale from there by the ratio you choose. Tip: hold two notes an octave apart to hear the effect at its clearest. | | Layer 1/Arp | One Shot | 238 | L1Arp One Shot | With One Shot on, the pattern plays through once and stops rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes, or for letting a sliced loop play through exactly once. | | Layer 1/EQ/Band 1 | Resonance | 239 | L1EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 1/EQ/Band 2 | Resonance | 240 | L1EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 1/Arp | Arpeggiator | 241 | L1Arp Arpeggiator | Switch on the arpeggiator to turn the notes you hold into a rhythmic pattern locked to your host's tempo. Each step retriggers this layer's Instrument exactly as if you'd played the note yourself, so the envelopes, filter, LFOs and effects all respond as normal. Every layer has its own arpeggiator, so you can run different patterns side by side. | | Layer 1/LFO | Shape | 242 | L1Lfo Shape | Choose the Shape of the LFO. Alongside the classics there are a few more interesting options, such as random and plucky shapes. | | Layer 1/EQ/Band 1 | Type | 244 | L1EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 1/EQ/Band 2 | Type | 245 | L1EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 1/EQ/Band 3 | Legacy Frequency | 246 | L1EqB3 Legacy Frequency | Legacy band 3 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 3 | Resonance | 247 | L1EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 1/EQ/Band 3 | Gain | 248 | L1EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 1/EQ/Band 3 | Type | 249 | L1EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 1/Main/Filter | Cutoff Frequency | 250 | L1Filt Cutoff Frequency | Cutoff Frequency sets where the filter takes effect. The filter envelope and the LFO sweep the cutoff around this value, so it's the centre of any modulation rather than the starting point. | | Layer 1/EQ/Band 1 | Frequency | 251 | L1EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 1/EQ/Band 2 | Frequency | 252 | L1EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 1/EQ/Band 3 | Frequency | 253 | L1EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 1/Main/Filter | Type | 254 | L1Filt Type | Select the filter type. Hover over the options in the menu for a description of each. | | Layer 1 | Stereo Width | 255 | L1 Stereo Width | Stereo narrows or widens this layer's stereo image. Negative values pull it toward mono, positive values push it wider, and 0% leaves the sound as recorded. It works by splitting the sound into mid (what both channels share) and side (what differs between them), then rebalancing the two with a constant-power crossfade. At -100% only the mid remains; at +100% only the side, so anything dead centre disappears. Mono sounds have no side, so pushing to +100% silences them. | | Layer 1/Config | MPE Press Target | 256 | L1 MPE Press Target | Press is the channel pressure, or aftertouch, that an MPE controller sends on each note's own channel. On most keyboards it follows how hard you're pushing into the key once it's sounding. Choose what it controls on this layer here, and how strongly with Amount beside it. Press rests at nothing and climbs from there, so it only ever adds to the destination you point it at. MPE has to be switched on in the Performance Controls panel before press does anything. | | Layer 1/Config | MPE Press Amount | 257 | L1 MPE Press Amount | Amount sets how far press moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before press reaches its own, so you get the full effect from a lighter touch. | | Layer 1/Config | MPE Slide Target | 258 | L1 MPE Slide Target | Slide is CC74, which an MPE controller sends on each note's own channel. On most keyboards it follows where your finger sits along the front-to-back axis of the key. Choose what it controls on this layer here, and how strongly with Amount beside it. Slide rests in the middle, so it pushes the destination either side of where you've set it. MPE has to be switched on in the Performance Controls panel before slide does anything. | | Layer 1/Config | MPE Slide Amount | 259 | L1 MPE Slide Amount | Amount sets how far slide moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before slide reaches its own, so you get the full effect from a smaller movement. | | Layer 1/LFO | Time (Tempo Synced) | 260 | L1Lfo Time (Tempo Synced) | Time sets how long one LFO cycle lasts, as a note length at your DAW's tempo. 1/4 is a quarter note; a D on the end is dotted (one and a half times as long) and a T is triplet (two thirds as long). The LFO follows tempo changes, but it isn't locked to the bar: each cycle starts from the note, as set by Mode. | | Layer 1/Arp | Rate | 261 | L1Arp Rate | Rate sets how long each step lasts, synced to your host's tempo. Together with Length it decides how long the whole pattern takes to come round — eight steps at 1/8 fills one bar of 4/4. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. | | Layer 1 | Pitch Semitones | 262 | L1 Pitch Semitones | Pitch moves this layer up or down in semitones. This works by speeding up or slowing down the audio. Tip: for a multisampled Instrument, you might get better results from Transpose on the CONFIG tab. It changes which samples are played rather than processing them, which can sound more natural. | | Layer 1/Playback/Granular | Variation | 263 | L1Grn Variation | Variation decides whether each note scatters its grains differently or plays back the exact same grains every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern of grains and save it with the preset. Open the menu and hover over each option for details. | | Layer 1/Playback/Granular | Seed | 264 | L1Grn Seed | Seed picks which pattern of grains repeats. Try a few numbers until you find one you like: it's saved with the preset, so the grains you choose are the grains everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 1/LFO | Variation | 265 | L1Lfo Variation | Variation decides whether the random shapes move differently on each note or play back the exact same pattern every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern and save it with the preset. In Free mode, a note that joins already-sounding notes follows their pattern. Open the menu and hover over each option for details. | | Layer 1/LFO | Seed | 266 | L1Lfo Seed | Seed picks which random pattern repeats. Try a few numbers until you find one you like: it's saved with the preset, so the movement you choose is the movement everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 1/Playback/Granular | Share Grains | 267 | L1Grn Share Grains | Share Grains keeps the number of grains the same whether you play one note or a chord, so the sound keeps the same density however many notes you hold. Each grain plays from one of the held notes, weaving the chord's pitches together. At low Density you can hear the grains hop between the notes of the chord. | | Layer 2 | Volume | 320 | L2 Volume | The Layer Volume sets the level of this layer. The marks on the slider show the level of each sounding voice: its velocity, key range fade and any MPE volume expression. Tip: to change how velocity relates to volume, edit the velocity to volume curve on the CONFIG tab. | | Layer 2 | Mute | 321 | L2 Mute | Mute silences this layer. Handy for hearing how the other layers sit together while you're designing a sound. A muted layer keeps running in the background exactly as if you could hear it, so when you unmute, the sound carries on seamlessly from wherever it has naturally got to. If you're trying to save CPU, unload the Instrument instead. If a layer is still audible after muting it, check whether it's also soloed: Solo takes priority over Mute. | | Layer 2 | Solo | 322 | L2 Solo | Solo lets you hear this layer on its own. Any layer that isn't soloed goes quiet. Handy for focusing on one part of a sound while you're designing it. Silenced layers keep running in the background exactly as if you could hear them, so when you unsolo, they carry on seamlessly from wherever they have naturally got to. If you're trying to save CPU, unload their Instruments instead. If a layer has gone quiet unexpectedly, check whether another layer is soloed. And if a muted layer is still audible, that's because Solo takes priority over Mute. | | Layer 2 | Pan | 323 | L2 Pan | Pan places this layer in the stereo field, anywhere from fully left to fully right. It uses a constant-power pan law (-3 dB at centre), so the layer stays at the same perceived loudness wherever you put it. Pan is applied after the Stereo control, so you can narrow a wide sound first and then place it as a single point. | | Layer 2 | Detune Cents | 324 | L2 Detune Cents | Detune fine-tunes this layer's pitch in cents (100 cents is one semitone). This works by speeding up or slowing down the audio. | | Layer 2 | Pitch Semitones (Legacy) | 325 | L2 Pitch Semitones (Legacy) | Legacy layer pitch in semitones. Kept for backwards-compatibility with DAW automation | | Layer 2/Playback/Loop | Start | 327 | L2Lp Start | Set the loop start point, where the loop begins within the sample. While a note is held, playback loops between here and the loop end. | | Layer 2/Playback/Loop | End | 328 | L2Lp End | Set the loop end point, where the loop finishes within the sample. While a note is held, playback loops between the loop start and here. | | Layer 2/Playback/Loop | Crossfade Size | 329 | L2Lp Crossfade Size | Set the size of the loop crossfade, which blends audio across the loop point so the loop doesn't click. A small amount usually helps, especially for sustained or tonal sounds. Floe keeps the crossfade within the loop and the sample, so it shrinks automatically if you make the loop too small for it. | | Layer 2/Playback/Loop | Sample Start Offset | 331 | L2Lp Sample Start Offset | Change the starting point of the sample | | Layer 2/Playback/Loop | Reverse On | 332 | L2Lp Reverse On | Play the Instrument's samples backwards, from the end to the start. It works in every play mode and whether looping is on or off. The waveform display flips to match, so playback always runs from left to right (unless in the reverse portion of a ping-pong loop). | | Layer 2/Main/Volume Envelope | On | 333 | L2Vol On | Switch the volume envelope on or off. It's typically best left on. When it's off, every note plays its sample straight through to the end, however briefly you press the key. Handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off, since nothing would ever bring a looping note to an end. Careful: with the envelope off, notes can't be cut short, so voices pile up if you play quickly, which costs CPU. | | Layer 2/Main/Volume Envelope | Attack | 334 | L2Vol Attack | Attack sets how long each note takes to fade in. A few milliseconds is enough to avoid clicks if you've moved the sample start point. | | Layer 2/Main/Volume Envelope | Decay | 335 | L2Vol Decay | Decay sets how long the note takes to fall to the Sustain level after the attack. | | Layer 2/Main/Volume Envelope | Sustain | 336 | L2Vol Sustain | Sustain sets the level the note holds at while the key is down. At 0 dB, Decay has nothing to do. | | Layer 2/Main/Volume Envelope | Release | 337 | L2Vol Release | Release sets how long the note takes to fade out after you lift the key. | | Layer 2/Main/Filter | On | 338 | L2Filt On | Switch the filter on or off. It's a clean, digital-sounding state-variable filter (12 dB per octave). Every voice gets its own copy, so the filter envelope and the LFO (on the LFO tab) can sweep each note independently. Tip: for broader tone shaping, the EQ tab has a three-band equaliser. | | Layer 2/Main/Filter | Legacy Cutoff Frequency | 339 | L2Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Main/Filter | Legacy Resonance | 340 | L2Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Main/Filter | Legacy Type | 341 | L2Filt Legacy Type | Legacy filter type parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Main/Filter | Envelope Amount | 342 | L2Filt Envelope Amount | Envelope Amount sets how strongly the filter envelope (shown to the right) moves the cutoff on every note. At 0% the envelope does nothing. Turn it up and the cutoff follows the envelope's shape, rising and falling with it. Turn it down and the cutoff moves the opposite way, falling as the envelope rises. The envelope is centred on the Cutoff setting: the top half of the display pushes the cutoff above it, the bottom half pulls it below. A negative amount flips this. For example, with a low-pass filter, a long attack opens the sound up gradually at the start of each note. | | Layer 2/Main/Filter | Attack | 343 | L2Filt Attack | Attack sets how long the filter envelope takes to reach its peak. | | Layer 2/Main/Filter | Decay | 344 | L2Filt Decay | Decay sets how long the filter envelope takes to fall to the Sustain level after the attack. | | Layer 2/Main/Filter | Sustain | 345 | L2Filt Sustain | Sustain sets the level the filter envelope holds at while the key is down. | | Layer 2/Main/Filter | Release | 346 | L2Filt Release | Release sets how long the filter envelope takes to fall back after you lift the key. | | Layer 2/LFO | On | 347 | L2Lfo On | Switch this layer's LFO on or off. Enable Floe's LFO (low frequency oscillator) for adding movement to a one of this layer's controls (such as the volume or filter cutoff). | | Layer 2/LFO | Legacy Shape | 348 | L2Lfo Legacy Shape | Legacy LFO shape parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Mode | 349 | L2Lfo Mode | Choose where the LFO starts when you play a new note. With Retrigger, every note starts the LFO from the beginning of its cycle. With Free, a new note joins in wherever this layer's sounding notes have reached, so every note modulates precisely together. | | Layer 2/LFO | Amount | 350 | L2Lfo Amount | Amount sets how far the LFO moves its target. 0% is no movement at all and 100% is the full range for that target: silence to full level for Volume, a semitone either way for Pitch, and so on. Negative values flip the shape upside down, so a falling sawtooth becomes a rising one. For random Shapes this only makes a difference when Variation is set to one of the Identical options. The LFO display shows the shape at the current Amount. | | Layer 2/LFO | Target (Legacy) | 351 | L2Lfo Target (Legacy) | Legacy LFO target parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Time (Tempo Synced) (Legacy) | 352 | L2Lfo Time (Tempo Synced) (Legacy) | Legacy LFO rate. Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Time (Hz) | 353 | L2Lfo Time (Hz) | Time sets how fast the LFO cycles, in Hz (cycles per second). Tip: for movement that stays in time with your track, switch Sync on and choose a note length instead. | | Layer 2/LFO | Sync On | 354 | L2Lfo Sync On | Sync ties the LFO's speed to your DAW's tempo. When it's on, Time is chosen as a note length that follows the tempo; when it's off, Time is set freely in Hz. Both settings are remembered, so you can flick between them without losing either. | | Layer 2/EQ | On | 355 | L2Eq On | Switch on this layer's three-band equaliser to shape its tone before it's mixed with the other layers. | | Layer 2/EQ/Band 1 | Legacy Frequency | 356 | L2EqB1 Legacy Frequency | Legacy band 1 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 1 | Legacy Resonance | 357 | L2EqB1 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 1 | Gain | 358 | L2EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 2/EQ/Band 1 | Legacy Type | 359 | L2EqB1 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 2 | Legacy Frequency | 360 | L2EqB2 Legacy Frequency | Legacy band 2 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 2 | Legacy Resonance | 361 | L2EqB2 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 2 | Gain | 362 | L2EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 2/EQ/Band 2 | Legacy Type | 363 | L2EqB2 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Config | Legacy Velocity Mapping | 364 | L2 Legacy Velocity Mapping | Choose how MIDI velocity should affect the volume of this layer. There are 6 modes that can be selected for this parameter via the buttons on the GUI. By setting one layer to be quiet at high velocities and another layer to be quiet at low velocities you can create an instrument that sounds different based on how hard the notes are played. (0) Ignore velocity, always play full volume. (1) Loudest at high velocity, quietist at low velocity (2) Loudest at low velocity, quietist at high velocity (3) Loudest at high velocity, quietist at middle velocity and below (4) Loudest at middle velocity, quietist at both high and low velocities (5) Loudest at bottom velocity, quietist at middle velocity and above, | | Layer 2/Config | Keytrack On | 365 | L2 Keytrack On | With Keytrack on, this layer follows the keyboard: higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which might be what you want for drum hits, loops and sound effects that shouldn't be transposed. Some sample libraries may override this - marking individual samples as always or never keytracked. | | Layer 2/Config | Legacy Monophonic On | 366 | L2 Legacy Monophonic On | Only allow one voice of each sound to play at a time | | Layer 2/Config | MIDI Transpose On | 368 | L2 MIDI Transpose On | Transpose shifts this layer up or down in semitones by changing which samples get triggered, rather than by speeding the audio up or down. On a multi-sampled Instrument that keeps the character of the sound intact, so it's the better choice for large shifts. The key range isn't affected: you play the same keys as before, they just reach for different samples. Tip: the Pitch control at the top of the layer transposes by re-pitching the audio instead. That's the one to reach for on a single-sample Instrument, and Detune beside it covers amounts smaller than a semitone. | | Layer 2/Playback/Loop | Loop Mode | 369 | L2Lp Loop Mode | Select the Loop Mode for this layer. Floe can loop a portion of the sound for as long as you hold a note, so even a short sample can sustain indefinitely. Some Instruments come with loop points built in, while others let you set your own on the waveform. You can also turn looping off. There's 2 modes: 'standard' wrap-around loops jump from the loop end back to the start; 'ping-pong' loops bounce back and forth, alternating playback direction. The options that are available depend on the Instrument: library authors can provide built-in loops, allow or disallow custom loops, or require that certain sounds always loop. | | Layer 2/Config | Key Range Low | 370 | L2 Key Range Low | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Key Range High | 371 | L2 Key Range High | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Key Range Low Fade | 372 | L2 Key Range Low Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Key Range High Fade | 373 | L2 Key Range High Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Pitch Bend Range | 374 | L2 Pitch Bend Range | Pitch Bend Range sets how far the pitch wheel bends this layer, in semitones. Each layer has its own, so for example, a lead can bend a whole tone while the pad underneath can be set to zero to ignore the wheel entirely. Bending re-pitches the audio by speeding it up or slowing it down, so large bends will noticeably change the character of the sound. With MPE enabled, this governs the wheel on the master channel; the per-note bend of each individual note follows the range the controller asks for. | | Layer 2/Config | Monophonic Mode | 375 | L2 Monophonic Mode | Monophonic decides what happens when notes on this layer overlap. Left off, the layer is polyphonic and every note you play gets a voice of its own; the other two modes hold it to one note at a time, in different ways. It's set per layer, so a monophonic lead can sit on top of a polyphonic pad in the same preset. The arpeggiator handles its own notes, so this has no effect while the arpeggiator is running on this layer. | | Layer 2/Playback | Play Mode | 376 | L2 Play Mode | Select the Play Mode for this layer: the engine it uses to play its Instrument. Standard Playback plays each sample straight through: the playhead moves steadily from start to end, with options for looping and reversing along the way. The granular modes instead rebuild the sound from a stream of tiny snippets called grains. In Granular Playback, the point grains are drawn from moves through the sample at a rate you set with Speed, giving a time-stretch-like effect. In Granular Fixed, you place that point yourself with Position, letting you freeze on one part of the sample and explore its texture. | | Layer 2/Playback/Granular | Length | 377 | L2Grn Length | Length sets how long each grain lasts, from a few milliseconds up to a second. Short grains chop the sound into a fine, buzzy texture that keeps little of the original's shape. Long grains preserve much more of the sample's natural character. Density and Smooth are both measured relative to Length, so changing it here changes how they feel too. | | Layer 2/Playback/Granular | Speed | 378 | L2Grn Speed | Speed sets how fast the playhead travels through the sample in Granular Playback mode. Grains are drawn from wherever the playhead is. 100% is the sample's original speed. Turn it down to slow the sound to a crawl or stop it altogether, or up to race through at up to eight times normal speed. The playhead still respects the sample start, looping and Reverse settings. In Granular Fixed, this knob is replaced by Position. | | Layer 2/Playback/Granular | Position | 379 | L2Grn Position | Position chooses where in the sample grains are drawn from, shown as the highlighted region on the waveform. Grains come from here for as long as you hold the note, so you can freeze on one moment of the sound and sustain it indefinitely. Tip: you can create movement with this parameter by setting the LFO's target to Grain Position, or by assigning this knob to a macro. | | Layer 2/Playback/Granular | Density | 380 | L2Grn Density | Density sets how many grains overlap at once, relative to their Length. At 0%, each grain starts as the previous one ends, so they follow on one after another. Turning it up starts new grains sooner, stacking more and more of them on top of each other. Low values give an open texture where individual grains can be picked out. High values pile up so many grains that they smear into a thick, continuous wash. | | Layer 2/Playback/Granular | Spread | 381 | L2Grn Spread | Spread widens the area of the sample that grains can start from. Each new grain begins somewhere between the playhead and a point up to this far past it, measured as a percentage of the whole sample. Small values keep every grain close to the playhead for a focused, precise sound. Large values scatter grains across a wide stretch of the sample. | | Layer 2/Playback/Granular | Smooth | 382 | L2Grn Smooth | Smooth shapes the envelope of each grain: how gently it fades in and out, relative to its Length. At 0% grains start and stop abruptly, giving a hard, percussive edge. At 100% the fade-in and fade-out meet in the middle, so neighbouring grains blend into each other for a seamless texture. | | Layer 2/Playback/Granular | Pan | 383 | L2Grn Pan | Pan randomises where each grain sits in the stereo field. Every new grain is given its own position, picked at random within the range you set here. At 0% every grain plays dead centre. At 100% grains can land anywhere from fully left to fully right, spreading the cloud from one side to the other. A quick way to create an interestingly wide stereo image. | | Layer 2/Playback/Granular | Detune | 384 | L2Grn Detune | Detune randomises the pitch of each grain. Every new grain is nudged sharp or flat by a random amount within the range you set here. At 0% all grains play in tune. At 100% each grain can be up to a semitone sharp or flat. Small amounts thicken the sound like a chorus; larger amounts get progressively more smeared and out of tune. | | Layer 2/Playback/Granular | Direction | 385 | L2Grn Direction | Direction gives each grain a chance of playing the opposite way to the main playhead. At 0% every grain follows the playhead's direction. At 100% each grain is equally likely to play forwards or backwards. In between, you can dial in a blend of the two for meandering, less predictable tones. | | Layer 2/Playback/Granular | Harmony | 386 | L2Grn Harmony | Harmony gives each grain a chance of playing at a musical interval above or below the note you played, so a single note can bloom into a chord or a shimmering octave. At 0% every grain plays at the root. Turning it up shifts more of the grains, until at 100% every grain picks at random from the root and the intervals you've chosen. Choose which intervals are allowed with the Intervals menu next to this knob: pick a preset such as Octaves or Major Triad, or toggle individual semitones yourself. | | Layer 2/LFO | Legacy Shape V2 | 387 | L2Lfo Legacy Shape V2 | Legacy LFO shape parameter (v2). Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Target | 388 | L2Lfo Target | Choose the Target: what the LFO modulates. The modulation is applied relative to the target's current knob/slider. For example, when Volume is chosen, the movement will occur around wherever the layer's volume slider is currently set. Hover over each option for details. | | Layer 2/Main/Filter | Resonance | 389 | L2Filt Resonance | Resonance emphasises the frequencies at the cutoff. At 0% the slope is smooth and rounded; at 100% it peaks by around 20 dB, without ever self-oscillating. For the band-pass, notch and band-shelving types it also narrows the band, and for Peak it sets the size of the boost. | | Layer 2/Arp | Note Order | 390 | L2Arp Note Order | Order sets how the notes you're holding are shared out across the steps: climbing, falling, bouncing between the two, picked at random, or one of the less common shapes. Chord is the odd one out — it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in Fixed Notes mode. | | Layer 2/Arp | Trigger | 391 | L2Arp Trigger | Trigger decides what a new note does to a pattern that's already running. Free lets it carry on, so you can change chord underneath without breaking the groove. Retrigger restarts it from step 1 every time you press a note, which keeps the pattern locked to your playing. | | Layer 2/Arp | Rate (Legacy) | 392 | L2Arp Rate (Legacy) | Legacy arpeggiator rate. Kept for backwards-compatibility with DAW automation | | Layer 2/Arp | Length | 393 | L2Arp Length | Length sets how many steps the pattern runs through before it loops back to the start. Steps beyond the length are hidden from the sequencer but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. | | Layer 2/Arp | Arpeggiator Mode | 394 | L2Arp Arpeggiator Mode | Choose where the steps get their notes from. Played Notes arpeggiates whatever you're holding, giving each step one of those notes in the order set by Order. Fixed Notes ignores what you play and runs a sequence of notes you've set yourself, either by dragging each step's note or by capturing a performance with the Record button. | | Layer 2/Arp | Humanise | 395 | L2Arp Humanise | Humanise loosens the pattern up by nudging each step's timing and velocity by a random amount. A few percent takes the machine-like edge off; higher settings give a much looser, hand-played feel, which suits percussion especially well. Steps are only ever pushed later, never earlier, and never by more than a fifth of a step. | | Layer 2/Arp | Auto Rate | 396 | L2Arp Auto Rate | Auto Rate lets Floe pick the step rate so a sliced Instrument plays close to the speed it was recorded at, rather than leaving silent gaps between slices when your host tempo is a long way from the loop's own. While it's on, the rate Floe has chosen is shown in place of the Rate menu. The multiplier shifts that choice: 2x for double speed, 0.5x for half, with Dotted and Triplet variants for a different feel. Because the choice has to land on a tempo-synced division it moves in jumps as the tempo changes, and every layer using Auto Rate jumps at the same points so they stay in the same rhythmic relationship. | | Layer 2/Arp | Polyrate | 397 | L2Arp Polyrate | Polyrate gives each octave of the notes you're holding its own speed, so a single chord can produce several interleaving rhythms at once. The octave starting at middle C plays at the Rate you've set, and the octaves above and below scale from there by the ratio you choose. Tip: hold two notes an octave apart to hear the effect at its clearest. | | Layer 2/Arp | One Shot | 398 | L2Arp One Shot | With One Shot on, the pattern plays through once and stops rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes, or for letting a sliced loop play through exactly once. | | Layer 2/EQ/Band 1 | Resonance | 399 | L2EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 2/EQ/Band 2 | Resonance | 400 | L2EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 2/Arp | Arpeggiator | 401 | L2Arp Arpeggiator | Switch on the arpeggiator to turn the notes you hold into a rhythmic pattern locked to your host's tempo. Each step retriggers this layer's Instrument exactly as if you'd played the note yourself, so the envelopes, filter, LFOs and effects all respond as normal. Every layer has its own arpeggiator, so you can run different patterns side by side. | | Layer 2/LFO | Shape | 402 | L2Lfo Shape | Choose the Shape of the LFO. Alongside the classics there are a few more interesting options, such as random and plucky shapes. | | Layer 2/EQ/Band 1 | Type | 404 | L2EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 2/EQ/Band 2 | Type | 405 | L2EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 2/EQ/Band 3 | Legacy Frequency | 406 | L2EqB3 Legacy Frequency | Legacy band 3 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 3 | Resonance | 407 | L2EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 2/EQ/Band 3 | Gain | 408 | L2EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 2/EQ/Band 3 | Type | 409 | L2EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 2/Main/Filter | Cutoff Frequency | 410 | L2Filt Cutoff Frequency | Cutoff Frequency sets where the filter takes effect. The filter envelope and the LFO sweep the cutoff around this value, so it's the centre of any modulation rather than the starting point. | | Layer 2/EQ/Band 1 | Frequency | 411 | L2EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 2/EQ/Band 2 | Frequency | 412 | L2EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 2/EQ/Band 3 | Frequency | 413 | L2EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 2/Main/Filter | Type | 414 | L2Filt Type | Select the filter type. Hover over the options in the menu for a description of each. | | Layer 2 | Stereo Width | 415 | L2 Stereo Width | Stereo narrows or widens this layer's stereo image. Negative values pull it toward mono, positive values push it wider, and 0% leaves the sound as recorded. It works by splitting the sound into mid (what both channels share) and side (what differs between them), then rebalancing the two with a constant-power crossfade. At -100% only the mid remains; at +100% only the side, so anything dead centre disappears. Mono sounds have no side, so pushing to +100% silences them. | | Layer 2/Config | MPE Press Target | 416 | L2 MPE Press Target | Press is the channel pressure, or aftertouch, that an MPE controller sends on each note's own channel. On most keyboards it follows how hard you're pushing into the key once it's sounding. Choose what it controls on this layer here, and how strongly with Amount beside it. Press rests at nothing and climbs from there, so it only ever adds to the destination you point it at. MPE has to be switched on in the Performance Controls panel before press does anything. | | Layer 2/Config | MPE Press Amount | 417 | L2 MPE Press Amount | Amount sets how far press moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before press reaches its own, so you get the full effect from a lighter touch. | | Layer 2/Config | MPE Slide Target | 418 | L2 MPE Slide Target | Slide is CC74, which an MPE controller sends on each note's own channel. On most keyboards it follows where your finger sits along the front-to-back axis of the key. Choose what it controls on this layer here, and how strongly with Amount beside it. Slide rests in the middle, so it pushes the destination either side of where you've set it. MPE has to be switched on in the Performance Controls panel before slide does anything. | | Layer 2/Config | MPE Slide Amount | 419 | L2 MPE Slide Amount | Amount sets how far slide moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before slide reaches its own, so you get the full effect from a smaller movement. | | Layer 2/LFO | Time (Tempo Synced) | 420 | L2Lfo Time (Tempo Synced) | Time sets how long one LFO cycle lasts, as a note length at your DAW's tempo. 1/4 is a quarter note; a D on the end is dotted (one and a half times as long) and a T is triplet (two thirds as long). The LFO follows tempo changes, but it isn't locked to the bar: each cycle starts from the note, as set by Mode. | | Layer 2/Arp | Rate | 421 | L2Arp Rate | Rate sets how long each step lasts, synced to your host's tempo. Together with Length it decides how long the whole pattern takes to come round — eight steps at 1/8 fills one bar of 4/4. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. | | Layer 2 | Pitch Semitones | 422 | L2 Pitch Semitones | Pitch moves this layer up or down in semitones. This works by speeding up or slowing down the audio. Tip: for a multisampled Instrument, you might get better results from Transpose on the CONFIG tab. It changes which samples are played rather than processing them, which can sound more natural. | | Layer 2/Playback/Granular | Variation | 423 | L2Grn Variation | Variation decides whether each note scatters its grains differently or plays back the exact same grains every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern of grains and save it with the preset. Open the menu and hover over each option for details. | | Layer 2/Playback/Granular | Seed | 424 | L2Grn Seed | Seed picks which pattern of grains repeats. Try a few numbers until you find one you like: it's saved with the preset, so the grains you choose are the grains everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 2/LFO | Variation | 425 | L2Lfo Variation | Variation decides whether the random shapes move differently on each note or play back the exact same pattern every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern and save it with the preset. In Free mode, a note that joins already-sounding notes follows their pattern. Open the menu and hover over each option for details. | | Layer 2/LFO | Seed | 426 | L2Lfo Seed | Seed picks which random pattern repeats. Try a few numbers until you find one you like: it's saved with the preset, so the movement you choose is the movement everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 2/Playback/Granular | Share Grains | 427 | L2Grn Share Grains | Share Grains keeps the number of grains the same whether you play one note or a chord, so the sound keeps the same density however many notes you hold. Each grain plays from one of the held notes, weaving the chord's pitches together. At low Density you can hear the grains hop between the notes of the chord. | | Layer 3 | Volume | 480 | L3 Volume | The Layer Volume sets the level of this layer. The marks on the slider show the level of each sounding voice: its velocity, key range fade and any MPE volume expression. Tip: to change how velocity relates to volume, edit the velocity to volume curve on the CONFIG tab. | | Layer 3 | Mute | 481 | L3 Mute | Mute silences this layer. Handy for hearing how the other layers sit together while you're designing a sound. A muted layer keeps running in the background exactly as if you could hear it, so when you unmute, the sound carries on seamlessly from wherever it has naturally got to. If you're trying to save CPU, unload the Instrument instead. If a layer is still audible after muting it, check whether it's also soloed: Solo takes priority over Mute. | | Layer 3 | Solo | 482 | L3 Solo | Solo lets you hear this layer on its own. Any layer that isn't soloed goes quiet. Handy for focusing on one part of a sound while you're designing it. Silenced layers keep running in the background exactly as if you could hear them, so when you unsolo, they carry on seamlessly from wherever they have naturally got to. If you're trying to save CPU, unload their Instruments instead. If a layer has gone quiet unexpectedly, check whether another layer is soloed. And if a muted layer is still audible, that's because Solo takes priority over Mute. | | Layer 3 | Pan | 483 | L3 Pan | Pan places this layer in the stereo field, anywhere from fully left to fully right. It uses a constant-power pan law (-3 dB at centre), so the layer stays at the same perceived loudness wherever you put it. Pan is applied after the Stereo control, so you can narrow a wide sound first and then place it as a single point. | | Layer 3 | Detune Cents | 484 | L3 Detune Cents | Detune fine-tunes this layer's pitch in cents (100 cents is one semitone). This works by speeding up or slowing down the audio. | | Layer 3 | Pitch Semitones (Legacy) | 485 | L3 Pitch Semitones (Legacy) | Legacy layer pitch in semitones. Kept for backwards-compatibility with DAW automation | | Layer 3/Playback/Loop | Start | 487 | L3Lp Start | Set the loop start point, where the loop begins within the sample. While a note is held, playback loops between here and the loop end. | | Layer 3/Playback/Loop | End | 488 | L3Lp End | Set the loop end point, where the loop finishes within the sample. While a note is held, playback loops between the loop start and here. | | Layer 3/Playback/Loop | Crossfade Size | 489 | L3Lp Crossfade Size | Set the size of the loop crossfade, which blends audio across the loop point so the loop doesn't click. A small amount usually helps, especially for sustained or tonal sounds. Floe keeps the crossfade within the loop and the sample, so it shrinks automatically if you make the loop too small for it. | | Layer 3/Playback/Loop | Sample Start Offset | 491 | L3Lp Sample Start Offset | Change the starting point of the sample | | Layer 3/Playback/Loop | Reverse On | 492 | L3Lp Reverse On | Play the Instrument's samples backwards, from the end to the start. It works in every play mode and whether looping is on or off. The waveform display flips to match, so playback always runs from left to right (unless in the reverse portion of a ping-pong loop). | | Layer 3/Main/Volume Envelope | On | 493 | L3Vol On | Switch the volume envelope on or off. It's typically best left on. When it's off, every note plays its sample straight through to the end, however briefly you press the key. Handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off, since nothing would ever bring a looping note to an end. Careful: with the envelope off, notes can't be cut short, so voices pile up if you play quickly, which costs CPU. | | Layer 3/Main/Volume Envelope | Attack | 494 | L3Vol Attack | Attack sets how long each note takes to fade in. A few milliseconds is enough to avoid clicks if you've moved the sample start point. | | Layer 3/Main/Volume Envelope | Decay | 495 | L3Vol Decay | Decay sets how long the note takes to fall to the Sustain level after the attack. | | Layer 3/Main/Volume Envelope | Sustain | 496 | L3Vol Sustain | Sustain sets the level the note holds at while the key is down. At 0 dB, Decay has nothing to do. | | Layer 3/Main/Volume Envelope | Release | 497 | L3Vol Release | Release sets how long the note takes to fade out after you lift the key. | | Layer 3/Main/Filter | On | 498 | L3Filt On | Switch the filter on or off. It's a clean, digital-sounding state-variable filter (12 dB per octave). Every voice gets its own copy, so the filter envelope and the LFO (on the LFO tab) can sweep each note independently. Tip: for broader tone shaping, the EQ tab has a three-band equaliser. | | Layer 3/Main/Filter | Legacy Cutoff Frequency | 499 | L3Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Main/Filter | Legacy Resonance | 500 | L3Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Main/Filter | Legacy Type | 501 | L3Filt Legacy Type | Legacy filter type parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Main/Filter | Envelope Amount | 502 | L3Filt Envelope Amount | Envelope Amount sets how strongly the filter envelope (shown to the right) moves the cutoff on every note. At 0% the envelope does nothing. Turn it up and the cutoff follows the envelope's shape, rising and falling with it. Turn it down and the cutoff moves the opposite way, falling as the envelope rises. The envelope is centred on the Cutoff setting: the top half of the display pushes the cutoff above it, the bottom half pulls it below. A negative amount flips this. For example, with a low-pass filter, a long attack opens the sound up gradually at the start of each note. | | Layer 3/Main/Filter | Attack | 503 | L3Filt Attack | Attack sets how long the filter envelope takes to reach its peak. | | Layer 3/Main/Filter | Decay | 504 | L3Filt Decay | Decay sets how long the filter envelope takes to fall to the Sustain level after the attack. | | Layer 3/Main/Filter | Sustain | 505 | L3Filt Sustain | Sustain sets the level the filter envelope holds at while the key is down. | | Layer 3/Main/Filter | Release | 506 | L3Filt Release | Release sets how long the filter envelope takes to fall back after you lift the key. | | Layer 3/LFO | On | 507 | L3Lfo On | Switch this layer's LFO on or off. Enable Floe's LFO (low frequency oscillator) for adding movement to a one of this layer's controls (such as the volume or filter cutoff). | | Layer 3/LFO | Legacy Shape | 508 | L3Lfo Legacy Shape | Legacy LFO shape parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Mode | 509 | L3Lfo Mode | Choose where the LFO starts when you play a new note. With Retrigger, every note starts the LFO from the beginning of its cycle. With Free, a new note joins in wherever this layer's sounding notes have reached, so every note modulates precisely together. | | Layer 3/LFO | Amount | 510 | L3Lfo Amount | Amount sets how far the LFO moves its target. 0% is no movement at all and 100% is the full range for that target: silence to full level for Volume, a semitone either way for Pitch, and so on. Negative values flip the shape upside down, so a falling sawtooth becomes a rising one. For random Shapes this only makes a difference when Variation is set to one of the Identical options. The LFO display shows the shape at the current Amount. | | Layer 3/LFO | Target (Legacy) | 511 | L3Lfo Target (Legacy) | Legacy LFO target parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Time (Tempo Synced) (Legacy) | 512 | L3Lfo Time (Tempo Synced) (Legacy) | Legacy LFO rate. Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Time (Hz) | 513 | L3Lfo Time (Hz) | Time sets how fast the LFO cycles, in Hz (cycles per second). Tip: for movement that stays in time with your track, switch Sync on and choose a note length instead. | | Layer 3/LFO | Sync On | 514 | L3Lfo Sync On | Sync ties the LFO's speed to your DAW's tempo. When it's on, Time is chosen as a note length that follows the tempo; when it's off, Time is set freely in Hz. Both settings are remembered, so you can flick between them without losing either. | | Layer 3/EQ | On | 515 | L3Eq On | Switch on this layer's three-band equaliser to shape its tone before it's mixed with the other layers. | | Layer 3/EQ/Band 1 | Legacy Frequency | 516 | L3EqB1 Legacy Frequency | Legacy band 1 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 1 | Legacy Resonance | 517 | L3EqB1 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 1 | Gain | 518 | L3EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 3/EQ/Band 1 | Legacy Type | 519 | L3EqB1 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 2 | Legacy Frequency | 520 | L3EqB2 Legacy Frequency | Legacy band 2 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 2 | Legacy Resonance | 521 | L3EqB2 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 2 | Gain | 522 | L3EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 3/EQ/Band 2 | Legacy Type | 523 | L3EqB2 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Config | Legacy Velocity Mapping | 524 | L3 Legacy Velocity Mapping | Choose how MIDI velocity should affect the volume of this layer. There are 6 modes that can be selected for this parameter via the buttons on the GUI. By setting one layer to be quiet at high velocities and another layer to be quiet at low velocities you can create an instrument that sounds different based on how hard the notes are played. (0) Ignore velocity, always play full volume. (1) Loudest at high velocity, quietist at low velocity (2) Loudest at low velocity, quietist at high velocity (3) Loudest at high velocity, quietist at middle velocity and below (4) Loudest at middle velocity, quietist at both high and low velocities (5) Loudest at bottom velocity, quietist at middle velocity and above, | | Layer 3/Config | Keytrack On | 525 | L3 Keytrack On | With Keytrack on, this layer follows the keyboard: higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which might be what you want for drum hits, loops and sound effects that shouldn't be transposed. Some sample libraries may override this - marking individual samples as always or never keytracked. | | Layer 3/Config | Legacy Monophonic On | 526 | L3 Legacy Monophonic On | Only allow one voice of each sound to play at a time | | Layer 3/Config | MIDI Transpose On | 528 | L3 MIDI Transpose On | Transpose shifts this layer up or down in semitones by changing which samples get triggered, rather than by speeding the audio up or down. On a multi-sampled Instrument that keeps the character of the sound intact, so it's the better choice for large shifts. The key range isn't affected: you play the same keys as before, they just reach for different samples. Tip: the Pitch control at the top of the layer transposes by re-pitching the audio instead. That's the one to reach for on a single-sample Instrument, and Detune beside it covers amounts smaller than a semitone. | | Layer 3/Playback/Loop | Loop Mode | 529 | L3Lp Loop Mode | Select the Loop Mode for this layer. Floe can loop a portion of the sound for as long as you hold a note, so even a short sample can sustain indefinitely. Some Instruments come with loop points built in, while others let you set your own on the waveform. You can also turn looping off. There's 2 modes: 'standard' wrap-around loops jump from the loop end back to the start; 'ping-pong' loops bounce back and forth, alternating playback direction. The options that are available depend on the Instrument: library authors can provide built-in loops, allow or disallow custom loops, or require that certain sounds always loop. | | Layer 3/Config | Key Range Low | 530 | L3 Key Range Low | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Key Range High | 531 | L3 Key Range High | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Key Range Low Fade | 532 | L3 Key Range Low Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Key Range High Fade | 533 | L3 Key Range High Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Pitch Bend Range | 534 | L3 Pitch Bend Range | Pitch Bend Range sets how far the pitch wheel bends this layer, in semitones. Each layer has its own, so for example, a lead can bend a whole tone while the pad underneath can be set to zero to ignore the wheel entirely. Bending re-pitches the audio by speeding it up or slowing it down, so large bends will noticeably change the character of the sound. With MPE enabled, this governs the wheel on the master channel; the per-note bend of each individual note follows the range the controller asks for. | | Layer 3/Config | Monophonic Mode | 535 | L3 Monophonic Mode | Monophonic decides what happens when notes on this layer overlap. Left off, the layer is polyphonic and every note you play gets a voice of its own; the other two modes hold it to one note at a time, in different ways. It's set per layer, so a monophonic lead can sit on top of a polyphonic pad in the same preset. The arpeggiator handles its own notes, so this has no effect while the arpeggiator is running on this layer. | | Layer 3/Playback | Play Mode | 536 | L3 Play Mode | Select the Play Mode for this layer: the engine it uses to play its Instrument. Standard Playback plays each sample straight through: the playhead moves steadily from start to end, with options for looping and reversing along the way. The granular modes instead rebuild the sound from a stream of tiny snippets called grains. In Granular Playback, the point grains are drawn from moves through the sample at a rate you set with Speed, giving a time-stretch-like effect. In Granular Fixed, you place that point yourself with Position, letting you freeze on one part of the sample and explore its texture. | | Layer 3/Playback/Granular | Length | 537 | L3Grn Length | Length sets how long each grain lasts, from a few milliseconds up to a second. Short grains chop the sound into a fine, buzzy texture that keeps little of the original's shape. Long grains preserve much more of the sample's natural character. Density and Smooth are both measured relative to Length, so changing it here changes how they feel too. | | Layer 3/Playback/Granular | Speed | 538 | L3Grn Speed | Speed sets how fast the playhead travels through the sample in Granular Playback mode. Grains are drawn from wherever the playhead is. 100% is the sample's original speed. Turn it down to slow the sound to a crawl or stop it altogether, or up to race through at up to eight times normal speed. The playhead still respects the sample start, looping and Reverse settings. In Granular Fixed, this knob is replaced by Position. | | Layer 3/Playback/Granular | Position | 539 | L3Grn Position | Position chooses where in the sample grains are drawn from, shown as the highlighted region on the waveform. Grains come from here for as long as you hold the note, so you can freeze on one moment of the sound and sustain it indefinitely. Tip: you can create movement with this parameter by setting the LFO's target to Grain Position, or by assigning this knob to a macro. | | Layer 3/Playback/Granular | Density | 540 | L3Grn Density | Density sets how many grains overlap at once, relative to their Length. At 0%, each grain starts as the previous one ends, so they follow on one after another. Turning it up starts new grains sooner, stacking more and more of them on top of each other. Low values give an open texture where individual grains can be picked out. High values pile up so many grains that they smear into a thick, continuous wash. | | Layer 3/Playback/Granular | Spread | 541 | L3Grn Spread | Spread widens the area of the sample that grains can start from. Each new grain begins somewhere between the playhead and a point up to this far past it, measured as a percentage of the whole sample. Small values keep every grain close to the playhead for a focused, precise sound. Large values scatter grains across a wide stretch of the sample. | | Layer 3/Playback/Granular | Smooth | 542 | L3Grn Smooth | Smooth shapes the envelope of each grain: how gently it fades in and out, relative to its Length. At 0% grains start and stop abruptly, giving a hard, percussive edge. At 100% the fade-in and fade-out meet in the middle, so neighbouring grains blend into each other for a seamless texture. | | Layer 3/Playback/Granular | Pan | 543 | L3Grn Pan | Pan randomises where each grain sits in the stereo field. Every new grain is given its own position, picked at random within the range you set here. At 0% every grain plays dead centre. At 100% grains can land anywhere from fully left to fully right, spreading the cloud from one side to the other. A quick way to create an interestingly wide stereo image. | | Layer 3/Playback/Granular | Detune | 544 | L3Grn Detune | Detune randomises the pitch of each grain. Every new grain is nudged sharp or flat by a random amount within the range you set here. At 0% all grains play in tune. At 100% each grain can be up to a semitone sharp or flat. Small amounts thicken the sound like a chorus; larger amounts get progressively more smeared and out of tune. | | Layer 3/Playback/Granular | Direction | 545 | L3Grn Direction | Direction gives each grain a chance of playing the opposite way to the main playhead. At 0% every grain follows the playhead's direction. At 100% each grain is equally likely to play forwards or backwards. In between, you can dial in a blend of the two for meandering, less predictable tones. | | Layer 3/Playback/Granular | Harmony | 546 | L3Grn Harmony | Harmony gives each grain a chance of playing at a musical interval above or below the note you played, so a single note can bloom into a chord or a shimmering octave. At 0% every grain plays at the root. Turning it up shifts more of the grains, until at 100% every grain picks at random from the root and the intervals you've chosen. Choose which intervals are allowed with the Intervals menu next to this knob: pick a preset such as Octaves or Major Triad, or toggle individual semitones yourself. | | Layer 3/LFO | Legacy Shape V2 | 547 | L3Lfo Legacy Shape V2 | Legacy LFO shape parameter (v2). Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Target | 548 | L3Lfo Target | Choose the Target: what the LFO modulates. The modulation is applied relative to the target's current knob/slider. For example, when Volume is chosen, the movement will occur around wherever the layer's volume slider is currently set. Hover over each option for details. | | Layer 3/Main/Filter | Resonance | 549 | L3Filt Resonance | Resonance emphasises the frequencies at the cutoff. At 0% the slope is smooth and rounded; at 100% it peaks by around 20 dB, without ever self-oscillating. For the band-pass, notch and band-shelving types it also narrows the band, and for Peak it sets the size of the boost. | | Layer 3/Arp | Note Order | 550 | L3Arp Note Order | Order sets how the notes you're holding are shared out across the steps: climbing, falling, bouncing between the two, picked at random, or one of the less common shapes. Chord is the odd one out — it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in Fixed Notes mode. | | Layer 3/Arp | Trigger | 551 | L3Arp Trigger | Trigger decides what a new note does to a pattern that's already running. Free lets it carry on, so you can change chord underneath without breaking the groove. Retrigger restarts it from step 1 every time you press a note, which keeps the pattern locked to your playing. | | Layer 3/Arp | Rate (Legacy) | 552 | L3Arp Rate (Legacy) | Legacy arpeggiator rate. Kept for backwards-compatibility with DAW automation | | Layer 3/Arp | Length | 553 | L3Arp Length | Length sets how many steps the pattern runs through before it loops back to the start. Steps beyond the length are hidden from the sequencer but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. | | Layer 3/Arp | Arpeggiator Mode | 554 | L3Arp Arpeggiator Mode | Choose where the steps get their notes from. Played Notes arpeggiates whatever you're holding, giving each step one of those notes in the order set by Order. Fixed Notes ignores what you play and runs a sequence of notes you've set yourself, either by dragging each step's note or by capturing a performance with the Record button. | | Layer 3/Arp | Humanise | 555 | L3Arp Humanise | Humanise loosens the pattern up by nudging each step's timing and velocity by a random amount. A few percent takes the machine-like edge off; higher settings give a much looser, hand-played feel, which suits percussion especially well. Steps are only ever pushed later, never earlier, and never by more than a fifth of a step. | | Layer 3/Arp | Auto Rate | 556 | L3Arp Auto Rate | Auto Rate lets Floe pick the step rate so a sliced Instrument plays close to the speed it was recorded at, rather than leaving silent gaps between slices when your host tempo is a long way from the loop's own. While it's on, the rate Floe has chosen is shown in place of the Rate menu. The multiplier shifts that choice: 2x for double speed, 0.5x for half, with Dotted and Triplet variants for a different feel. Because the choice has to land on a tempo-synced division it moves in jumps as the tempo changes, and every layer using Auto Rate jumps at the same points so they stay in the same rhythmic relationship. | | Layer 3/Arp | Polyrate | 557 | L3Arp Polyrate | Polyrate gives each octave of the notes you're holding its own speed, so a single chord can produce several interleaving rhythms at once. The octave starting at middle C plays at the Rate you've set, and the octaves above and below scale from there by the ratio you choose. Tip: hold two notes an octave apart to hear the effect at its clearest. | | Layer 3/Arp | One Shot | 558 | L3Arp One Shot | With One Shot on, the pattern plays through once and stops rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes, or for letting a sliced loop play through exactly once. | | Layer 3/EQ/Band 1 | Resonance | 559 | L3EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 3/EQ/Band 2 | Resonance | 560 | L3EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 3/Arp | Arpeggiator | 561 | L3Arp Arpeggiator | Switch on the arpeggiator to turn the notes you hold into a rhythmic pattern locked to your host's tempo. Each step retriggers this layer's Instrument exactly as if you'd played the note yourself, so the envelopes, filter, LFOs and effects all respond as normal. Every layer has its own arpeggiator, so you can run different patterns side by side. | | Layer 3/LFO | Shape | 562 | L3Lfo Shape | Choose the Shape of the LFO. Alongside the classics there are a few more interesting options, such as random and plucky shapes. | | Layer 3/EQ/Band 1 | Type | 564 | L3EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 3/EQ/Band 2 | Type | 565 | L3EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 3/EQ/Band 3 | Legacy Frequency | 566 | L3EqB3 Legacy Frequency | Legacy band 3 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 3 | Resonance | 567 | L3EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 3/EQ/Band 3 | Gain | 568 | L3EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 3/EQ/Band 3 | Type | 569 | L3EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 3/Main/Filter | Cutoff Frequency | 570 | L3Filt Cutoff Frequency | Cutoff Frequency sets where the filter takes effect. The filter envelope and the LFO sweep the cutoff around this value, so it's the centre of any modulation rather than the starting point. | | Layer 3/EQ/Band 1 | Frequency | 571 | L3EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 3/EQ/Band 2 | Frequency | 572 | L3EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 3/EQ/Band 3 | Frequency | 573 | L3EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 3/Main/Filter | Type | 574 | L3Filt Type | Select the filter type. Hover over the options in the menu for a description of each. | | Layer 3 | Stereo Width | 575 | L3 Stereo Width | Stereo narrows or widens this layer's stereo image. Negative values pull it toward mono, positive values push it wider, and 0% leaves the sound as recorded. It works by splitting the sound into mid (what both channels share) and side (what differs between them), then rebalancing the two with a constant-power crossfade. At -100% only the mid remains; at +100% only the side, so anything dead centre disappears. Mono sounds have no side, so pushing to +100% silences them. | | Layer 3/Config | MPE Press Target | 576 | L3 MPE Press Target | Press is the channel pressure, or aftertouch, that an MPE controller sends on each note's own channel. On most keyboards it follows how hard you're pushing into the key once it's sounding. Choose what it controls on this layer here, and how strongly with Amount beside it. Press rests at nothing and climbs from there, so it only ever adds to the destination you point it at. MPE has to be switched on in the Performance Controls panel before press does anything. | | Layer 3/Config | MPE Press Amount | 577 | L3 MPE Press Amount | Amount sets how far press moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before press reaches its own, so you get the full effect from a lighter touch. | | Layer 3/Config | MPE Slide Target | 578 | L3 MPE Slide Target | Slide is CC74, which an MPE controller sends on each note's own channel. On most keyboards it follows where your finger sits along the front-to-back axis of the key. Choose what it controls on this layer here, and how strongly with Amount beside it. Slide rests in the middle, so it pushes the destination either side of where you've set it. MPE has to be switched on in the Performance Controls panel before slide does anything. | | Layer 3/Config | MPE Slide Amount | 579 | L3 MPE Slide Amount | Amount sets how far slide moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before slide reaches its own, so you get the full effect from a smaller movement. | | Layer 3/LFO | Time (Tempo Synced) | 580 | L3Lfo Time (Tempo Synced) | Time sets how long one LFO cycle lasts, as a note length at your DAW's tempo. 1/4 is a quarter note; a D on the end is dotted (one and a half times as long) and a T is triplet (two thirds as long). The LFO follows tempo changes, but it isn't locked to the bar: each cycle starts from the note, as set by Mode. | | Layer 3/Arp | Rate | 581 | L3Arp Rate | Rate sets how long each step lasts, synced to your host's tempo. Together with Length it decides how long the whole pattern takes to come round — eight steps at 1/8 fills one bar of 4/4. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. | | Layer 3 | Pitch Semitones | 582 | L3 Pitch Semitones | Pitch moves this layer up or down in semitones. This works by speeding up or slowing down the audio. Tip: for a multisampled Instrument, you might get better results from Transpose on the CONFIG tab. It changes which samples are played rather than processing them, which can sound more natural. | | Layer 3/Playback/Granular | Variation | 583 | L3Grn Variation | Variation decides whether each note scatters its grains differently or plays back the exact same grains every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern of grains and save it with the preset. Open the menu and hover over each option for details. | | Layer 3/Playback/Granular | Seed | 584 | L3Grn Seed | Seed picks which pattern of grains repeats. Try a few numbers until you find one you like: it's saved with the preset, so the grains you choose are the grains everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 3/LFO | Variation | 585 | L3Lfo Variation | Variation decides whether the random shapes move differently on each note or play back the exact same pattern every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern and save it with the preset. In Free mode, a note that joins already-sounding notes follows their pattern. Open the menu and hover over each option for details. | | Layer 3/LFO | Seed | 586 | L3Lfo Seed | Seed picks which random pattern repeats. Try a few numbers until you find one you like: it's saved with the preset, so the movement you choose is the movement everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 3/Playback/Granular | Share Grains | 587 | L3Grn Share Grains | Share Grains keeps the number of grains the same whether you play one note or a chord, so the sound keeps the same density however many notes you hold. Each grain plays from one of the held notes, weaving the chord's pitches together. At low Density you can hear the grains hop between the notes of the chord. | | Effect/Distortion | Legacy Type | 3 | Dist Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Effect/Distortion | Drive | 4 | Dist Drive | Drive sets how hard the signal is pushed into the Type's shaping curve, and is the main control for how much distortion you hear. For the Mangle types it also moves the effect itself, so the character changes as well as the intensity. | | Effect/Distortion | On | 5 | Dist On | Enable/disable this effect. | | Effect/Bitcrush | Legacy Bits | 6 | Bitc Legacy Bits | Legacy bits parameter. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | Legacy Sample Rate | 7 | Bitc Legacy Sample Rate | Legacy sample rate parameter. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | Legacy Wet | 8 | Bitc Legacy Wet | Legacy processed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | Legacy Dry | 9 | Bitc Legacy Dry | Legacy unprocessed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | On | 10 | Bitc On | Enable/disable this effect. | | Effect/Compressor | Legacy Threshold | 11 | Comp Legacy Threshold | Legacy threshold parameter. Kept for backwards-compatibility with DAW automation | | Effect/Compressor | Legacy Ratio | 12 | Comp Legacy Ratio | Legacy ratio parameter. Kept for backwards-compatibility with DAW automation | | Effect/Compressor | Gain | 13 | Comp Gain | An additional control for volume after compression. | | Effect/Compressor | Auto Gain | 14 | Comp Auto Gain | Automatically re-adjust the gain to stay consistent regardless of compression intensity. | | Effect/Compressor | On | 15 | Comp On | Enable/disable this effect. | | Effect/Filter | On | 16 | Filt On | Enable/disable this effect. | | Effect/Filter | Legacy Cutoff Frequency | 17 | Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Effect/Filter | Legacy Resonance | 18 | Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Effect/Filter | Legacy Gain | 19 | Filt Legacy Gain | Legacy gain parameter. Kept for backwards-compatibility with DAW automation | | Effect/Filter | Legacy Type | 20 | Filt Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Effect/StereoWiden | Width | 21 | Ster Width | Width narrows or widens the stereo image. Negative values pull the sound towards mono, positive values push it wider, and 0% leaves it as it is. It rebalances the mid (what both channels share) against the side (what differs between them), so at -100% only the mid is left, and at +100% only the side, which makes anything dead centre disappear. Tip: each layer has its own Stereo control if you want to widen just one of them. | | Effect/StereoWiden | On | 22 | Ster On | Enable/disable this effect. | | Effect/Chorus | Rate | 23 | Chr Rate | The Rate sets how quickly the pitch drifts up and down. Slow rates give a gentle swelling movement, while faster rates become a shimmering warble. | | Effect/Chorus | Legacy High-pass | 24 | Chr Legacy High-pass | Legacy high-pass parameter. Kept for backwards-compatibility with DAW automation | | Effect/Chorus | Depth | 25 | Chr Depth | The Depth sets how far the pitch drifts away from the original. Small amounts thicken the sound, while larger amounts give an obvious, tape-like wobble. At zero, the delayed copies are still there, adding a static colouration. | | Effect/Chorus | Legacy Wet | 26 | Chr Legacy Wet | Legacy processed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Chorus | Legacy Dry | 27 | Chr Legacy Dry | Legacy unprocessed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Chorus | On | 28 | Chr On | Enable/disable this effect. | | Effect/Filter | Resonance | 29 | Filt Resonance | Resonance emphasises the frequencies right at the cutoff, adding a peak there on the pass filters. For Band-pass and Notch it narrows the band, for Peak it tightens the boost, and for the shelves it steepens the corner. | | Effect/Filter | Gain | 30 | Filt Gain | Gain sets how far the Peak and shelf types boost or cut around the cutoff. | | Effect/StereoWiden | Mode | 31 | Ster Mode | Mode sets how the widening is done. Hover over the options in the menu for a description of each. | | Effect/StereoWiden | Bass Mono | 32 | Ster Bass Mono | Bass Mono sets the point below which the sound is summed to the centre. Holding the low end in the middle keeps kicks and basslines solid, and stops them losing power on mono systems. The two bands are split with a 24 dB per octave Linkwitz-Riley crossover, so they recombine without a dip around the crossover point. | | Effect/Compressor | Type | 33 | Comp Type | The compressor algorithm to use. The Vintage type has a bit of character, and automatically sets the attack and release. The Modern type offers more precision. | | Effect/Compressor | Attack | 34 | Comp Attack | How quickly the compressor responds to a rise in level. | | Effect/Compressor | Release | 35 | Comp Release | How quickly the compressor recovers after the level drops. | | Effect/Compressor | Mix | 36 | Comp Mix | Blend between the dry input and the compressed signal. | | Effect/Convolution Reverb | Legacy High-pass | 65 | Conv Legacy High-pass | Legacy high-pass parameter. Kept for backwards-compatibility with DAW automation | | Effect/Convolution Reverb | Legacy Wet | 66 | Conv Legacy Wet | Legacy processed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Convolution Reverb | Legacy Dry | 67 | Conv Legacy Dry | Legacy unprocessed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Convolution Reverb | On | 68 | Conv On | Enable/disable this effect. | | Effect/Reverb | Decay Time | 69 | Rvrb Decay Time | The Decay Time sets how long the tail takes to fade away once a sound stops. It holds steady whatever the Size, so you can choose the length of the reverb and the character of the space separately. | | Effect/Reverb | Pre Low-pass Cutoff | 70 | Rvrb Pre Low-pass Cutoff | The Pre LP is a low-pass filter cutoff for rolling the highs off the signal on its way into the reverb, for a darker, more distant space. The dry signal keeps its full range. | | Effect/Reverb | Pre High-pass Cutoff | 71 | Rvrb Pre High-pass Cutoff | The Pre HP is a high-pass filter cutoff for rolling the lows off the signal on its way into the reverb, keeping the tail clear so the bass stays tight and centred. The dry signal keeps its full range. | | Effect/Reverb | Low-shelf Cutoff | 72 | Rvrb Low-shelf Cutoff | The Lo-Shelf sets the frequency below which the reverb tail is cut by the Lo-Gain amount. Turn Lo-Gain down to hear it work. | | Effect/Reverb | Low Gain | 73 | Rvrb Low Gain | The Lo-Gain sets how much the reverb tail is cut below the Lo-Shelf frequency. The cut builds up as the tail recirculates, so the low end thins out as the reverb fades - handy for stopping long tails clouding the bass. | | Effect/Reverb | High-shelf Cutoff | 74 | Rvrb High-shelf Cutoff | The Hi-Shelf sets the frequency above which the reverb tail is cut by the Hi-Gain amount. Turn Hi-Gain down to hear it work. | | Effect/Reverb | High Gain | 75 | Rvrb High Gain | The Hi-Gain sets how much the reverb tail is cut above the Hi-Shelf frequency. The cut builds up as the tail recirculates, so the highs die away first, just as soft furnishings absorb them in a real room. | | Effect/Reverb | Chorus Amount | 76 | Rvrb Chorus Amount | The Depth sets how far the reverb's reflections drift, smearing the resonances that build up in the tail. A little stops long tails ringing; more gives an obvious shimmer and movement. | | Effect/Reverb | Chorus Frequency | 77 | Rvrb Chorus Frequency | The Mod Rate sets how quickly the drift set by Depth moves through the tail. Very slow rates give a gentle, breathing wash, while faster rates add a distinct warble. | | Effect/Reverb | Size | 78 | Rvrb Size | The Size scales the spacing of the simulated reflections, setting how large the space feels. Small values pack them together for a boxy, coloured character; large values spread them out for something open and airy. | | Effect/Reverb | Delay | 79 | Rvrb Delay | The Predelay holds the reverb back for a moment so the dry sound is heard on its own first. Short amounts keep the sound upfront and defined, while longer amounts push the walls further away. | | Effect/Reverb | Mix | 80 | Rvrb Mix | Blend between the dry input and the reverb signal. | | Effect/Reverb | On | 81 | Rvrb On | Enable/disable this effect. | | Effect/Phaser | Feedback | 82 | Phs Feedback | Feedback routes the phased signal back into the filters, sharpening the peaks and deepening the notches. Small amounts keep it as a gentle swoosh, while higher amounts give the sweep a resonant, whistling edge. | | Effect/Phaser | Mod Rate | 83 | Phs Mod Rate | The Rate sets how quickly the peaks sweep up and down the frequency range. Slow rates give a gentle, drifting movement, while faster rates turn the sweep into a warble. | | Effect/Phaser | Center Frequency | 84 | Phs Center Frequency | Freq sets the centre of the sweep: the frequency that the peaks and notches travel around. Keep it low for a deep, throaty movement, or raise it to place the phasing amongst the brighter harmonics. | | Effect/Phaser | Shape | 85 | Phs Shape | Shape sets how many peaks and notches are carved into the sound. Turned down there's a single broad one for a soft, vowel-like sweep; turned up there are more of them stacked up the spectrum for a richer, more obvious phasing. | | Effect/Phaser | Mod Depth | 86 | Phs Mod Depth | The Depth sets how far the peaks travel either side of the Freq setting. Small amounts give a narrow, shimmering movement, while larger amounts sweep across the whole spectrum. Tip: with Depth all the way down the peaks hold still, leaving a fixed colouration that you can sweep by hand with Freq. | | Effect/Phaser | Stereo Amount | 87 | Phs Stereo Amount | Stereo offsets the left and right sweeps from each other so the movement drifts across the stereo image. At zero both channels sweep together; at maximum they sweep in opposite directions, for a wide, swirling feel. | | Effect/Phaser | Mix | 88 | Phs Mix | Blend between the dry input and the phased signal. | | Effect/Phaser | On | 89 | Phs On | Enable/disable this effect. | | Effect/Delay | Mode | 90 | Dly Mode | Mode sets how the repeats move around the stereo image. Hover over the options in the menu for a description of each. | | Effect/Delay | Filter Cutoff | 91 | Dly Filter Cutoff | Filter sets the centre of a band-pass that the repeats run through, with Spread setting how wide that band is. The dry signal is left untouched. It sits inside the feedback loop, so every repeat is filtered again and the echoes thin out as they fade. | | Effect/Delay | Filter Spread | 92 | Dly Filter Spread | Spread sets how wide the repeats' filter band is. Wide open leaves them close to the original sound; narrowed, they squeeze towards the Filter frequency, losing a little more of the top and bottom ends with every pass. | | Effect/Delay | Time Left (ms) | 93 | Dly Time Left (ms) | The gap between the repeats in the left channel, set freely in milliseconds. Tip: very short times stop sounding like separate echoes and become a metallic, resonant tone instead. | | Effect/Delay | Legacy Time Right (ms) | 94 | Dly Legacy Time Right (ms) | The gap between the repeats in the right channel, set freely in milliseconds. It's unused in Mono mode, where both channels follow Time L. | | Effect/Delay | Time Left (Tempo Synced) (Legacy) | 95 | Dly Time Left (Tempo Synced) (Legacy) | Legacy left delay time. Kept for backwards-compatibility with DAW automation | | Effect/Delay | Time Right (Tempo Synced) (Legacy) | 96 | Dly Time Right (Tempo Synced) (Legacy) | Legacy right delay time. Kept for backwards-compatibility with DAW automation | | Effect/Delay | On | 97 | Dly On | Enable Tempo Sync to set the delay times as note lengths that follow the host's tempo, keeping the repeats in time with your track. With it off, the times are dialled in freely in milliseconds. | | Effect/Delay | Mix | 98 | Dly Mix | Blend between the dry input and the delayed signal. | | Effect/Delay | On | 99 | Dly On | Enable/disable this effect. | | Effect/Delay | Feedback | 100 | Dly Feedback | Feedback sets how long the echoes trail on for: low amounts give a handful of repeats, while high amounts carry on long after the note has gone. It works by feeding each repeat back in to make the next one. | | Effect/Filter | Type | 105 | Filt Type | Select the filter type. Peak, Low-shelf and High-shelf bring in the Gain knob, letting you boost as well as cut. | | Effect/Filter | Cutoff Frequency | 106 | Filt Cutoff Frequency | Cutoff sets where the filter does its work: the point the pass filters roll off from, the centre of the band for Band-pass and Notch, or the corner for the shelves. | | Effect/Chorus | High-pass | 107 | Chr High-pass | Remove low frequencies from the chorused copies. The dry signal is unaffected. Raise this to keep the bass tight and free from movement. | | Effect/Convolution Reverb | High-pass | 108 | Conv High-pass | Use the high-pass to roll off the low end of the reverb to avoid muddy bass. It applies to the reverbed signal alone, before the Mix blend. | | Effect/Bitcrush | Mix | 109 | Bitc Mix | Blend between the dry input and the bitcrushed signal. | | Effect/Bitcrush | Output | 110 | Bitc Output | Output level after the mix. | | Effect/Chorus | Mix | 111 | Chr Mix | Blend between the dry input and the chorused signal. | | Effect/Chorus | Output | 112 | Chr Output | Output level after the mix. | | Effect/Convolution Reverb | Mix | 113 | Conv Mix | Blend between the dry input and the reverb signal. | | Effect/Convolution Reverb | Output | 114 | Conv Output | The effect's output level, applied after the Mix blend. | | Effect/Distortion | Mix | 115 | Dist Mix | Blend between the dry input and the distorted signal. Backing it off keeps the clarity of the original sound with the distortion sitting underneath it. | | Effect/StereoWiden | Mix | 116 | Ster Mix | Blend between the dry input and the stereo-widened signal. | | Effect/Filter | Mix | 117 | Filt Mix | Blend between the dry input and the filtered signal. | | Effect/Compressor | Threshold | 118 | Comp Threshold | The threshold that the audio has to pass above before the compression should start taking place. | | Effect/Compressor | Ratio | 119 | Comp Ratio | The intensity of compression (high ratios mean more compression). Above around 2:1 begins to make the pumping effect much more noticable. | | Effect/EQ | On | 120 | Eq On | Enable/disable this effect. | | Effect/EQ | Mix | 121 | Eq Mix | Blend between the dry input and the equalised signal. | | Effect/EQ/Band 1 | Type | 122 | EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Effect/EQ/Band 1 | Frequency | 123 | EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Effect/EQ/Band 1 | Resonance | 124 | EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Effect/EQ/Band 1 | Gain | 125 | EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Effect/EQ/Band 2 | Type | 126 | EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Effect/EQ/Band 2 | Frequency | 127 | EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Effect/EQ/Band 2 | Resonance | 128 | EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Effect/EQ/Band 2 | Gain | 129 | EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Effect/EQ/Band 3 | Type | 130 | EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Effect/EQ/Band 3 | Frequency | 131 | EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Effect/EQ/Band 3 | Resonance | 132 | EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Effect/EQ/Band 3 | Gain | 133 | EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Effect/Limiter | On | 140 | Lmtr On | Enable/disable this effect. | | Effect/Limiter | Mix | 141 | Lmtr Mix | Blend between the dry input and the limited signal. | | Effect/Limiter | Gain | 142 | Lmtr Gain | Boost the level going into the limiter. The harder you push, the more it's limited, making the sound louder and denser. | | Effect/Limiter | Ceiling | 143 | Lmtr Ceiling | The level the output is never allowed to exceed. Leaving a small margin below 0 dB gives headroom for whatever comes after Floe. | | Effect/Delay | Time Left (Tempo Synced) | 146 | Dly Time Left (Tempo Synced) | The gap between the repeats in the left channel, as a note length that follows the host's tempo. | | Effect/Delay | Time Right (Tempo Synced) | 147 | Dly Time Right (Tempo Synced) | The gap between the repeats in the right channel, as a note length that follows the host's tempo. It's unused in Mono mode, where both channels follow Time L. | | Effect/Distortion | Auto Gain | 148 | Dist Auto Gain | Enable Auto Gain to hold this Legacy type's loudness steady as Drive is increased; it's the same compensation that the Bite and Mangle types always use. Presets made before Floe had this switch load with it off, so they sound just as they were made. | | Effect/Distortion | Punish | 149 | Dist Punish | Punish stacks extra distortion stages after the first, each one driven harder than the last, for a denser, grittier, more compressed edge. Drive sets how hard the signal hits the first stage; Punish sets how much is piled on top. | | Effect/Distortion | Tilt EQ | 150 | Dist Tilt EQ | Tilt the tone going into the distortion. Positive lifts the highs so they saturate more for a brighter result; negative lifts the lows for a warmer, fatter drive. | | Effect/Distortion | Type | 151 | Dist Type | The Type sets the character and flavour of the distortion. The Bite types saturate and thicken the sound; the Mangle types tear it apart into something more extreme. The Legacy types are the original algorithms from Floe's early days, kept so that older presets still sound as they were made. | | Effect/Distortion | Gain | 152 | Dist Gain | If needed, you can adjust the level of the distorted signal, applied after all the shaping and before the Mix blend. This is a flat adjustment separate from 'Auto Gain' — which smartly counteracts any change in perceived loudness as you turn up the Drive or Punish. | | Effect/Bitcrush | Bits | 153 | Bitc Bits | Reduce the bit depth of the signal, adding a gritty digital noise that's most obvious in quiet passages and tails. At the lowest settings quiet signals quantise to silence, so feed the effect hot. | | Effect/Bitcrush | Sample Rate | 154 | Bitc Sample Rate | Reduce the sample rate by holding each sample for longer. Lower rates fold high frequencies back down into ringing, metallic aliasing - the sound of early samplers and retro hardware. | | Master | Volume | 0 | Mst Volume | The Master Volume is the final stage of Floe's signal chain: it sits after the effects rack, so it sets the overall level of everything just before the audio leaves Floe. | | Master | Legacy Velocity To Volume Strength | 1 | Mst Legacy Velocity To Volume Strength | Legacy parameter. The amount that the MIDI velocity affects the volume of notes; 100% means notes will be silent when the velocity is very soft, and 0% means that notes will play full volume regardless of the velocity | | Master | Timbre | 2 | Mst Timbre | Sweep between an instrument's crossfade layers, such as soft-to-hard or dark-to-bright variations of the same sound. Only instruments that were built with crossfade layers respond to this knob; they are highlighted while you drag it. If none of the loaded instruments have crossfade layers, the knob is inactive. | | Macro | 1 | 101 | 1 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | | Macro | 2 | 102 | 2 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | | Macro | 3 | 103 | 3 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | | Macro | 4 | 104 | 4 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | --- # Sample Libraries > What is a Floe sample library Sample libraries are where Floe's sounds come from: collections of mapped, playable sounds along with images, tags and other details. Without a sample library, Floe can't make any sound. A library usually has a theme or focus. 'Music Box Suite', for example, is multi-sampled music boxes, while 'Lost Reveries' is a collection of single-sample ambient tones. A sample library can contain [Instruments](/docs/beta/reference/instruments), impulse responses, or both. Most focus on Instruments, but some contain only impulse responses, giving the [Convolution Reverb](/docs/beta/usage/effects#convolution-reverb) new spaces and textures to work with. You don't load a library itself. Instead, you load its Instruments into Floe's layers and its impulse responses into the Convolution Reverb. To see which libraries you have installed, open the menu at the top of Floe's window and choose _Info_. ## What's inside a library Floe sample libraries use Floe's own open format: portable folders of audio files and configuration files, made with Floe's [developer tools](/docs/beta/develop/develop-libraries). A library's folder usually has a name like `Developer Name - Library Name`, and inside it a `Samples` subfolder and a file called `floe.lua`. Libraries can hold thousands of audio files and take up many gigabytes. --- # Autosave > How Floe autosaves your sound, and how to get it back Floe saves a copy of each instance's sound every few seconds while you work, so a sound you've spent time on is never lost for good. That helps if Floe or your DAW crashes, but it's just as handy for everyday accidents: deleting the wrong track, closing a project without saving, or tweaking a sound past the point you liked it. Autosaves are ordinary preset files. Floe only saves when something has changed, and the files are tiny, so autosaving won't slow your computer down or fill up your drive. ## Getting a sound back 1. In the [preset box](/docs/beta/presets/loading-presets#the-preset-box), click _Load from file_. 2. Go to Floe's autosave folder: - Windows: `C:\Users\Public\Floe\Autosaves` - macOS: `/Users/Shared/Floe/Autosaves` - Linux: `~/Floe/Autosaves` 3. Pick the autosave you want. Each file name holds the time and date it was saved, followed by the instance name, such as `autosave 14-32-05 Thu 2 Oct 2026 dawn-205 (4821).floe-preset`. The autosave folder isn't one of Floe's preset folders, so autosaves don't clutter the preset browser. Once you've loaded the sound you wanted, [save it](/docs/beta/presets/saving-presets) as a normal preset to keep it. ## Instance names Every instance of Floe has a name of its own, such as `dawn-205`. It's saved with your DAW project, so the same instance keeps its name each time you open the project. When you have several instances of Floe running, the name in an autosave's file name tells you which one it came from. To see each instance's name in the top panel, turn on _Show instance name_ on the _General_ tab of Preferences. It's worth turning on if you often use several instances of Floe at once. ## Settings The defaults suit most people, but you can change them on the _General_ tab of Preferences: - **Autosave interval (seconds)** — how often Floe checks for changes and saves. - **Max autosaves per instance** — how many autosaves to keep for each instance. When an instance reaches the limit, its oldest autosave is deleted to make room. - **Autosave delete after days** — how long to keep autosaves before deleting them. --- # Error Reporting > How Floe reports problems, how to send feedback, and what to do if Floe stops responding Floe is built to be dependable for professional work. When something does go wrong, a few systems help keep your project safe and get the problem fixed quickly. ## Share feedback If you find a bug, have an idea for a feature or just want to tell us something, use the feedback form inside Floe. Open the menu at the top of Floe's window and choose _Share Feedback_. - **Description** — what happened, or what you'd like. For a bug, say what you did just before it happened. - **Email** — optional. Add it if you'd like a reply. - **Include anonymous diagnostic data** — sends details about your system and Floe's state along with your message, which often makes a bug much quicker to track down. Please do report anything that doesn't seem right. We want to know about it, and we want to fix it. ## Automatic error reports If Floe crashes, it sends an anonymous error report. The report describes the error, the state of Floe leading up to it, and the computer it was running on. That gives us what we need to fix the bug without asking you to gather the information yourself. Floe also sends anonymous notes of when each session starts and ends, which tell us how reliably Floe is running overall. To turn all of this off, enable _Disable anonymous error reports_ on the _General_ tab of Preferences. Floe is open source, so anyone can read the code and see exactly what's sent. ## If Floe stops responding Floe tries never to take your DAW down with it. If it detects a serious problem, it stops itself rather than crashing the DAW: it goes silent and stops responding. Every instance of Floe in that DAW session is affected. When this happens: 1. Save your DAW project under a new name. That keeps the rest of your work safe without replacing your last good save, since a stopped Floe can't save its sound into the project. 2. Restart your DAW. Floe can't start again within the same DAW session. 3. If a sound in Floe didn't come back as you left it, recover it from an [autosave](/docs/beta/support/autosave). The [instance name](/docs/beta/support/autosave#instance-names) in each autosave's file name tells you which instance it came from. An anonymous report of the problem is usually sent to us automatically, so we can work on a fix. --- # FAQ > Answers to common questions about Floe ### Can I add my own samples? Not at the moment. Floe isn't a sampler you drop your own recordings into: it's a platform for complete, polished sample libraries, a bit like an open ROMpler. Each library comes ready to play, with its Instruments set up and presets designed around them. We're looking into ways to expand this in the future. If you have some programming experience, you can make your own sample libraries for Floe with its open tools: see [Library Development](/docs/beta/develop/develop-libraries). ### Does Floe load SFZ, SoundFont or other formats? No. Floe loads sample libraries in its own format, an open format with similar ideas to SFZ that uses the Lua programming language. It also loads the older Mirage format used by some FrozenPlain libraries. --- # Arp Tab > Turn held notes into rhythmic patterns with each layer's own arpeggiator The arpeggiator turns the notes you hold down into a tempo-synced rhythmic pattern. You choose how fast the steps go, the order the notes of your chord are played in, and the velocity, length, and pitch of each step. Every [layer](/docs/beta/usage/layers) has its own arpeggiator, so you can build sounds with several rhythmic parts playing off each other: fast, high hits over slow, booming drums, say, or a melody over a pulsing bass. With a couple of arpeggiated layers, a single preset can drive a whole track. Switch the arpeggiator on and hold a chord: you'll hear its notes play one after another in a rhythm. Each step triggers the layer's Instrument just as if you'd played the note yourself; each step runs through all the layer's usual settings, such as its play mode, volume envelope, filter and LFO. The arpeggiator lives on each layer's _ARP_ tab. A dot on the tab shows that it's on. ![A layer's ARP tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-arp.3e2ced3e273a2a2e.png)12345 1. **On/off and mode** — the _Arpeggiator_ switch, and a menu choosing where the steps get their notes from: _Played Notes_ or _Fixed Notes_. 2. **Velocity bars** — one bar for each step, setting its velocity. Click and drag to change them, or drag sideways across the bars to draw a whole pattern in one go. 3. **Step settings** — under each bar, from top to bottom, are the step number (click it to turn the step on or off), its pitch, a tie to the previous step, and its gate. 4. **Sequence** — the step _Rate_, the pattern's _Length_, the note _Order_ and _Humanise_. 5. **Config** — _Trigger_, _Polyrate_ and _One Shot_, plus the _Record_ button in _Fixed Notes_ mode. While the arpeggiator is off, its controls are greyed out. ## The step sequencer ### Velocity bars The height of each bar (2) is that step's velocity — typically, that's how loud the step is played. The taller the bar, the louder the step. Use this to accent every 4th step, for example. `ctrl`/`cmd`\-click a bar to reset it, or `ctrl`/`cmd`\-drag across several to reset them all. There are a few things that are good to know about velocities in Floe. Velocity usually corresponds to volume, but how much depends on the layer's [velocity to volume curve](/docs/beta/usage/config-tab#velocity-to-volume-curve) on the _CONFIG_ tab. That curve sometimes doesn't start at zero, so even the lowest bar may still be heard quietly. Velocity can also affect more than just volume. For multi-sampled Instruments, it may select different samples to play (for example, playing a softer dynamic hit). In _Played Notes_ mode, whilst the step's velocity is a major factor, how hard you play the note that triggers the sequence also plays a part — it scales the step velocities down. In other words, when you play the triggering note as softly as possible (MIDI velocity 1), the step velocities will be 50% as intense. When you play as hard as possible (MIDI velocity 127), the step velocities reach their full intensity. This upholds the natural way you use velocity on a keyboard. Play at full velocity to make the step velocities the only thing that matters. In _Fixed Notes_ mode, how hard you play is ignored. ### Step settings Under each velocity bar is a column of smaller controls (3): ![The rows of step settings under the velocity bars, numbered](https://assets.floe.audio/website/screenshots/arp-step-settings.03a9288cde0f19a0.png)1234 1. **Step number** — click to skip the step, leaving a gap in the pattern. A skipped step keeps its other settings, so you can bring it back later. It still ends the note before it, just as an active step would. 2. **Pitch** — drag up or down to nudge the step's note. In _Played Notes_ mode it's an offset in semitones from whichever held note the step plays. In _Fixed Notes_ mode it's the exact note the step plays. Double-click to type a value. 3. **Tie** — the link icon joins the step to the previous one, so they play as one longer note. Use ties to place some long notes among the short ones. 4. **Gate** — the small knob sets how long each note lasts, as a proportion of the step. Pull it right down for short, percussive notes; at 100% the notes run into each other for a more legato feel. Remember that the volume envelope's release on the layer's _MAIN_ tab may affect what you hear. ### More step options Right-click a velocity bar for a menu of options for that step: reset it, apply its settings to all the steps, reset all the steps, or rotate the whole pattern forwards or backwards by one step. Right-click a pitch or gate control to type a value or reset it, or to apply it to every step or reset it on every step. When the pattern has more steps than fit across the tab, scroll sideways to see the rest; while it plays, the view follows the current step. Alternatively, click _OVERVIEW_ in the top-right corner to squeeze every step on screen at once. You can still draw velocities there, but the other step settings are hidden until you switch back. ## Sequence controls The _SEQUENCE_ section (4) sets the shape and feel of the whole pattern: ![The arpeggiator's SEQUENCE controls](https://assets.floe.audio/website/screenshots/arp-sequence.3fcc1295cec251c5.png) - **Rate** — how long each step lasts, as a note length at your DAW's tempo. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. Together with _Length_ it decides how long the pattern takes to come round: eight steps at 1/8 fills one bar of 4/4. - **Length** — how many steps the pattern runs through before it loops. Steps beyond the length are hidden but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. - **Order** — how the notes you're holding are shared out across the steps. The options include going from lowest to highest or highest to lowest, bouncing between the two, playing at random, and some less common shapes. Hover over the options in the menu for a description of each. _Chord_ is the odd one out: it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in _Fixed Notes_ mode. - **Humanise** — nudges each step's timing and velocity by a random amount, to counteract the machine-gun effect of perfectly identical steps. A few percent takes the mechanical edge off; higher settings give a much looser, hand-played feel. Steps are only ever pushed later, never earlier. _Humanise_ works especially well with _Chord_ order: instead of every note of the chord starting at exactly the same instant, they spread out slightly, for a more natural, wider sound. ## Config controls The _CONFIG_ section (5) sets how the pattern responds to your playing: ![The arpeggiator's CONFIG controls](https://assets.floe.audio/website/screenshots/arp-config.69dfd372a93a94bf.png) - **Trigger** — what a new note does to a pattern that's already running. _Free_ is usually the one you want: the pattern carries on, so you can change chord underneath it without breaking the groove. _Retrigger_ restarts the pattern from the first step every time you press a note, which keeps it locked to your playing. In both modes, letting go of every key (and the sustain pedal) resets the pattern, so the next chord starts from the first step. - **Polyrate** — gives each octave of the notes you're holding its own speed, so one chord can produce several interweaving rhythms. The octave starting at middle C (C3) plays at the _Rate_, and the octaves above and below scale from there. _Double at octaves_ is particularly good: each octave up plays twice as fast as the one below. _3:2 at octaves_ and _4:3 at octaves_ create polyrhythms, where the octaves drift apart and meet up again. Hold two notes an octave apart to hear it most clearly. - **One Shot** — the pattern plays through once and stops, rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes. To play it again, release the keys and press again, or use _Retrigger_. - **Record** — in _Fixed Notes_ mode only; see below. ## Played Notes and Fixed Notes The menu next to the _Arpeggiator_ switch (1) chooses where the steps get their notes from. _Played Notes_ arpeggiates whatever you're holding. Each step plays one of your held notes, chosen by _Order_, moved up or down by the step's pitch offset. _Fixed Notes_ ignores which notes you play, and each step plays a specific note that you set. You still hold a key to make the pattern run, but which key doesn't matter. Every step starts on C3, and you can set each one to any note by dragging its pitch. ![A layer's ARP tab in Fixed Notes mode with its parts numbered](https://assets.floe.audio/website/screenshots/arp-fixed-notes.3501fc38f7f26fd5.png)123 1. **Mode** — the menu beside the _Arpeggiator_ switch, set to _Fixed Notes_. 2. **Step notes** — each step's note, shown by name. Drag one up or down to change it. 3. **Record** — play the pattern in from your keyboard. It's particularly useful with a drum kit Instrument, where each key is a different drum: rather than following your chord, the pattern always plays the drums you've picked. You can also play the pattern in with the _Record_ button (3) in the _CONFIG_ section. Click it, then play notes on your keyboard in your own time: each note you press lands on the next step. Recording stops by itself once the last step is filled, or you can click again to stop early. Only the notes are recorded; each step keeps the velocity, gate and tie you've already set. While recording, your notes play normally rather than through the pattern. If your kick drum is on C3 and your snare on D3, for example, play C3, D3, C3, D3 for an alternating pattern. ## Sliced loops Some Instruments are sliced loops: rhythmic loops marked up with slice points. The arpeggiator is what powers them: each slice becomes a step, so the loop plays in time with your DAW at any tempo. Because each slice is played as it was recorded, rather than being time-stretched, the loop still sounds natural even when your tempo is a long way from the one it was recorded at. With a sliced Instrument loaded, the arpeggiator is always on, and the _ARP_ tab changes a little: ![A layer's ARP tab with a sliced Instrument loaded, with its parts numbered](https://assets.floe.audio/website/screenshots/arp-sliced.080368edd742cf1b.png)12 - The _Arpeggiator_ switch, mode menu and _Length_ are hidden. - Each step has its velocity bar, step number and gate, but no pitch or tie: ties are set for you, so slices longer than one step play in full. - **Auto Rate** appears in the _SEQUENCE_ section (1). It picks the step rate for you, so the loop plays close to the speed it was recorded at rather than leaving silent gaps between slices. It's most useful when making presets: the preset keeps the same feel whether it's loaded into a 60 BPM track or a 170 BPM one. While it's on, the chosen rate is shown in place of the _Rate_ menu. The multiplier shifts that choice: _2x_ for double speed, _0.5x_ for half, with dotted and triplet variants for a different feel. Set it to _Off_ to choose the rate yourself. - A _SLICING_ section (2) appears. **Offset** picks which slice the pattern starts from, so you can begin part-way into the loop: an easy way to get a fresh groove out of a familiar loop. **Length** sets how many slices play before the pattern loops back to the offset, wrapping round the end of the loop if it needs to. Set it to _All_ to play every slice. Looping a short run of slices turns a long loop into a tight, repeating figure. ### Auto Rate and tempo changes You may notice that raising the tempo sometimes makes a loop using _Auto Rate_ play slower, and lowering it can make it play faster: for example, a loop can feel faster at 147 BPM than at 148 BPM. That's because _Auto Rate_ aims to play the loop at roughly the speed it was recorded at, where it sounds most natural, with the fewest silent gaps or overlaps between slices. It can only choose from the tempo-synced note lengths, so when the tempo moves far enough from the loop's own speed, it switches to whichever note length is now closer. Every layer using _Auto Rate_ switches at the same tempos, so they stay in the same rhythmic relationship. ## Good to know - The pattern starts the moment you press the first key, and runs whether or not your DAW is playing. It follows your DAW's tempo, but it isn't lined up to its bars and beats. - The sustain pedal counts as holding notes, so it keeps the pattern running. - The layer's [key range](/docs/beta/usage/config-tab#key-ranges) applies to the notes the arpeggiator plays, not the keys you hold. In _Played Notes_ mode a step whose note lands outside the range is silent. - The [_Monophonic_](/docs/beta/usage/config-tab) setting has no effect while the arpeggiator is running. - In _Free_ mode with _Chord_ order, press the notes of a chord at the same moment. If one arrives slightly late, the first step plays without it, and it joins on the next step. When playing from your DAW, quantising the recorded notes lines them up so every step plays the whole chord. - Right-click the _ARP_ tab to copy and paste the whole arpeggiator, steps included, to another layer. --- # Browsers > How to find and load presets, Instruments and impulse responses with Floe's browsers. The browsers help you find the right items quickly, without scrolling through long lists. Think of them as supercharged drop-down menus. There are three browsers, and they all work the same way. Each one opens when you click the name of the item it loads: - **Preset browser** — click the preset's name in the [top panel](/docs/beta/usage/top-panel), which is there on every page. - **Instrument browser** — click the Instrument name at the top of a layer, on the [_Layers_](/docs/beta/usage/layers#layer-header) page. - **IR browser** — click the IR name in the [Convolution Reverb](/docs/beta/usage/effects#convolution-reverb) effect, on the _Effects_ page. ![Layer 1's Instrument browser, open beneath its selector, with its regions numbered](https://assets.floe.audio/website/screenshots/browser-browse.73d96a92f8a5fdb2.png)12345 1. **Items** — the light panel on the left lists everything you can load. Click one to load it. 2. **Narrowing down** — the dark panel on the right is for narrowing down the list on the left, such as to one sample library or one tag. 3. **Selector** — the box you clicked to open the browser. It stays usable while the browser is open. 4. **Navigation** — step back and forth through the pages of the right-hand panel. 5. **Mode** — switch the right-hand panel between browse mode and [filter mode](#filter-mode). ## Loading items Click an item (1) to load it. The browser stays open, so you can try one sound after another, playing as you go. Once you've loaded something, the browser closes by itself as soon as you move the mouse away from it. You can also double-click an item to load it and close the browser in one go, or close it at any time by clicking outside it or pressing `escape`. While the browser is open, the selector you clicked (3) can still be used: previous, next, random and unload, where it has them. Hover over an item for a moment to see more about it, such as its description. ## Favourites If there are items you keep coming back to, mark them as favourites. Hover over an item and click the next to its name. The star stays lit to show it's a favourite. To see only your favourites, click the in the toolbar at the bottom of the list. Click it again to see everything. Favourites are shared by every instance of Floe, so anything you star in one project is there in the next. ## The list of items The left panel (1) starts off showing everything, and shrinks as you narrow it down with the right panel. Beneath the list, a line of italic text says what you're looking at, such as _Showing all instruments_. As you narrow things down it changes to match, such as _Showing from Lost Reveries_. Each part of it that narrows the list has a : click one to remove it. At the very bottom is a small toolbar: - — jump to the item that's currently loaded. The right panel jumps to where it came from, too. - — show only your favourites. - — search. As you type, the list shows only the items containing your text. `ctrl`+`F` (`cmd`+`F` on macOS) opens it too. ## Narrowing down The right panel (2) has pages that you click through to narrow down the list. In the Instrument browser, for example, you might click _Libraries_, then a particular sample library. The list on the left then shows only that library's Instruments. Numbers in brackets, such as _(26)_, show how many items each option holds. The first page offers two ways in. _Browse by collection_ narrows down by where items come from. _Browse by attribute_ narrows down by their properties, such as their tags or who made them. As you click through the pages, a trail of the pages you've visited builds up at the bottom of the panel (4) — a bit like a web browser. Click any step to jump back to it, or click to go back to the first page. The and arrows step back and forth. ## Right-click menus Right-click items in the browsers for options to do with their files: - **A preset** — open the folder it's in, make it your [default preset](/docs/beta/presets/loading-presets#default-preset), or send it to the bin. - **A preset bank or folder** — open it in your file manager, or uninstall it. - **A sample library** — open its folder, or uninstall it. See [Uninstalling](/docs/beta/installation/uninstalling). ## Keyboard navigation You can use the browsers from your computer keyboard. The focused item gets a blue outline, which appears once you press an arrow key. - `up`/`down` move through the list. - `enter` clicks the focused item. - `tab` moves between the left and right panels. - `left`/`right` move along the trail at the bottom of the right panel. - `ctrl`+`F` (`cmd`+`F` on macOS) opens the search. - `home`/`end` jump to the start or end of the list. - `ctrl`+`up`/`down` (`cmd` on macOS) jump to the previous or next folder. - `page up`/`page down` jump 8 items at a time. ## Filter mode Browse mode, where you click through one page at a time, is all most people need. When you know exactly what you're after, filter mode goes further: it lets you combine several ways of narrowing down at once, such as showing only Instruments tagged _ambient_ from one particular sample library. Switch to it with the button (5), and back to browse mode with . ![The Instrument browser in filter mode, with its regions numbered](https://assets.floe.audio/website/screenshots/browser-full.89de4f11b56240f7.png)1234 1. **Filters** — every option in one tree, rather than pages to click through. Click a to open a section, then click the options you want. 2. **Summary** — what's currently showing. Click the next to a filter to remove it. 3. **Mode** — switch between browse mode and filter mode. 4. **Matching** — choose how your filters combine. The list on the left updates as soon as you click an option. Choose how the filters combine with the button next to the mode switch (4): ![The One, Match all and Match any menu](https://assets.floe.audio/website/screenshots/browser-menu.5ef644a9f8155d92.png) - **Match all (AND)** — the one you'll usually want. Only items that match every selected filter are shown, so the more filters you choose, the shorter the list gets. Filters that would leave nothing to show are greyed out, so you don't hit dead ends. - **Match any (OR)** — items that match any of the selected filters are shown, so the more filters you choose, the longer the list gets. - **One** — only one filter at a time, like browse mode but with the tree layout. Filter mode has its own search, at the bottom of the right panel, for finding a filter in the tree, such as the _aggressive_ tag. Filter mode pairs well with the random button: narrow the list down to the kind of sound you're after, then jump around within it for inspiration. See [Randomisation](/docs/beta/usage/randomisation). ## Tips - The previous, next and random buttons ( ) always stay within the list you've narrowed down to, whether the browser is open or closed. On the _Perform_ page and in the top panel, the preset arrows follow the preset browser in the same way. - Drag the bottom-right corner of a browser to resize it. To make room for longer names, drag the line where the two panels meet. Double-click either to reset it. - Each layer's Instrument browser remembers its own settings. On the _Layers_ page, set up each one the way you like, perhaps the first narrowed to the _bass_ tag and the second to _keys_. Then click the button that randomises every layer, and each one jumps to a random Instrument within its own selection. --- # Config Tab > How a layer responds to your playing, including key ranges, pitch bend, velocity and MPE The _CONFIG_ tab sets how the layer responds to your playing: which keys it uses, and how it follows velocity, pitch bend and MPE controllers. ![A layer's CONFIG tab](https://assets.floe.audio/website/screenshots/layer-config.499578f75666d12d.png)1234567 1. **Transpose** — shift the layer in semitones by changing which samples are triggered, rather than re-pitching the audio as _Pitch_ in the [layer header](/docs/beta/usage/layers#layer-header) does. On a multi-sampled Instrument this keeps the character of the sound intact, so it's the better choice for large shifts. You still play the same keys; they just reach for different samples. 2. **Pitch Bend Range** — how far the pitch wheel bends this layer, in semitones. Each layer has its own, so one layer can bend a whole tone while another ignores the wheel entirely. 3. **Keytrack** — with it on, higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which suits drum hits, loops and sound effects. Some libraries mark particular samples as always or never keytracked. 4. **Monophonic** — what happens when notes overlap. _Off_ is polyphonic: every note gets its own voice. _Retrigger_ plays one note at a time, with each new note releasing the previous one. _Latch_ holds on to the first note, ignoring any new ones, until you let go of every key: useful for drones and textures. Because it's per layer, one layer can play one note at a time while another stays polyphonic. While the layer's [arpeggiator](/docs/beta/usage/arp-tab) is on, this setting has no effect. 5. **MPE** — choose what an MPE controller's press (channel pressure) and slide (CC74) control on this layer, such as volume, filter cutoff, timbre or LFO amount, and by how much. Negative amounts reverse the response. MPE must be switched on in the Performance Controls panel first. See [MIDI](/docs/beta/usage/midi#mpe) for details. 6. **Key Range** and **Key Fade** — give the layer its own portion of the keyboard, with soft edges if you like. 7. **Velocity to volume curve** — how hard you play turns into how loud each note sounds. Steepen the curve for a wider dynamic range, or flatten it to even out your playing. When you play, a red line shows where your note landed. ## Key ranges Key ranges let you split the keyboard into zones, with each layer responding to specific keys. Use them to split the keyboard, stack zones on top of each other, or crossfade smoothly from one sound to another as you play up the keys. ### Setting up key ranges _Key Range_ is the lowest and highest note the layer plays, and _Key Fade_ is how many semitones it takes to fade in at the bottom of the range, and to fade out at the top. Drag a value up or down, click its arrows ( ), or double-click to type it in (a note name, for the range). ![Key range controls](https://assets.floe.audio/website/screenshots/key-range-controls.8f042068dc69b686.png) Fades are what make smooth transitions possible: overlap two layers' ranges by a few notes, fade the lower layer out and the upper layer in across the overlap, and one sound crossfades into the other as you play up the keyboard. To play a different part of a multi-sampled Instrument's mapping, use _Transpose_ on the same tab. It shifts which samples are triggered, so higher or lower samples play, while the layer's _Pitch_ re-pitches the audio by speeding it up or slowing it down. _Transpose_ doesn't move the key range itself. ### Key range display A bar above the keyboard at the bottom of the interface shows which keys trigger each layer, with colours corresponding to each layer. Only layers with an Instrument loaded appear. The bar is hidden when every layer uses the full keyboard range (C-2 to G8), unless an Instrument has named ranges (see below). ![Key range display above the keyboard](https://assets.floe.audio/website/screenshots/key-range-bars.bccf7ecc8a586a01.png) On the _Layers_ and _Effects_ pages, the keyboard shows a section of the full 128 keys: use the [octave controls](/docs/beta/usage/keyboard) to scroll it, and the bar scrolls with it. The _Perform_ page shows a wider, fixed stretch of nine octaves. Vertical lines mark where each range starts and ends, and small chevrons show when a range carries on past the visible keys. Fades show as gradients on the bars: the more transparent, the quieter. Hover over the display to see an enlarged view with more detail. An Instrument can also have named ranges, such as the name of the sound on each key, or each group of drums in a kit. They appear as thicker capsules, labelled in the enlarged view. ![Enlarged key range view with named ranges, fades, and off-screen chevrons](https://assets.floe.audio/website/screenshots/key-range-enlarged.631825e6f15b2f25.png) ## Velocity to volume curve Each layer has its own _velocity to volume curve_, which shapes how hard you play (MIDI velocity) into the volume of each note. ![Velocity to volume curve editor](https://assets.floe.audio/website/screenshots/velocity-curve.7a4bb3dd5dc53a7e.png) ### How the curve works The horizontal axis is velocity — far left is the softest possible velocity (MIDI value 1), far right is the hardest (MIDI value 127). The vertical axis is the resulting note volume. When you play a note, a red indicator appears at its velocity position on the curve so you can see where you're playing. While notes are sounding, each active voice also gets a red line on the layer's volume slider, showing the level that voice is playing at, once the curve, any [key range](#key-ranges) fade and any MPE volume expression are taken into account. A straight line from bottom-left to top-right gives a natural response: the harder you play, the louder the note. Move, add or remove points, or reshape the curve between them, to change this relationship: make soft playing louder than it would be naturally, cap the volume of hard hits, or create a non-linear response that emphasises a particular dynamic range. The curve pictured above is one example. The softest notes stay quiet, the volume climbs steeply as you play a little harder, then it levels off so the hardest hits can't get much louder. Setting different curves across the three layers also opens up creative sound design — for example, fading one layer in as you play harder while another fades out. By default the curve doesn't start at zero, so even the softest notes still make a quiet sound. Drag the left-most point down to the bottom if you want the softest notes to be silent. ### Velocity and multi-sampled Instruments While not directly related to this curve, it's worth noting that velocity does more than just control volume. For multi-sampled Instruments that contain separate velocity layers, a note's velocity also selects _which_ sample is played — not just how loud it is. A low-velocity note on a piano, for instance, plays the soft-velocity samples (with their distinct tone and character) rather than a quieter version of the hard-hit samples. ### Editing the curve - **Double-click** anywhere on the curve to add a control point (up to 8 in total) - **Drag control points** to move them - **Drag between points** to adjust curve shape - **Double-click a point** to remove it - **Shift-drag** for finer control - **`ctrl`/`cmd`\-click** a point to reset its height, or between points to reset that stretch's shape - **Right-click** to add or remove points, copy and paste the curve between layers, or reset it --- # Controls > How to use Floe's knobs, sliders, menus and graphs Almost everything you shape is done with knobs and sliders, and they all work the same way. ## Knobs and sliders - **Drag** — click and drag up or right to increase the value, down or left to decrease it. Use whichever direction feels natural. - **Fine adjustment** — hold `shift` while dragging for four times finer control. You can press or release `shift` mid-drag. - **Reset** — `ctrl`\-click (`cmd`\-click on macOS) to return the control to its default value. - **Type a value** — double-click to type an exact number. You can typically use abbreviations like `2k` instead of 2000 Hz. - **More options** — right-click for a menu of extra actions (see below). When you hover over a control it lights up, and its current value appears below it. Pause on it for a moment and a short description appears too, with a reminder of these shortcuts underneath. Both are adjustable in the preferences: _Show tooltips_ turns the descriptions off, and turning off _Instant value readouts_ makes the value appear only after a moment or while you're dragging. Sometimes controls are greyed out — showing it currently has no effect; such as a filter knob while the filter is switched off. ### Reading a knob A knob shows its value in two places: the line on the dial, and the coloured arc around the edge. These 2 aspects can differ when a [macro](/docs/beta/usage/macros) is controlling the knob. The dial shows the knob's own setting, the one you drag. The coloured arc shows the value you actually hear once the macros have been applied. Hover over the knob to see both readouts. ![The Filter effect's controls, with a macro moving its Cutoff knob](https://assets.floe.audio/website/screenshots/knob.ed9ee6bd141faee8.png) Here, a macro is raising the Filter's _Cutoff_. The dial points to where the knob is set, while the arc reaches further round, to the cutoff you hear. ## The right-click menu ![The right-click menu of the Filter effect's Cutoff knob](https://assets.floe.audio/website/screenshots/knob-menu.2b32dcce31cfb5f2.png) Right-click any knob or slider for extra actions, including: - **Copy Value** and **Paste Value** — carry a setting from one control to another. - **Enter Value** — type an exact value, the same as double-clicking. - **Reset Value to Default** — the same as `ctrl`/`cmd`\-click. - **Reset Value to "…" state** — appears when you've loaded a preset, and names it. It returns just this control to how the preset had it. - **MIDI CC Learn** — link the control to a knob or fader on your MIDI controller. See [MIDI](/docs/beta/usage/midi#midi-cc). Some controls add their own shortcuts. A layer's _Pitch_, for example, has _+1 Octave_ and _\-1 Octave_, and _Detune_ can fold whole semitones into _Pitch_. Many sections have a right-click menu of their own too. Right-click a layer's tab, an envelope or an effect to copy, paste or reset the whole section at once: a quick way to give two layers the same filter settings, for example. ## Menus, buttons and number fields - **Menus** — click to open the list of options. The arrows either side, and , step to the previous or next option, which is a quick way to audition them. Hover over an option in the open menu to see what it does. - **Buttons** — click to switch on or off. Most can be right-clicked for more options. - **Number fields**, such as a layer's _Pitch_ — drag them like a knob, double-click to type, or use the arrows beside them ( ). Menus reset to their default with `ctrl`/`cmd`\-click, just like knobs. ## Graphs Envelopes, filters and EQs have graphs with points you can drag directly. Dragging a point is simply another way of moving the knobs beneath it. Everything above still applies: `shift` for fine adjustment, `ctrl`/`cmd`\-click to reset, double-click to type. Hover over a point to see exactly what it controls. On a filter point, for example, moving left and right changes the cutoff, and moving up and down changes the resonance. On some points, such as the EQ bands, the mouse wheel adjusts the resonance. ## Undo Every change you make can be undone. Use the _Undo_ and _Redo_ buttons in the [top panel](/docs/beta/usage/top-panel#buttons) to step back and forth through your edits. --- # Effects Page > How to use Floe's effects rack, and details of each effect ![Floe's window with the EFFECTS page tab highlighted](https://assets.floe.audio/website/screenshots/page-effects.73801094172d2026.png) The _Effects_ page is where you colour the whole sound. The three [layers](/docs/beta/usage/layers) are mixed together and then passed through a single rack of effects, from top to bottom. Use them lightly to add some space or warmth, or push much further with heavy distortion, filtering and modulation to take the sound somewhere new. There's 12 effects available. Each can be used once in the rack, in whatever order you like. ![Floe's Effects page with its parts numbered](https://assets.floe.audio/website/screenshots/effects.39fc87a1ccda5330.png)12345 1. **Switchboard** — every effect listed in order, each on its own card. Tick a card's checkbox to add that effect to the rack. 2. **Rack** — the effects that are in use, with their controls. 3. **Effect name** — drag it to move the effect up or down the chain. Right-click for more options. 4. **Mix, remove and bypass** — _Mix_ sets how much of the effect you hear, removes the effect from the rack, and bypasses it. 5. **All-effect buttons** — these act on the whole rack at once: randomise , bypass all , and remove all . ### Adding and removing effects The switchboard (1) lists every effect. Those in the rack are shown brightly with a ticked checkbox; the rest are dimmed. - **Add an effect** by ticking its checkbox. Doing so will add it to the rack, and the rack will scroll to show it. - **Remove an effect** by unticking its checkbox, or clicking next to its _Mix_ knob (4). Removing an effect doesn't reset its controls, it will be the same if you re-add it later. - **Jump to an effect** by clicking its card anywhere other than the checkbox. The rack will scroll to show it, with a brief flash so you can spot it. ### Bypassing effects Bypassing an effect lets the sound pass straight through it while it stays in the rack, ready to switch back on. It's the easiest way to hear exactly what an effect is contributing. A bypassed effect is greyed out and uses no CPU. Click next to an effect's _Mix_ knob (4), or the coloured light at the left of its switchboard card, to bypass it. Click again to switch it back on. The button at the top right of the page (5) bypasses every effect in the rack at once, so you can hear your layers without any processing. Click it again to switch them all back on. ### Changing the order The effects run from top to bottom, and the order can make a big difference: a reverb after a distortion gives a clean tail on a gritty sound, while a reverb before it distorts the tail too. Drag an effect's name (3) up or down the rack to move it. You can also drag the cards in the switchboard: hover over a card and a grip appears to show it can be moved. Because the switchboard also shows the effects that aren't in the rack, after some reordering the effects in use can end up scattered among the unused ones. Right-click the switchboard and choose _Tidy FX Order_ to group the effects in the rack at the top, without changing their order. ### Mix Every effect has a _Mix_ knob (4). It blends the sound going into the effect with the effect's output. At 100% you hear only the effect's output; turn it down to bring back more of the unprocessed sound. It's a quick way to set an effect's strength without changing its other settings: a touch of reverb, gentle distortion, or parallel compression, say. ### The all-effect buttons The buttons at the top right of the page (5) act on the whole rack: - **Randomise** — randomly puts each effect in or takes it out of the rack, and shuffles the order. The effects' settings aren't changed. It's a quick way to stumble on combinations you'd never have reached for. Use _Undo_ from the top panel if you don't like the result. For bigger changes, including new settings, try the [Random Variation](/docs/beta/usage/randomisation) strip on the _Perform_ page. - **Bypass all** — deactivates all effects. - **Remove all** — removes every effect from the rack. ### Copying, pasting and resetting Right-click an effect's name in the rack or its card in the switchboard for a menu to: - **Copy and paste one effect** — copy an effect's settings, then paste them onto the same effect on another preset. - **Copy and paste the whole rack** — copy every effect, its order and its settings, then paste them all at once to a new preset. - **Reset** — return the effect's settings to their defaults. Copying works between presets: copy from one, load another, and paste. Right-click an empty part of the switchboard or rack for the whole-rack options, and to paste a single copied effect. ## Distortion ![The Distortion effect at its default settings](https://assets.floe.audio/website/screenshots/effect-distortion.a583b9946e316265.png) Distortion adds harmonics to a sound, anything from gentle tape warmth to outright destruction. Choose a character from the _Type_ menu, then set how hard you push it with the _Drive_ knob. That's the whole workflow; everything else is there to shape the result. The display on the left passes a sine wave through your current settings, so you can see how each type and setting reshapes it. It runs with 4× oversampling and is anti-aliased to stay clean and musical. It also has built-in gain compensation to keep the level steady as you turn up _Drive_ or _Punish_. For the Legacy types, you opt in to this with the _Auto Gain_ switch; for the other types it's always on. - **Type** — the character of the distortion. See below. - **Drive** — how hard the sound is pushed into the distortion, and the main control for how much distortion you hear. Each step of the knob adds a similar amount. For the Mangle types it also moves the effect itself, so the character changes as well as the intensity. - **Punish** — stacks extra distortion stages after the first, each driven harder than the last, like an amp cascading its gain stages. Turn it up for a denser, grittier, more compressed drive that holds its character as notes decay. - **Tilt EQ** — shifts the tone going into the distortion. Turn it up to saturate the highs for a brighter result, or down to push the lows for a warmer, fatter drive. - **Gain** — a flat level adjustment to the distorted sound, before _Mix_ blends it with the unprocessed sound. It's separate from the automatic gain compensation. - **Auto Gain** — for the Legacy types, holds the loudness steady as you turn up _Drive_. For the other types it's always on. The types are grouped into two families in the menu. _Bite_ types saturate and thicken the sound, from clean warmth to hard clipping: - **Tape** — warm and smooth. Rounds off the loud peaks while quieter passages and tails stay clean. - **Valve** — rich, even harmonics that stay musical however hard you push, instead of collapsing into a harsh square. - **Overdrive** — pedal-style grit with a threshold. A note cleans up as it decays, and playing harder brings the bite in. - **Hard Clip** — clean, aggressive brickwall clipping. - **Octave** — adds a hard octave-up edge, then saturates. It squares up on hot notes and follows their dynamics. _Mangle_ types are more extreme, tearing the sound apart and adding new tones rather than just thickening it: - **Bitcrush** — lo-fi digital crunch, made by lowering the effective sample rate. More _Drive_ means coarser and grittier. - **Ring Mod** — multiplies the sound by a low oscillator for clangorous, metallic, bell-like tones. _Drive_ raises the oscillator's pitch and deepens the effect. - **Sine Fold** — folds the wave through a sine curve for interesting, chaotic harmonics. - **Warp** — an asymmetric shaper that bends the wave lopsidedly into a gritty, off-kilter drive. - **Wavefolder** — folds the peaks back on themselves for bright, metallic harmonics. The Legacy types are the original distortion algorithms, kept so that older presets and projects sound the same. They load with _Auto Gain_ off to keep their original level; turn it on to give them the same steady loudness as the other types. ## Bit Crush ![The Bit Crush effect at its default settings](https://assets.floe.audio/website/screenshots/effect-bit-crush.eb0ae0d0c3717f57.png) Bit Crush is a lo-fi effect that degrades the sound in two ways: lowering the sample rate for ringing, metallic aliasing, and lowering the bit depth for gritty noise. The display shows a preview of the crushing applied to a rising test signal. Both controls start at full quality, so turn them down to hear the effect. - **Bits** — lowers the bit depth, adding a gritty digital noise that's most obvious in quiet passages and tails. At the lowest settings quiet sounds crush to silence, so feed the effect a strong signal. - **Samp Rate** — lowers the sample rate by holding each sample for longer. Lower rates fold high frequencies back down into ringing, metallic aliasing: the sound of early samplers and retro hardware. - **Output** — the level after the _Mix_ blend. ## Compressor ![The Compressor effect at its default settings](https://assets.floe.audio/website/screenshots/effect-compressor.5a5d0c835f3f6c23.png) The compressor shapes the dynamics of the sound, evening out the difference between its loud and quiet parts. It has two types, each with its own character. - **Type** — _Modern_ is precise, and gives you the _Attack_ and _Release_ knobs. _Vintage_ has a bit more character, and sets its attack and release for you. - **Threshold** — the level the sound has to rise above before it's compressed. - **Ratio** — how strongly the sound is compressed once it's above the threshold. Higher ratios compress more, and above about 2:1 the pumping becomes much more noticeable. - **Attack** and **Release** (_Modern_ only) — how quickly the compressor responds to a rise in level, and how quickly it recovers after the level drops. - **Gain** — adjusts the level after compression. - **Auto Gain** (_Vintage_ only) — automatically adjusts the level so the sound stays consistently loud however hard it's compressed. Three meters show what the compressor is doing: _In_ is the incoming level, with a marker at the threshold; _GR_ (gain reduction) is how much it's turning the sound down; and _Out_ is the final level. ## Filter ![The Filter effect at its default settings](https://assets.floe.audio/website/screenshots/effect-filter.6e299e9ebedef899.png) The Filter cuts away part of the frequency range, or boosts or dips it. It's a single filter across the whole mix; each layer also has its own filter for shaping notes individually (see [Layers](/docs/beta/usage/main-tab#filter)). - **Type** — the shape of the filter, such as low-pass, high-pass, band-pass, notch, peak or shelf. The low-pass and high-pass types come in 12 and 24 dB per octave slopes. - **Cutoff** — where the filter does its work: where the low-pass and high-pass filters roll off from, the centre of the band for band-pass and notch, or the corner for the shelves. - **Reso** — resonance, which emphasises the frequencies right at the cutoff, adding a peak there on the low-pass and high-pass filters. For band-pass and notch it narrows the band, for peak it tightens the boost, and for the shelves it steepens the corner. - **Gain** — how far the peak and shelf types boost or cut. It only appears for those types. ## Stereo Widen ![The Stereo Widen effect at its default settings](https://assets.floe.audio/website/screenshots/effect-stereo-widen.689f9c85db9c28f0.png) Stereo Widen narrows the sound towards mono or spreads it out wider. Each layer also has its own _Stereo_ control, if you want to widen just one of them. - **Mode** — how the widening is done. Hover over the options in the menu for a description of each. - _Balanced_ keeps the loudness the same wherever _Width_ is set. It's the one to reach for by default. - _Bass Mono_ widens in the same way, but keeps everything below the _Bass Mono_ frequency in the centre. - _Legacy_ is the widening from older versions of Floe, kept so that existing presets sound as they always did. It gets louder as _Width_ goes up. - **Width** — negative values pull the sound towards mono, positive values push it wider, and 0% leaves it as it is. It works by rebalancing the mid (what both channels share) against the side (what differs between them). At the far left only the mid is left; at the far right only the side is left, so anything dead centre disappears. - **Bass Mono** (_Bass Mono_ mode only) — the frequency below which the sound is kept in the centre. Holding the low end in the middle keeps kicks and basslines solid, and stops them losing power on mono systems. The split uses a 24 dB per octave Linkwitz-Riley crossover, so the two bands recombine without a dip around the crossover point. ## Chorus ![The Chorus effect at its default settings](https://assets.floe.audio/website/screenshots/effect-chorus.3bdf4b0fca3fc2fe.png) The Chorus thickens the sound by layering it with delayed copies that drift in pitch. Gentle settings add a subtle shimmer and movement, while deeper settings give an obvious, tape-like wobble. - **Rate** — how quickly the pitch drifts up and down. Low settings give a gentle swelling movement, while turning it up gives a quicker, shimmering warble. - **Depth** — how far the pitch drifts away from the original. Small amounts thicken the sound, while larger amounts give an obvious wobble. At zero, the delayed copies are still there, adding a static colouration. - **High-pass** — removes low frequencies from the chorused copies, leaving the unprocessed sound untouched. Raise it to keep the bass tight and free from movement. - **Output** — the level after the _Mix_ blend. ## Reverb ![The Reverb effect at its default settings](https://assets.floe.audio/website/screenshots/effect-reverb.3ca4505d77aaecb2.png) The Reverb simulates the reflections of a real space, from a small, tight room to a vast hall that takes many seconds to fade. It can also modulate its tail for a shimmering, moving sound. - **Pre LP** and **Pre HP** — low-pass and high-pass filters on the sound going into the reverb. _Pre LP_ rolls off the highs for a darker, more distant space. _Pre HP_ rolls off the lows, keeping the tail clear so the bass stays tight and centred. The unprocessed sound keeps its full range. - **Lo-Shelf** and **Lo-Gain** — cut the reverb's tail below the _Lo-Shelf_ frequency by the _Lo-Gain_ amount. The cut builds up as the tail recirculates, so the low end thins out as the reverb fades: handy for stopping long tails clouding the bass. Turn _Lo-Gain_ down to hear it work. - **Hi-Shelf** and **Hi-Gain** — the same for the highs, so they die away first, just as soft furnishings absorb them in a real room. - **Decay** — how long the tail takes to fade away once a sound stops. It holds steady whatever the _Size_, so you can choose the length of the reverb and the character of the space separately. - **Size** — how large the space feels. Small values pack the reflections together for a boxy, coloured character; large values spread them out for something open and airy. - **Predelay** — holds the reverb back for a moment so the unprocessed sound is heard on its own first. Short amounts keep the sound upfront and defined, while longer amounts push the walls further away. - **Mod Rate** and **Depth** — make the reflections drift, smearing the resonances that build up in the tail. A little _Depth_ stops long tails ringing; more gives an obvious shimmer and movement. _Mod Rate_ sets how quickly the drift moves: keep it low for a gentle, breathing wash, or turn it up for a quicker, more distinct warble. ## Delay ![The Delay effect at its default settings](https://assets.floe.audio/website/screenshots/effect-delay.e6e66ebc5fbfc868.png) The Delay is a stereo echo. You can set the left and right times separately, either freely or synced to tempo, bounce the repeats between the speakers with the ping-pong modes, and thin them out with a filter as they fade. - **Time L** and **Time R** — the gap between the repeats in the left and right channels. With _Tempo Sync_ off, they're set freely in milliseconds. Very short times stop sounding like separate echoes and become a metallic, resonant tone instead. - **Tempo Sync** — sets the times as note lengths that follow your DAW's tempo, keeping the repeats in time with your track. - **Feedback** — how long the echoes trail on for. Low amounts give a handful of repeats, while high amounts carry on long after the note has gone. It works by feeding each repeat back in to make the next one. - **Mode** — how the repeats move around the stereo image: - _Mono_ — both channels repeat at the _Time L_ setting, so the echoes sit where the original sound sits in the stereo image. _Time R_ is unused. - _Stereo_ — each channel has its own delay, so setting _Time L_ and _Time R_ apart spreads the repeats across the stereo image. - _Ping-pong_ — the sound is summed to the centre, and the repeats then bounce from one side to the other, with _Time L_ and _Time R_ setting how long each half of the bounce lasts. - _Mid ping-pong_ — the repeats bounce from side to side as in _Ping-pong_, but the sound keeps its stereo image on the way in. Choose _Ping-pong_ for the clearest left-right bounce, especially from a wide sound, and _Mid ping-pong_ when you want the echoes to keep some of the original's width. - **Filter** and **Spread** — a band-pass filter the repeats run through, leaving the unprocessed sound untouched. _Filter_ sets the centre of the band and _Spread_ its width. Wide open, the repeats stay close to the original sound; narrowed, they squeeze towards the _Filter_ frequency. The filter sits inside the feedback loop, so every repeat is filtered again and the echoes thin out as they fade. ## Convolution Reverb ![The Convolution Reverb effect at its default settings](https://assets.floe.audio/website/screenshots/effect-convolution-reverb.80934c27d68d6c02.png) The Convolution Reverb gets all its character from an impulse response (IR): a recording of how a space or object responds to sound. Floe's IRs are chosen for character. Some are realistic spaces, but most are stranger: textures and resonances that can transform a sound, making this as much a sound-design tool as a reverb. - **Impulse** — click the IR's name to choose one in the [IR browser](/docs/beta/usage/browsers). The arrows beside it, and , step to the previous or next IR, and jumps to a random one. All three follow the filters you've set in the IR browser. unloads the IR. There's no reverb until one is loaded. - **High-pass** — rolls off the low end of the reverb to avoid muddy bass, before the _Mix_ blend. - **Output** — the level after the _Mix_ blend. Floe always has its own built-in IRs, and some sample libraries add more. ## Phaser ![The Phaser effect at its default settings](https://assets.floe.audio/website/screenshots/effect-phaser.440718747662cf50.png) The Phaser sweeps a series of peaks and notches through the sound, giving it the classic swooshing, jet-like motion. Gentle settings add a subtle sense of movement to sustained sounds, while faster or more resonant ones become an unmistakable whoosh. - **Freq** — the centre of the sweep. Keep it low for a deep, throaty movement, or raise it to place the phasing amongst the brighter harmonics. - **Feedback** — sharpens the peaks and deepens the notches. Small amounts keep it a gentle swoosh, while higher amounts give the sweep a resonant, whistling edge. - **Shape** — how many peaks and notches there are. Turned down, there's a single broad one for a soft, vowel-like sweep; turned up, there are more of them for a richer, more obvious phasing. - **Rate** — how quickly the peaks sweep up and down. Low settings give a gentle, drifting movement, while turning it up makes the sweep a warble. - **Depth** — how far the peaks travel either side of _Freq_. Small amounts give a narrow, shimmering movement, while larger amounts sweep across the whole spectrum. With _Depth_ all the way down, the peaks hold still, leaving a fixed colouration that you can sweep by hand with _Freq_. - **Stereo** — offsets the left and right sweeps from each other so the movement drifts across the stereo image. At zero both channels sweep together; at maximum they sweep in opposite directions, for a wide, swirling feel. ## EQ ![The EQ effect at its default settings](https://assets.floe.audio/website/screenshots/effect-eq.65bb6b6d6747ec42.png) The EQ is a three-band equaliser for lifting or taming parts of the frequency range, from broad tonal shaping to surgical cuts. Each layer also has its own EQ (see [Layers](/docs/beta/usage/eq-tab)). The graph shows the combined effect of all three bands. Drag a band's handle to move it, scroll over it to change its resonance, or right-click it to change its type or copy and paste the whole band. The three bands have identical controls: - **Type** — a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a low-pass or high-pass filter for rolling off one end of the spectrum. - **Freq** — where the band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. - **Reso** — how tightly the band is focused. For peaks and notches it's the width, from broad and gentle to tight and focused. The shelves use it to steepen their corner, and the pass filters to add a peak at the cutoff. - **Gain** — how far the band boosts or cuts. Only the peak and shelf types use it. ## Limiter ![The Limiter effect at its default settings](https://assets.floe.audio/website/screenshots/effect-limiter.411ca416265c7bf3.png) The limiter is a brickwall limiter: it holds your output firmly below a maximum level, whether you just want to catch stray peaks or push the overall level up without clipping. It's usually best placed last in the rack, so it catches everything above it. - **Gain** — drives the sound harder into the limiter. The harder you push, the more it's limited, making the sound louder and denser. - **Ceiling** — the level the output is never allowed to go above. Leave a small safety margin below 0 dB, giving headroom for whatever comes after Floe. Three meters show what the limiter is doing: _In_ is the incoming level, _GR_ (gain reduction) is how much it's turning the sound down, and _Out_ is the final level. It's a true-peak limiter, so the _Ceiling_ is a reliable maximum for the output. It looks a fraction of a millisecond ahead in the audio so it can react before a peak arrives. The delay is so small (0.5 ms) that Floe absorbs it rather than asking your DAW to compensate for it, so you don't need to do anything about it. Thanks to that short lookahead, the limiter is fast and transparent for moderate amounts of limiting. Push it hard and there's less room for the gain change to ramp smoothly, so you may start to hear it colour or slightly distort the sound. If that happens, back off the _Gain_ or raise the _Ceiling_ a little. --- # EQ Tab > Shape a layer's tone with its three-band equaliser The _EQ_ tab has a three-band equaliser for shaping the layer's tone before it's mixed with the other layers. ![A layer's EQ tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-eq.9ddfe3af1923a2ab.png)123 1. **On/off** — switch the EQ on or off. A dot on the _EQ_ tab shows that it's on. 2. **EQ graph** — shows the combined effect of all three bands. Drag a band's point to move it, use your mouse scroll wheel over it to change its resonance, or right-click it to change its type or copy and paste the whole band. For band types without a gain control, dragging up and down changes the resonance. 3. **Bands** — the three bands have identical controls: - **Type** — a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. - **Freq** — where the band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. - **Reso** — how tightly the band is focused. For peaks and notches it's the width; shelves use it to steepen their corner, and pass filters to add a peak at the cutoff. - **Gain** — how far the band boosts or cuts. Only the peak and shelf types use it. --- # Keyboard > The on-screen keyboard in Floe's bottom panel, and what it shows about the notes and voices playing The bottom panel of Floe's window is home to the on-screen keyboard. It's there on every page, and it's a quick way to see which notes are coming in, how many voices each one is playing, and which keys play which layer. You can click it to play notes too. ![The bottom panel on the Layers page, with a chord held on the keyboard](https://assets.floe.audio/website/screenshots/keyboard.65449d5b30f4e02c.png)12345 1. **Tabs** — _PLAY_ shows the keyboard and macros. _MACROS_ shows the panel where you [set up the macros](/docs/beta/usage/macros#making-your-own-macros). 2. **Macros** — the four macro knobs, the same ones as on the _Perform_ page. A greyed-out macro has nothing linked to it. See [Macros](/docs/beta/usage/macros). 3. **Key range bars** — which keys play each layer, shown when any layer is limited to part of the keyboard. 4. **Keys** — held notes light up, and red marks along the top show the voices sounding on each note. 5. **Octave** — scroll the keyboard up or down to see a different part of the note range. On the _Perform_ page, the bottom panel is simpler: there are no tabs, macros or octave controls, and the keyboard stretches across the whole panel to show nine octaves at once. ## Playing notes Click a key to play it. Where you click sets the velocity: near the top of the key for the softest note, lower down for harder. A clicked note plays just like a note from your MIDI keyboard, so the layers' key ranges, the arpeggiator and everything else apply as usual. Throughout the UI we label middle C (MIDI note 60) as C3. But some DAWs call that note C4. ## What the keyboard shows The keys light up when you play, whether that's from your MIDI keyboard, your DAW, or a click, on any MIDI channel. The red marks along the top of a key show the voices currently sounding on that note. A note can have more than one voice, such as one for each layer, and the mark gets stronger the more voices there are. Marks often linger after you let go, because each voice plays on through the release of its [volume envelope](/docs/beta/usage/main-tab#volume-envelope). If you've set a _Reset keyswitch_ in [Performance Controls](/docs/beta/usage/performance-controls), that key has a blue marker along its bottom edge. See [Reproducibility](/docs/beta/usage/reproducibility). ## Key range bars When a layer is limited to part of the keyboard, the bars above the keys (3) show which keys trigger each layer, with a separate colour for each layer. Hover over them for an enlarged view that names each layer's Instrument. See [Key range display](/docs/beta/usage/config-tab#key-range-display) for everything the bars show, and [Key ranges](/docs/beta/usage/config-tab#key-ranges) for how to set ranges up. --- # Layers Page > How to build and shape sounds with Floe's three layers ![Floe's window with the LAYERS page tab highlighted](https://assets.floe.audio/website/screenshots/page-layers.cf24954b099e9572.png) Floe is built around three layers, each holding a sound of its own, playing together as one. For each layer, you pick a sound source, its _Instrument_, then shape it further with envelopes, filters, an LFO, looping and more. A sound can use a single layer or blend two or three together. The LAYERS page is where you control all aspects of these identical layers. ## How sound flows through the engine When you play a note, all three layers play at once (unless a layer is limited to a [key range](/docs/beta/usage/config-tab#key-ranges)). Each is processed on its own, then the three are mixed together and sent through the [effects rack](/docs/beta/usage/effects) and the master volume. A layer with no Instrument is simply silent. ## The layer layout ![Floe's Layers page with the parts of a layer numbered](https://assets.floe.audio/website/screenshots/layers.b8bae924c810b253.png)1234 1. **Layer header** — the layer's Instrument and its mixing controls, always visible. 2. **Tabs** — switch between the layer's groups of controls: _PLAYBACK_, _MAIN_, _LFO_, _EQ_, _ARP_ and _CONFIG_. A dot on the _EQ_, _LFO_ or _ARP_ tab shows that it's switched on. 3. **Tab controls** — the controls for the selected tab. Each tab has its own chapter. You can right-click these to copy, paste or reset all of its settings at once. It's a quick way to give two layers the same configuration. 4. **All-layer buttons** — these act on all three layers together. loads a random Instrument into every layer, with each layer following its own Instrument browser filters (see [Randomisation](/docs/beta/usage/randomisation)). clears every layer. ## Layer header ![A layer's header with its controls numbered](https://assets.floe.audio/website/screenshots/layer-top-controls.2543928912c17947.png)123456 1. **Instrument selector** — shows the layer's Instrument. Click it to open the [Instrument browser](/docs/beta/usage/browsers) and choose a different one. Right-click for more options: unload the Instrument, copy and paste the Instrument or the whole layer, or swap this layer with the one to its left or right (macro assignments move with a swapped layer). 2. **Instrument navigation** — the arrows step to the previous or next Instrument, and jumps to a random one: a quick way to audition sounds without opening the browser. They follow the filters you've set in the Instrument browser, so they only move between the Instruments that match. unloads the Instrument, leaving the layer empty and silent. 3. **Mute and Solo** — _Mute_ silences this layer, and _Solo_ lets you hear it on its own. Silenced layers keep running in the background, so if you unmute or unsolo them they carry on seamlessly from wherever they've got to. To save CPU, unload the Instrument instead. It's simplest to just use either Solo or Mute across the layers, not both — if you do mix them, Solo is prioritised over Mute. 4. **Volume** — the layer's level, with its level meter alongside. While notes are sounding, red marks on the slider show the level of each voice. A voice's level depends on its velocity, where it falls in a [key range](/docs/beta/usage/config-tab#key-ranges) fade, and any MPE volume expression. 5. **Pan and Stereo** — _Pan_ places the layer anywhere from left to right. It uses a constant-power pan law (-3 dB at centre), so the layer keeps the same perceived loudness wherever you put it. _Stereo_ narrows or widens the layer: negative values pull it toward mono, positive values push it wider. Pan comes after Stereo, so you can narrow a wide sound and then place it as a single point. A mono sound has nothing to widen, so pushing it to maximum stereo width silences it. 6. **Detune and Pitch** — _Pitch_ moves the layer up or down in semitones, and _Detune_ fine-tunes it in cents (hundredths of a semitone). Both work by speeding up or slowing down the audio. Right-click _Pitch_ to jump up or down an octave. Right-click _Detune_ and choose _Fold into Pitch_ to move any whole semitones from _Detune_ into _Pitch_, leaving the overall tuning unchanged. For a multi-sampled Instrument, _Transpose_ on the [CONFIG tab](/docs/beta/usage/config-tab) may sound more natural. See [Controls](/docs/beta/usage/controls) for the ways to adjust knobs, sliders and number fields. ## The tabs Below the header, each layer's controls are grouped into six tabs. Each has its own chapter: - [**PLAYBACK**](/docs/beta/usage/playback-tab) — how the layer plays its samples: play mode, sample start, reverse, [granular synthesis](/docs/beta/usage/playback-tab#granular-synthesis) and [looping](/docs/beta/usage/playback-tab#looping). - [**MAIN**](/docs/beta/usage/main-tab) — the [volume envelope](/docs/beta/usage/main-tab#volume-envelope) and [filter](/docs/beta/usage/main-tab#filter). - [**LFO**](/docs/beta/usage/lfo-tab) — add movement to various aspects. - [**EQ**](/docs/beta/usage/eq-tab) — a three-band equaliser to shape the layer's tone. - [**ARP**](/docs/beta/usage/arp-tab) — the arpeggiator, which turns held notes into rhythmic patterns. - [**CONFIG**](/docs/beta/usage/config-tab) — how the layer responds to your playing: transpose, pitch bend, keytracking, monophonic, MPE, [key ranges](/docs/beta/usage/config-tab#key-ranges) and the velocity curve. Right-click a tab to copy, paste or reset all of its settings at once. Copy a tab on one layer and paste it into another to give both layers the same settings, or reset a tab to start it afresh. ![The menu that opens when you right-click a layer's MAIN tab](https://assets.floe.audio/website/screenshots/layer-tab-menu.43085b4dca75ff1e.png) --- # LFO Tab > Add movement to a layer by modulating its volume, filter, pan, pitch or grain position Use the LFO (low frequency oscillator) to add movement to the sound, modulating one of the layer's controls such as its volume or filter cutoff. ![A layer's LFO tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-lfo.dee1730f34b4599a.png)1234 1. **On/off** — switch the LFO on or off. A dot on the _LFO_ tab shows that it's on. 2. **LFO display** — a live preview of the LFO's shape and speed. Drag it left and right to change _Time_, and up and down to change _Amount_. 3. **Target, Shape and Mode**: - **Target** — what the LFO moves: _Volume_, _Filter_, _Pan_, _Pitch_ or _Grain Position_. The movement happens around the target's current setting. Some targets need their feature switched on first: for example, the filter must be on for the _Filter_ target, and the play mode must be _Granular Fixed_ for _Grain Position_. - **Shape** — the LFO's waveform. Alongside the classic shapes there are random and plucky ones. - **Variation** — appears when a random shape (_Random Steps_ or _Random Glide_) is selected. It allows you to remove the element of chance from random movement. _Different on every note_ gives each note a fresh random pattern. _Identical on all notes_ plays exactly the same pattern every time, chosen by the **Seed** number: try a few until you find a movement you like. It's saved with the preset, so everyone hears the same movement. _Identical on each key_ gives each key its own repeatable pattern. In _Free_ mode, a note that joins already-sounding notes follows their pattern. The Seed works because the random steps follow a sequence of numbers that only looks random: the Seed is where that sequence starts. Learn more about seeds and reproducibility on the [Reproducibility](/docs/beta/usage/reproducibility) page. - **Mode** — with _Retrigger_, every note starts the LFO from the beginning of its cycle. With _Free_, a new note joins in wherever the layer's sounding notes have reached, so all the notes move together. 4. **Amount and Time**: - **Amount** — how far the LFO moves its target. Negative values flip the shape upside down. If MPE press or slide is routed to the LFO amount (see the [CONFIG tab](/docs/beta/usage/config-tab)), red marks show each voice's current amount. - **Time** — how long each cycle lasts. With _Sync_ on, it's a note length at your DAW's tempo, such as 1/4; a D means dotted and a T means triplet. With _Sync_ off, it's a speed in Hz. - **Sync** — tie the LFO to your DAW's tempo. Both the synced and free _Time_ settings are remembered, so you can switch between them without losing either. --- # Macros > Shape a sound with knobs that move several controls at once, and make your own A macro is a knob that moves other controls for you. Floe has four of them, and each can be linked to up to six controls anywhere in Floe, each by its own amount. ![The four macro knobs in the bottom panel, each named for what it does in the preset](https://assets.floe.audio/website/screenshots/macros-play.33614f920333aa4e.png) Preset authors use macros in two main ways. Sometimes a macro simply brings forward one control that matters a lot for this particular sound, tuned to a useful range, so you don't have to go looking for it. Other times it moves several controls together to create something that feels like a brand-new control made for the preset. A macro called _Surge_ might push up a distortion's drive, open a low-pass filter and thicken a granular texture, all with one turn. Each macro has a name, chosen by whoever made the preset, that hints at what it does. Not every preset uses all four. ## Playing with macros The macro knobs appear on the [_Perform_](/docs/beta/usage/perform) page, and on the _PLAY_ tab of the bottom panel when you're on the [_Layers_](/docs/beta/usage/layers) or [_Effects_](/docs/beta/usage/effects) page. They're the same four knobs in both places. A greyed-out macro isn't linked to anything, so it does nothing. Your MIDI keyboard's mod wheel is linked to the first macro, so you can shape the sound as you play. You can change this, and link the other macros to knobs or faders on your controller, in the [Performance Controls](/docs/beta/usage/performance-controls) panel. Macros are also handy for automation in your DAW: one lane can move several controls at once. When a macro moves a knob, the knob's coloured arc separates from its dial. The dial shows the knob's own setting; the arc shows the value you actually hear. See [Controls](/docs/beta/usage/controls). ## Making your own macros Macros aren't only for preset authors. Once you're comfortable designing your own sounds, a macro or two can give your own presets a few expressive controls that shape the sound exactly the way you want, ready for your MIDI controller or DAW automation. The first macro is a good one to start with, since your mod wheel already moves it. To set up macros, go to the _Layers_ or _Effects_ page and click the _MACROS_ tab on the left of the bottom panel. Each macro's knob is shown alongside its settings. ![The MACROS tab of the bottom panel, showing the first macro with its parts numbered](https://assets.floe.audio/website/screenshots/macros.dda7e4e0ecfb2b8a.png)123 1. **Destination knobs** — one blue knob for each control the macro is linked to, setting how far the macro moves it. 2. **Add destination** — link another control to the macro. 3. **Name** — click to rename the macro. _Linking controls, setting their amounts, and renaming a macro_ ### Linking a control 1. **Click** next to the macro (2). Every control you can link to gets a blue plus icon of its own, across the whole window. 2. **Hover** over one of them. A line joins it to the macro, with a note of what's about to be connected. 3. **Click** to make the link. A new blue destination knob (1) appears next to the macro. To cancel instead, press `escape` or click somewhere empty. You can link knobs, sliders and number fields. You can also link the handles you drag around, such as the points on the envelopes and the EQ graph, or the loop points on the waveform. ### Setting the amount There are two kinds of knob here, and they do different jobs. The macro knob is the one you play: turning it moves every control linked to it at once. Each blue destination knob (1) is one you set and then leave alone: it decides how far the macro moves its one control, anywhere from a subtle nudge to a sweep across the control's whole range. A new link starts at zero, so the macro does nothing to that control until you change it. The easiest way to set it is to turn the macro all the way up, then drag the destination knob while you play. Watch the linked control's coloured arc move, and listen until it sounds right. - **Right of centre** — the control goes up as the macro goes up. - **Left of centre** — the control goes down as the macro goes up. The destination knob isn't linear: more of its travel is given to small amounts, so they're easier to set precisely. Hover over a destination knob to see what it's linked to. It also shows the control's value right now, and what it will be with the macro at 0% and at 100%. Rest the cursor there for a moment and Floe draws a line to the linked control, scrolling it into view if needed. Double-click a destination knob to type an amount, or right-click it for more options: copy and paste the amount between destinations, type a value, reset it to zero, invert it, or edit its range. ### Editing the range Instead of setting an amount, you can set the two values the control moves between, in the control's own units: a filter sweeping from 200 Hz to 2 kHz, say. Right-click a destination knob and choose _Edit Range…_. The popup has two knobs: - **Macro at 0%** — the control's value when the macro is fully down. - **Macro at 100%** — the control's value when the macro is fully up. Each knob changes only its own end, so you can raise the bottom of a filter sweep without changing where it ends up. While you hold either knob, you hear the sound as it would be with the macro at that end, though the macro itself doesn't move. Play some notes as you drag to find exactly the right values. Changing an end also changes what you hear with the macro where it is now. To keep the current sound, tick _Move (macro name) to keep this value_: Floe moves the macro to whichever position gives the control the value it has now. Everything else the macro controls moves with it. ### How a macro moves a control A macro moves a control relative to the control's own setting. With the macro at 0%, the control is exactly where you set it, and turning the macro up adds the amount on top. So adjusting the control itself shifts the whole sweep up or down. If more than one macro is linked to the same control, their movements add together. A control can never go beyond its normal range, however far the macros push it. ### Removing a link Hover over a destination knob and a red appears beneath it. Click it to remove the link. The control keeps its own setting; it just stops following the macro. ### Naming macros Click the name (3) and type a new one. Choose a name that says what the macro does to the sound, such as _Brightness_ or _Swell_. The name is saved with the preset and labels the macro knob everywhere it appears. ### Copying, swapping and resetting Right-click a macro knob for these options, alongside the usual ones for any knob: - **Copy Macro** and **Paste Macro** — copy a macro's value, name and links onto another macro. - **Swap with Left** and **Swap with Right** — exchange the macro with its neighbour, along with its value, name and links. This doesn't move MIDI CC assignments or DAW automation, though. - **Reset Macro to Default** — start the macro afresh, with no links and its original name. The next option resets it to how it was in the loaded preset instead. ### Legacy destinations A yellow on a destination knob means it's linked to a [legacy parameter](/docs/beta/reference/legacy-parameters). These are kept so older DAW projects still work, and you'll only hear the macro move it while the legacy override is active. Legacy destinations can't use _Edit Range…_. --- # Main Tab > Shape each note's volume and tone over time with a layer's volume envelope and filter The _MAIN_ tab shapes how each note's volume and tone change over time, using the volume envelope and the filter. ![A layer's MAIN tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-main.86776d3fc54ab4a0.png)1234 1. **Volume envelope** — its switch and graph. 2. **Filter** — its switch and graph. 3. **Filter controls** — _Type_, _Cut_, _Res_ and _Env_. 4. **Filter envelope** — shapes how the cutoff moves over time. ## Volume envelope - **On/off** — the volume envelope is typically best left on. If you turn it off every note plays its sample straight through to the end, however briefly you press the key: handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off. And since notes can't be cut short, voices can pile up and use a lot of CPU if you play quickly. - **Envelope graph** — drag its three points to shape each note's volume over time: the first sets the _Attack_, the second the _Decay_ and _Sustain_ together, and the third the _Release_. ## Filter Each note gets its own filter, so the filter envelope and the LFO can sweep every note independently. It's a clean, digital-sounding state-variable filter (12 dB per octave). For broader tone shaping, see the [EQ tab](/docs/beta/usage/eq-tab). - **On/off** — switch the filter on or off. - **Filter graph** — shows the filter's response. Drag the point left and right to set the cutoff, and up and down for the resonance. - **Type** — choose the kind of filter, such as low-pass, high-pass or band-pass. Hover over the options in the menu for a description of each. - **Cut** — the cutoff frequency, where the filter takes effect. The filter envelope and LFO move the cutoff around this setting. If MPE press or slide is routed to the filter (see the [CONFIG tab](/docs/beta/usage/config-tab)), red marks show each voice's current cutoff. - **Res** — resonance, which emphasises the frequencies around the cutoff. It never self-oscillates. For the band-pass, notch and band-shelving types it also narrows the band, and for the peak type it sets the size of the boost. - **Env** — how strongly the filter envelope moves the cutoff on each note. At the centre it does nothing. Turn it up and the cutoff rises and falls with the envelope; turn it down and the cutoff moves the opposite way. With a low-pass filter, for example, a long attack opens the sound up gradually as each note begins. - **Filter envelope** — works like the volume envelope, shaping how the cutoff moves over time, scaled by _Env_. --- # MIDI > Information about MIDI control in Floe Floe responds to MIDI the way you'd expect from a software instrument: notes and velocity, the sustain pedal and pitch wheel, CC controllers mapped to its parameters, and MPE for expressive controllers. - **Velocity** — how hard you play sets each note's volume, shaped by each layer's [velocity to volume curve](/docs/beta/usage/config-tab#velocity-to-volume-curve) on its _CONFIG_ tab. On multi-sampled Instruments with velocity layers, it also picks which samples play. - **Sustain pedal** — CC-64 holds notes after you release the keys, until you lift the pedal, just like a piano's sustain pedal. - **Pitch wheel** — how far it bends is set per layer with _Pitch Bend Range_ on the layer's [_CONFIG_ tab](/docs/beta/usage/config-tab), so one layer can bend a whole tone while another underneath it stays put. A range of 0 disables pitch bend for that layer. - **All Notes Off and All Sound Off** — the channel messages that DAWs and controllers send to stop stuck notes. All Notes Off (CC-123) releases every note on that channel, including sustained ones, so they fade out naturally; All Sound Off (CC-120) silences them immediately. ## MIDI CC All automatable parameters can be assigned to a MIDI CC, so you can move them with the knobs and faders on your MIDI controller. ### Creating a mapping Right-click a parameter (a knob or slider anywhere on the UI) and select _MIDI CC Learn_, then move the dial on your MIDI controller that you want to assign. To remove a mapping, right-click the parameter and select _Remove MIDI CC_ (followed by the CC number). A mapped CC works on any MIDI channel. You can also add and remove mappings from the [Performance Controls](/docs/beta/usage/performance-controls) panel, which lists every mapping on the current instance in one place. ![MIDI CC tab of the Performance Controls panel](https://assets.floe.audio/website/screenshots/midi-cc.2063ddce6cec1071.png) ### Default mappings Unless you have changed your default Performance Controls, these mappings will be assigned: - **CC 1 (Modwheel)** — Macro 1 - **CC 7** — Master Volume - **CC 11** — Master Timbre ### How mappings are saved MIDI CC mappings are part of the [Performance Controls](/docs/beta/usage/performance-controls) system. They apply only to the current instance of Floe, but you can set up a default configuration that all new instances start with. Presets never touch them, so you can browse presets without your settings changing each time. ## MPE MIDI Polyphonic Expression (MPE) lets compatible controllers, such as the Seaboard, LinnStrument, Osmose and Haken Continuum, shape each note independently. To switch it on, open the [Performance Controls](/docs/beta/usage/performance-controls) panel with in the top panel, click the _MPE_ tab, and tick _MPE (MIDI Polyphonic Expression)_. ![The MPE tab of the Performance Controls panel](https://assets.floe.audio/website/screenshots/mpe.2d6bff66cf1a9aa7.png) Once it's on, each note responds to the standard MPE per-note messages: - **Glide**: pitch bend on a note's channel bends just that note, following the MPE ±48-semitone convention (or whatever range your controller negotiates). The master channel's pitch wheel still bends everything, using each layer's pitch bend range parameter. - **Press**: each note's channel pressure (aftertouch). - **Slide**: each note's CC74. Choose what press and slide control for each layer with the _MPE_ button on its [_CONFIG_ tab](/docs/beta/usage/config-tab). Each has a target (_Volume_, _Filter_, _Timbre_ or _LFO Amount_) and an amount. The amount can be negative to invert the response, or beyond 100% to reach the full effect with a smaller gesture. With the _Volume_ target, press brings each note up to the level of the layer's _Volume_ slider, and slide works like a fader for each note, topping out at the slider's level. So until you apply expression, notes play quieter than the slider. The _Filter_, _Timbre_ and _LFO Amount_ targets nudge a setting for each note individually: _Filter_ moves the layer's filter cutoff, _Timbre_ the master _Timbre_ control, and _LFO Amount_ the layer's LFO _Amount_. Press adds to the setting, while slide can move it either way, with its centre position leaving it unchanged. The _MPE smoothing_ setting in the [Performance Controls](/docs/beta/usage/performance-controls) panel sets how gradually press and slide respond: lower is more responsive, higher is smoother. While notes are sounding, each active voice gets a red line on whichever control press or slide is routed to — the filter cutoff knob, the LFO Amount knob, or the master Timbre knob in the top panel — so you can see the expression from each voice. The MPE Configuration Message for zone setup is supported too, and a sustain pedal on a zone's master channel sustains the whole zone. CLAP note expressions (per-note pitch, pressure, and brightness) work the same way in supporting hosts regardless of the MPE setting. --- # Perform Page > The distraction-free page for exploring presets and variations ![Floe's window with the PERFORM page tab highlighted](https://assets.floe.audio/website/screenshots/page-perform.2da3c92ed66c142e.png) The _Perform_ page is a good place to start when you're getting to know a sample library and its presets. It shows the artwork in full, and gathers the controls you'll reach for most often into one uncluttered panel. Most of the controls here also appear elsewhere in the interface. They're the same controls, so a change on one page shows up on the other. When you're ready to go deeper, everything else can be found on the [_Layers_](/docs/beta/usage/layers) and [_Effects_](/docs/beta/usage/effects) pages. ![Floe's Perform page and top panel with their controls numbered](https://assets.floe.audio/website/screenshots/perform.a40ff59a2509fcb3.png)12345678910 1. **Preset box** — in the top panel. Click it to open the preset browser. 2. **Preset** — the name of the current preset's sample library, with the preset's name beneath it. The arrows either side, and , step to the previous or next preset, just like the arrows in the top panel. 3. **Folder** — the folder the preset lives in, which usually tells you what kind of sound it is. 4. **Macros** — four knobs set up to shape this particular sound. 5. **Layers** — the Instrument on each of the three layers, with its mute, solo and volume controls. 6. **Random variation** — click the strip for a fresh take on the preset. 7. **Compare** — switch between the preset as it was loaded and your changes. 8. **Description** — more about the preset, from its author or written automatically by Floe. 9. **Hide panel** — hides the panel so you can see the artwork in full. The arrow only appears when you hover just above the panel. 10. **Keyboard** — lights up with the notes you play, and you can click it to play notes too. See [Keyboard](/docs/beta/usage/keyboard). ## Choosing presets The arrows (2) are the quickest way to audition presets: play a few notes, click an arrow, and play again. To look through them by folder or tag, click the preset name in the top panel (1) to open the preset browser. See [Loading Presets](/docs/beta/presets/loading-presets) for more ways to find presets. Once you change anything, the preset's name is marked _(modified)_. ## Macros Use the macros (4) to shape the preset to your liking. Each one is tuned to move one or more settings in a musical way, and the knob's name hints at what it does. A greyed-out macro isn't used by the preset. By default, your mod wheel is linked to the first macro, so you can shape the sound as you play. See also [Macros](/docs/beta/usage/macros) and [MIDI](/docs/beta/usage/midi). ## Layers Each preset is built from up to three layers (5). Not every preset uses all three. For each active layer you'll see: - **Instrument** — the name of the layer's Instrument, with the folder it comes from in italics. Click it to open the [Instrument browser](/docs/beta/usage/browsers) and choose a different one. - **Waveform** — a picture of the Instrument's sound. - **Mute and Solo** — _M_ silences the layer, and _S_ lets you hear it on its own. Try each layer in turn to hear what it adds to the whole. - **Volume** — the slider sets the layer's level, with its level meter alongside. For everything else a layer can do, switch to the [_Layers_](/docs/beta/usage/layers) page. ## Random variation Click anywhere on the _Random Variation_ strip (6) for a fresh take on the preset. Where you click sets how far it strays. Towards the left gives gentle, related tweaks; towards the right gets wilder, with Instruments swapped, layers added and effects changed. Hover over the strip to see how big a change you'll get. The button at its left edge rolls another variation at the same amount as last time. Every variation starts from the preset as you loaded it, so you can keep clicking without drifting ever further away. _Undo_ in the top panel steps back through them. When you find one you like, save it as a preset to keep it. See [Randomisation](/docs/beta/usage/randomisation). ## Compare Once you've changed something, the _Original/Modified_ switch (7) lets you flick between the preset as it was last loaded or saved and your changed version. It's an easy way to check that your changes really are an improvement. If you edit anything while you're listening to the original, that edit replaces your modified version, but you can always get it back with _Undo_. ## Description The description tells you about the preset, such as any unusual tuning or tips for playing it. The top panel shows its opening, usually a summary of the sound, and the rest continues here (8). If the whole description fits in the top panel, Floe fills this space with a generated summary of the preset instead. ## Seeing the artwork in full Hover just above the panel, in the middle, and a small arrow appears (9). Click it to hide the panel and see the artwork uncovered. Click the arrow again to bring the panel back. --- # Performance Controls > The Performance Controls panel — MIDI CC mappings, MPE, Reproducibility, and Profiles The _Performance Controls_ panel is where you set up how Floe responds to your playing and your controllers. Open it with in the top panel, or from the main menu. ![The Performance Controls panel with its parts numbered](https://assets.floe.audio/website/screenshots/performance-controls.2063ddce6cec1071.png)123 1. **Profiles menu** — load and save profiles. It reads _Profiles_ until you load one, and then shows that profile's name. 2. **Settings for new instances** — make this panel's settings the ones new instances start with. 3. **Tabs**: - **MIDI CC** — every [MIDI CC mapping](/docs/beta/usage/midi#midi-cc) on this instance. Remove one with its button, or click _Add_ to create one by choosing a CC number and a parameter, as an alternative to right-clicking a knob and using _MIDI CC Learn_. - **Reproducibility** — the _Seed_ and reset settings that make Floe's random elements play back the same every time. See [Reproducibility](/docs/beta/usage/reproducibility). - **MPE** — switch on [MPE](/docs/beta/usage/midi#mpe) for expressive controllers, and set how smoothly per-note expression responds. ## Scope Everything in this panel belongs to the current instance rather than being a global preference. When you save your DAW project, these settings are saved with it, so the next time you open the project you can perform it the same way. Different instances in the same project can each have their own settings. However, loading a _preset_ leaves it untouched, meaning you can audition presets without disturbing your performance setup. ## Settings for new instances Each Floe instance has its own performance controls, but you can choose what new instances start with: their MIDI CC mappings, MPE, and Reproducibility settings. Set the panel up the way you like, then click _Make default_ (2), just below the panel's title. The reset button beside it does the reverse, returning this instance to your defaults. Both only appear when the current settings differ from your defaults; otherwise a _Default for new instances_ label shows in their place. For example, say your keyboard has a fader that you always want on the second macro. Assign it once with _MIDI CC Learn_, click _Make default_, and every new instance you add from then on starts with that fader ready to go. Instances already in your projects keep their own settings. Floe's own defaults include some common MIDI CC mappings, such as the mod wheel (CC1) to the first macro. See [MIDI](/docs/beta/usage/midi#default-mappings) for the full list. ## Profiles A profile is a named, saved bundle of the panel's settings, like a save file for this Performance Controls. Profiles are useful when you switch between MIDI controllers regularly: save one profile per controller, then switch between them as you swap hardware. Open the _Profiles_ menu (1) at the top-right of the panel to: - Load a profile, applying it to the current instance immediately. This is a one-shot copy, not a persistent link: further changes to the instance don't affect the saved profile unless you save over it. - Save the current settings as a new profile. - Overwrite, rename, or delete an existing profile. Once a profile is loaded, the menu shows its name, with an asterisk when you've changed the settings since. --- # Playback Tab > How a layer plays its samples, including granular synthesis and looping The _PLAYBACK_ tab controls how the layer plays its Instrument's samples: straight through, rebuilt into textures by the [granular engine](#granular-synthesis), or [looping](#looping) for as long as you hold a note. ![A layer's PLAYBACK tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-playback.306deb78b66d7fc2.png)12345 1. **Play mode** — there are three modes: - _Standard Playback_ plays each sample straight through (or [loops](#looping) part of it). - _Granular Playback_ uses [granular synthesis](#granular-synthesis), with the point the grains come from moving through the sample at a speed you choose (and looping, if a loop is set). - _Granular Fixed_ also uses granular synthesis, with the point the grains come from set directly by a _Position_ control rather than moving on its own. 2. **Waveform display** — for a single-sample Instrument, this is the sample itself. A multi-sampled Instrument contains many samples, so this shows the one from the most recent note (or a representative one until you play). If notes change too quickly to follow, it pauses on a recent sample, shown with a checkered overlay. When you play, red markers track each voice through the sample. The waveform often has [looping](#looping) controls as well. - **Sample start** — the arrow on the bottom edge of the waveform sets where playback begins. Drag it to skip the beginning of the sound; the skipped part is shaded. If you move it into the audio, a few milliseconds of _Attack_ on the [volume envelope](/docs/beta/usage/main-tab#volume-envelope) avoids clicks. It isn't available for sliced Instruments. 3. **Sample info** — shows whether the Instrument is a single sample or a multisample, with details such as the number of samples, or a single sample's length and root key. 4. **Reverse** — play the samples backwards. It works in every play mode, with or without looping. The waveform flips to match, so playback always runs from left to right. 5. **Loop mode** — choose how the sound loops, if at all. For example, you can use the Instrument's built-in loops, or set your own loop points on the waveform. Hover over the selector to see what the current setting does for this Instrument, and why some options may be unavailable. Floe comes with a few simple built-in waveforms (oscillators). Many of the controls above don't apply to them, and so are hidden. Since they're algorithmic waveforms, the red voice markers are placed left to right by pitch instead of moving through a sample. ## Granular synthesis As well as playing samples the usual way, from start to finish, each layer can switch to the granular engine. Granular synthesis plays lots of small snippets of the sample, called grains. Each grain can come from a different part of the sample, and play in a different direction, at a different pitch, or from a different place in the stereo field. It can completely transform a sample. It's particularly good at smooth, lush textures. You can isolate a tiny fraction of a sample, such as one particular tonal moment, and hold it for as long as you like by running lots of grains over it. It's just as good at crackly, gritty textures, or at sparse ones where the grains are spread out so you can hear each one coming from a different point in the sample. The granular engine works with any sampled Instrument. For each note, the grains come from the sample that note would normally play. Granular synthesis uses randomness to keep the grains spontaneous and natural-sounding, rather than a mechanical, machine-gun-like repetition. Because of that, the sound can vary from note to note. When you want the same result every time, you have full control over that too: see [Reproducibility](/docs/beta/usage/reproducibility). ### The two granular modes Choose a granular mode from the play mode menu at the top of the tab, where _Standard Playback_ is the usual way of playing samples. - **Granular Playback** — the point the grains come from travels through the sample at a steady speed, set by _Speed_. Use it to slow a sample down or speed it up without changing its pitch. It's not as precise as a dedicated time-stretching algorithm, but it gives a grainy or lush kind of time-stretch that's useful in its own right. Turn _Speed_ right down and the playhead barely moves, so a sample only a couple of seconds long can give you a whole minute of slowly changing texture. _Speed_ at 100%, the centre of the knob, is the sample's original speed, and the playhead still follows the sample start, looping and _Reverse_ settings. - **Granular Fixed** — instead of _Speed_ there's a _Position_ knob, which picks a precise point in the sample for all the grains to come from. _Spread_ sets how wide that region is. Apart from _Speed_ and _Position_, the two modes have exactly the same controls. ### Getting started Granular Fixed is perhaps the best place to start, because you can see and hear exactly what each control does. ![A layer's PLAYBACK tab in Granular Fixed mode with its parts numbered](https://assets.floe.audio/website/screenshots/layer-playback-granular-fixed.2140192424972f7d.png)123456 1. **Share grains** — how grains build up when you play several notes at once. 2. **Variation** — take the element of chance out of the grains. 3. **Waveform display** — shows where the grains come from. 4. **Playhead** — where in the sample the grains come from. 5. **Grains** — the shape of each grain, and how much they overlap. 6. **Random** — how much each grain differs from the next. Choose _Granular Fixed_ from the play mode menu, then use _Position_ to pick the point in the sample you want to isolate. The highlighted region on the waveform shows where grains will come from. Play some keys: all the sound you hear is coming from that exact point, and lilac lines on the waveform show each grain as it plays. From there, try these controls: ![The PLAYHEAD and GRAINS controls](https://assets.floe.audio/website/screenshots/granular-controls.9551a5fa66a30bfb.png) - **Density** — perhaps the next most useful control. It works a bit like an overlap percentage: at 0%, each grain starts as the previous one ends. Turn it up and new grains start sooner, so they overlap more and more, up to 100% where there may be hundreds of grains playing. Low values give an open texture where you can pick out individual grains; high values build a thick, continuous wash. High _Density_ uses more CPU. - **Length** — how long each grain lasts. Short grains chop the sound into a fine, buzzy texture; long grains keep much more of the sample's natural character. _Density_ and _Smooth_ are both measured relative to _Length_, so changing it changes how they feel too. - **Smooth** — how gently each grain fades in and out. High values give a softer texture, with neighbouring grains blending into each other. Low values make grains start and stop abruptly, for a grittier, glitchier texture. - **Spread** — widens the region that grains can come from, which you can see straight away on the waveform: each grain starts somewhere between _Position_ and a point this far past it. A narrow spread gives an isolated, pinpoint tone. Spread it out completely and grains come from all over the sample, for a texture that's much more varied, unexpected and full of different tones. ### Random The controls under the _RANDOM_ heading (6) make the texture even more varied. Each grain picks its own settings at random as it starts, within the range you set. At 0% every grain is the same. ![The RANDOM controls and the Intervals menu](https://assets.floe.audio/website/screenshots/granular-random.2567c6ef69428431.png) - **Pan** — the higher it goes, the more likely grains are to be panned left and right. Especially with a high _Density_, it gives a rich stereo image, with grains spread right across it. - **Detune** — sets each grain's pitch at random, up to a semitone up or down. Low values give a chorus or unison-like thickness; high values sound obviously out of tune. - **Direction** — the chance of each grain playing in the opposite direction, backwards if the playhead is going forwards. At 100%, each grain is equally likely to play either way. - **Harmony** — the chance of a grain playing at a musical interval from the note you played. It works with the _Intervals_ menu beside it, and does nothing until you've chosen at least one interval there. For example, click _12_ in the menu's grid and some grains will play 12 semitones (an octave) above your note; turn up _Harmony_ and more of them will. Click a selected interval again to turn it off. You can pick lots of intervals at once, or choose a preset such as _Wide Octaves_, _Major Triad_ or _Pentatonic_. The note you played is always included. It's a great way to make lush, interesting tones. ![The open Intervals menu, with presets on the left and the grid of intervals on the right](https://assets.floe.audio/website/screenshots/granular-harmony.7692588f84b54478.png) ### Share grains The button just to the right of the mode's name, showing a cloud of dots (1), chooses how grains build up when you play several notes at once. Hover over it to see which way it's set. It's there for both granular modes. - **Shared grains** — the number of grains stays the same however many notes you play. If you're after a sparse texture, it stays sparse even when you play a whole chord. Each grain plays from one of the held notes, so at a low _Density_ you can hear the grains hop between the notes of the chord. This is the default setting. - **Per-voice grains** — every note you play adds its own full set of grains. If your _Density_ setting gives 20 overlapping grains, a second note adds another 20, so the sound gets denser, and possibly louder, with each note. ### Variation ![The Variation and Seed settings, open beneath the Variation button](https://assets.floe.audio/website/screenshots/granular-variation.865ff2e8cbd88c95.png) Each grain picks its starting point, pan, detune and so on at random, so every note you play scatters its grains differently. That keeps a granular sound alive, but it also means a pattern of grains you love might not come back. _Variation_ lets you make the grains the same every time instead. Click the button (2), to the right of the share grains button, and choose one of these: - **Different on every note** (default) — every note scatters its grains differently. The best choice for most sounds, especially dense, textural ones. Even in this mode, you can get reproducible renders of your DAW track, see [Reproducibility](/docs/beta/usage/reproducibility). - **Identical on all notes** — every note plays exactly the same grains. Hold a chord and each note plays them at its own pitch. With shared grains, the notes take turns, so you hear the same grains come back at different pitches. - **Identical on each key** — each key gets its own pattern of grains. C3 always sounds the same, D3 always sounds the same (but is different to C3), etc.. With either _Identical_ option, the _Seed_ number picks which pattern repeats. Try a few numbers until you find one you like. It's saved with the preset, so the grains you chose are the grains everyone hears. The button lights up while one of the _Identical_ options is chosen. See [Reproducibility](/docs/beta/usage/reproducibility) for more on seeds, and on making a whole performance come out the same every time in your DAW. ### Granular tips - In _Granular Fixed_ mode, the point the grains come from only moves when _Position_ does. To make it wander through the sample on its own, set the [LFO's](/docs/beta/usage/lfo-tab) target to _Grain Position_: the LFO sweeps _Position_ back and forth, so the texture keeps changing as you hold a note. Or link _Position_ to a [macro](/docs/beta/usage/macros) to move it by hand as you play. - The volume envelope, filter, EQ and effects all shape the granular sound just as they would in _Standard Playback_. - When designing a sound, try _Identical on all notes_ with a low _Density_ and step through a few _Seed_ values. Once you hear a grain scatter you like, save the preset and it's kept exactly. ## Looping You can loop part of a sample for as long as you hold a note. Even a short sample can then sustain indefinitely, or you can pick out a section that has some movement in it, so the sound cycles through it over and over. You have full control over where the loop sits and how smoothly it joins up. Looping works in _Standard Playback_ and in the _Granular Playback_ [granular mode](#granular-synthesis). ![A layer's waveform and loop controls with their parts numbered](https://assets.floe.audio/website/screenshots/looping.4f51878d98be7c61.png)123456 1. **Loop start** — where the loop begins. 2. **Loop end** — where the loop finishes, and playback goes back round. 3. **Crossfade** — how smoothly the loop joins up. 4. **Sample start** — where playback begins when you press a key. It isn't part of the loop, but it lives alongside it. 5. **Reverse** — play the samples, and the loop, backwards. The loop end then appears on the left and the loop start on the right, though the loop points themselves don't change. 6. **Loop mode** — how the sound loops, if at all. ### Loop modes There are two modes of looping: - **Standard** — when playback reaches the loop end, it jumps back to the loop start, optionally smoothing the jump with a crossfade. - **Ping-pong** — uses the same start and end points, but at each end of the loop the playback direction reverses, so it goes back over what it just played, the other way. Choose the loop mode from the selector (6). Which options are available depends on the Instrument. Some let you set your own loop points, some come with loops already built in, and some keep that control to themselves, such as sounds that are perfectly sustained or already loop. ![The loop mode menu](https://assets.floe.audio/website/screenshots/loop-mode-menu.96adc5ab47405221.png) - **Default** — let the Instrument decide: each sound loops, or doesn't, just as it was designed to. The menu shows what that means for the current Instrument. - **Built-in Loop - Standard** and **Built-in Loop - Ping-pong** — use the loop points that come built into the Instrument, looping in the direction you choose. - **No Loop** — each sound plays straight through. - **Custom Loop - Standard** and **Custom Loop - Ping-pong** — set your own loop points on the waveform. Options that aren't available for the current Instrument are dimmed: hover over one to see why. Some Instruments have no built-in loops, for example, or don't allow custom loop points, or have sounds that must always loop. The selector itself shows what's actually happening, and hovering over it explains the current setting. The arrows beside it, and , step through only the options that are available. ### Setting your own loop Choose one of the _Custom Loop_ modes, and the loop's handles appear on the waveform. Drag the loop start (1) and loop end (2) to set where the loop sits. The highlighted region between them is the part that loops. Drag inside the region to move the whole loop without changing its length. The handles work like Floe's other [controls](/docs/beta/usage/controls): double-click one to type an exact value, `shift`\-drag for finer control, and `ctrl`/`cmd`\-click to reset it. Double-clicking the highlighted region types a value for the loop start. For a multi-sampled Instrument, the loop points are positions through the sample, as a percentage of its length. Whichever sample a note triggers, it loops between those same percentages. With a built-in loop on an Instrument that has just one sample, the handles show where the loop sits, but they're greyed out and can't be moved. To set your own, choose one of the _Custom Loop_ modes. ### Crossfade A loop can click as playback jumps from one point in the sample to another. The crossfade (3) blends the audio across the join to smooth it out. A small crossfade usually helps, especially for sustained or tonal sounds. Drag its handle to change it. - In _Standard_ mode, the crossfade happens as playback nears the loop end, blending into the audio just before the loop start. Its handle sits inside the loop. - In _Ping-pong_ mode, the crossfade smooths each turnaround, blending in the audio just beyond the loop point. Its handle sits outside the loop. The crossfade needs audio before the loop start to blend in from, so it can't be used while the loop starts at the very beginning of the sample: its handle is greyed out until you move the loop start later. The crossfade also has to fit within the loop and the sample, so it shrinks automatically if you make the loop too small for it. In _Ping-pong_ mode, it also needs room after the loop end. ### Looping tips - Looping needs the [volume envelope](/docs/beta/usage/main-tab#volume-envelope) to be on. With it off, nothing would ever bring a looping note to an end. - Pitch is changed by speeding up or slowing down playback. So the higher you play, the faster the loop cycles, and the lower you play, the slower. In _Granular Playback_ mode, the loop cycles at the rate set by _Speed_ instead. - In _Granular Fixed_ mode the grains always come from the _Position_ you choose, so there's no looping and the loop controls are hidden. - A loop can be moved by a [macro](/docs/beta/usage/macros). The highlighted region then shows where the loop actually is, while the handles stay at their own settings. - Release samples, which some Instruments play when you let go of a key, never loop. --- # Randomisation > Use an element of chance to find sounds you might not have found yourself Floe has a few features that bring in an element of chance. It's a way to find spontaneous inspiration, and sounds you might not have reached for yourself. They're also good fun. As with anything left to chance, sometimes the results are great and sometimes they're a bit too wacky. The _Undo_ button in the top panel is always available. All of these randomisation buttons use the same shuffle icon, so you can identify them at a glance. ## Random variation The main random feature is the _Random Variation_ strip on the [_Perform_](/docs/beta/usage/perform) page. It takes the preset you've loaded and changes some of its properties, giving you a fresh take on the sound. ![The Random Variation strip on the Perform page](https://assets.floe.audio/website/screenshots/perform-variation-strip.68e36d0f47412a76.png) Click anywhere on the strip. Where you click sets how far the variation strays from the preset. Towards the left, the changes are mostly subtle and the sound keeps its character. Move towards the right to venture into wilder changes. As you hover, the strip shows the amount and a word for it, from _small variation_ to _extreme variation_. The button at the left of the strip rolls another variation at the same amount as last time, so you can try several takes at an intensity you like. Every variation starts from the preset as you loaded it, not from the previous variation, so you can keep clicking without drifting ever further away. When you find one you like, save it as a preset. That keeps it, and makes it the new starting point for further variations. If nothing is loaded, the strip builds a random sound instead, around an Instrument picked at random. ### What a variation changes A variation reworks the preset rather than starting from scratch, so it usually keeps something of the original's feel. Depending on how far right you click, it may: - **Swap Instruments** — each layer can get a different Instrument. Further left, the new one is usually a close relative, from the same library or folder or with similar tags. Further right, it can come from anywhere. With more than one layer in use, one is sometimes left as it is. Layers using a built-in waveform are never changed. - **Fill or empty layers** — an empty layer may get an Instrument, and occasionally a layer is cleared. Filling is much more likely than emptying, so wilder variations tend to add to the sound rather than thin it out. At least one layer always keeps an Instrument. - **Move the macros** — some of the preset's [macros](/docs/beta/usage/macros) are turned by a noticeable amount, taking everything they control with them. - **Change the effects** — some effects' mix levels move, and a few effects are switched on or off. An effect that's switched on gets fresh settings, kept within sensible limits so it won't suddenly jump in level. - **Shift octaves** — now and then, a layer's _Transpose_ moves up or down an octave or two. ## Jumping to a random item in a browser Wherever you can choose a preset, an Instrument or an impulse response, there's a button that jumps to a random one: - **Presets** — in the top panel, next to the preset name. - **Instruments** — in each layer's header on the [_Layers_](/docs/beta/usage/layers#layer-header) page. It loads a random Instrument into that layer only. - **Impulse responses** — on the [Convolution Reverb](/docs/beta/usage/effects#convolution-reverb) effect. Each button is linked to its [browser](/docs/beta/usage/browsers): it only picks from what that browser's filters allow, so you can set the bounds of what "random" means. Filter the preset browser to one library and a tag such as _ambient_, say, then keep clicking to jump around within that selection. The same goes for the browser's own button while it's open. ## Layers and effects The button at the top right of the [_Layers_](/docs/beta/usage/layers) page loads a random Instrument into all three layers at once, as if you'd clicked each layer's button in turn. Each layer has its own Instrument browser filters, so narrow the first layer to bass sounds and the second to textures, for example, then click it to roll through combinations that stay within those bounds. The button at the top right of the [_Effects_](/docs/beta/usage/effects) page randomly puts each effect in or takes it out of the rack, and shuffles their order. It leaves each effect's settings alone, so anything you've dialled in is still there when the effect comes back. ## Randomness in the sound itself Parts of the audio engine, such as the [granular engine](/docs/beta/usage/playback-tab#granular-synthesis), also use randomness while you play, to create varied, natural-sounding performances. See [Reproducibility](/docs/beta/usage/reproducibility). --- # Reproducibility > How to make Floe's playback exactly reproducible in a DAW Some features, most noticeably granular synthesis and the random LFO shapes, are designed around randomness to make the sound more natural and lively. Normally you don't need to worry about reproducibility: Floe's default setting, _Reset on transport_, covers most uses by making every render of your track in your DAW come out exactly the same. But sometimes those choices aren't quite what you want, such as grains landing in the wrong places or a random LFO moving the wrong way at a key moment. For that, Floe has _seed_ settings that let you take more control. To understand what a seed does, it helps to know that Floe's randomness isn't truly random. It comes from a sequence of numbers that looks random. The sequence is so long that it never comes round again in practice, but it's fixed: from the same starting point, it always unfolds the same way. The seed is that starting point. So you keep all the spontaneity of random choices, but the same seed always gives the same choices. Floe goes back to the start of the seed's sequence only at certain moments, called resets. You choose when they happen, and which seed to use, on the _Reproducibility_ tab of the [Performance Controls](/docs/beta/usage/performance-controls) panel: ![Reproducibility tab of the Performance Controls panel, with its settings numbered](https://assets.floe.audio/website/screenshots/reproducibility.acda98d8ce410fef.png)123 1. **Reset on transport** — reset whenever you press play or start a render in your DAW. Play your track from the top twice and you hear exactly the same thing both times. It's on by default. 2. **Reset keyswitch** — reset whenever Floe receives the MIDI note you choose here. Put that note in your MIDI just before a section, and that section plays back identically every time, wherever you start playback from. The keyswitch note makes no sound, and it's shown as a blue marker on the on-screen keyboard. 3. **Seed** — which sequence Floe starts from. Change it to hear a different take, just as lively as the last and just as repeatable. You can use either kind of reset, or both. The _Seed_ also covers these smaller sources of variation: - The arpeggiator's _Humanise_ and random note orders - Which round robin sample plays first after a reset - The _White Noise_ Instruments ## Workflow The _Seed_ settings are a finishing step. You choose a seed once your MIDI is recorded and you're getting ready to render, rather than while you're improvising. There's one _Seed_ for the whole instance of Floe, and every random choice Floe makes moves its sequence along. So each choice affects all the choices that come after it. That's why it's important to ensure that you play the exact same notes with the exact same timing. A saved MIDI item in your DAW ensures this. ### With _Reset on transport_ This is the default. Floe starts from the _Seed_ whenever you press play or render, so everything from that point on comes out the same every time. To judge a seed properly, render the whole track again, or play it from the very start. It won't sound the same if you start playback in the middle of a MIDI item, or between MIDI items played by the same instance of Floe, because Floe needs to make all the same choices from start to finish, not starting in the middle. So the workflow is: 1. Render your track, or play it from the very start. 2. If something isn't quite right, change the _Seed_. 3. Render again and listen, repeating until you have a take you like. If Floe only plays in one part of your track, you don't need to go right back to the start. Anywhere before Floe's first note works just as well, since Floe hasn't made any choices before then. ### With _Reset keyswitch_ A _Reset keyswitch_ lets you lock in a performance with more granularity. Floe starts again from the _Seed_ every time the keyswitch note plays, so everything after it comes out the same no matter where you started playback or what Floe played before. You can add several of these lock-in points through your track, allowing you to audition the section after each one by starting playback just before its keyswitch. This also suits looping a section: put the keyswitch at the start of the loop. A DAW loop jumping back to its start doesn't count as pressing play, so without the keyswitch each pass carries on from where the last one left off. The catch is that every keyswitch uses the same _Seed_. If you change the seed to get a better take of one section, every other section that follows a keyswitch changes too. If a seed suits one section of your track but not another, load a second instance of Floe for that section and give it its own seed. ### Per-layer seeds instead The [granular engine](/docs/beta/usage/playback-tab#variation) and the LFO's [random shapes](/docs/beta/usage/lfo-tab) offer an alternative to all of this: a per-layer seed , saved with the preset. Rather than waiting for a reset, it applies every time a note starts, so each note gets its own sequence. Choose one of the _Identical_ modes and try a few _Seed_ values until you like the result. It then sounds exactly the same on any computer, in any instance of Floe, without needing any of the settings above. Unlike the instance's _Seed_, it's a sound-design setting you can choose at any time. ## Tips - Floe can't recapture a variation after the fact. If an improvised take sounds great, the random choices behind it are gone. Record the MIDI first, then try seeds against it. - Performance Controls settings belong to the instance, so loading a preset leaves them untouched: you can try out presets without losing your seed and reset setup. - When designing a granular sound, try _Identical on all notes_ with a low _Density_ and step through a few _Seed_ values. --- # Top Panel and Main Menu > The top panel's preset box, buttons, master controls and meters, and everything in the main menu The top panel runs along the top of Floe's window and stays there on every page. It holds the things that apply to the whole sound rather than to one page: the current preset, undo and redo, the master controls and the output meters, along with the buttons that open Floe's other windows. ![Floe's top panel with its parts numbered](https://assets.floe.audio/website/screenshots/top-panel-overview.6c17c53c76feceb5.png)12345 1. **Logo and version** — the version of Floe you're running. If you turn on _Show instance name_ on the _General_ tab of Preferences, this instance's [name](/docs/beta/support/autosave#instance-names) appears after it. 2. **Preset box** — the current preset's name and description, with buttons to step through presets, save, and load a preset from a file. Click the name to open the preset browser. See [The preset box](/docs/beta/presets/loading-presets#the-preset-box). 3. **Buttons** — Preferences, Performance Controls, undo and redo, and the main menu. 4. **Timbre and Volume** — the master controls, which act on everything you hear. 5. **Meters** — the level of the final output. ## Buttons - **Preferences** — settings for Floe itself rather than for your sound, such as how the interface looks and where your sounds and presets are installed. They're saved on your computer and apply to every instance of Floe. - **Performance Controls** — how you play Floe: mostly MIDI settings, plus options for making performances exactly reproducible. They're saved with this instance in your DAW project, and loading a preset never changes them. See [Performance Controls](/docs/beta/usage/performance-controls). - **Undo** — step back through your changes to the sound, including tweaks to controls and loading Instruments or effects, so you can experiment freely. Hover over the button to see which change it will undo. - **Redo** — bring back a change you've just undone. If you make a new change instead, there's nothing left to redo. - **Attribution** — appears in red when a sound you've loaded comes from a library that asks to be credited. Click it for the exact text to use. See [Attribution](/docs/beta/reference/attribution). - **Main menu** — more options, and Floe's other windows. A red dot on the button means a new version of Floe is available: see [Updating](/docs/beta/installation/download-and-install-floe#updating). ## Master controls - **Volume** — the final stage of the sound. It comes after the [effects rack](/docs/beta/usage/effects), so it sets the overall level of everything just before the audio leaves Floe. - **Timbre** — some Instruments are built with crossfade layers: variations of the same sound, such as soft to hard or dark to bright. _Timbre_ sweeps between them, so you can shape the tone. While you drag it, the Instruments that respond are highlighted. When none of the loaded Instruments have crossfade layers, the knob is greyed out. An MPE controller can move it for each note separately: see [MIDI](/docs/beta/usage/midi#mpe). ## Meters The peak meter (5) shows the level of the final output, measured after the master _Volume_. It flashes red if the signal clips above 0 dB. There's also an optional loudness (LUFS) meter, mostly useful if you're making presets and want them to sit at a consistent level. Turn on _Show Loudness (LUFS) meter_ on the _General_ tab of Preferences, and hover over it for details. ## The main menu Click , the last of the buttons (3), to open the main menu. ![Floe's main menu, open beneath its button in the top panel](https://assets.floe.audio/website/screenshots/main-menu.f549d251ee1a692d.png) - **Load Blank Preset** — return every setting to its default and clear all the Instruments and IRs, ready to build a sound from scratch. Remember, if you need it, _Undo_ brings back what you had. - **Panic (Stop All Sound)** — stop all audio and clear every playing note. Handy if a note gets stuck. - **Rescan Libraries & Presets** — Floe notices new and changed files in its folders by itself, but if something you've added doesn't show up, this makes it look through every folder again. - **Preferences** and **Performance Controls** — the same as the buttons in the top panel. - **Info** — the _Libraries_ tab shows what's installed and is where you can [uninstall](/docs/beta/installation/uninstalling) it. The other tabs show your version of Floe and whether an update is available, the legal notices, and some metrics, such as how many voices are playing and how much memory the samples use. - **Library Terms of Use** — open the license file that comes with each of your installed libraries. It sets out how you're allowed to use the sounds. - **Share Feedback** — send a message to the developers, such as a bug report or an idea. See [Share feedback](/docs/beta/support/error-reporting#share-feedback). - **Legacy Parameters** — controls kept from older versions of Floe so that projects made with them still sound the same. You only need this window if a control shows a yellow badge. See [Legacy Parameters](/docs/beta/reference/legacy-parameters). - **Library Developer Tools** — tools for people making their own sample libraries for Floe. See [Library Development](/docs/beta/develop/develop-libraries). - **Add Mirage Folders** — add the library and preset folders of Mirage, Floe's predecessor, if you had it installed. Not shown on Linux. - **Help** — open Floe's documentation website. --- # Changelog > A detailed changelog of all versions of Floe ## 2.0.4 A big update with redesigned browsers, a reworked Distortion effect, a new Limiter and lots of improvements throughout. In summary: - Redesigned preset, Instrument and IR browsers, with a new Browse mode that gets you to a library, preset bank, folder or tag in a few clicks. See the [browsers docs](/docs/usage/browsers) - Overhauled Distortion effect: 10 new or upgraded types, cleaner sound with 4x oversampling, new Punish and Tilt controls, and Auto Gain to keep the volume steady as you turn up the drive. Existing presets and DAW projects load with the older types, kept as Legacy types - New Limiter effect, mainly for the end of the effects chain - Faster audio engine, up to 2.5x faster in heavy granular use - Granular Share Grains option: shared grains keep the same density however many notes you play, per-voice grains build chords into a dense wash - Variation option for granular layers and random LFO shapes, so a preset can repeat the exact same grain scatter or LFO movement on every note or on each key - Clearer macros: see macro movement on the filters, EQ, LFO, envelopes and waveform, see a parameter's macro-adjusted value in its popup, and set the 0% and 100% values directly with Edit Range - More descriptive tooltips, with values shown straight away on hover - Set a default preset for new instances of Floe to open with - New displays and meters: a LUFS meter, peak-hold lines, Compressor meters, a High-pass filter graph, and shape previews for Distortion and Bitcrush - Redesigned effects switches: bypass, add/remove, and jump to an effect in the rack from one place - Smoother, more useful Bit Crush controls - Swap layers and macros from their right-click menus - LFO Amount as an MPE press and slide target - Wider layer Pitch range of ±88 semitones - Respond to MIDI panic messages (All Notes Off and All Sound Off) - Many smaller improvements and fixes This release includes all changes listed in the beta changelogs below: 2.0.4-beta.1 through to 2.0.4-beta.3. ### Changes since 2.0.4-beta.3 - Fix clicks sometimes being ignored when Floe is busy, for example very quick clicks or moving the mouse away straight after clicking - Fix notes looping forever when a loop mode is set but the volume envelope is off - Fix the arpeggiator's step right-click menu not opening in Overview - Fix a granular Harmony interval you've just clicked off still looking on until you move the mouse away - Respond to MIDI All Notes Off (CC 123) and All Sound Off (CC 120), so a DAW or controller's panic or stop can silence stuck notes - Fix renders sometimes coming out with different random variations (grains, random LFO shapes, the arpeggiator's Humanise and Random orders, and more) depending on your DAW's buffer size, such as between playback and bouncing. Some DAW projects that use these may play a different variation than in earlier versions - Make error messages easier to read: short titles, no repeated package names, and no internal source code details - Installing a preset bank that doesn't name a default preset now suggests its first preset alphabetically, so a blank Floe opens straight onto something playable - Change the granular Harmony "Fifths" preset to a 5th above plus the same note an octave lower, so it reinforces the root rather than adding a 4th. Existing presets and DAW projects keep their intervals - Always show User presets in the preset browser, even before you've saved any, so the layout no longer changes as preset banks come and go and it's clear where saved presets go - Sort preset banks alphabetically by name in the preset browser, regardless of which folder they're installed in - Add a preference to show Floe's default background behind every layer when layers use different libraries, for a calmer, more consistent look on the Layers page - Packager: make each library's 'About' document a PDF, so it opens on any computer, and have it point to the library's license file rather than summarise it. Add `--no-about-doc` to leave it out ## 2.0.4-beta.3 - Show a parameter's macro-adjusted value in its value popup, along with which macros are changing it - Add Edit Range to the right-click menu of macro destination knobs: set the parameter's value at 0% and 100% of the macro directly, and hear each end while you adjust it. Moving one end leaves the other where it is, and an option moves the macro so the sound stays as it is now - Fix wrapped text such as preset descriptions sometimes starting a line with a full stop, for example when the text contained an ellipsis - Fix the per-note markers on a layer's Volume slider ignoring macros, so they now sit at the level you actually hear - Add an "All" row to library and preset bank pages in the browsers' new Browse mode (from beta.2), making it clear when the whole collection is shown and giving a quick way back to it from a folder - Add Share Grains to granular mode: choose between shared grains, which keep the same grain density however many notes you play, and per-voice grains, where each note adds its own grains and chords build up into a dense wash. New layers start with shared grains, and presets and DAW projects from earlier versions keep per-voice grains so they sound the same - Rename the granular and LFO Seed Mode menu to Variation, with options Different on every note, Identical on all notes, and Identical on each key, so it's clearer what each one does - Stop the LFO display flipping a random Shape upside down for a negative Amount when Variation is Different on every note, since it sounds the same either way ## 2.0.4-beta.2 ### Browsers The preset, Instrument and IR browsers have been redesigned. See the [browsers docs](/docs/usage/browsers) for a full walkthrough. #### What's different - Add Browse mode, now the default: click through a few short pages to narrow down to a library, preset bank, folder or tag, rather than scanning a long tree of filters. Switch to Filter mode for the previous behaviour - Swap the left and right panels: items are now on the left, so they drop down directly beneath the selector you clicked and need less mouse movement - Restyle the browsers to feel like a menu rather than a dialog window - Keep the selector that opened the browser usable while the browser is open, so its next, previous, randomise and unload buttons replace the browser's duplicate ones - Make Favourites narrow the current list rather than act as a separate filter, so you can see just your favourites within a preset bank, for example - Make preset search match preset names only, not preset bank or folder names, so results are more precise and predictable #### Improvements - Make the browsers resizable - Add a line beneath the items saying what you're looking at, such as "Showing from Abyss preset bank". Click any part of it to undo that narrowing down - Make also open the current item's library or preset bank in the right panel in Browse mode, rather than just scrolling to the item - Show the current item more reliably when a browser opens - Remember your place in Browse mode, so the next new instance of Floe opens the browser there - Group preset banks into Factory preset banks and User presets when you have both - Rename the preset browser's Libraries section to Libraries used, since it shows presets that use a particular sample library - Fix clicking an already-loaded item unloading it. This was easy to do by accident and left the preset blank. To unload, use the on the selector instead ### Other changes - Improve performance of the audio engine to be easier on the CPU, up to 2.5x faster in heavy granular use cases - Add a seed option to granular layers and random LFO shapes , so a preset can save the exact grain scatter or LFO movement. Choose Fixed for the same pattern on every note, or Fixed Per Key for a repeatable variation on each key - Add LFO Amount as an MPE press and slide target, so you can dig into a key to bring in vibrato or tremolo on just that note - Add 'Swap with Left/Right' options to the right-click menu of Layers (the instrument selector button) and Macros (the knobs). So that you can reorder them easily. Swapping a layer also migrates the macro assignments so they now point to the new location. - Add a display to the Distortion and Bitcrush effects showing a representitive preview of the current shape - Improve the Bit Crush effect. Bits and Sample Rate parameter are now smooth and continuous allowing for more granularity. The Bits parameter also now focuses on a more useful range of around 8 to 3 - where most of the audible changes happen. These changes required new parameters and therefore run through our Legacy Parameters system where necessary (loading DAW projects). - Add input, gain-reduction and output meters to the compressor effect, showing the level going in, how much it's turning the signal down, and the level coming out - same as the Limiter - Add a graph showing the High-pass filter's response, draggable to set the cutoff - now matching what the Convolution Reverb does - Improve how granular lines are drawn on the UI - each grain now fades in/out based on their real envelope from the Smooth parameter - Improve how waveform instruments are displayed (sine, white noise). Now, the 'play mode', reverse and 'loop mode' controls are hidden, since a waveform has always ignored them anyways. Additionally, the red line voice markers now appear on the waveform display in a more useful way, placed left to right by pitch. - Smooth changes to the LFO Amount, so moving or automating it while notes play doesn't step audibly - Fix the Ring Mod (44.1k) legacy distortion type modulating 4 times too fast - Fix voice persisting in Granular Playback mode even when the playback has finished - Fix tooltips persisting when the mouse leaves Floe's window - Fix library icons and backgrounds sometimes staying missing until Floe was restarted, when they were requested while libraries were still loading ## 2.0.4-beta.1 ### Distortion Huge improvements to the distortion effect: - 10 new/upgraded distortion types: more musical and balanced with smooth gain compensation - Cleaner sound with 4x oversampling, anti-aliasing and DC offset removal - Punish parameter added to push the distortion even further - Tilt EQ parameter added to musically shape the tone (deep through to bright) - Auto-gain parameter added to legacy distortion types to opt in so the volume level stays steady as you turn the drive up - Fully backwards compatible with existing presets and DAW projects - they will load as one of the 'legacy' distortion types. The new algorithms are not directly equivalent to the legacy types. Changing your preset from a legacy type to a newer type has to be done by ear. Some things to keep in mind if doing that: turn on the Auto Gain parameter for an easy win - the Drive knob will have a much more consistent volume level across the whole knob; consider these legacy to modern migration suggestions (but use your ears!): Atan -> Overdrive, Clip -> Hard Clip, Tube Log -> Tape, Tanh (Decimate) -> Tape, Tube Asym3 -> Overdrive (+15% Punish), Sine -> Sine Fold, Raph1 -> Warp, Foldback -> Wavefolder, Rectifier -> Octave, Ring Mod (44.1k) -> Ring Mod. ### Limiter - Add a new Limiter effect: a lookahead true-peak brickwall limiter with Gain and Ceiling controls, plus input, gain-reduction and output meters, intended primarily for the end of the effects chain ### Effects switches Redesign the effects switches, rather than a simple button, they have a few interactions: - See and toggle the 'bypass' state by clicking the little rectangle 'light' left of the FX name - Click on an active FX name to scroll and flash the FX in the rack, making it much quicker than lots of scrolling, paritcularly when the rack has lots of FX - Add/remove the FX using the checkbox on the left rather than clicking the name ### Tooltips - Made all tooltips much more descriptive and helpful - Split tooltips into two boxes: a control's value appears straight away when hovered (and while dragging), while its description appears in italics after a short pause. Only the description is affected by the 'Show tooltips' preference. A new 'Instant value readouts' preference can be turned off to show the value only after the pause or while dragging - When hovering a macro destination knob, it now also displays what the destination parameter will be at macro 0% and 100%, plus its current value. For example when the destination is a volume knob, it might say -60dB to 0dB (now -12.4dB) which means when the macro knob is at 0% this parameter will be -60dB and when it's at 100% it will be 0dB, and it's currently at -12.4dB - Increase how long it takes after hovering on a knob that the tooltip appears ### Meters - Add a LUFS meter to top panel - useful for getting presets to a similar perceived loudness. Turn it on using the new checkbox on the Preferences panel. - Add a peak-hold line to all peak meters: it marks the highest level reached, holds there for a moment, then falls back - Change the peak meter ranges and add min/max markers. The top panel meter: -60dB to +10dB becomes -36dB to +6dB with markers every 6dB - allows for more visibility where you need it - closer to 0dB. The layer meters: -60dB to +10dB becomes -60dB to +12dB with markers every 12dB. - Make the layer peak meters always green. The yellow/red segments falsely suggest that there's a problem when actually any level is fine for layers. ### UI Behaviour - Make the LFO waveform display draggable: drag left or right to change the Time, up or down to change the Amount - Show macro modulation on the filters, EQ, LFO, envelopes and waveform. This is done by either showing a faint 'ghost line' or using the existing display elements that now move separately when needed. - Macro destination targets on the waveform sit on the handles themselves (loop start, loop end, crossfade) rather than in a column at the right edge - Add support controlling a layer's sample start offset with a macro - Add right-click on the effects switchboard to 'Tidy FX Order', which groups all the turned-on effects at the top without changing their order - Remove the drag-to-change behaviour from most menu controls. It was more annoying than useful: too easy to accidentally change values. Click to open the menu or use the arrow buttons instead. Some of the 'rate' menu still support draggins such as the LFO rate, arpeggiator rate and delay time, where dragging through the values is useful - Add ability to drag up/down on filter/EQ nodes to change resonance (for types that don't have a gain control) - Improve the responsiveness and feeling of dragging number/knob parameters - Make scrollbars clearer and show up/down buttons on them. Clicking the scrollbar channel scrolls a page at a time towards the click (hold to repeat); shift-click jumps straight to that spot ### Default preset - Add a default preset: the preset a new instance of Floe opens with. Right-click any preset in the browser to set it, or use the Default Preset row in Preferences > General to set the currently loaded preset or clear the default - Preset banks can suggest a default preset with a new `default_preset` key in `floe-preset-bank.ini`. Installing a package containing such a bank applies the suggestion unless you've chosen your own default. If Floe is blank when the install finishes, the preset is loaded there and then; otherwise the install-complete dialogue offers to load it. That dialogue's actions - sending the package file to the trash, loading the default preset - are now optional, with a Done button to close it ### Misc - Widen the layer Pitch range from ±36 to ±88 semitones. Existing presets and DAW projects are unaffected: the previous parameter is kept as a legacy parameter - Change the icon for performance controls from 'sliders' to 'gauge'. The old icon didn't look very good and was a little confusing due to ambiguity with the Preferences button and that it didn't actually feature any sliders. - Standarise displaying Hz or semitones everywhere for filter cutoff parameters. There's a new preference checkbox to pick either which mode you want. When shown in semitones, the value is displayed as a note name (e.g. A3) instead of a plain number. - Change the Performance Controls MIDI CC tab icon to a MIDI DIN connector - Fix pops in audio when rapidly changing the Modern compressor threshold or ratio, or Vintage compressor Gain - Change button text from 'Copy to clipboard' to 'Copy message' or 'Copy error' - Add a quick sliding-up animation for the key-range popup below the bottom panel - Add preferences and performance controls to the Main Menu as well as icons on the top panel. - Improve icons for Mute and Solo buttons - Fix the loop crossfade shrinking when quickly dragging the waveform loop region - Fix a crash when the host sends a malformed MIDI event - Fix buttons not being visible when the path is long on the Preferences window - Fix the layer filter getting stuck (sometimes almost silent) when its envelope moves slowly, until the cutoff was nudged ## 2.0.3 - Add MPE (MIDI Polyphonic Expression) support: enable it in the Performance Controls panel for per-note pitch bend, press (channel pressure) and slide (CC74), and choose what press and slide control on each layer's Config tab. CLAP per-note expressions (pitch, pressure, brightness) are also supported - Replace the Instance Config and MIDI CC Assignments panels with a unified Performance Controls panel (top panel, sliders icon): make the current instance settings and MIDI CC mappings the ones new instances start with, and optionally save named profiles bundling them for switching between setups - Add a dialog after installing a package offering to send the now-redundant package file to the trash - Show velocity markers on the layer volume slider - Highlight the recommended button in dialogs with an accent colour, and grey-out buttons that need text input first - Add right-click menu and double-click value entry to macro destination knobs, with options to enter, copy, paste, reset and invert the amount - Add copy and paste for effects: right-click an effect or the empty space of the FX rack to copy a single effect or the entire rack (all effects, their order and settings) and paste it, including from one preset to another - Add the ability to activate multiple encrypted packages at once by loading a single license file - Fix newly played notes ignoring the current pitch wheel position until the wheel next moved - Fix preferences file becoming blank or truncated: preferences are now written atomically - Fix window opening larger than the screen when the saved window size is invalid: window sizes are now always constrained to fit the current display - Fix possible crash when a host fires a timer callback without a timer being registered - Fix possible crash when loading a library background image with a very large window size - Fix possible crash when reading a corrupted or invalid package file: such files are now reported as errors - Fix possible crash and broken audio when a host or corrupted preset/DAW project provides invalid parameter values: values are now sanitised - Fix possible crash when a host sends an invalid pitch bend message - Fix note-off triggered samples playing forever when a loop mode is set: they now always play as one-shots - Fix note-off triggered samples not playing under the arpeggiator: each arp step now triggers release samples like a manually played note - Fix stuck notes and hanging voices in several cases: using the sustain pedal while notes play on other MIDI channels, releasing the sustain pedal after toggling MPE, and very large bursts of MIDI events - Fix instance config reverting to its previously-saved values when a DAW saved and reloaded a project - Fix the tempo-synced LFO rate, arpeggiator rate and delay time controls feeling inverted: dragging up or right now speeds them up - Fix unnecessary left side gap in macro destination right-click menu ## 2.0.2 - Fix possible crash when opening the General tab of the preferences panel - Fix crash when installing packages requires more than one file-conflict decision - Fix possible crash when opening file dialogs on macOS: dialogs are now attached to Floe's window as a sheet - Fix package installation issue on macOS when attempting to install to old Mirage folder (admin required) - Improve CPU usage of pitch LFO ## 2.0.1 - Fix crash when trying to install multiple encrypted packages at once - Fix clicks in audio related to using large resonance values in the filters/EQ - Add right-click utilities to Pitch and Detune parameters such as +1 octave - Packager: change how the package name override works to be more intuitive ## 2.0.0 Massive set of new features and improvements. In summary: - UI split into 3 pages: perform, layers, effects - Granular synthesis - Arpeggiators - Visual design improved throughout including displays for filters, EQ, etc. - Improved shape of many parameters - New LFO shapes - New compressor mode - Extra band added to EQ - EQ added to the FX rack - Better settings for MIDI CC setup, and reproducibility - Random variation strip for exploring new presets - New default background image This release includes all changes listed through the beta changelogs: 1.2.0-beta.1, and 2.0.0-beta.1 through to 2.0.0-beta.6: Additionally, this version differs from 2.0.0-beta.6: - New background image - Show Modern compressor Attack and Release as milliseconds instead of percentage - Fix remaining issue with carat position in text inputs - Packager CLI: change to subcommand format: info or pack. ## 2.0.0-beta.6 - Preset favourites now survive re-saving and library updates: each preset file carries a stable UUID embedded by Floe at save time, used as the identity for favourites and the "currently loaded" indicator. Older preset files without an embedded UUID continue to work via a content-derived fallback. Existing favourites are migrated automatically. - Show the revision number of a library/preset in the browsers, e.g. v1.2. - Lua and preset banks: rename `minor_version` to `revision` to better reflect what it means - Fix legacy parameters panel 'Modernise all' sometimes not correctly retaining perfect sound compatibility when macros are involved - Packager CLI: change shape of JSON output - Tweak preset auto-description logic - On the PERFORM page, make the library name use the larger font - Fix buggy multiline text input like the description box on the Save Preset panel - Fix the lowest MIDI velocities mapping slightly too high; velocity 1 now reaches the bottom of the velocity-to-volume curve and the softest velocity layer - Add option to abbreviate parameter names in the DAW - Packager CLI: include preset\_banks in JSON output ## 2.0.0-beta.5 - Higher precision for holding shift while dragging waveform handles (loop, crossfade, offset) - Show 2 decimal places for layer loop points and sample offset - Show 1 decimal places for all percentage parameter printouts to aid precision - Fix recent regression where right-click menu for libraries didn't work - File pickers remember the last folder you used across sessions - Packager CLI: rename flags to singular form (`--library-folder`, `--preset-folder`, `--input-package`, `--output-dir`, `--info-json`), add short aliases (`-l`, `-p`, `-i`, `-o`, `-n`, `-j`, `-e`), rename `--omit-unreferenced` to `--prune`, support `--info-json -` to write JSON to stdout - Fix case where voices weren't retriggering when changing instrument/preset - Tweak PERFORM page layer layout - Fix FX Mix knob not being correct when loading an old preset that has a macro assigned to either Wet or Dry of Convolution, Chorus or Bitcrush FX. - Lua: replace `vignette_intensity` with a `background_overlay` sub-table for tuning the mid-panel vignette (colour, inner radius) and an independent panel tint when this library is the active background - Preset bank `floe-preset-bank.ini` supports an optional `library_for_visuals` field to pick which library's icon/background represents the bank ## 2.0.0-beta.4 - Fix package install failing on Linux in sandboxed environments such as steam-run - Show the underlying error in the notification when a package install fails - Instance Config (reset on transport, reset keyswitch, seed) is preserved when loading presets - Sample library creation: add 'fade\_out\_frames' to add\_region - Expanded arpeggiator Auto Rate from on/off to a menu with speed multipliers (0.25x–4x) and dotted/triplet variants. Note: existing DAW parameter automation written against the old on/off toggle may not behave as expected - Show the auto-picked rate as a read-only readout when Auto Rate is on, instead of greying out the Rate menu - Fix arpeggiator step gate being ignored when the step was followed by tied steps - Fix arpeggiator sliced instrument length and offset not loading from saved state - Show step numbers at the end of tie chains and always label the final step in the arpeggiator overview - Fix missing tooltip on LAYERS page instrument selection buttons - Add mute/solo buttons to the PERFORM page - Minor layout improvements to PERFORM page UI ## 2.0.0-beta.3 - Fix arpeggiator not resetting when loading a preset or changing instruments - Fix AU parameter automation lane order when loading a Floe 1.x session into Floe 2.x - Fix misc VST3/AU format details (clap-wrapper library bump) - Improve tag descriptions and category questions for clarity - Fix preset name not updating when undoing past initial state - Library development: use instrument ID on the library dev panel, not name - Library development: add `kit` tag ## 2.0.0-beta.2 Our biggest update to date. This follows on from 1.2.0-beta.1; we chose to skip 1.2.0 and jump straight to 2.0.0. ### Major new features - Added granular synthesis (including a random detune parameter) - Added EQ to effects rack - Added arpeggiator - GUI: split the single main page into separate Layers, Effects and Perform pages - Added perform page with access to common controls and visual display, with 'Vary' random-variation control replaces the old randomise buttons; click-position strip lets you choose how much to vary - Original/Modified toggle on Perform page to audition the original vs modified preset - 7 new LFO shapes: Random Steps, Random Glide, Pluck, Pluck Sharp, Pulse Narrow, Pulse Wide, Trapezoid - Effects rack improvements: - Bypass button for each effect - Mix knob for each effect - replacing separate Wet and Dry controls where appropriate. Loading presets that were saved with the separate wet/dry parameters are perfectly re-mapped to the new Mix and Output parameters where necessary. Loading an old DAW project with separate wet/dry actives the _legacy parameters_ system. - Bypass-all and remove-all buttons on the effects panel header - Right-click reset menus on effect headings and switchboard buttons - New EQ effect - Improve Stereo Widen effect with Bass Mono and Balanced modes - New Modern compressor algorithm alongside the original - Third EQ band per layer - New EQ band types: low-pass, high-pass and notch - Visual graphs added for the layer filter, effect filter, EQ, LFO, convolution reverb pre-filter/post-shelf, and delay filter. EQ and filter graphs have draggable nodes for editing. - Undo/redo system added - Per-layer stereo width knob - Copy/paste/reset added throughout the GUI on right-click menus: parameters, EQ bands, layer tabs, macros, envelope background, and curve maps - Reproducible playback added. New panel (3-dots menu -> Instance Config) offers features to reset variability in performances so that you can always render the exact same audio from Floe. - Added a new MIDI CC Assignments panel (3-dots menu) for viewing and controls your MIDI CC mappings to Floe parameters - New default background image - Library-provided background images can declare attribution via `floe.set_attribution_requirement`, shown as a subtle credit on the Perform page ### Improvements - Improve parameters: - Filter and EQ frequency controls now use logarithmic mapping - Compressor ratio now skews towards more control for ratios nearer 1:1 - Improved legacy parameter system - Legacy-override params now show a warning badge - Redesigned legacy parameter panel (3-dots menu -> Legacy Parameters) - 'Modernise' feature to convert params from legacy to modern - Effect filter: new 12dB and 24dB low-pass and high-pass types - Layer filter type menu reworked: clearer band-pass names, all-pass removed - New menu option to rescan all libraries and presets - Auto-generated preset descriptions for presets that have none - Quality of life improvements: - 'Unload' x-mark button on instrument selector and IR selector to clear the item - 'Unload all instruments' button on the layers page - Support encrypted packages (`.floe-pkg-enc`) that require a license key to install, with a paste button on the licence key dialog - Fix voices from jumping into the loop region if you toggle the 'reversed' mode of a playing voice. - GUI: improve browsers panels: - Collections are now expand and collapsible, selecting all items in a collection is now done with a separate 'All' button. - Left panel (filters) is now dark to better differentiate it and make the collections and icons look nicer. - Sections are collapsed by default, but retains the collapse/expand state across Floe sessions. - Fix toggle not working for Favourites button - Use smaller radius corner rounding for tag buttons to match the rest of the UI - Remove 3-dots menu and instead put the filter selection modes (One, AND, OR) at the top of the filters panel. - Remove dividers between filter sections - Remove "Show Primary Filter Section Header" option. Libraries/folders are now always collapsible - more consistent and intuitive. - Expanded keyboard navigation: section headings, library/preset-bank collections, and filter buttons in the left panel are now reachable with the arrow keys and toggled with Enter - Library development: removed the ability to add custom tags for instruments/IRs. Only tags from the known set are now allowed. This change allowed for simpler and faster code and enforces standardisation. Non-standard tags are now ignored. [https://floe.audio/docs/develop/tags-and-folders](https://floe.audio/docs/develop/tags-and-folders) - Library development: new [`floe-library-inspector` CLI tool](https://floe.audio/docs/beta/develop/develop-libraries#library-inspector) for debugging libraries — dumps the parsed library as JSON or Lua, captures `print()` output, and reports orphan/missing samples - Info panel moved from the top of Floe into a menu item within the 3-dots menu. - The tabs within a layer have been adjusted: MAIN tab now contains the envelope and the filter, and the old 'Play' tab has been renamed CONFIG. - Added ability to reset parameters and groups (try right-clicking on things!) to their default settings OR the settings of the last loaded preset. - Lua: add `vignette_intensity` for controlling background image - Save and load preset functions now remember the folder that you chose and will use that when you next use the action. - LFO: show a warning icon next to the Target label when the selected destination is silent (Filter target with the filter off, or Grain Position target when not in a granular playback mode). - macOS: fix keyboard text input not working in some hosts such as Logic Pro, while still letting the host receive its own keyboard shortcuts ## 1.2.0-beta.1 Small but noticeable improvements - mostly GUI related. Behind the scenes, a huge amount of work has been put into restructuring our GUI system for upcoming features. This is the first step towards the bigger 1.2 update. Help us out by giving this beta a spin and test that it's working well. - GUI: improve crispness of all visuals - GUI: minor visual improvements throughout: even spacing, move layer menu labels to left, standardised colours, updated popup menus, legacy parameters and error panels to the new style - GUI: add instrument info strip with info about sample length, root key, number of samples - GUI: split loop controls into a new Playback tab, ready for new engine mode that need more space - GUI: notifications now appear on top of the window you have open and can be closed - Add 'Copy to Clipboard' for errors - Support installing packages with `.floe-pkg` as well as `.zip` - Help protect against rare edge-case crashes - Fix package installation errors due to a timeout - Fix rare memory bug - Fix possible memory leak related to background images - Fix possible rare crash when closing Floe - GUI: fix some strange behaviours when using the velocity curve map control - Dev-only: support a kind of hot-reload in the standalone version - File pickers: show both Mirage and Floe presets under the same file filter ## 1.1.2 Bug-fixes and robustness. Includes all changes from 1.1.2-beta.1 and 1.1.2.beta.2, plus: - Fix Windows text input - no more duplicate letters, proper focusing and passing keyboard shortcuts back to DAW - Fix some rare edge-case crashes - Fix some rare cases where macro destination changes weren't being applied ## 1.1.2-beta.2 - GUI: improve default size of Floe UI, it now considers the real DPI of the monitor if possible - GUI: only show full paths for preset banks if there's ambiguity - Fix error related to trying to install invalid ZIP files - Windows: fix error related to graphics change in 1.1.2-beta.1 - Linux: changed required glibc from 2.29 to 2.31 - Improve GUI performance slightly (batched draw-calls and smaller memory usage) - Update FLAC library and protect against edge cases - Linux: fix error related to filesystem watching - macOS: fix error related to opening a file dialog - Handle edge cases related to loading images for sample libraries ## 1.1.2-beta.1 - Improve graphics reliability on Windows (use DirectX instead of OpenGL) - GUI: fix the UI keyboard octave offset defaulting to 2 rather then 0 when first loading Floe - Fix possible memory leaks related to graphics (OpenGL texture destroying) and improve error checking - Improve automatic error reporting - Add 'drone' tag ## 1.1.1 - New monophonic mode: latch. The monophonic switch parameter is replaced by a menu with this new option. In latch mode, the note only ends when all notes are released; new key-presses are ignored and the original note continues playing unchanged. - GUI: show more decimal points with very slow LFO rates - GUI: better icon for 'missing library' on the preset browser - Add infrastructure for updating Mirage libraries to backwards-compatible Floe versions of the library. IDs are now used for libraries, instruments and IRs allowing for changing names without breaking backwards compatibility - Add 'fluctuating', 'ringing' and 'whining' tags - Package installation: support upgrading preset banks based on minor\_version field - Package installation: add 'keep both' option when user input is required - Fix EQ parameters sometimes not being correctly applied when changing presets. - Fix some parameters not loading correctly related to the velocity curves - Fix layer voices duplicating when just changing one instrument at a time - Fix error with displaying presets with many unknown libraries - Fix possible hang when installing packages - Fix incorrect loop end\_frame when set in Lua as 0 ## 1.1.0 - Fix pop sometimes possible at ping-pong loop boundary and make adjusting the loop points while playing have less audible artefacts. - Fix sometimes not correctly loading in Reaper or FL Studio, leaving UI looking correct but audio not reflective of the current state. - Fix preset being silent when convolution reverb effect had -inf dB dry level. - Fix possible crash related to file paths on Windows. - Fix possible crash related to error reporting. - Fix possible package installation failure - Fix Mirage presets sometimes being too quiet if they used certain convolution reverb IRs. - Major infrastructure improvements to how we build and release Floe. ## 1.1.0-beta.1 - **Browser UI overhaul** (instruments, presets, IRs) - Filtering mode is now 'one' mode by default, and alternate modes for 'AND' or 'OR' filtering are selected in the 3-dots menu - New 'collections' on left panel for libraries or preset-packs - Full keyboard arrow navigation, enter to select, CTRL+F/CMD+F to focus search box, page up/down, home/end, CTRL+up/down to jump sections - Search for libraries, preset-packs and tags - Favourites system - 'star' items as for easy access later - Scrollbars are less intrusive and only appear when needed - Header is more compact leaving more space for the content - Tooltips no longer get in the way of the browser items - Load images in a background thread so the GUI stays responsive - Uninstall libraries and presets by right-clicking them in the browsers. Or use the Info panel uninstall libraries. - New concept of 'preset banks' - a folder of presets can be tagged as a bank and given more metadata such as a description. To create one add `floe-preset-bank.ini` to a folder of presets. - Press escape on the keyboard to close panels - Increase threads for loading audio up to 75% of CPU cores instead of maximum of 4. - Fix silent output in Ableton Live 10 - Fix rare startup crash (#179) - Add 'Include beta version when checking for updates' preference ## 1.0.6 - Add Reset Audio Engine to the menu for stopping all sound and voices - macOS installer: use different method to try and avoid 'cannot install to system volume' error - Fix rare crash when shutting down Floe on macOS when file-browser is open - Fix rare crash when host sends an out-of-bounds parameter value - Fix 'library not found' error message repeating itself - Fix hover effect for tag button on the Save panel ## 1.0.5 - Fix issue where mute/solo buttons sometimes wouldn't correctly work - Website: improve download page layout - Add additional check for existing Mirage folders, and add ability to run this manually from the menu - Fix potential crash when host has a tempo near to 0 BPM ## 1.0.4 - Add Linux support - CLAP and VST3 ## 1.0.3 - Fix issue with Bitwig, where presets wouldn't sometimes load completely - Fix crackle possible crackle in audio when host uses an odd-sized audio buffer - Fix rare crash when MDATA file is corrupted ## 1.0.2 - Tweak the smoothing of very short attack times to allow for more sharpness - GUI: show more decimal places on parameters for less than 10 ms ## 1.0.1 - Fix crackle in audio when the hosts use audio buffers that are not a multiple of 32 frames. - Fix crackle in Bitwig Studio due to the host not correctly using the thread\_pool extension. ## 1.0.0 - Ready for widespread use. ## 0.12.2-beta - Fix sample offset start being too large and triggering an assertion failure ## 0.12.1-beta - Fix pops and clicks related to note-starting: a regression introduced in 0.12.0-beta ## 0.12.0-beta - Macros parameters: - Bottom GUI panel now has tabs: Play and Macros - Macros parameters allow for controlling multiple other parameters at once with a single knob and with a custom name - On the Macros tab, you can add and remove the parameters that are linked to each macro and control the strength of the link - Add pitch wheel support: configure the bend range using the 'Pitch Bend Range' parameter on each layer. - Add key range controls for splitting the keyboard into zones for each layer. These ranges are shown above the keyboard. They are controlled using new parameters on the Config tab of each layer. - Fix velocity curves being clear when randomising parameters - Add more information to the velocity curve tooltips - New documentation pages for velocity curves - Include instrument/preset descriptions in tooltips for open-browser buttons - Fix window size jumping if the width was exactly 1000 pixels - Fix jumps when first grabbing the resize corner - Improve smoothness of audio processing when using parameter automation; Floe's engine now processes parameter changes at a fixed interval of 32 frames. - Slightly improve top and bottom panel layout and colours - Fix noise caused by reverb history not being cleared when loading a preset - Library creation: support more than 100 velocity layers and add helper functions `midi_range_to_hundred_range` and `midi_range_to_thousand_range` ## 0.11.3-beta - Revert unintended change in intensity of Atan distortion in version 0.11-0 - unfortunately this will make presets/DAW projects (created using Floe 0.11.0-0.11.2) sound different if they used Atan distortion. - Fix regression where GUI might not update when sound is playing - Library creation: add audio\_properties for impulse response for setting gain\_db for IRs ## 0.11.2-beta - Fix rare crash when resizing the GUI to a very small size - Improve UI size control on the preferences panel so that incrementing/decrementing feels more significant - Fix memory leak ## 0.11.1-beta - Add sitemap.xml for the website - Improve the website homepage, installation, mirage, packages, roadmap pages. - Packager tool: - Add ability to merge multiple packages into one - Add ability to output a JSON file with comprehensive information about the package - Improve error reporting: show RAM, let Sentry decide on fingerprint, fix getting reports of crashes from outside of the plugin - Fix a whole bunch of rare crashes - Windows: fix uninstaller not uninstalling some small files ## 0.11.0-beta - Add new velocity -> volume curve for each layer. This replaces the old mapping buttons and the master 'Velo' button. There's now much more control. The old parameters are available in a new 'legacy' parameters section but are no longer used unless loading a DAW preset that uses them. - Add new algorithms to distortion: foldback, rectifier and ring-modulator - Fix LFO and delay time not updating with the tempo - Reduce pops and clicks with high-frequency LFOs, sharp changes in ADSR and some parameter changes - GUI: improve browsers behaviour: - Background darkens when panel is open - New close button on the top right - Remove unnecessary padding around the browser content - Single-click loads an item, double-click loads and closes the browser - Add right-click menu on libraries with option to open the library folder - Add right-click menu to presets and preset folders with option to open the folder, or delete the preset - Improve menus: - Add left/right buttons to all menus on the GUI - Allow most menus to be dragged like a slider to change the value - Add randomise button to convolution IR menu as well as left/right buttons - Make all left/right buttons on the UI the same style - Move the left/right buttons to the right of the menu so it's consistent and easy to click forward and back without having to move the mouse long distances - Make the UI window size buttons consistent with the left/right buttons - GUI: show loop points if an instrument has a single sample with built-in loop - GUI: add resize corner to the bottom right of the GUI window - Add missing tooltips for some preferences - Work-around CLAP Studio One not using the correct threads - GUI: right-click menu for the IR browser with 'unload IR' option - GUI: don't show markers on ADSR when it's inactive - GUI: Instrument browsers now have their own stat for filters (libraries, tags, etc.) allowing for more flexibility particularly with the randomise buttons - GUI: remove option to show/hide the keyboard. It's not often used, and coming soon are new features that only make sense with the keyboard shown. - Fix crash when changing tabs on the 'Legal' tab of the Info panel - Fix presets browser not showing nesting of folder on Windows - Fix rare crash when loading a library on Windows ## 0.10.3-beta - Sample library creation: add 'fade\_in\_frames' to add\_region - GUI: remove the status panel from the browsers, instead, items show a tooltip when hovered for a moment. This make the browsers less cluttered and fixes the issue where the text would be too long to fit in the status panel. - GUI: make sections in the browser collapsible - GUI: improve the layout of the browser filters ## 0.10.2-beta - Fix issue where layer volume would be automatically MIDI learned - Fix some persistent MIDI CCs not being applied ## 0.10.1-beta - Replace 'Reset all parameters' option with 'Reset State' which also clears things such as instruments. - Fix crash with floe-package when using relative paths - Fix possible error with installing/opening preset-browser - Fix a set of possible rare errors ## 0.10.0-beta - Browsers: - Add filters for folders (tree view) - Put tags into categories and add icons - Add 2 filter modes: match-all and match-any, allowing for more powerful filtering. Every filter button has a label showing the number of matching items that dynamically updates as you change the filters. - Fix instrument browser not showing waveform instruments when no Mirage libraries installed - Show library icons for each library used by a preset - Show (?) icon for missing libraries - Add `` filter for items that don't have any tags - Add "Library Developer Panel" on the GUI with tag-builder tool for generating instrument tags in Lua. - Add right-click menu to the instrument browser button with 'unload instrument' option. - Add lock/unlock mode for Save Preset panel for allowing changing presets with it still open - Sample library creation: add support for multiple Lua files by using `dofile()` - Sample library creation: add set\_required\_floe\_version function - Sample library creation: add generated Floe API definition file for Lua Language Server allowing for code completion and documentation as you type - available on the Library Developer Panel - GUI: slightly improved icons - GUI: use same toggle icon for all toggle buttons - GUI: make mute/solo buttons more obvious when they're on - Fix mute/solo buttons not greying out layers - Fix cases where mute/solo button would get stuck on - Fix preset selection buttons not working on the first click due to the scanning not having started. Now, scanning begins when the cursor is hovering over the button. ## 0.9.9-beta - Sample library creation: add start\_offset\_frames to add\_region - Sample library creation: add tune\_cents to add\_region - Normalise waveform GUI so that quiet samples are easier to see - Fix rare crash related to sample library folder scanning ## 0.9.8-beta - Fix rare error on Windows when closing the GUI when there's a file picker open - Fix rare errors in some VST3 hosts - Fix rare crash related to sample library folder scanning ## 0.9.7-beta - Fix rare crash related to closing the GUI on Floe AU - Fix rare crash related to library images - Fix rare crash related to voice stealing - Fix edge cases related to file paths on Windows ## 0.9.6-beta - Check for updates on startup; a small indicator on the Info button will appear - leading to more information on the Info panel. Can be disabled in the preferences. - Fix file picker on Windows not opened when there's missing folders - Fix rare crash in Floe AU in Ableton Live ## 0.9.5-beta - Fix potential crash in Floe AU format - Fix errors related to filesystem watching on Windows - Fix error related to sample library folders - could happen when installing a package ## 0.9.4-beta - Offer separate downloads for Intel and Apple Silicon Macs rather than a universal binary, this reduces the size of the download to ~50 MB. - Fix missing diagnostic information on macOS ## 0.9.3-beta - Fix more errors with threads - Fix memory leaks - Fix some edge cases with certain hosts - Improve automatic error reporting allowing us to fix bugs faster - Protect against hosts that try to use multiple main threads ## 0.9.2-beta - Slightly improve performance of Intel Mac builds - Fix crash with Intel Mac builds - Fix errors with threads ## 0.9.1-beta - AU: fix crash when trying to open the file/folder picker - Fix missing logo on macOS ## 0.9.0-beta - Library creation: fix specifying loop end points relative to the end of the file. - Library creation: replace always\_loop, never\_loop field with enum `loop_requirement`. - Library creation: add round\_robin\_sequencing\_group field to allow for different sets of variations. - Library creation: separate note-off round-robin sequencing group from note-on round-robin sequencing group. - Library creation: disable volume envelope for note-off regions - Library creation: improve memory usage when reading Lua scripts - Library creation: fix crash when an image file is empty - VST3: fix not responding to note-on/note-off messages when they weren't on channel 0 - GUI: on the Save Preset dialog, add the ability to store/load a preset author - GUI: make the Save Preset dialog larger and scroll to top when a new preset is loaded - Fix potential crash when reporting an error - Rename parameter right-click menu Set Value to Enter Value - Support CLAP reset() function ## 0.8.3-beta - Fix crash when error occurs in the Windows native file picker - Fix crash when given invalid arguments to CLAP activate - Fix crash when opening VST3 in FL Studio on Windows ## 0.8.2-beta - Fix crash when trying to randomise instruments, presets or IRs when there's only one of them - Fix presets folder still showing tags after a folder is removed. #120 - Fix crash when first opening the GUI ## 0.8.1-beta See the [main release notes](https://github.com/floe-audio/Floe/releases/tag/v0.8.0-beta). - Fix issue where Mirage and Floe libraries with the same name would conflict ## 0.8.0-beta First beta release of Floe. This release is feature-complete. We are looking for feedback on the new features and any bugs you find. - Add AU (Audio Unit v2) support - Brand new instrument browser supporting tags, search, and filtering by library - Brand new impulse response browser featuring all the options of the instrument browser - Brand new preset browser with tags, search, and filtering by library. Preset metadata is tracked, library information is tracked, file changes are detected, duplicate presets are hidden. - New built-in convolution reverb impulse library with 33 impulse responses - New save preset dialog with author, description, and tags - Fix instrument left/right and randomise buttons - Fix instance ID not retaining - Fix freeze when trying to resize GUI - Fix GUI opening but only ever showing black - Fix randomise parameters Note: we have jumped from 0.0.7 to 0.8.0. This is to signify the change from alpha to beta but also because it wasn't really right in the first place only incrementing by the patch number. To make the jump obvious we start the minor version at 0.8.0 rather than 0.1.0. ## 0.0.7-alpha The focus of this version has been bug fixes; in particular around loading Mirage libraries and presets. - Max voice is increased from 32 to 256 allowing for more complex instruments - Show the instrument type on the GUI: single sample, multisample or oscillator waveform - Rename 'Dynamics' knob to 'Timbre' and fix its behaviour - for instruments such as Arctic Strings, it can be used to crossfade between different sets of samples. - Fix missing code signing on Windows installer resulting in 'Unknown Publisher' warning - Fix layer filter type menu being the incorrect width - Fix crash when loop points were very close together - Improve loop modes on GUI: it's obvious when a loop is built-in or custom, what modes are available for a given instrument, why loop modes are invalid. - Add docs about looping - Fix sustain pedal incorrectly ending notes Mirage loading: - Fix incorrect loading of Mirage on/off switches - resulting in parameters being on when they should be off - Fix incorrect handling of Mirage's 'always loop' instruments - Fix incorrect conversion from Mirage's effects to Floe's effects - Improve sound matching when loading Mirage presets - Fix failure loading some FrozenPlain Squeaky Gate instruments Library creation: - Re-organise the fields for add\_region - grouping better into correct sections and allowing for easier expansion in the future. - Sample library region loops now are custom tables with `start_frame`, `end_frame`, `crossfade` and `mode` fields instead of an array. - Add `always_loop` and `never_loop` fields to sample library regions allowing for more control over custom loop usage on Floe's GUI. - Show an error if there's more than 2 velocity layers that are using 'feathering' mode. We don't support this yet. Same for timbre layers. ## 0.0.6-alpha - Add VST3 support - Standardise how tags and folders will be used in instruments, presets and impulse responses: [https://floe.audio/develop/tags-and-folders.html](https://floe.audio/develop/tags-and-folders.html) - Fix sustain pedal - Remove 'retrig CC 64' parameter from layer MIDI. This was mostly a legacy workaround from Mirage. Instead, we just use the typical behaviour that when you play the same note multiple times while holding the sustain pedal, the note plays again - stacking up. - Fix package installation crash after removing folders - Fix markers staying on ADSR envelope even when sound is silent - Fix MIDI transpose causing notes to never stop - Fix peak meters dropping to zero unexpectedly - Fix not finding Mirage libraries/presets folders ## 0.0.5-alpha - Fix text being pasted into text field when just pressing 'V' rather than 'Ctrl+V' - Windows: fix unable to use spacebar in text fields due to the host stealing the keypress - Fix crash when trying to load or save a preset from file - Improve the default background image ## 0.0.4-alpha Fix crash when opening the preset browser. ## 0.0.3-alpha Version 0.0.3-alpha is a big step towards a stable release. There's been 250 changed files with 17,898 code additions and 7,634 deletions since the last release. It's still alpha quality, and CLAP only. But if you're feeling adventurous, we'd love for you to try it out and give us feedback: - [Download Floe](https://floe.audio/installation/download-and-install-floe.html) - [Download some libraries](https://floe.audio/packages/available-packages.html) - [Install libraries](https://floe.audio/packages/install-packages.html) Error reporting has been a significant focus of this release. We want to be able to fix bugs quickly and make Floe as stable as possible. A part of this is a new a Share Feedback panel on the GUI - please use this! Floe's website has been filled out a lot too. New/edited documentation pages: - [Floe support for using CC BY libraries](https://floe.audio/usage/attribution.html) - [Autosave feature added](https://floe.audio/usage/autosave.html) - [New error reports, crash protection, feedback form](https://floe.audio/usage/error-reporting.html) - [New uninstaller for Windows](https://floe.audio/installation/uninstalling.html) ### Highlights - Add new Info panel featuring info about installed libraries. 'About', 'Metrics' and 'Licenses' have been moved here too instead of being separate panels. - Add new Share Feedback panel for submitting bug reports and feature requests - Add attribution-required panel which appears when needed with generated copyable text for fulfilling attribution requirements. Synchronised between all instances of Floe. Makes complying with licenses like CC BY easy. - Add new fields to the Lua API to support license info and attribution, such as CC BY - Add lots of new content to floe.audio - Add error reporting. We are now better able to fix bugs. When an error occurs, an anonymous report is sent to us. You can disable this in the preferences. This pairs with the new Share Feedback panel - that form can also be used to report bugs. - Add autosave feature, which efficiently saves the current state of Floe at a configurable interval. This is useful for recovering from crashes. Configurable in the preferences. - Add a Floe uninstaller for Windows, integrated into Windows' 'Add or Remove Programs' control panel - Preferences system is more robust and flexible. Preferences are saved in a small file. It syncs between all instances of Floe - even if the instances are in different processes. Additionally, you can edit the preferences file directly if you want to; the results will be instantly reflected in Floe. - Improve window resizing: fixed aspect ratio, correct remembering of previous size, correct keyboard show/hide, resizable to any size within a reasonable range. ### Other changes - Add support for packaging and installing MDATA libraries (Mirage) - Add tooltips to the preferences GUI - Add ability to select multiple packages to install at once - Rename 'settings' to 'preferences' everywhere - Rename 'Appearance' preferences to 'General' since it's small and can be used for other preferences - Make notifications dismiss themselves after a few seconds - Fix externally deleted or moved-to-trash libraries not being removed from Floe - Fix not installing to the chosen location - Fix Windows installer creating nonsense CLAP folder - Fix packager adding documents into the actual library rather than the package ## 0.0.2 - Fix Windows installer crash - Don't show a console window with the Windows installer - Better logo for Windows installer - Remove unnecessary 'Floe Folders' component from macOS installer ## 0.0.1 This is the first release of Floe. It's 'alpha quality' at the moment - there will be bugs and there are a couple of missing features. This release is designed mostly to test our release process. This release only contains the CLAP plugin. The VST3 and AU plugins will be released soon. ## Mirage Floe used to be called [Mirage](https://floe.audio/about-the-project/mirage.html). Mirage contained many of the same features seen in Floe v0.0.1. But there are large structural changes, and some new features and improvements: - Use multiple different libraries in the same instance. - CLAP version added - VST3 and AU coming soon, VST2 support dropped. - New installer: offline, no account/download-tickets needed. Libraries are installed separately. - Ability for anyone to develop sample libraries using new Lua-based sample library format. The new format features a new system to tag instruments and libraries. Hot-reload library development: changes to a library are instantly applied to Floe. - New [comprehensive documentation](https://floe.audio). - Floe now can have multiple library and preset folders. It will scan all of them for libraries and presets. This is a much more robust and flexible way to manage assets rather than trying to track individual files. - New, robust infrastructure: - Floe settings are saved in a more robust way avoiding issues with permissions/missing files. - Improved default locations for saving libraries and presets to avoid permissions issues. - New format for saving presets and DAW state - smaller and faster than before and allows for more expandability. - New settings GUI. - Floe packages: a robust way to install libraries and presets. Floe packages are zip files with a particular layout that contain libraries and presets. In the settings of Floe, you can install these packages. It handles all the details of installing/updating libraries and presets. It checks for existing installations and updates them if needed. It even checks if the files of any existing installation have been modified and will ask if you want to replace them. Everything just works as you'd expect. Technical changes: - Huge refactor of the codebase to be more maintainable and expandable. There's still more to be done yet though. - New build system using Zig; cross-compilation, dependency management, etc. - Comprehensive CI/CD pipeline for testing and creating release builds. - New 'sample library server', our system for providing libraries and audio files to Floe in a fast, async way. --- # Developing Libraries for Floe > Guide on how to create sample libraries for Floe using Lua scripting Creating sample libraries for Floe **requires programming knowledge**. While Floe itself is designed for all musicians, developing libraries involves writing Lua scripts to configure and map audio files. This programming-first approach enables automation, version control integration, AI-assisted workflows, bulk operations — scaling all the way to very complex libraries. It also allows creating custom functions for sample-mapping, normalisation, pitch-correction, and building instrument variations - a level of flexibility that cannot be achieved with UI-based sample-mapping tools. In the future, we're looking into ways for non-programmers to create libraries too. important We made these tools for our own use and are sharing them with the community. Consider contributing or [sponsorship](/docs/about-the-project/sponsorship) if you'd like to see further investment in this area. ### What you'll need - Tools and experience writing and editing code - Understanding of sample mapping concepts (key ranges, velocity layers, etc.) - It's recommended to have experience programming other samplers like Kontakt, SFZ, Decent Sampler, etc. ## Floe's sample library format Floe's format is revolved around configuring audio files into playable _instruments_ (a playable sound-source loaded into one of Floe's 3 layers). Instruments are always created as part of a _library_. The format also allows for adding IRs to the convolution reverb. Floe has a fixed GUI and engine - offering the same powerful playback and sample-based synthesis features to all instruments that you can load. Typically, after creating a sample library, you'd create a bank of factory presets - this is done using Floe's standard GUI - saving preset files that utilise the instruments that you created. As someone in the community put it, our format is essentially _'[SFZ](https://sfzformat.com/) in Lua so you don't lose your mind'_ - which captures the gist pretty well. In terms of features, the basics are covered, but there are plenty of features that other samplers might have that Floe doesn't. We expand our format to meet the needs of our products rather than add add things that we don't currently need. We have chosen a design that we can easily extend whilst retaining backwards compatibility. Floe's format currently supports: - Velocity layers - Round-robin - Crossfade layers - Loop points with crossfade - Convolution reverb IRs - Velocity layer feathering - Trigger samples on note-off ### Why a new format? No existing format met our requirements for Floe, which are: - Libraries should be plain folders of audio files. - Libraries should be portable across filesystems & operating systems. - Libraries should be configured using a proper programming language to enable creating complex libraries in a maintainable way. - The format should be extensible - allowing us to innovate in the field of sampling. - The solution should easily integrate into Floe's codebase. We're not trying to replace existing formats or create a new standard. Instead, our custom format is specifically designed to align with Floe's architecture and philosophy, enabling us to rapidly develop and deliver the high-quality sample libraries our users deserve. ### Developer friendly Floe's format is designed to be developer-friendly. It plays well into the tooling and experience of people who are used to dealing with code: - Works with version control: libraries are just folders of files, they're portable across filesystems and operating systems. - Hot reloading: Floe automatically reloads the library whenever you change a file: Lua, audio, or images. It creates a very fast feedback loop. If a change isn't picked up, use the top panel's 3-dots menu → Rescan Libraries & Presets to force a rescan. - Uses a full programming language: Lua is simple, powerful, and widely used. You can use variables, functions, loops, and conditionals to configure your library. - Floe's Lua API is simple and concise. - [`floe-library-inspector`](#library-inspector) CLI tool dumps the parsed library as JSON or Lua so you can verify exactly what Floe loaded — useful for debugging without launching the plugin. ## The structure Let's look at the structure of a Floe sample library: ``` 📂FrozenPlain - Slow/├── 📄slow.floe.lua├── 📄Licence.pdf├── 📄About Slow.html├── 📁Samples/│ ├── 📄synth_sustain_c4.flac│ └── 📄synth_sustain_d4.flac└── 📁Images/ ├── 📄background.png └── 📄icon.png ``` There's only one essential part of a Floe sample library: the `floe.lua` file. This file can have a custom name so long as it ends with `.floe.lua` - for example, `woodwind-textures.floe.lua`. The rest of the structure are conventions that are recommended but not required: - **Licence**: Sample libraries are recommended to have a file called Licence that describes the terms-of-use of the library. It can be any format: PDF, TXT, etc. - **About**: A file that describes the library. Any file format. Information about a library is useful for when someone might not have Floe's GUI available. Use this document to explain what the library contains, website links and any other information that might be useful. Floe's [packager tool](/docs/develop/packaging#packager-command-line-tool) can automatically generate this file. - **Library folder name**: The folder containing the `floe.lua` file should be named: "Developer - Library Name". - **Subfolders**: Subfolders are up to the developer. We recommend 'Samples' for audio files and 'Images' for images. These can have any number of subfolders. Your `floe.lua` file can reference any file in these subfolders. ## The `floe.lua` file The `floe.lua` file is the most important part of a library. It's a script that maps and configures the audio files into playable instruments, written in the Lua 5.4 programming language. This file uses [Floe's Lua functions](/docs/develop/library-lua-scripts) to create the library, create instruments, and add regions and impulse responses. It can reference any file in the library using relative paths. Here's a made-up example of a `floe.lua` file: ``` local library = floe.new_library({ name = "Iron Vibrations", tagline = "Organic sounds from resonating metal objects", library_url = "https://example.com/iron-vibrations", description = "A collection of resonating metal objects sampled using a handheld stereo recorder.", author = "Found-sound Labs", id = "Iron Vibrations - Found-sound Labs", author_url = "https://example.com", revision = 1, background_image_path = "Images/background.jpg", icon_image_path = "Images/icon.png", background_overlay = { vignette = { colour = 0x00000066, inner_radius = 0.2, }, panel_tint = { colour = 0x0000000D, }, }})local instrument = floe.new_instrument(library, { name = "Metal Fence Strike", id = "Metal Fence Strike", folder = "Fences/Steel", description = "Tonal pluck metallic pluck made from striking a steel fence.", tags = { "found sounds", "tonal percussion", "metal", "keys", "cold", "ambient", "IDM", "cinematic" }, waveform_audio_path = "Samples/file1.flac",})floe.add_region(instrument, { path = "Samples/One-shots/Resonating String.flac", root_key = 60, trigger_criteria = { trigger_event = "note-on", key_range = { 60, 64 }, velocity_range = { 0, 100 }, velocity_range_high_resolution = { 0, 1000 }, round_robin_index = 0, round_robin_sequencing_group = "group1", feather_overlapping_velocity_layers = false, auto_map_key_range_group = "group1", }, loop = { builtin_loop = { start_frame = 24, end_frame = 6600, crossfade = 100, mode = "standard", lock_loop_points = false, lock_mode = false, }, loop_requirement = "always-loop", }, timbre_layering = { layer_range = { 0, 50 }, }, audio_properties = { gain_db = -3, start_offset_frames = 0, tune_cents = 0, fade_in_frames = 0, fade_out_frames = 0, }, playback = { keytrack_requirement = "default", }, slices = {}, loop_beats = 4, native_bpm = 120,})floe.add_ir(library, { name = "Cathedral", id = "Cathedral", path = "irs/cathedral.flac", folder = "Cathedrals", tags = { "acoustic", "cathedral" }, description = "Sine sweep in St. Paul's Cathedral.", audio_properties = { gain_db = -3, },})floe.set_attribution_requirement("Samples/bell.flac", { title = "Bell Strike", license_name = "CC-BY-4.0", license_url = "https://creativecommons.org/licenses/by/4.0/", attributed_to = "John Doe", attribution_url = "https://example.com",})floe.add_named_key_range(instrument, { name = "Extended Notes", key_range = { 80, 128 },})floe.set_required_floe_version("2.0.4+52196ddd")local extended_table = floe.extend_table({ foo = "" }, {})local hundred_range = floe.midi_range_to_hundred_range({ 0, 127 })local thousand_range = floe.midi_range_to_thousand_range({ 0, 127 })return library ``` `floe.new_library()` must be called, and the library it creates returned at the end of the script. All other features are optional. When Floe runs your Lua file, it will show you any errors that occur along with a line number and a description. ## How to get started 1. Create a new folder in one of Floe's [sample library folders](/docs/installation/folders). We recommend naming it 'Author Name - Library Name'. 2. Create a file in that folder called `my-library.floe.lua`. 3. Create a subfolder called `Samples` and put your audio files in there. 4. Open the Lua file in your text editor. If you're not already familiar with an editor, then Sublime Text or Visual Studio Code are reasonable choices. 5. Use the `floe.new_library()` function to create your library, filling in all the fields marked `[required]` in the [Floe's Lua reference](/docs/develop/library-lua-scripts). 6. Use `floe.new_instrument()` to create an instrument, and then add regions to it using `floe.add_region()`, again, filling in the fields that are documented. 7. At the end of the file, return the library object you just created: `return library`. 8. Floe automatically detects whenever any library file changes and will tell you if there's any errors. If a library is correctly configured, it will instantly appear in Floe. For a fuller view of what was parsed — regions, loop points, missing samples — run [`floe-library-inspector`](#library-inspector). ### Approach to sample mapping You can start by manually writing individual `add_region` calls for each sample, filling out the required information as you go. When things start getting repetitive or you need to apply consistent logic across many samples, you'll want to leverage Lua's programming features: - **[Signet](https://github.com/SamWindell/Signet)** to analyse your samples and generate metadata files - **Variables and tables** to store information about your samples - **Loops** to process multiple samples with the same logic - **Functions** to calculate parameters like tuning, velocity ranges, and key ranges - **Pattern matching** to extract information from filenames This programming approach can make it much more practical to work with larger sample sets - you write the mapping logic once and let the code apply it to all your samples. ## Using Signet The command line tool [Signet](https://github.com/SamWindell/Signet) in an excellent aid for developing Floe samples libraries. Signet can export data about your samples in Lua format which you can then use in your `floe.lua` file using `dofile`. For example, this file is generated by Signet: ``` -- signet . print-info --format lua --path-as-key -- NOTE: Signet can also detect the pitch of your samples when -- you use the `--detect-pitch` flag with print-info.return { ["my-sample-a.flac"] = { bit_depth = 16, channels = 2, crest_factor = 16.5734, crest_factor_db = 24.3883, frames = 208341, length_seconds = 4.34044, metadata = nil, peak_db = -3.00036, peak_frame = 5927, rms_db = -27.3886, sample_rate = 48000 }, ["my-sample-b.flac"] = { bit_depth = 24, channels = 2, crest_factor = 8.90268, crest_factor_db = 18.9904, frames = 2299122, length_seconds = 47.8984, metadata = nil, peak_db = -3, peak_frame = 877676, rms_db = -21.9904, sample_rate = 48000 },} ``` Then in your Floe Lua file you have access to all the information about your samples allowing you to easily create instruments and regions. With the features of a full programming language and Floe's hot-reloading of scripts, it's easy to create complex configurations and bulk-tweak tuning, normalisation, loop points, and other parameters of an instrument. For example, normalising all samples to a target level can be done using a simple calculation based on the sample's `peak_db` value. We often find it's useful to partially move levels towards a target level rather than fully normalising them in order to retain some of the character of the instrument. This can be computed in the Lua and tweaked as needed, with the results being immediately audible in Floe. Floe doesn't generate this kind of audio data for you because it can be slow to scan large folders of samples. It's better for the sample library developer to generate it once with Signet and bake it into a Lua file, instead of the sample library users having to wait every time they load the library. ## Library inspector `floe-library-inspector` is a small CLI tool for debugging libraries. It parses your library and dumps everything Floe loaded as JSON (or Lua with `--format=lua`) — surfacing parse errors, captured `print()` output, and any orphan or missing audio files. - **Floe Library Inspector Windows**: [Floe-Library-Inspector-v2.0.4-Windows.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-Windows.zip) (5 MB) - **Floe Library Inspector macOS Apple Silicon**: [Floe-Library-Inspector-v2.0.4-macOS-Apple-Silicon.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-macOS-Apple-Silicon.zip) (1 MB) - **Floe Library Inspector macOS Intel**: [Floe-Library-Inspector-v2.0.4-macOS-Intel.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-macOS-Intel.zip) (1 MB) - **Floe Library Inspector Linux**: [Floe-Library-Inspector-v2.0.4-Linux.tar.gz](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Library-Inspector-v2.0.4-Linux.tar.gz) (6 MB) Download the program, extract it, and run it from the command line. ``` Inspect a Floe sample library and dump structured information to stdout.Output includes library metadata, captured Lua print() output, parse errors,instruments, regions, IRs, and orphan/missing sample files. Defaults to JSON;use --format=lua for a loadable Lua chunk.Useful when developing or debugging sample libraries: it surfaces parse errorsalongside everything Floe actually loaded, so you can sanity-check the resultof your Lua script. The JSON output is also well-suited as input to AI agents.Examples (piping JSON output into jq): # Check whether the library parsed and show any error: floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.parse' # Top-level library metadata (name, author, version, counts): floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.library' # List orphan and missing sample files: floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.samples' # List every instrument id and how many regions it has: floe-library-inspector ./my-lib/my-lib.floe.lua \ | jq '.instruments[] | {id, num_regions}' # List every sample path referenced by an instrument: floe-library-inspector ./my-lib/my-lib.floe.lua \ | jq -r '.instruments[].regions[].sample_path' # Show the key/velocity range of every region of an instrument: floe-library-inspector ./my-lib/my-lib.floe.lua \ | jq '.instruments[] | select(.id=="My Inst") | .regions[].trigger' # List IR ids and their file paths: floe-library-inspector ./my-lib/my-lib.floe.lua | jq '.irs[] | {id, path}'Usage: floe-library-inspector [OPTIONS]Optional arguments: --format Output format: 'json' (default) or 'lua'. Lua output is a single `return { ... }`chunk loadable with Lua's load()/dofile(). ``` ## Creating high-quality samples ### Levels It's important to ensure your audio samples have the right levels. This makes browsing and switching samples in Floe a consistent, nice experience. Additionally, Floe offers the ability to layer sounds together; this process is more ergonomic when instruments have similar volume levels. [Signet](https://github.com/SamWindell/Signet) can be a useful tool for changing the levels of your samples. When changing the volume levels of a realistic multi-sampled instrument, you probably don't want to normalise each sample individually because part of the character of the instrument is its volume variation. Instead, you should change the gain of the instrument _as a whole_. Signet has features for this. It also has features for proportionally moving levels towards a target level. This allows you to keep some of the character of an instrument while nudging it towards a more consistent level. Here are some guidelines for levels: - Each sample's peak level should be less than -3 dB. - Playing the instrument should barely cause Floe's peak meter to reach its yellow region. Another way to judge levels: RMS levels for an instrument _as a whole_ should be around -18 dB. Play the instrument polyphonically and watch the RMS level. If the instrument is designed to be monophonic, then adjust for that. - The noise floor should be as low as possible: -60 dB is a good target. Use high-quality noise reduction tools to remove noise from your samples if you need to. Noise levels can quickly stack up with a multi-sampled instrument played polyphonically. Being too aggressive with algorithmic noise reduction can make your samples sound unnatural - so it's a balance. - Impulse responses should be normalised by their energy (power) levels: `signet my-impulses norm -100 --mode energy --independently && signet my-impulses norm 0`. Or if not using Signet, then adjust their levels so that they feel similar to the volume levels of Floe's built-in IRs. ### Sample rate, bit depth, and file format Floe only supports FLAC and WAV files. We recommend using FLAC for your samples. It's lossless and can reduce the file size by 50% to 70% compared to WAV. Floe loads FLAC files very quickly. We find 44.1 kHz and 16-bit is often a perfectly reasonable choice. 48 kHz and 24-bit might also be appropriate in certain cases. FLAC also supports bit-depths between 16 and 24 bits (such as 20-bit). Floe supports these too. ### Volume envelopes of samples Floe blurs the line between a sampler and a sample-based synthesizer. It has lots of parameters for manipulating the sound in real-time. If your sample is a single continuous sound, then don't include a fade-in or fade-out in the sample. Floe has a GUI for volume envelopes that offer more control: they can be adjusted to any value, automated by the DAW, and they are independent of the playback speed of the sample. If you have a sample that is stretched across a keyboard range, it will be sped-up or slowed-down in order to be the correct pitch. If there's a volume fade, then the speed of the fade will change depending on the pitch of the voice. This is not normally a desirable effect. If your sound has important timbral variation over time, then don't cut that away. Only if the sound is a constant tone should you remove the fade in/out. ## Background images Floe allows libraries to have a custom background image that appear behind the interface when the library is loaded. These images are configured in your [Lua script](/docs/develop/library-lua-scripts) through Floe's `new_library` function. Floe accepts any image. It uses "cover" scaling with top-left positioning — in other words, it scales up the image (maintaining its aspect ratio) until it covers the entire background of Floe. However, for optimal results consider these characteristics: - Roughly 16:9 aspect ratio to match the plugin GUI proportions - Approximately 1500 pixels wide as a starting point (consider high-DPI displays) - Consistent colour palettes and brightness levels throughout the image - Darker or mid-tone images rather than bright ones for better text readability - Avoid dramatic contrasts between very dark and very bright regions The most critical consideration is interface readability. Since Floe's knobs, buttons, and text render on top of your background image, the image needs consistent tones to ensure controls remain clearly visible. While some variation is acceptable, remember that interface legibility is paramount. Additionally, Floe has options to add a coloured vignette on the background image and an overlay tint to its blurred panels via options in the Lua code. Experiment with these options, starting with very transparent colours. --- # Develop Preset Banks > Best practices for developing preset banks for Floe Floe's preset management is open; it's just based on the files and folders on your computer. Presets are saved as individual files using the save button at the top of Floe's UI. These files can be freely renamed and put into subfolders; this is how categories and hierarchies are created in the preset browser. ## Preset Banks A _preset bank_ is a small, optional extension to this. Add a `floe-preset-bank.ini` file to a folder of presets and it becomes a preset bank. Every preset in that folder and its subfolders is then easier to identify as part of the bank, and the bank can carry metadata such as a subtitle and ID. Creating a bank is normally a good idea for custom presets: the preset browser can isolate the bank, present it with the best name, and surface it at the top level. In the preset browser, the icon for the bank is taken from the sample library used by the bank's presets. If the bank contains presets that depend on multiple different libraries, a 'mixed' icon is shown instead to denote that the bank spans more than one library. Alternatively, you can instruct Floe using the _preset bank file_ to use the visuals from a given library ID. The _preset bank file_ is a simple INI text file with the following fields - all are optional: ``` ; A short and descriptive name for the preset bank.subtitle = My Preset Bank Name; Any kind of unique identifier. Typically you might use a reverse; domain style string. Used so Floe can identify the bank uniquely.id = com.myname.mypresetbank; A revision number - just a single integer. When installing a; package, Floe can use this alongside the ID to determine if a bank; can be updated rather than installed to a new location. Revisions; are only designed for simple additions/fixes. If you make major; changes, it's probably better to create a new preset bank,; "My Bank 2", with a new ID. On the preset browser, this number will; be displayed with a 'v1.' prefix to make it clear to users that the; change is incremental and backwards-compatible.; The key `minor_version` is also accepted for this.revision = 1; The id_string of an installed sample library whose icon should; represent this bank in the preset browser. If omitted, or if the; library isn't installed, Floe falls back to deriving the icon from; the libraries used by the bank's presets.library_for_visuals = FrozenPlain - Slow; A preset within this bank, given as a path relative to the bank; folder including the file extension. When the bank is installed; from a package, Floe uses this preset as the default preset - the; one a new instance of Floe opens with. It's only a suggestion:; Floe ignores it if the user has chosen their own default preset.; If omitted, Floe uses the bank's first preset alphabetically.default_preset = Pads/Warm Welcome.floe-preset; Set to true if this bank ships with a library rather than being; user-made. The preset browser groups factory banks separately from; the user's own banks. Banks whose folder name contains; "factory presets" are treated as factory automatically, even; without this field.factory = true ``` You can create this INI file with any text editor such as Notepad or TextEdit. You just need to type in the various `field = value` with new lines between them. A side note for the particularly discerning user: Floe automatically identifies some well-known factory preset folders as preset banks even without the metadata file present. This is because some banks were created before the preset bank feature was added. We chose to enrich them with metadata retroactively. ## Packaging Once you've created your folder of presets and added a `floe-preset-bank.ini` file (optional but recommended), you can package it up for distribution. Read about packaging on the [packaging](/docs/develop/packaging) page. Use the packager command-line tool, or alternatively package it manually. To manually package your bank first rename your bank folder to something like `My Preset Bank`. Next, put that into a folder called `Presets`. Next, put `Presets` into another folder `My Preset Bank - Floe Package`, then right-click and ZIP that folder. You should now have a ZIP called `My Preset Bank - Floe Package.zip` with a subfolder `Presets` and your bank folder inside that. Rename the `.zip` to `.floe-pkg`. The resulting file will contain the structure that _Floe packages_ require (Presets subfolder at the top level). Test your package by trying to install it using Floe's _Install package_ button. Refer to the packaging page for more details if needed. ## Best Practices - Make presets all feel the same volume: the master peak meter on Floe's GUI should just be the yellow zone when the preset is played at its fullest. - Give each preset a unique, descriptive name suggesting its tone or usage. Don't use all capital letters. Don't include a 'type' prefix such as "PAD - " or "LD - ". - Add as many tags as is relevant to the preset. Read more about tags on the [tags and folders](/docs/develop/tags-and-folders) page. - Keep the description short, and end it with a full stop. - Organise presets into folders using your file browser. You can rename presets and folders as you like. See the best practises for folders on the tags and folders page. ## Designing macros Well-designed macros turn a static preset into something playable. Think about which aspects of the sound would be most musical to control. See [Macros](/docs/usage/macros) for how to set them up. - Every macro should audibly do something. Moving it from 0% to 100% should make a clear difference. - Ideally a macro's name is a single word with no abbreviations. Check how it looks on both the _Perform_ page and the bottom panel: is it readable, or too cramped? - Describe what the macro does to the sound, not the technical details: _Pulse_ rather than _L1 LFO_, _Reverb_ rather than _Convol Mix_, or _Vibrato_ if turning it up adds vibrato. - Turning a macro up should increase whatever its name describes, just as turning up a _Volume_ knob increases the volume. A macro that turns down a high shelf might be called _Damp_ or _Muffle_, because turning it up makes the sound more muffled. Invert it so that it turns the shelf up, and _Brightness_ or _Highs_ would fit better. Which way round is up to you. - Both ends of the macro should be usable. A macro that all but mutes the sound at 0%, or clips the meters at 100%, isn't much help. The exception is something like a filter sweep, where filtering the sound away to nothing can be useful in a performance. - You don't have to use all four macros. If you use fewer, fill them from the left, with the unused ones at the end. _Swap with Left_ and _Swap with Right_ make this easy. --- # Library Lua Scripts > Documentation for the Lua API used to create Floe sample libraries The `floe.lua` file is the most important part of a Floe sample library. This page serves as documentation for all the functions that you can use in your script to create and configure the library and its instruments. Floe runs your script using Lua v5.4, providing you with access to these [standard libraries](https://www.lua.org/manual/5.4/manual.html#6): `math`, `string`, `table` and `utf8`. The other standard libraries are not available - including the `require` function. This is to minimise security risks. If there are any errors in your script, Floe will show them on the GUI along with a line number and a description of the problem. We are working on a standalone version of Floe that will allow you to more easily debug your Lua by outputting debug information to the console. ## Multiple files `dofile()` is available, so you can split your script into multiple files if you want to. Floe's `dofile` implementation is the same as the standard Lua version except that you can only specify files relative to the library folder — that is, the folder that contains the `floe.lua` file. For example, you could have a folder next to `floe.lua` called `Lua` and put a file in there called `data.lua`. You could then load that file with `dofile("Lua/data.lua")`. To pass data between files, you would typically use the ["module" pattern](http://lua-users.org/wiki/ModuleDefinition) (except using `dofile` instead of `require`). ## Library Functions Use these functions to create your sample library. Take note of the `[required]` annotations - omitting fields marked with these will cause an error. ### `floe.new_library` Creates a new library. It takes one parameter: a table of configuration. It returns a new library object. You should only create one library in your script. Return the library at the end of your script. The library is the top-level object. It contains all the instruments, regions, and impulse responses. ``` -- Creates a new library. You should only create one library in your script. -- Return the library at the end of your script.local library = floe.new_library({ -- The name of the library. Keep it short and use tagline for more details. -- [required] name = "Iron Vibrations", -- A few words to describe the library. [required] tagline = "Organic sounds from resonating metal objects", -- The URL for this Floe library. -- [optional, default: no url] library_url = "https://example.com/iron-vibrations", -- A description of the library. You can be verbose and use newlines (\n). -- [optional, default: no description] description = "A collection of resonating metal objects sampled using a handheld stereo recorder.", -- Who created this library. Keep it short, use the description for more -- details. [required] author = "Found-sound Labs", -- A unique identifier for this library. Specifying this field overrides the -- default ID of "library-name - author". It can be any text, its only meaning -- is to uniquely identify this library from others. However, in rare cases it -- may be shown on the UI so it should be human-readable and representative of -- the library. This field is useful if you want to change the name of the -- library: set this to the previous ID (otherwise the ID will change to -- "new-library-name - author") and bump the revision field. -- [optional, default: "library-name" - "author"] id = "Iron Vibrations - Found-sound Labs", -- URL relating to the author or their work. -- [optional, default: ] author_url = "https://example.com", -- The revision number of this library. Bump this whenever you publish a -- backwards-compatible update (additional content, fixes, tweaks); breaking -- changes are not allowed - you'd need to create a new library such as: -- "Strings v2". The legacy name `minor_version` is also accepted. -- [optional, default: 1] revision = 1, -- Path relative to this script for the background image. It should be a jpg -- or png. Look at Floe's 'Develop Libraries' docs for recommended specs. -- [optional, default: ] background_image_path = "Images/background.jpg", -- Path relative to this script for the icon image. It should be a square jpg -- or png. -- [optional, default: ] icon_image_path = "Images/icon.png", -- Controls the vignette and panel-tint drawn over the background image when -- this library is the active background. -- [optional, default: defaults] background_overlay = { -- Configures the radial vignette drawn over the background image when -- this library is the active background. -- [optional, default: defaults] vignette = { -- Edge colour of the vignette as a 0xRRGGBBAA integer. The alpha -- component controls the strength of the effect; set it to 0 to -- disable. -- [optional, default: 0x00000000] colour = 0x00000066, -- Radius of the unaffected centre area, as a proportion of the -- panel's smaller dimension. 0 means the vignette starts at the -- centre; values near 1 confine it to the very edges. On a range from -- 0 to 1. -- [optional, default: 0.2] inner_radius = 0.2, }, -- Configures a flat colour tint drawn over the blurred mid-panel surface. -- Independent of the vignette. -- [optional, default: no tint] panel_tint = { -- A flat tint drawn over the blurred mid-panel surfaces, as a -- 0xRRGGBBAA integer. Set alpha to 0 to disable. -- [optional, default: 0x00000000] colour = 0x0000000D, }, }}) ``` ### `floe.new_instrument` Creates a new instrument on the library. It takes 2 parameters: the library object and a table of configuration. It returns a new instrument object. You can call this function multiple times to create multiple instruments. An instrument is like a musical instrument. It is a sound-producing entity that consists of one or more samples (samples are specified in regions). Each library can have multiple instruments. You can use Floe's [Tag Builder GUI](/docs/develop/tags-and-folders#instrument-tags) to generate tag tables. ``` -- Creates a new instrument on the library. You can call this multiple times to -- create multiple instruments.local instrument = floe.new_instrument(library, { -- The name of the instrument. [required] name = "Metal Fence Strike", -- A unique identifier for the instrument. If not specified, it will be the -- name of the instrument. Either way, IDs must be unqiue within a library. It -- can be any text but it's recommended to use a human-readable identifier -- (similar to the name). IDs are how presets and settings refer to -- instruments. -- [optional, default: same as name] id = "Metal Fence Strike", -- Specify a folder to group instruments under a common heading. It may -- contain slashes to represent a hierarchy. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no folders] folder = "Fences/Steel", -- A description of the instrument. Start with a capital letter an end with a -- period. -- [optional, default: no description] description = "Tonal pluck metallic pluck made from striking a steel fence.", -- An array of strings to denote properties of the instrument. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no tags] tags = { "found sounds", "tonal percussion", "metal", "keys", "cold", "ambient", "IDM", "cinematic" }, -- Path to an audio file relative to this script that should be used as the -- waveform on Floe's GUI. -- [optional, default: first region path] waveform_audio_path = "Samples/file1.flac",}) ``` ### `floe.add_region` Adds a region to an instrument. It takes 2 parameters: the instrument object and a table of configuration. Doesn't return anything. You can call this function multiple times to create multiple regions. A region is a part of an instrument. It defines an audio file and the conditions under which it will be played. For example, you might have a region that plays the audio file `Piano_C3.flac` when the note C3 is played. Each instrument must have one or more regions. ``` -- Adds a region to an instrument. You can call this multiple times to create -- multiple regions. Each instrument must have one or more regions.floe.add_region(instrument, { -- A path to an audio file, relative to this current lua file. [required] path = "Samples/One-shots/Resonating String.flac", -- The pitch of the audio file as a number from 0 to 127 (a MIDI note number). -- On a range from 0 to 127. [required] root_key = 60, -- How this region should be triggered. -- [optional, default: defaults] trigger_criteria = { -- What event triggers this region. Must be one of: "note-on" or -- "note-off". -- [optional, default: note-on] trigger_event = "note-on", -- The pitch range of the keyboard that this region is mapped to. These -- should be MIDI note numbers, from 0 to 128. The start number is -- inclusive, the end is exclusive. -- [optional, default: { 60, 64 }] key_range = { 60, 64 }, -- The velocity range of the keyboard that this region is mapped to. This -- should be an array of 2 numbers ranging from 0 to 100. The start number -- is inclusive, the end is exclusive. Use the -- velocity_range_high_resolution instead if you need more than 100 -- velocity layers. -- [optional, default: { 0, 100 }] velocity_range = { 0, 100 }, -- Alternative to velocity_range that allows for 1000 velocity layers -- instead of 100. -- [optional, default: { 0, 1000 }] velocity_range_high_resolution = { 0, 1000 }, -- Trigger this region only on this round-robin index. For example, if -- this index is 0 and there are 2 other groups with round-robin indices -- of 1 and 2 with the same round_robin_sequencing_group and -- trigger_event, then this region will trigger on every third press of a -- key only. round_robin_index should begin at 0 and be consecutive. The -- total number of round-robins is calculated automatically. -- [optional, default: no round-robin] round_robin_index = 0, -- Group together regions that have this same string, so that their -- round_robin_index is part of a separate sequence to other -- round_robin_sequencing_groups. Use this when you have multiple sets of -- regions that have a different number of round-robins with the same -- trigger_event. -- [optional, default: instrument-wide group] round_robin_sequencing_group = "group1", -- If another region in this instrument is triggered at the same time as -- this one and is overlapping this, and also has this option enabled, -- then both regions will play crossfaded in a proportional amount for the -- overlapping area, creating a smooth transition between velocity layers. -- Only works if there's exactly 2 overlapping layers. -- [optional, default: false] feather_overlapping_velocity_layers = false, -- For every region that has this same string, automatically set the start -- and end values for each region's key range based on its root key. -- [optional, default: no auto-map] auto_map_key_range_group = "group1", }, -- Loop configuration. -- [optional, default: defaults] loop = { -- Define a built-in loop. -- [optional, default: no built-in loop] builtin_loop = { -- The start of the loop in frames. Inclusive. It can be negative -- meaning index the file from the end rather than the start. -- [required] start_frame = 24, -- The end of the loop in frames. Exclusive. It can be negative -- meaning index the file from the end rather than the start. 0 means -- the end of the file. [required] end_frame = 6600, -- The number of frames to crossfade. [required] crossfade = 100, -- The mode of the loop. Must be one of: "standard" or "ping-pong". -- [optional, default: standard] mode = "standard", -- If true, the start, end and crossfade values cannot be overriden by -- a custom loop from Floe's GUI. -- [optional, default: ] lock_loop_points = false, -- If true, the loop mode value cannot be overriden by a custom mode -- from Floe's GUI. -- [optional, default: ] lock_mode = false, }, -- The requirement for this region to loop. Must be one of: -- "default" => Default looping behaviour. -- "always-loop" => This region will always loop - either using the built -- in loop, a user defined loop, or a default built-in loop. -- "never-loop" => This region will never loop even if there is a -- user-defined loop. Set all regions of an instrument to this to entirely -- disable looping for the instrument. -- [optional, default: default] loop_requirement = "always-loop", }, -- Timbre layering configuration. -- [optional, default: no timbre layering] timbre_layering = { -- The start and end point, from 0 to 100, of the Timbre knob on Floe's -- GUI that this region should be heard. You should overlap this range -- with other timbre layer ranges. Floe will create an even crossfade of -- all overlapping sounds. The start number is inclusive, end is -- exclusive. This region's velocity_range should be the full range. -- [optional, default: no timbre layering] layer_range = { 0, 50 }, }, -- Audio properties. -- [optional, default: defaults] audio_properties = { -- Apply a gain to the audio data in decibels. -- [optional, default: 0] gain_db = -3, -- The number of frames to skip at the start of the audio data. -- [optional, default: 0] start_offset_frames = 0, -- Tune the audio data in cents. -- [optional, default: 0] tune_cents = 0, -- The number of frames to fade in the audio data, applied at the start -- after any start_offset_frames. If the region has slices, the fade is -- applied at the start of each slice instead. -- [optional, default: 0] fade_in_frames = 0, -- The number of frames to fade out the audio data, applied at the end of -- the sample. If the region has slices, the fade is applied at the end of -- each slice instead. -- [optional, default: 0] fade_out_frames = 0, }, -- Playback configuration. -- [optional, default: defaults] playback = { -- The requirement for keytracking. Must be one of: "default", "always" or -- "never". -- [optional, default: default] keytrack_requirement = "default", }, -- An array of slices that divide this region's audio into segments for -- tempo-synced playback. Each slice defines a start frame and a relative -- length. The system sums all length_proportion values to determine the total -- number of steps; each slice's proportion of the total determines its -- playback duration in the sequence. -- [optional, default: no slices] slices = {}, -- The musical length of the loop in beats (e.g. 4 for a 1-bar loop in 4/4, 8 -- for 2 bars). Required when slices are set. Used by the arpeggiator's -- auto-rate to pick a tempo division that matches the loop's native timing. -- On a range from 1 to 255. -- [optional, default: ] loop_beats = 4, -- The BPM the loop was recorded at. Required when slices are set. Used by the -- arpeggiator's auto-rate together with loop_beats to compute each step's -- native duration. On a range from 1 to 999. -- [optional, default: ] native_bpm = 120,}) ``` ### `floe.add_named_key_range` Gives a name to a key range of this instrument. It takes 2 parameters: the instrument object and a table of configuration. Doesn't return anything. For example, with a multi-sampled keyboard instrument, you might mark the ranges beyond the natural range of the real instrument as "Extended" ranges. Alternatively, if the instrument contains multiple sounds, you can name each sound: "Kick", "Snare", etc. You can call this multiple times to create multiple named key ranges. ``` -- Gives a name to a key range of this instrument. For example, with a -- multi-sampled keyboard instrument, you might mark the ranges beyond the natural -- range of the real instrument as "Extended" ranges. You can call this multiple -- times to create multiple named key ranges. Alternatively, if the instrument -- contains multiple sounds, you can name each sound: "Kick", "Snare", etc. Don't -- overlap ranges.floe.add_named_key_range(instrument, { -- The name of the key range. [required] name = "Extended Notes", -- The range of the keyboard to give a name to. These should be MIDI note -- numbers, from 0 to 128. The start number is inclusive, the end is -- exclusive. [required] key_range = { 80, 128 },}) ``` ### `floe.add_ir` Adds a reverb impulse response to the library. It takes 2 parameters: the library object and a table of configuration. Doesn't return anything. You can call this function multiple times to create multiple impulse responses. ``` -- Adds a reverb impulse response to the library. You can call this multiple times -- to create multiple impulse responses.floe.add_ir(library, { -- The name of the IR. [required] name = "Cathedral", -- A unique identifier for the IR. If not specified, it will be the name of -- the IR. Either way, IR IDs must be unqiue within a library. It can be any -- text but it's recommended to use a human-readable identifier (similar to -- the name). IDs are how presets and settings refer to IRs. -- [optional, default: same as name] id = "Cathedral", -- File path to the impulse response file, relative to this script. [required] path = "irs/cathedral.flac", -- Specify a folder to group IRs under a common heading. It may contain -- slashes to represent a hierarchy. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no folders] folder = "Cathedrals", -- An array of strings to denote properties of the IR. See -- https://floe.audio/develop/tags-and-folders.html for more information. -- [optional, default: no tags] tags = { "acoustic", "cathedral" }, -- A description of the IR. Start with a capital letter an end with a period. -- [optional, default: no description] description = "Sine sweep in St. Paul's Cathedral.", -- Audio properties. -- [optional, default: defaults] audio_properties = { -- Apply a gain to the audio data in decibels. -- [optional, default: 0] gain_db = -3, },}) ``` ### `floe.set_attribution_requirement` Sets the attribution information for a particular file or folder. It takes 2 parameters: a path to the file or folder whose license information you want to set, and a table of configuration. If the path is a folder, the attribution requirement will be applied to all audio files in that folder and its subfolders. You can also point it at the library's `background_image_path` to credit the cover image — when set, a subtle credit line appears on the Perform page. ``` -- Sets the attribution information for a particular file or folder. If the path -- is a folder, the attribution requirement will be applied to all audio files in -- that folder and its subfolders. You can also point it at the library's -- background_image_path to credit the cover image — when set, a subtle credit -- line appears on the Perform page.floe.set_attribution_requirement("Samples/bell.flac", { -- The title of the work. [required] title = "Bell Strike", -- Name of the license. [required] license_name = "CC-BY-4.0", -- URL to the license. [required] license_url = "https://creativecommons.org/licenses/by/4.0/", -- The name/identification of the persons or entities to attribute the work -- to. [required] attributed_to = "John Doe", -- URL to the original work if possible. -- [optional, default: ] attribution_url = "https://example.com",}) ``` ### `floe.set_required_floe_version` Sets the minimum required version of Floe for this library. It takes one parameter: a string representing the version number (a [semantic version](https://semver.org/)). It's best to set this at the top of your `floe.lua` file so that Floe can check the version before running the script. Calling this function is recommended so that older versions of Floe behave predictably when trying to load an unsupported library. ``` -- Sets the required Floe version for this library. If the current Floe version is -- lower than the required version, an error will be raised.floe.set_required_floe_version("2.0.4+52196ddd") ``` ## Support Function Floe provides some additional functions to make developing libraries easier. ### `floe.extend_table` Extends a table with another table, including all sub-tables. It takes 2 parameters: the base table and the table to extend it with. The base table is not modified. The extension table is modified and returned. It has all the keys of the base table plus all the keys of the extended table. If a key exists in both tables, the value from the extension table is used. Floe doesn't have the concept of 'groups' like other formats like SFZ or Kontakt have. Instead, this function offers a way to apply a similar configuration to multiple regions. Alternatively, you can use functions and loops in Lua to add regions in a more dynamic way. ``` local group1 = { trigger_criteria = { trigger_event = "note-on", velocity_range = { 0, 100 }, auto_map_key_range_group = "group1", feather_overlapping_velocity_regions = false, },}floe.add_region(instrument, floe.extend_table(group1, { path = "One-shots/Resonating String 2.flac", root_key = 65,}))floe.add_region(instrument, floe.extend_table(group1, { path = "One-shots/Resonating String 3.flac", root_key = 68,})) ``` ### `floe.midi_range_to_hundred_range` and `floe.midi_range_to_thousand_range` Floe prefers to use a range from 0 to 100 or 0 to 1000 (where the end value is exclusive, A.K.A. one-past the last) for velocity rather than MIDI 1.0's typical range of 0 to 127 (where the end value is inclusive). These functions convert from the MIDI range to the Floe range. Useful when converting existing libraries to Floe. ``` -- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-100 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.local hundred_range = floe.midi_range_to_hundred_range({ 0, 127 })-- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-1000 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.local thousand_range = floe.midi_range_to_thousand_range({ 0, 127 }) ``` ## Lua Language Server If you are using the [Lua Language Server](https://luals.github.io/), you can get autocompletion and diagnostics for Floe's Lua API by using the following configuration. 1. Open Floe, and click on the 3-dot menu at the top of the window. Click "Library Developer Tools" and open the "Utilities" tab. 2. Click on the "Install Lua definitions" button. This will generate the necessary file on your system. 3. For the Lua LSP to find the definitions, you need to create a `.luarc.json` file in the same folder as your `floe.lua` file. 4. Paste the following code into the `.luarc.json` file: ``` { "runtime": { "version": "Lua 5.4" }, "workspace": { "library": [ "<< paste definitions file path >>" ] }} ``` 5. Replace the string with the path that is copied to your clipboard when you click the "Copy Lua definitions path" button in the Library Developer Tools. 6. Done. ## Lua LSP Definitions This file is also generated by the "Install Lua definitions" button in the Library Developer Tools. ``` ---@meta FloeAPI---@class FloeInstrumentConfig---@field name string The name of the instrument.---@field id? string A unique identifier for the instrument. If not specified, it will be the name of the instrument. Either way, IDs must be unqiue within a library. It can be any text but it's recommended to use a human-readable identifier (similar to the name). IDs are how presets and settings refer to instruments.---@field folder? string Specify a folder to group instruments under a common heading. It may contain slashes to represent a hierarchy. See https://floe.audio/develop/tags-and-folders.html for more information.---@field description? string A description of the instrument. Start with a capital letter an end with a period.---@field tags? string[] An array of strings to denote properties of the instrument. See https://floe.audio/develop/tags-and-folders.html for more information.---@field waveform_audio_path? string Path to an audio file relative to this script that should be used as the waveform on Floe's GUI.---@class FloeImpulseResponseAudioPropsConfig---@field gain_db? number Apply a gain to the audio data in decibels.---@class FloeBuiltinLoopConfig---@field start_frame number The start of the loop in frames. Inclusive. It can be negative meaning index the file from the end rather than the start.---@field end_frame number The end of the loop in frames. Exclusive. It can be negative meaning index the file from the end rather than the start. 0 means the end of the file.---@field crossfade number The number of frames to crossfade.---@field mode? "standard"|"ping-pong" The mode of the loop.---@field lock_loop_points? boolean If true, the start, end and crossfade values cannot be overriden by a custom loop from Floe's GUI.---@field lock_mode? boolean If true, the loop mode value cannot be overriden by a custom mode from Floe's GUI.---@class FloeRegionLoopConfig---@field builtin_loop? FloeBuiltinLoopConfig Define a built-in loop.---@field loop_requirement? "default"|"always-loop"|"never-loop" The requirement for this region to loop.---@class FloeRegionAudioPropsConfig---@field gain_db? number Apply a gain to the audio data in decibels.---@field start_offset_frames? number The number of frames to skip at the start of the audio data.---@field tune_cents? number Tune the audio data in cents.---@field fade_in_frames? number The number of frames to fade in the audio data, applied at the start after any start_offset_frames. If the region has slices, the fade is applied at the start of each slice instead.---@field fade_out_frames? number The number of frames to fade out the audio data, applied at the end of the sample. If the region has slices, the fade is applied at the end of each slice instead.---@class FloeRegionTimbreLayeringConfig---@field layer_range? number[] The start and end point, from 0 to 100, of the Timbre knob on Floe's GUI that this region should be heard. You should overlap this range with other timbre layer ranges. Floe will create an even crossfade of all overlapping sounds. The start number is inclusive, end is exclusive. This region's velocity_range should be the full range.---@class FloeRegionPlaybackConfig---@field keytrack_requirement? "default"|"always"|"never" The requirement for keytracking.---@class FloeRegionSliceConfig---@field start_frame number The frame position in the audio file where this slice begins.---@field length_proportion number A unitless value representing the relative duration of this slice when played in a tempo-synced sequence, similar to CSS flex-grow. The system sums all length_proportion values to determine the total number of steps, and each slice's proportion determines its playback duration.---@class FloeTriggerCriteriaConfig---@field trigger_event? "note-on"|"note-off" What event triggers this region.---@field key_range? number[] The pitch range of the keyboard that this region is mapped to. These should be MIDI note numbers, from 0 to 128. The start number is inclusive, the end is exclusive.---@field velocity_range? number[] The velocity range of the keyboard that this region is mapped to. This should be an array of 2 numbers ranging from 0 to 100. The start number is inclusive, the end is exclusive. Use the velocity_range_high_resolution instead if you need more than 100 velocity layers.---@field velocity_range_high_resolution? number[] Alternative to velocity_range that allows for 1000 velocity layers instead of 100.---@field round_robin_index? number Trigger this region only on this round-robin index. For example, if this index is 0 and there are 2 other groups with round-robin indices of 1 and 2 with the same round_robin_sequencing_group and trigger_event, then this region will trigger on every third press of a key only. round_robin_index should begin at 0 and be consecutive. The total number of round-robins is calculated automatically.---@field round_robin_sequencing_group? string Group together regions that have this same string, so that their round_robin_index is part of a separate sequence to other round_robin_sequencing_groups. Use this when you have multiple sets of regions that have a different number of round-robins with the same trigger_event.---@field feather_overlapping_velocity_layers? boolean If another region in this instrument is triggered at the same time as this one and is overlapping this, and also has this option enabled, then both regions will play crossfaded in a proportional amount for the overlapping area, creating a smooth transition between velocity layers. Only works if there's exactly 2 overlapping layers.---@field auto_map_key_range_group? string For every region that has this same string, automatically set the start and end values for each region's key range based on its root key.---@class FloeFileAttributionConfig---@field title string The title of the work.---@field license_name string Name of the license.---@field license_url string URL to the license.---@field attributed_to string The name/identification of the persons or entities to attribute the work to.---@field attribution_url? string URL to the original work if possible.---@class FloeNamedKeyRangeConfig---@field name string The name of the key range.---@field key_range number[] The range of the keyboard to give a name to. These should be MIDI note numbers, from 0 to 128. The start number is inclusive, the end is exclusive.---@class FloeBackgroundOverlayVignetteConfig---@field colour? number Edge colour of the vignette as a 0xRRGGBBAA integer. The alpha component controls the strength of the effect; set it to 0 to disable.---@field inner_radius? number Radius of the unaffected centre area, as a proportion of the panel's smaller dimension. 0 means the vignette starts at the centre; values near 1 confine it to the very edges.---@class FloeBackgroundOverlayPanelTintConfig---@field colour? number A flat tint drawn over the blurred mid-panel surfaces, as a 0xRRGGBBAA integer. Set alpha to 0 to disable.---@class FloeImpulseResponseConfig---@field name string The name of the IR.---@field id? string A unique identifier for the IR. If not specified, it will be the name of the IR. Either way, IR IDs must be unqiue within a library. It can be any text but it's recommended to use a human-readable identifier (similar to the name). IDs are how presets and settings refer to IRs.---@field path string File path to the impulse response file, relative to this script.---@field folder? string Specify a folder to group IRs under a common heading. It may contain slashes to represent a hierarchy. See https://floe.audio/develop/tags-and-folders.html for more information.---@field tags? string[] An array of strings to denote properties of the IR. See https://floe.audio/develop/tags-and-folders.html for more information.---@field description? string A description of the IR. Start with a capital letter an end with a period.---@field audio_properties? FloeImpulseResponseAudioPropsConfig Audio properties.---@class FloeRegionConfig---@field path string A path to an audio file, relative to this current lua file.---@field root_key number The pitch of the audio file as a number from 0 to 127 (a MIDI note number).---@field trigger_criteria? FloeTriggerCriteriaConfig How this region should be triggered.---@field loop? FloeRegionLoopConfig Loop configuration.---@field timbre_layering? FloeRegionTimbreLayeringConfig Timbre layering configuration.---@field audio_properties? FloeRegionAudioPropsConfig Audio properties.---@field playback? FloeRegionPlaybackConfig Playback configuration.---@field slices? table[] An array of slices that divide this region's audio into segments for tempo-synced playback. Each slice defines a start frame and a relative length. The system sums all length_proportion values to determine the total number of steps; each slice's proportion of the total determines its playback duration in the sequence.---@field loop_beats? number The musical length of the loop in beats (e.g. 4 for a 1-bar loop in 4/4, 8 for 2 bars). Required when slices are set. Used by the arpeggiator's auto-rate to pick a tempo division that matches the loop's native timing.---@field native_bpm? number The BPM the loop was recorded at. Required when slices are set. Used by the arpeggiator's auto-rate together with loop_beats to compute each step's native duration.---@class FloeBackgroundOverlayConfig---@field vignette? FloeBackgroundOverlayVignetteConfig Configures the radial vignette drawn over the background image when this library is the active background.---@field panel_tint? FloeBackgroundOverlayPanelTintConfig Configures a flat colour tint drawn over the blurred mid-panel surface. Independent of the vignette.---@class FloeLibraryConfig---@field name string The name of the library. Keep it short and use tagline for more details.---@field tagline string A few words to describe the library.---@field library_url? string The URL for this Floe library.---@field description? string A description of the library. You can be verbose and use newlines (\n).---@field author string Who created this library. Keep it short, use the description for more details.---@field id? string A unique identifier for this library. Specifying this field overrides the default ID of "library-name - author". It can be any text, its only meaning is to uniquely identify this library from others. However, in rare cases it may be shown on the UI so it should be human-readable and representative of the library. This field is useful if you want to change the name of the library: set this to the previous ID (otherwise the ID will change to "new-library-name - author") and bump the revision field.---@field author_url? string URL relating to the author or their work.---@field revision? number The revision number of this library. Bump this whenever you publish a backwards-compatible update (additional content, fixes, tweaks); breaking changes are not allowed - you'd need to create a new library such as: "Strings v2". The legacy name `minor_version` is also accepted.---@field background_image_path? string Path relative to this script for the background image. It should be a jpg or png. Look at Floe's 'Develop Libraries' docs for recommended specs.---@field icon_image_path? string Path relative to this script for the icon image. It should be a square jpg or png.---@field background_overlay? FloeBackgroundOverlayConfig Controls the vignette and panel-tint drawn over the background image when this library is the active background.---@class floefloe = {}-- Creates a new library. You should only create one library in your script. -- Return the library at the end of your script.---@param config FloeLibraryConfig---@return lightuserdata libraryfunction floe.new_library(config) end-- Creates a new instrument on the library. You can call this multiple times to -- create multiple instruments.---@param library lightuserdata---@param config FloeInstrumentConfig---@return lightuserdata instrumentfunction floe.new_instrument(library, config) end-- Adds a region to an instrument. You can call this multiple times to create -- multiple regions. Each instrument must have one or more regions.---@param instrument lightuserdata---@param config FloeRegionConfigfunction floe.add_region(instrument, config) end-- Adds a reverb impulse response to the library. You can call this multiple times -- to create multiple impulse responses.---@param library lightuserdata---@param config FloeImpulseResponseConfigfunction floe.add_ir(library, config) end-- Sets the attribution information for a particular file or folder. If the path -- is a folder, the attribution requirement will be applied to all audio files in -- that folder and its subfolders. You can also point it at the library's -- background_image_path to credit the cover image — when set, a subtle credit -- line appears on the Perform page.---@param file_path string---@param config FloeFileAttributionConfigfunction floe.set_attribution_requirement(file_path, config) end-- Gives a name to a key range of this instrument. For example, with a -- multi-sampled keyboard instrument, you might mark the ranges beyond the natural -- range of the real instrument as "Extended" ranges. You can call this multiple -- times to create multiple named key ranges. Alternatively, if the instrument -- contains multiple sounds, you can name each sound: "Kick", "Snare", etc. Don't -- overlap ranges.---@param instrument lightuserdata---@param config FloeNamedKeyRangeConfigfunction floe.add_named_key_range(instrument, config) end-- Sets the required Floe version for this library. If the current Floe version is -- lower than the required version, an error will be raised.---@param version_string stringfunction floe.set_required_floe_version(version_string) end-- Extends a table with another table, including all sub-tables. The base table is -- not modified. The extension table is modified and returned with all keys from -- both tables. If a key exists in both, the extension table value is used.---@param base_table table---@param t table---@return table extended_tablefunction floe.extend_table(base_table, t) end-- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-100 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.---@param midi_range table---@return table hundred_rangefunction floe.midi_range_to_hundred_range(midi_range) end-- Converts a MIDI note range (where the end value is inclusive) to Floe's 0-1000 -- range (where the end value is exclusive, A.K.A, one-past the last). Takes a -- table with two integers for start and end. Returns the same format but -- remapped.---@param midi_range table---@return table thousand_rangefunction floe.midi_range_to_thousand_range(midi_range) end_G.floe = floe ``` --- # Packages Page Submissions > Documentation for developers to submit packages to Floe's Package Directory Do you have a Floe package you'd like to add to the [Package Directory](/packages)? We're happy to help you get it listed. - If you're familiar with development workflows, please submit a [pull request](https://github.com/floe-audio/Floe/pulls) with a new entry to `package-database.json` following the schema below. - Otherwise, please [contact us](https://github.com/floe-audio/floe/discussions) and we'll help add your package. All packages must be compatible with the current Floe version and meet basic quality standards for audio, scripting, and presentation. Packages from larger-budget developers/studios may require [sponsorship](/docs/about-the-project/sponsorship). ## Database Schema The package database (`website/static/package-database.json`) contains information about available Floe packages displayed on the website's packages page. Each entry represents a package that users can discover and install. - **`name`** - Package display name - **`slug`** - Lowercase version of name using dashes instead of spaces - used to make the URL - **`developer`** - Developer/studio name - **`developer_icon`** - URL to developer icon/logo - **`background_image`** - URL to package preview image - **`demo_video`** - Optional URL to a short demo video (MP4), shown with an HTML5 player on the package page - **`gallery`** - Optional array of image URLs (e.g. GUI screenshots), shown as a thumbnail grid with a click-to-expand lightbox - **`attribution_required`** - Boolean, shows ATTRIBUTION badge if true - **`description`** - HTML description with links allowed - **`category`** - `"community"` or `"professional"`, see below - **`direct_download_link`** - Direct download URL (null if external) - **`external_product_page`** - Developer's product page URL - **`instruments`** - Number of instruments in package - **`presets`** - Number of presets in package - **`irs`** - Number of impulse responses in package ## Categories **Community** - Open-source libraries, passion projects, independent conversions from other formats. Always free. Open to submissions from individual creators and non-commercial entities. **Professional** - High-quality libraries from established developers/studios. May be free or paid. [Requires project sponsorship](/docs/about-the-project/sponsorship). --- # Package libraries & presets for distribution > How to create Floe Packages to distribute your sample libraries and presets The easiest and most reliable way to distribute your Floe content is with [Floe Packages](/docs/installation/install-packages#what-is-a-package). Floe Packages are `.floe-pkg` files (ZIP files internally) containing **sample libraries** (which provide instruments and IRs) and/or **presets** (ready-to-use professional sounds). Packages are what users download and install into Floe. Floe also accepts `.zip` file extension. Floe offers an easy-to-use GUI for [installing packages](/docs/installation/install-packages). This installation process carefully considers existing content, versions, installation preferences, and whether installed libraries have been modified. The result should 'just work' or provide clear instructions on what to do next. As with Floe's sample library format, openness is key. That's why Floe Packages are just ZIP files with a specific structure and a `.floe-pkg` extension. Anyone can create them and anyone can open them (rename to `.zip` to extract). Additionally, it gives the user the option to extract them manually rather than use Floe's GUI if they wish. Create Floe Packages using our command-line tool or any ZIP program. We often recommend not leaving packages with the `.zip` extension though because the common thing to do with ZIPs is extract them, which is not what Floe's 'Install Package' button wants, leading to confusion. Instead, always change the file extension to `.floe-pkg`. ## Encrypted packages Floe also supports encrypted packages. Whilst not open, these are implemented in a spirit of Floe's hassle-free philosophy. A license key is needed to unlock the package. No internet connection is required. Documentation is not currently provided for encrypted packages. ## Packager command-line tool If you're comfortable with such things, we have a command-line tool to create Floe Packages. It ensures everything is set up correctly and adds a couple of nice-to-have features, particularly for users who want to install the package manually rather than with Floe's GUI. However, for regular packages, you can use any ZIP program to create them. Just make sure they follow the structure described in the next section, and rename the resulting `.zip` to `.floe-pkg`. Creating encrypted packages requires `floe-packager` and is not yet documented. #### Download - **Floe Packager Windows**: [Floe-Packager-v2.0.4-Windows.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-Windows.zip) (14 MB) - **Floe Packager macOS Apple Silicon**: [Floe-Packager-v2.0.4-macOS-Apple-Silicon.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-macOS-Apple-Silicon.zip) (1 MB) - **Floe Packager macOS Intel**: [Floe-Packager-v2.0.4-macOS-Intel.zip](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-macOS-Intel.zip) (1 MB) - **Floe Packager Linux**: [Floe-Packager-v2.0.4-Linux.tar.gz](https://github.com/floe-audio/Floe/releases/download/v2.0.4/Floe-Packager-v2.0.4-Linux.tar.gz) (15 MB) Download the program, extract it, and run it from the command line. #### Usage Here's the output of `floe-packager --help`: ``` Packages libraries and presets into a Floe package file (.floe-pkg or .floe-pkg-enc).Existing packages can be merged into the output. Multiple libraries and preset foldersare supported. Additionally:- Validates any Lua files.- Ensures libraries have a License file.- Adds an 'About' document for each library (unless --no-about-doc).- Embeds a checksum file into the package for better change detection if the package is installed manually.Encrypted workflow: run gen-key once per product line and store the key securely (orgenerate the key by some other means). Pass it to pack via --package-key for every versionso that a single license key unlocks all of them.Usage: floe-packager [OPTIONS]Commands: pack Build a Floe package (.floe-pkg) from libraries and presets. Existing packages can be merged into the output. info Write a JSON manifest describing the package's instruments, presets, tags, etc., without producing a package file. gen-key Generate a random package key and print it to stdout.Run 'floe-packager --help' for more information on a command.Build a Floe package (.floe-pkg) from libraries and presets. Existing packages can be merged into the output.Usage: floe-packager pack [OPTIONS]Positional arguments: Directory to write the package into. Created if missing. The package filename is auto-generated.Optional arguments: -l, --library-folder ... Library folder to include (repeatable) -p, --preset-folder ... Preset folder to include (repeatable) -i, --input-package ... Existing package file to merge into the output. Files from --library-folder and --preset-folder take precedence on conflict. (repeatable) --prune Silently drop files that aren't used: for libraries, files not referenced from Lua (samples, images, IRs) or the .lua/license files; for preset folders, files that aren't presets or preset-bank info files. Without this, such files are warned about but still included. -n, --package-name Override the auto-generated package name. --package-key 64-character hex key for encrypting the package (gen-key can create one). When present, produces an encrypted .floe-pkg-enc instead of a plain .floe-pkg. Reuse the same key across versions so existing license keys stay valid. --no-about-doc Don't add the auto-generated 'About' PDF to each library folder.Write a JSON manifest describing the package's instruments, presets, tags, etc., without producing a package file.Usage: floe-packager info [OPTIONS]Positional arguments: JSON file path to write the manifest to. Use '-' to write to stdout.Optional arguments: -l, --library-folder ... Library folder to include (repeatable) -p, --preset-folder ... Preset folder to include (repeatable) -i, --input-package ... Existing package file to merge into the output. Files from --library-folder and --preset-folder take precedence on conflict. (repeatable) --prune Silently drop files that aren't used: for libraries, files not referenced from Lua (samples, images, IRs) or the .lua/license files; for preset folders, files that aren't presets or preset-bank info files. Without this, such files are warned about but still included. -n, --package-name Override the auto-generated package name.Generate a random package key and print it to stdout.Usage: floe-packager gen-key [OPTIONS] ``` #### Examples These examples use bash syntax. ``` # Creates a .floe-pkg from the Slow library and the Slow Factory Presets.# Slow and "Slow Factory Presets" are folders in the current directory../floe-packager --library-folder "Slow" \ --preset-folder "Slow Factory Presets" \ --output-dir .# Creates a .floe-pkg containing multiple libraries and no presets./floe-packager --library-folder "C:/Users/Sam/Floe-Dev/Strings" \ "C:/Users/Sam/Floe-Dev/Common-IRs" \ --output-dir "C:/Users/Sam/Floe-Dev/Releases" \ --package-name "FrozenPlain - Strings" ``` ## Package structure If you're not using the packager tool, you need to know the structure of the Floe Package. It's very simple. Requirements of a floe package: - The package must contain a folder called `Libraries` and/or a folder called `Presets`. If present, these folders must contain the libraries and presets respectively. Be careful that your ZIP program is not adding an extra folder when you create the ZIP file. There should not be a top-level folder in the ZIP file, just the `Libraries` and/or `Presets` folders. #### Example: single library & factory presets ``` 📦FrozenPlain - Arctic Strings Package.floe-pkg/├── 📁Libraries│ └── 📁Arctic Strings│ ├── 📄arctic-strings.floe.lua│ ├── 📁Samples│ │ ├── 📄strings_c4.flac│ │ └── 📄strings_d4.flac│ └── 📁Images│ ├── 📄background.png│ └── 📄icon.png└── 📁Presets └── 📁Arctic Strings Factory ├── 📁Realistic │ ├── 📄Octaved.floe-preset │ └── 📄Soft.floe-preset └── 📁Synthetic ├── 📄Bright.floe-preset └── 📄Warm.floe-preset ``` #### Example: multiple libraries ``` 📦Audioata - Synthwave Bundle Package.floe-pkg/├── 📁Libraries│ ├── 📁Synthwave Bass│ │ ├── 📄synthwave-bass.floe.lua│ │ └── 📁Samples│ │ ├── 📄bass_c1.flac│ │ └── 📄bass_d1.flac│ ├── 📁Synthwave Drums│ │ ├── 📄synthwave-drums.floe.lua│ │ └── 📁Samples│ │ ├── 📄kick.flac│ │ └── 📄snare.flac│ └── 📁Synthwave Synths│ ├── 📄synthwave-synths.floe.lua│ └── 📁Samples/│ ├── 📄synth_c4.flac│ └── 📄synth_d4.flac└── 📁Presets └── 📁Synthwave Factory ├── 📄Clean Pad.floe-preset ├── 📄Dirty Lead.floe-preset ├── 📄Nebula Drone.floe-preset ├── 📄Punchy Kickdrum.floe-preset ├── 📄Backing FX.floe-preset └── 📄Full Effect.floe-preset ``` --- # Tags and folders > Best practices for using tags and folders in Floe sample libraries Floe has 2 complementary features for browsing, searching and filtering: tags and folders. Presets, instruments, and impulse responses all use tags and folders. For developers, there are best practises for how to use tags and folders to offer the best experience for the user. On this page, we use the term 'item' to mean either preset, instrument, or impulse response: these all use tags and folders in a similar way. ## Folders Folders are used to group items under a common heading. Folders should be categories that relate to the theme or objective of the library. For example, for Lost Reveries, we wanted to explore the technique of using three complementary timbres to layer into a full-spectrum sound, so we choose folders: "Low", "Mid" and "Air". Another example might be a library of field recordings, folders might be "Urban/London", "Urban/York" or "Nature/New Forest". Folders may contain slashes to represent a hierarchy, just like a filepath. For example: "Piano/1978 Steinway". Use this to specify broad categories that narrow down to specific categories. It's not usually best to have more than 2 levels of hierarchy. It's best to have 5 to 30 items per folder. Folders with only a couple of items clutter the GUI and don't offer much value. Folders with too many items lose their focus. Folders might overlap with tags but, in general, they are more abstract and can use phrases that only make sense in the context of the library as a whole. However, if it makes sense to group items under a common heading such as 'Percussion' (a common tag), then that's fine too — but you should also add this as a tag. ## Tags Tags are the properties of an item. They are used for filtering and searching items across all libraries. Tags must come from the standard pool of tags so that there is a common language that enables standard usage across all libraries. Any tags not in the standard pool are ignored. Add as many relevant tags as possible. ## Instrument tags Instrument tags are set in the sample library's Lua file when calling `floe.new_instrument`. However, writing tags manually is quite laborious. Floe has a utility that allows you to use the GUI to select tags. It will write these tags as Lua code, ready to be included in your `floe.lua` file. `Lua/instrument_tags.lua`: ``` -- This file is generated by Floe's tag builder.return { ["Air - Restless Canopy"] = { "ambient", "bittersweet", "breathy", "dreamy", "ethereal", "nostalgic", "resonant", "smooth", "synthesized", "texture", }, -- ...} ``` `floe.lua`: ``` local instrument_tags = dofile("Lua/instrument_tags.lua")-- ...local instrument_name = "Air - Restless Canopy"local instrument = floe.new_instrument(library, { name = instrument_name, tags = instrument_tags[instrument_name], -- ...}) ``` This Tag Builder is found by clicking on the 3-dots menu at the top of Floe, and then selecting "Library Developer Tools". The tag builder works for whatever instrument is loaded in the first layer of Floe. As you click on tags, the generated Lua code will be placed in the library's folder in a subfolder called `Lua`. ## Standard tags We take a pragmatic approach to defining this set of standard tags. Rather than try to be completely comprehensive and technically accurate, we instead aim to strike a balance between correctness and common usage within the music production space. The goal of tags is to help users find the item they need. You can suggest edits to this list via Github or other means. For best results setting tags, go over each of the following questions and add all tags that apply to the item. ### 1. 🔊 Sound source: Where did the sound come from? | Tag | Description | | :-- | :-- | | `acoustic` | Originating from a real instrument | | `field recording` | Environmental or location recordings | | `found sounds` | Real objects not traditionally used for music | | `hybrid` | Combines acoustic/vocal sounds with processed/synthesized elements | | `synthesized` | Generated by algorithms or circuits | | `vocal` | Originating from a human voice | It's strongly recommended to specify a sound-source for instruments and impulse responses. This is sometimes not applicable for presets. ### 2. 🎻 Real instrument category: Does it fit in a real instrument category? `brass`, `cello`, `choir`, `double bass`, `drums`, `electric bass`, `folk`, `guitar`, `keyboard`, `organ`, `percussion`, `piano`, `plucked strings`, `strings`, `struck strings`, `tonal percussion`, `violin`, `wind`. **plucked strings:** Plucked strings such as guitar, harp, mandolin **strings:** Bowed strings such as violin, viola, cello, double bass **struck strings:** Struck strings such as hammered dulcimer, santur These are mostly relevant for acoustic or hybrid sounds, but can be used for synthesized sounds that emulate these instruments. ### 3. 👥 Number of players: How many players are involved? | Tag | Description | | :-- | :-- | | `solo` | Single player | | `ensemble` | Multiple players | This is typically used for acoustic sounds. Synthesized sounds usually don't have this tag. ### 4. ➡️ Sound type (long duration): If it's a long-duration sound, what type is it? | Tag | Description | | :-- | :-- | | `drone` | Sustained, minimal, static foundation with little movement | | `pad` | Playable harmonic support, pitched and chord-capable | | `texture` | Sustained atmospheric element, typically less of a musical pitch than \`pad\` | | `soundscape` | A complete environment or scene, complex sonic space | | `underscore` | Background tones or sequences for underneath dialogue | | `noise` | Non-pitched and constant, similar to white noise | Pick from here if the sound sustains. Mutually exclusive with short-duration and sequence sound types. ### 5. ↔️ Sound type (short duration): If it's a short-duration sound, what type is it? | Tag | Description | | :-- | :-- | | `hit` | Single impactful sound with pitch and percussive elements | | `keys` | Piano or keyboard-like | | `kit` | Different sounds mapped across keys, such as a drum kit | | `oneshot` | Non-looping single sound, typically not for playing chromatically | | `pluck` | Short melodic notes | | `stab` | Extra-short melodic notes | Pick from here if the sound is brief or transient. Mutually exclusive with long-duration and sequence sound types. ### 6. 🔁 Sound type (sequence or pattern): If it's a sequence or pattern, what type is it? | Tag | Description | | :-- | :-- | | `arp` | Arpeggiated pattern of notes | | `sequence` | Sequenced pattern timbre changes | | `loop` | Sampled repeating phrase | Pick from here if the sound is a repeating or arpeggiated pattern. Mutually exclusive with long- and short-duration sound types. ### 7. 🎛️ Sound type (role in a track): What type of sound is it? | Tag | Description | | :-- | :-- | | `lead` | Foreground melodic element | | `bass` | Low-frequency foundation | | `riser` | Building tension element | | `downer` | Descending tension element | | `sound fx` | Special effect sound | | `transition` | Section change element | ### 8. 🪵 Material: Is it made from a specific material? `glass`, `ice`, `metal`, `plastic`, `rubber`, `stone`, `wood`. This is typically used for non-standard instruments in the \`acoustic\` or \`found sounds\` categories. ### 9. 🏛️ Reverb type: What reverb type is it? `cathedral`, `chamber`, `church`, `hall`, `large room`, `open air`, `small room`, `studio`, `unusual`. Strongly recommended for impulse responses. Not applicable for instruments or presets. ### 10. 🙂 Mood (positive): What mood does the item evoke? `bright`, `dreamy`, `ethereal`, `hopeful`, `nostalgic`, `peaceful`, `playful`. **bright:** Positive, uplifting, clear It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 11. 😟 Mood (negative): What mood does the item evoke? `aggressive`, `chaotic`, `dark`, `disturbing`, `eerie`, `melancholic`, `menacing`, `tense`. **dark:** Unhappy, dim, unpleasant It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 12. 😐 Mood (mixed): What mood does the item evoke? `bittersweet`, `hypnotic`, `mysterious`, `quirky`, `subdued`. It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 13. 🎭 Mood (thematic): What mood does the item evoke? `dramatic`, `dystopian`, `epic`, `experimental`, `fantasy`, `heroic`, `noir`, `romantic`, `thriller`, `horror`, `sci-fi`, `western`. It's usually recommended to specify moods for synthesised instruments and presets. Not typically used for well-known acoustic instruments. ### 14. 🎶 Pitch: What are its pitch characteristics? | Tag | Description | | :-- | :-- | | `multi-pitched` | Contains multiple distinct notes (excluding octave unison) | | `non-pitched` | Lacks identifiable musical pitch | | `dissonant` | Contains harmonically clashing pitches | Useful for non-typical sounds that have notable pitch characteristics. A sound is assumed to possess a musical pitch unless otherwise stated. ### 15. 🚂 Timbre (modulation): What is its timbre like? | Tag | Description | | :-- | :-- | | `evolving` | Significantly notable slow morphing changes over time | | `fluctuating` | Significant fast or semi-fast irregular movement | | `glitched` | Digital error artefacts | | `grainy` | Audibly composed of tiny grains | | `pulsing` | Obvious rhythmic pulse | ### 16. 🎷 Timbre (real instrument tone): What is its timbre like? | Tag | Description | | :-- | :-- | | `brassy` | Like brass instruments | | `breathy` | Containing air noise, like wind instruments | | `strings-like` | Characteristic resonance of string instruments | | `reedy` | Characteristic of reed instruments | | `choir-like` | Characteristic of choral voices | | `organ-like` | Characteristic of an organ | | `percussive` | Short, sharp attack | ### 17. 🎚️ Timbre (synthesis technique): What is its timbre like? | Tag | Description | | :-- | :-- | | `analog` | Warm, imprecise, vintage character | | `FM` | Frequency modulation synthesis | | `granular` | Granular synthesis | | `physical modelling` | Simulating real-world physics | ### 18. 💎 Timbre (frequency): What is its timbre like? | Tag | Description | | :-- | :-- | | `airy` | Soft, open, high-frequency hiss | | `circuit bent` | Characteristic of modified electronic devices | | `cold` | Thin, clinical, lacking warmth | | `digital` | Clean, precise, computer-generated character | | `distorted` | Overdriven, crushed, non-linear | | `full-spectrum` | Wide frequency range | | `fuzzy` | Indistinct, soft-edged, unclear | | `glassy` | Clear, fragile, transparent | | `gritty` | Rough, textured, unpolished | | `harsh` | Abrasive, aggressive high frequencies | | `hissing` | Sibilant, white noise | | `lo-fi` | Tape, vinyl, or bitcrush-style degradation — hiss, crackle, wow/flutter, reduced fidelity | | `lush` | Full, rich, densely layered | | `metallic` | Resonant, hard, bright, like metal | | `muddy` | Unclear low-mid frequencies | | `muffled` | Dampened high frequencies | | `nasal` | Strong mid-range resonance | | `noisy` | Contains noise components, imperfect. If the sound is 100% noise use \`noise\` instead. | | `pure` | Free from noise, clean sine-like quality | | `resonant` | Strong resonant peaks in frequency | | `ringing` | Clear high unrelenting resonant sound | | `rumbly` | Very low frequency non-pitch sustained noise | | `saturated` | Subtly distorted, harmonically enhanced | | `smooth` | Even, consistent, without sharp edges | | `thin` | Lacking in fullness, narrow frequency range | | `warm` | Pleasant mid-range and low-mid-range, rounded harmonics | | `whining` | High-pitched fluctuating sound | ### 19. 🎵 Genre: What genres might this item fit best into? `80s`, `EDM`, `IDM`, `ambient`, `blues`, `chillout`, `chiptune`, `cinematic`, `disco`, `downtempo`, `drum & bass`, `dubstep`, `electronic`, `folk (genre)`, `funk`, `future bass`, `glitch`, `hip-hop`, `house`, `industrial`, `jazz`, `lo-fi`, `metal (genre)`, `orchestral`, `pop`, `rock`, `synthwave`, `techno`, `trance`, `trap`, `vaporwave`, `world`. **lo-fi:** Tape, vinyl, or bitcrush-style degradation — hiss, crackle, wow/flutter, reduced fidelity Specifying at least one genre is recommended for all presets and instruments. --- # Quick Start Guide > {/* ## Before you start Floe is an engine — empty without sample libraries. Libraries and their presets come in files called _Floe packages_. If you've bought a library, you'll usually download its package from the developer's website, or find a link in your email. If you don't have any packages yet, browse the [packages](/packages) page to discover free and paid libraries. ## Install Floe and your packages 1. **Download Floe** from [floe.audio/download](https://floe.audio/download) and run the installer for your computer. See [Install Floe](/docs/installation/download-and-install-floe) if you need more detail. 2. **Download your packages.** 3. **Open your DAW** and add Floe to an instrument track. It's usually listed as a virtual instrument under _Floe Audio_. 4. **Open Floe's preferences** by clicking in the top panel, then choose the _Packages_ tab. 5. **Click _Install package_** and select your package file. You can select several at once. ![The Packages tab of Floe's preferences, with the Install package button](https://assets.floe.audio/website/screenshots/install-packages.732780b46497022b.png) Some packages, often paid ones, need unlocking: Floe asks for the license key that came with your purchase. When the installation finishes, Floe shows a summary. Once you click _Done_, your libraries and presets are ready to use. There's no need to restart anything. You can delete the package files afterwards; Floe doesn't need them anymore. If you want to install to a different drive, or want more details, have a look at [Install Packages](/docs/installation/install-packages). ## Play your first preset If the plugin was empty when you installed the package, it will have already loaded one of the library's presets for you — begin playing some notes on your MIDI controller. ### Try some presets ![The top of Floe's window, with the PERFORM tab and the preset arrows numbered](https://assets.floe.audio/website/screenshots/perform-tab-and-arrows.08e76e54b4999528.png)12 1. Click the PERFORM tab button near the top of Floe's UI. 2. Use the large arrow buttons, and , to step through presets. ### Explore the presets ![The preset browser, open beneath the outlined preset box](https://assets.floe.audio/website/screenshots/preset-browser.661d250ce632b3cd.png) 1. Open the preset browser by clicking the preset's name in the top panel. 2. Click a preset in the list on the left to load it. Narrow down the list using the right panel. 3. Close the browser by moving the mouse away from it, clicking outside it, or pressing `escape`. ## Finding your way around ### Tooltips If you hover over a control for a moment, a tooltip pops up explaining what it does. They go well beyond naming the control: each one tells you how it behaves and what's worth knowing about it. When you're not sure what something does, a tooltip is usually the quickest way to find out. If you'd rather not see them, turn off _Show tooltips_ in the preferences. ### Using the controls Knobs and sliders all work the same way: drag up or right to increase the value, hold `shift` for finer control, and double-click to type an exact value. Right-click a control, or a whole section such as a layer's tab or an effect, for more options like copy and paste, resetting and MIDI CC Learn. See [Controls](/docs/usage/controls) for the full details. ### Window size To make the window bigger or smaller, drag its bottom-right corner. In some DAWs, such as Logic Pro, you need to grab this exact corner of Floe rather than the corner of the DAW's window around it. ### Some terminology A few words come up often in this manual. We mean something specific when we use them: - **Preset** — a complete, saved sound, with its own name, description and tags. - **Layer** — one of the three sound layers that this engine revolves around. See them side by side on the LAYERS page. - **Instrument** — the sound source that a layer plays. It might be a single sample or many samples spread across the keyboard. ### The three main pages Most of your time in Floe is spent on its three main pages. In future chapters we'll cover them in full detail: - [**Perform**](/docs/usage/perform) — a distraction-free view for exploring presets and making quick changes. The easiest place to start with Floe. - [**Layers**](/docs/usage/layers) — the three layers and their Instruments, each with its detailed controls. - [**Effects**](/docs/usage/effects) — the effects rack that colours the whole sound. --- # System Requirements > The operating systems, processors and plugin hosts Floe runs on Floe is a plugin, so it runs inside your DAW or another plugin host. Here's what it needs: - **macOS:** macOS 11 (Big Sur) or later, on an Apple Silicon or Intel Mac. - **Windows:** Windows 10 or later, on a processor with SSE2 support (almost every PC since about 2006). - **Linux:** an x86 distribution with glibc 2.31 or later. Floe also needs the libcurl, OpenGL, GLX and X11 libraries (including Xcursor and Xext), plus `zenity` and `xdg-open`, which most desktop distributions already have. Floe is 64-bit only, so your DAW needs to be 64-bit too. ## Plugin formats Floe comes as a CLAP and a VST3 plugin, plus an AU (v2) plugin on macOS. If your DAW supports CLAP, we recommend using that version. There's no standalone application and no AAX (Pro Tools) support at the moment. - **CLAP** hosts include Reaper, Bitwig, FL Studio (2024 or newer) and Studio One Pro (v7 or newer). - **VST3** hosts include Cubase, Studio One, Ableton Live, Reason and Ardour. - **AU** hosts include Logic Pro and GarageBand. --- # Install Floe > Instructions for downloading and installing Floe on Windows, macOS, and Linux Installing Floe is quick: [download](https://floe.audio/download) the installer for your computer, run it, and open Floe in your DAW. This page has the details for each operating system, in case you need them. Before you start, check that your computer meets Floe's [System Requirements](/docs/getting-started/system-requirements). ## Installing Windows macOS Linux 1. Download the installer from the [download page](https://floe.audio/download). 2. Extract the downloaded zip file, usually by double-clicking it. 3. Run the installer and follow its steps. It installs both the CLAP and VST3 versions. 4. Open your DAW and add Floe to an instrument track. If it doesn't appear, ask your DAW to rescan its plugins. To install by hand instead, download the manual-install zip from the same page, extract it, and move the files into your plugin folders: - `Floe.clap` into `C:\Program Files\Common Files\CLAP` - `Floe.vst3` into `C:\Program Files\Common Files\VST3` Once Floe is installed, it needs some sounds. See [Install Packages](/docs/installation/install-packages) to add your sample libraries and presets. ## Updating To update Floe, download and run the latest installer, or run the Linux command again. The new version replaces the old one and is fully backwards-compatible. If you installed by hand, replace the old files with the new ones. Floe checks for new versions for you. When one is available, a red dot appears on the menu in the top panel. ![The red update dot on Floe's menu button](https://assets.floe.audio/website/screenshots/update-indicator.ca15b747cc83e19c.png) Open the menu and choose _Info_. The _About_ tab names the new version and gives you three options: _Download page_, _Changelog_ to see what's new, and _Ignore_, which hides the dot until an even newer version comes out. ![The About tab of Floe's Info panel, showing a new version](https://assets.floe.audio/website/screenshots/check-for-updates.298412ee4fa33aaf.png) To stop Floe checking, untick _Check for updates_ in Preferences. The same place has an option to be told about beta versions too if you want to try new features early: see [Beta Testing](/docs/about-the-project/beta-testing). --- # File Locations > Quick reference guide for where Floe stores its files on Windows, macOS, and Linux You rarely need to know where Floe keeps its files, but it's handy when you're backing up, moving to a new computer or troubleshooting. This page lists them for each operating system. To change where your sample libraries and presets live, see [Folders](/docs/installation/folders) instead. ## Your files Windows macOS Linux - Default sample library folder: `C:\Users\Public\Floe\Libraries\` - Default preset folder: `C:\Users\Public\Floe\Presets\` - Preferences: `C:\Users\Public\Floe\Preferences\floe.ini` - Autosaves: `C:\Users\Public\Floe\Autosaves\` - **Default folders** — where packages install sample libraries and presets unless you've chosen other folders. See [Folders](/docs/installation/folders). - **Preferences** — `floe.ini` holds everything you set in Floe's Preferences panel. It's a text file you can edit by hand, and Floe picks up your changes straight away, though its contents aren't documented yet. - **Autosaves** — recent snapshots of each Floe instance's state, for recovering a lost sound. See [Autosave](/docs/support/autosave). ## Plugins Windows macOS Linux - CLAP: `C:\Program Files\Common Files\CLAP\Floe.clap` - VST3: `C:\Program Files\Common Files\VST3\Floe.vst3` ## Small background files Windows macOS Linux - Persistent store: `%APPDATA%\Floe\persistent_store` - Device ID: `%APPDATA%\Floe\device_id` - Logs: `%LOCALAPPDATA%\Floe\Logs\` - **Persistent store** — a small file for things Floe remembers between sessions. - **Device ID** — a random ID used only when error reporting is on, so that we can measure how often each release crashes. See [Error Reporting](/docs/support/error-reporting). - **Logs** — small text files describing what Floe has been doing. They can help when troubleshooting a problem. These are safe to delete at any time. Floe recreates them the next time it starts, though you may need to set a few things again. ## Mirage files These only matter if you used to have [Mirage](/docs/about-the-project/mirage), Floe's predecessor, installed. Windows macOS Linux - Preferences: `C:\ProgramData\FrozenPlain\Mirage\Settings\mirage.json` - Preferences (alternative): `%APPDATA%\FrozenPlain\Mirage\mirage.json` - VST2: `C:\Program Files\VSTPlugins\mirage64.dll` - VST2 (alternative): `C:\Program Files\Steinberg\VSTPlugins\mirage64.dll` - VST2 (alternative): `C:\Program Files\Common Files\VST2\mirage64.dll` - VST2 (alternative): `C:\Program Files\Common Files\Steinberg\VST2\mirage64.dll` --- # Folders > Managing sample library and preset folders in Floe Floe keeps your sample libraries and presets as ordinary files in ordinary folders. You choose which folders it looks in, so you can keep large libraries on an external drive, keep your own presets somewhere you back up, and organise everything with your usual file manager. There are two separate kinds of folder: sample library folders and preset folders. Floe scans each one, including all its subfolders, and shows what it finds in the browsers. It also watches them, so anything you add, remove or change appears in Floe straight away, without a restart. Floe keeps no separate record of what's installed: whatever is in your folders is what Floe has. You manage the folders on the _Folders_ tab of Preferences. ![The Folders tab of Floe's preferences](https://assets.floe.audio/website/screenshots/folders.9b45bf20f066bfe9.png) Each kind of folder has its own list. The first folder in each list is Floe's default one, which is always scanned. Under each folder, Floe shows how many presets or sample libraries it contains. - **Add folder** — choose a folder for Floe to scan. Pick a top-level folder, such as "Floe Libraries", rather than each library inside it, since the subfolders are scanned too. You can select several folders at once. - **Open folder** — show the folder in your file manager. - **Stop scanning this folder** — remove a folder you've added from the list. Nothing is deleted from your computer; Floe simply stops looking there. The default folders can't be removed. ## Installing to your own folders When you install a package, Floe puts its sample libraries and presets in the install folders chosen on the _Packages_ tab. They start as Floe's default folders on your main drive. To install somewhere else, such as an external drive, choose a different folder from the _Sample library install folder_ and _Preset install folder_ menus. Each menu lists the folders Floe already scans, plus _Add folder_ to add a new one and select it in a single step. See [Installing to a different drive](/docs/installation/install-packages#installing-to-a-different-drive). ## Moving your libraries or presets For now, moving is done using your file manager (Finder, File Explorer, etc.). Floe doesn't have a 'move' button. 1. **Create the new folder** in your file manager. For example, "Floe Libraries" on your external drive. 2. **Add it to Floe** with _Add folder_ on the _Folders_ tab. Be sure to use the right list: sample libraries and presets are separate. 3. **Open the old folder** with its button. 4. **Move everything across** in your file manager, usually by selecting it all and dragging it, or by cutting and pasting. Floe notices the change and updates its browsers instantly. If anything is missing, restart your DAW. To have future packages install into the new folder too, choose it as the install folder on the _Packages_ tab. ## Telling libraries and presets apart If you lose track of which files are which: - **Sample libraries** are folders, usually named like `Developer Name - Library Name`. They usually contain a `floe.lua` file and a `Samples` folder. - **Preset banks** are folders, usually named like `Library Name Factory Presets`. They usually contain category subfolders full of small `.floe-preset` files. We recommend keeping libraries and presets in separate folders, but Floe copes if they're mixed: add the same folder to both lists. ## Why libraries and presets are separate Most sample libraries come with a preset bank, so it's fair to wonder why they live apart. There are a few good reasons: - **They're edited differently.** Libraries are built by developers with programming tools and you rarely change them. Presets are made and changed by musicians all the time. Keeping them apart means you can save and reorganise presets freely without touching a library. - **They're different sizes.** A sample library can be large, with hundreds of audio files, so it often belongs on a big external drive. Presets are tiny, easy to back up and easy to share. - **A preset bank can use several libraries.** Its presets aren't tied to a single library, so they don't belong inside one. See [How Presets Are Stored](/docs/presets/preset-storage) for more about preset files, and [File Locations](/docs/installation/file-locations) for where the default folders are. --- # Install Packages > How to install Floe packages containing sample libraries and presets Sample libraries and presets come to you in _packages_. Download your package file, then present it to Floe via its _Install package_ button. 1. **Download your package(s)** — files ending `.floe-pkg` or `.floe-pkg-enc`. 2. **Open Floe** in your DAW. If you haven't installed it yet, see [Install Floe](/docs/installation/download-and-install-floe). 3. **Open Preferences** from the top panel, and choose the _Packages_ tab. 4. **Click _Install package_** and select your package file. You can select several at once. ![The Packages tab of Floe's preferences](https://assets.floe.audio/website/screenshots/install-packages.732780b46497022b.png) ## Entering your license key Some packages, often paid ones, are locked and need a license key. They install in the same way, but Floe first asks for the key to unlock them. These packages end in `.floe-pkg-enc` and need Floe version 2 or later. Everything happens offline, without an account or an internet connection. There are two ways to give Floe your key: - **Load a license file** — if your purchase came with a `.floe-license` file, choose _Load license file_ and select it. One file can hold keys for several packages, so it unlocks everything you've selected in one go. - **Enter a key manually** — paste your key into the box, using _Paste_, then click _Activate_. A license key is personal to you and contains your details. The summary at the end of the installation shows who the package is licensed to. ## When the installation finishes The new libraries and presets are ready to use straight away, without restarting Floe or your DAW. Floe shows a summary of what it installed, with a couple of optional extras: - **Send to Trash** — delete the package file. Floe doesn't need it once it's installed, though you might like to keep a copy as a backup. - **Load Preset** — load the preset bank's default preset. If Floe was blank when you installed, this preset is loaded for you instead. Click _Done_ to close the summary. ## What is a package? A package is simply how content is delivered to Floe. It usually holds one sample library plus a bank of factory presets for it, but it can hold any mix: just presets, several libraries, or both. Floe doesn't keep track of packages; they're just the means of getting sample libraries and presets installed into your [folders](/docs/installation/folders). To remove things, see [Uninstalling](/docs/installation/uninstalling). ## Installing to a different drive Floe installs into its default folders on your main drive unless you tell it otherwise. To install somewhere else, such as an external drive with more space: 1. On the _Packages_ tab, open the _Sample library install folder_ menu. 2. Choose _Add folder_ and pick or create the folder you want, such as "Floe Libraries" on your external drive. Floe adds it to the folders it scans and selects it for installing. 3. Do the same with the _Preset install folder_ menu, if you want your presets somewhere else too. Future packages install into the folders you've chosen. Libraries and presets you've already installed stay where they are, but Floe updates them in place when you install a newer version. To move them, see [Folders](/docs/installation/folders). ## Updates and conflicts Whenever a new version comes out, install it in the same way. Floe handles upgrades for you: - If you have an older version, Floe updates it where it is. - If you already have the same or a newer version, Floe skips it. - If you've changed the installed files yourself, Floe asks before touching them. You can skip that part to keep your changes, or overwrite it. For presets, you can also keep both. Whenever Floe replaces something, the old version goes to your Trash or Recycle Bin, with a name ending in something like `(old-3KJ9)`. If you change your mind, restore it from there and remove that ending from its name. ## ZIP packages Older packages (from Floe v1) are ZIP files (`.zip`). Floe still installs them. Don't extract the ZIP first: select the ZIP file itself with _Install package_. On macOS, Safari extracts ZIP files after downloading them. To stop it, untick _Open "safe" files after downloading_ in the _General_ tab of Safari's settings. ## Installing by hand You don't usually need to, but you can install a package without the _Install package_ button. This works for `.floe-pkg` and `.zip` packages, not ones that need a license key. A `.floe-pkg` file is really a ZIP file with a different ending. Rename it to end in `.zip` instead (on macOS: right-click › _Get Info_ › _Name & Extension_; on Windows, first turn on _File name extensions_ in File Explorer's _View_ menu, then rename it), and extract it with your usual tools. Then copy the contents of its `Libraries` folder into one of Floe's sample library folders, and the contents of its `Presets` folder into one of its preset folders. You'll find them on the _Folders_ tab of Preferences, and the button opens them. Floe picks up the new files straight away. ## Mirage libraries If a package contains a library made for [Mirage](/docs/about-the-project/mirage), Floe's predecessor, you may see an error saying _Mirage Compatibility - FrozenPlain_ isn't installed. To fix it, download the [Mirage Compatibility package](https://github.com/FrozenPlain/floe-mirage-compatibility/releases/download/v1.2/FrozenPlain.-.Mirage.Compatibility.Package.floe-pkg) and install it like any other package. --- # Uninstalling > Instructions for uninstalling Floe and removing libraries and presets You can remove sample libraries, preset banks and Floe itself separately. To remove everything, work through the sections below in order. Libraries and presets are easiest to remove from inside Floe. When Floe removes a library or preset bank, it sends it to your Trash or Recycle Bin rather than deleting it outright, so if you remove one by mistake, you can restore it from there. You might be wondering why there's no mention of _packages_ on this page. Packages are just the means of installing content into Floe. Sample libraries and presets are what actually get installed, so they're what you uninstall. ## Uninstalling sample libraries 1. Open the menu in the top panel and choose _Info_. 2. On the _Libraries_ tab, click _Uninstall_ on the library you want to remove, and confirm. ![A library's card in Floe's Info panel, with the Uninstall button](https://assets.floe.audio/website/screenshots/uninstall-library.18c5ba53660143ab.png) You can also right-click a library's name in the Instrument or IR browser and choose _Uninstall_. ## Uninstalling presets 1. Open the preset browser by clicking the preset's name in the top panel. 2. Right-click the preset bank in the right-hand panel and choose _Uninstall_, then confirm. ![The right-click menu of a preset bank in the preset browser](https://assets.floe.audio/website/screenshots/uninstall-preset-bank.15ae5974b3fe9596.png) The same works for a single folder of presets. Repeat for each preset bank you want to remove. ## Uninstalling Floe ### Windows Close your DAW, then uninstall Floe like any other program, from _Installed apps_ (or _Add or Remove Programs_) in Windows' settings, where it's listed as _Floe Audio Plugin_. See [Microsoft's guide](https://support.microsoft.com/en-gb/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98) if you need help. This removes the Floe plugins, but not your libraries or presets. The uninstaller can also remove Mirage, Floe's predecessor. ### macOS and Linux There's no uninstaller: delete Floe's files yourself. The plugin files are the important ones, but you can delete the rest of Floe's files too, if you want to be thorough. See [File Locations](/docs/installation/file-locations) for where they all are. --- # About Floe > What Floe is and its key features ## Welcome to Floe! Floe is an audio plugin for your digital audio workstation (DAW). It's a platform for performing, finding, and transforming sounds from compatible sample libraries. It hosts sample-based instruments (sampled pianos, synths, textures, and so on) and exposes an extensive set of parameters for venturing into sample-based synthesis. A comprehensive presets system with powerful browsers, macros, a random variation generator, and other features makes it a formidable engine for sample libraries. ![Floe's Perform page](https://assets.floe.audio/website/screenshots/floe-whole-gui-4.a40ff59a2509fcb3.png) It focuses on ease of use and performance, designed to offer a curated experience for producing music rather than overwhelming complexity. Floe is not designed for ad-hoc sampling — you can't currently import your own samples. Instead, it's an open platform for professional, curated, sample-library products. For those with programming experience, the means to make custom libraries is fully open. Floe itself is free and open source. It works offline, with no accounts or logins. ## Key features - 3 independent layers to blend and mix, even with Instruments from different libraries - 12 effects in a reorderable rack - Powerful [granular synthesis](/docs/usage/playback-tab#granular-synthesis) - Per-layer [arpeggiator](/docs/usage/arp-tab) - Comprehensive [browsers](/docs/usage/browsers) for finding the right sound or preset - [Random variations](/docs/usage/randomisation) for spontaneous inspiration - [Macros](/docs/usage/macros) that shape a preset with a single knob - Sound-design friendly: undo/redo, and a switch to compare your edits with the original preset - All the fundamentals: envelopes, filters, EQ, MIDI CC and sustain pedal support - Efficient: multiple instances of Floe share the sample libraries they've loaded, keeping memory use low - Resizable window - Totally free and open source: offline, no logins, no catches - [Free sample libraries](/packages) to get you started --- # Loading Presets > How to find, load and audition Floe presets Presets are the quickest way into Floe's sounds. Each one is a complete, production-ready setup. Load one and it's ready to play in your track straight away. The factory presets give you a whole palette of sounds to start from. Their names hint at the sound or how you might use it, and they're sorted into folders so you can narrow down to the kind of sound you need. Presets are also how you keep sounds of your own. Save it as a preset and you can load it into any instance of Floe in the future. See [Saving Presets](/docs/presets/saving-presets). Loading a preset replaces all your settings, except for your [Performance Controls](/docs/usage/performance-controls). You can always use the _Undo_ button in the top panel to undo a preset load. ## The preset box The preset box in the top panel shows what's loaded and gives you quick ways to move between presets. ![Floe's top panel, with the preset box outlined](https://assets.floe.audio/website/screenshots/top-panel.6c17c53c76feceb5.png) On the left is the name of the current preset, with a short description underneath. If the preset has changed since it was loaded, Floe shows _(modified)_ after the name. Click the name to open the preset browser. The buttons on the right are: - **Previous/Next** — step to the previous or next preset. - **Random** — jump to a random preset. - **Save** — open the Save Preset panel. See [Saving Presets](/docs/presets/saving-presets). - **Load from file** — load a preset file from anywhere on your computer, such as one someone has sent you. It doesn't need to be in one of Floe's preset folders. Right-click the name for two more options. _Load Blank Preset_ resets every setting to its default and clears all the Instruments and IRs, ready to build a sound from scratch. _Open Containing Folder_ shows the current preset's file in your file manager. ## Finding presets ![The preset browser, open beneath the preset box](https://assets.floe.audio/website/screenshots/preset-browser.661d250ce632b3cd.png) The preset browser is the place for browsing deliberately. Choose a folder or some tags in the dark panel on the right, then click presets on the left to hear them. The browser stays open, so you can play a few notes, click the next preset, and play again. Once you've loaded a preset, if you move your cursor outside of the browser it will close. See [Browsers](/docs/usage/browsers) for everything it can do: filtering, search, keyboard navigation and more. For a quick audition without the browser, use the previous and next arrows, and . The large arrows on the _Perform_ page do the same. Both follow the filters you've set in the preset browser, so if you've chosen a particular folder or tag there, the arrows only step between presets that match. When you reach the end of the list, they wrap round to the start. Random follows the same filters, which makes it a handy way to dip into a chosen corner of your presets. For Floe's other ways to bring in an element of chance, see [Randomisation](/docs/usage/randomisation). ## Default preset The default preset is the one a new instance of Floe opens with, instead of a blank state. There are two ways to set the default preset: - Right-click any preset in the [browser](/docs/usage/browsers) and choose _Set as Default Preset_. The preset is then marked with a icon in the browser. - Or alternatively, load the preset, then open Preferences and, in the _Default Preset_ row on the _General_ tab, click _Use Current Preset_. Click the button to remove the default, so Floe opens blank again. The default preset doesn't apply if you open a saved DAW project — Floe uses the sound saved in the project as usual. After installing a preset bank a default preset will be set for you. You can always overwrite this using the options above. Once you set a custom default, installing further packages will not interfere with your choice. --- # How Presets Are Stored > Preset files, preset folders and preset banks Each preset is a single small file ending in `.floe-preset`, kept in a folder on your computer. Because they're ordinary files, you can organise them with your usual file manager (Finder, File Explorer, etc.): rename them, move them into folders, or delete them. Floe watches its [preset folders](/docs/installation/folders) and updates the preset browser as soon as anything changes. The file name is the preset's name, so renaming the file renames the preset. The author, description and tags are stored inside the file: to change them, save over the preset in Floe. See [Saving Presets](/docs/presets/saving-presets). Presets are tiny, typically just a few kilobytes, so even large collections take up very little space. ## Sharing presets You can simply share `.floe-preset` files. As long as the recipient has the same libraries installed, it works just the same. They can put it in one of their [preset folders](/docs/installation/folders) so it appears in the preset browser, or do a one-off load with the load-from-file button. ## Preset banks A preset bank is a folder of presets, including all its subfolders, that belongs together, such as a set of factory presets. Preset banks are the top level of organisation in the preset browser. Presets in folders that aren't part of any bank might be grouped together as _Miscellaneous_. Floe also recognises some older factory preset banks that don't have an info file. --- # Saving Presets > How to save your own Floe presets with a description and tags You can save your own Floe presets ready to load into another project or another instance of Floe. It's worth doing whenever you've found something you'd hate to lose. Click the save button in the [preset box](/docs/presets/loading-presets#the-preset-box) to open the Save Preset panel. All of its fields are optional: you can click _Save_ straight away and just choose a name. Filling them in helps you find the sound again later, especially once you've saved lots of presets. ![Floe's Save Preset panel with the tags outlined](https://assets.floe.audio/website/screenshots/save-preset.feb3ad1cf1db22ab.png) - **Author** — who made the preset. The buttons beside it store your name, so you don't have to type it out every time: stores the current name, and fills in the stored name. - **Description** — a few words about the sound. - **Tags** — the outlined section, describing the sound so you can find it again with the preset browser's filters. ## Naming and saving You name a preset by naming its file. When you click _Save_ or _Save As New_, your system's file dialog opens, and the file name you choose there becomes the preset's name. To rename a preset later, rename its file in your file manager (Finder, File Explorer, etc.). The files are portable. Copy/move them as you like. The buttons at the bottom of the panel depend on where the current sound came from. _Cancel_ closes the panel without saving, and the others are: - **Save** — choose a file name and folder for a new preset. This is the only option after _Load Blank Preset_. - **Overwrite** — save over the preset file you loaded, keeping its name. It doesn't ask for confirmation, and _Undo_ won't bring back the old file, so only use it when you're sure. - **Save As New** — save a new preset, leaving the one you loaded untouched. The first time you save, the file dialog opens in a `User` folder inside Floe's preset folder; after that it remembers where you last saved. Save inside one of Floe's [preset folders](/docs/installation/folders) and the preset appears in the preset browser straight away. The button at the top of the panel keeps it open, so you can step through presets and edit each one's author, description and tags as you go. ## Writing a description When you load a preset, its description appears in two places on Floe's UI. As much as fits goes beneath the preset name in the top panel, and the rest continues on the _Perform_ page. To choose where it splits add a newline when you write the description: everything before the first line break goes in the top panel. If that line is too long to fit, Floe splits it where it runs out of room instead. You can leave the description blank. When Floe loads a preset with no description, it generates one on the fly from what's in the preset and displays that instead, so even quick saves get something helpful. ## Choosing tags Tags are grouped into categories such as sound source, sound type, mood and timbre. Choose the ones that describe the sound: they're what the preset browser's tag filters use. Some tags turn grey once you've chosen a related one. That's a hint that the combination is unusual, such as a real instrument category on a synthesized sound, but you can still click them if they fit. --- # Attribution > Information about attribution requirements for sample libraries in Floe Some sample libraries ask you to credit their creator when you share music made with them. If a library you're using requires attribution: - Floe shows you the exact attribution text. - Copy and paste the text wherever you share your music. - Your music is still yours: you can sell it, relicense it and so on. You just need to credit the creator of the sounds. These points assume the license is the "Creative Commons Attribution 4.0 International" license — a very common attribution-required license. Disclaimer: whilst this page is based on research and understanding of the topic, it is not legal advice. You should check the license details yourself. ## About attribution-required licenses A license tells you what you can and can't do with a sample library. Most developers choose a license that allows you to use the sounds in your music without having to credit them. However, some developers choose an attribution-required license such as the widely-used [Creative Commons Attribution](https://creativecommons.org/licenses/by/4.0/) license (also known as "CC BY"). This license allows you to use the sounds for free, even in commercial projects, as long as you credit the creator by including a bit of attribution text along with your music. For example, you might include the text in a caption on your website, in the album notes or in a credits roll (or any ["reasonable manner"](https://creativecommons.org/licenses/by/4.0/legalcode.en#s3a2)). The music that you create with sounds under this license is yours: you can sell it, stream it, relicense it or give it away; you are just required to credit the sound's creator. For some people, giving attribution is a deal-breaker. But there are good reasons it might not be so bad: - Attributions support the creators of sounds, giving them recognition, traffic and potential customers. - Attributions can look professional and show a high level of care in your work. - Sharing where your sounds come from helps other musicians find great sounds too, raising the quality of music everywhere. ## How Floe helps Floe makes attribution easy. When you load a sound from a library that requires it, a small red icon appears at the top of the window. Click it to see the exact text to copy and paste wherever you need it. Floe gathers the requirements from every instance of Floe you have open, so you only need to do this once. ![Attribution GUI](https://assets.floe.audio/website/attributions-gui.9ac958f1481aaf52.png) --- # Glossary > {/* A few words have a specific meaning throughout this manual: - **[Package](/docs/installation/install-packages#what-is-a-package)** — the file you download to install Floe content (`.floe-pkg` or `.floe-pkg-enc`). Packages may contain sample libraries, presets, or both. - **[Sample Library](/docs/reference/sample-libraries)** — a collection of mapped, playable sounds along with images, tags, and other metadata. Sample libraries provide the Instruments and impulse responses that Floe loads. - **[Layer](/docs/usage/layers)** — one of the three identical channels, which all play together. Each layer holds an Instrument and has its own playback, envelope, LFO and EQ controls. - **[Instrument](/docs/reference/instruments)** — a playable sound source from a sample library, loaded into one of the layers. It might be a single recording or many samples mapped across the keyboard. - **[Impulse Response](/docs/usage/effects#convolution-reverb)** — a recording from a sample library that gives the Convolution Reverb effect its character. - **[Preset](/docs/presets/loading-presets)** — a saved sound: a snapshot of every parameter and option, along with a name, description and tags. --- # Instruments > Instruments are Floe's core building block An Instrument is a playable sound source. It might be a single sample that loops, or many samples mapped across the keyboard, with velocity layers and round robins. You load an Instrument into any of the three [layers](/docs/usage/layers) with the [Instrument browser](/docs/usage/browsers), which finds Instruments across all your installed sample libraries. A layer with no Instrument loaded shows _None_ in place of the name: click it to open the browser. Instruments come from sample libraries, which are made with Floe's open developer tools. --- # Legacy Parameters > How Floe ensures backwards compatibility When you open an older DAW project, some of Floe's controls might show a yellow badge and refuse to move. Don't worry: your sound is safe and sounds exactly as it did when you saved it. What's happened is that a Floe update replaced some parameters with new versions. The old parameters still exist and work exactly as before, but they're hidden out of sight. While one of them is in charge, the matching control on the main UI is locked. That's what the badge means. You have two options: - **Do nothing.** If you don't need to change the sound any further, leave it as it is. Floe is stable like this and sounds identical to when the project was saved. - **Update to the current parameters.** Do this if you want to keep shaping the sound: it unlocks the main UI and the new parameters. The update keeps the sound the same and is normally perfectly safe, but check for DAW automation first, as described [below](#updating-a-legacy-parameter). ## Why legacy parameters exist Floe aims for perfect backwards compatibility: a preset or DAW project saved with any version of Floe loads up sounding exactly the same in every later version. To make that possible without the main interface filling up with outdated controls, Floe never deletes a parameter. When a parameter needs to change, a new one goes on the main UI and the old one moves out of sight as a "legacy" parameter that quietly keeps doing its old job. ## When does a parameter become legacy? A parameter becomes legacy when it changes in a way that would otherwise alter how an existing project sounds. We keep this to a minimum. It can happen, though, when adding options to a menu, improving the response of a knob, or combining or simplifying controls. In every case, the old parameter stays alive behind the scenes so your projects sound the same, and a new parameter appears on the main UI. ## Presets and DAW projects When you load a preset, Floe usually updates any legacy values it finds by itself: it copies the equivalent value onto the new parameter and clears the legacy one. You won't see any legacy parameters, and the controls on the main UI work as normal. When you load a DAW project, Floe can't do this automatically, because it has no way of knowing whether your DAW is automating a legacy parameter, and silently changing the target would break your automation. Instead, Floe keeps the legacy value, lets it take charge of the new parameter, and shows the yellow badge on the affected control. The _Legacy Parameters_ panel, in the menu at the top of Floe's window, lists every legacy parameter that's currently in charge. ## Locked controls While a legacy parameter is in charge, the matching control on the main UI is greyed out and doesn't respond: moving it would do nothing, since the legacy value is what reaches the sound. Click the badge in its corner to open the _Legacy Parameters_ panel. The control's position, and any display linked to it (such as filter curves, EQ displays or envelope shapes), shows the new parameter's own value, not the legacy value you're hearing. The sound is right, since the legacy value is the one being applied. Once you update, the display, the control and the sound all match up again. ## Updating a legacy parameter Updating hands control from the legacy parameter to its replacement, copying across a value that sounds the same. The _Legacy Parameters_ panel has two ways to do this: - **Update all to current parameters** — updates every legacy parameter that's in charge at once. - **Update** — on each row, updates just that parameter. Your project sounds exactly as it did before, and the control on the main UI works again. If any DAW automation targets one of these parameters, remove or re-create that automation before updating. Floe decides whether a legacy parameter is in charge simply by checking whether it's at its default value, so as soon as the automation writes a different value, the legacy parameter takes charge again and the control locks. The recommended order: 1. Check your DAW for any automation lanes targeting the legacy parameter. 2. If there is automation, delete it in your DAW. If you still want it, re-create it on the new parameter. 3. Open the _Legacy Parameters_ panel and click _Update_ on the row, or _Update all to current parameters_. If there's no DAW automation on a legacy parameter, you can skip step 2: updating is then completely safe. --- # Parameters > A list of all parameters in Floe ## Shorter parameter names In your DAW, Floe's parameter names are long and descriptive, such as "Effect Distortion On". If your DAW shows them in a narrow space, you can switch to abbreviated names such as "Dist On": turn on _Abbreviate parameter names in DAW_ on the _General_ tab of Preferences. You might need to restart your DAW for the change to take effect. ## Parameter table This table lists every one of Floe's parameters, for when you need to look up an ID or a detail. To learn how to use them, see the pages on [layers](/docs/usage/layers), [effects](/docs/usage/effects) and the rest of the Using Floe chapter. | Module | Name | ID | Abbreviated Name | Description | | --- | --- | --- | --- | --- | | Layer 1 | Volume | 160 | L1 Volume | The Layer Volume sets the level of this layer. The marks on the slider show the level of each sounding voice: its velocity, key range fade and any MPE volume expression. Tip: to change how velocity relates to volume, edit the velocity to volume curve on the CONFIG tab. | | Layer 1 | Mute | 161 | L1 Mute | Mute silences this layer. Handy for hearing how the other layers sit together while you're designing a sound. A muted layer keeps running in the background exactly as if you could hear it, so when you unmute, the sound carries on seamlessly from wherever it has naturally got to. If you're trying to save CPU, unload the Instrument instead. If a layer is still audible after muting it, check whether it's also soloed: Solo takes priority over Mute. | | Layer 1 | Solo | 162 | L1 Solo | Solo lets you hear this layer on its own. Any layer that isn't soloed goes quiet. Handy for focusing on one part of a sound while you're designing it. Silenced layers keep running in the background exactly as if you could hear them, so when you unsolo, they carry on seamlessly from wherever they have naturally got to. If you're trying to save CPU, unload their Instruments instead. If a layer has gone quiet unexpectedly, check whether another layer is soloed. And if a muted layer is still audible, that's because Solo takes priority over Mute. | | Layer 1 | Pan | 163 | L1 Pan | Pan places this layer in the stereo field, anywhere from fully left to fully right. It uses a constant-power pan law (-3 dB at centre), so the layer stays at the same perceived loudness wherever you put it. Pan is applied after the Stereo control, so you can narrow a wide sound first and then place it as a single point. | | Layer 1 | Detune Cents | 164 | L1 Detune Cents | Detune fine-tunes this layer's pitch in cents (100 cents is one semitone). This works by speeding up or slowing down the audio. | | Layer 1 | Pitch Semitones (Legacy) | 165 | L1 Pitch Semitones (Legacy) | Legacy layer pitch in semitones. Kept for backwards-compatibility with DAW automation | | Layer 1/Playback/Loop | Start | 167 | L1Lp Start | Set the loop start point, where the loop begins within the sample. While a note is held, playback loops between here and the loop end. | | Layer 1/Playback/Loop | End | 168 | L1Lp End | Set the loop end point, where the loop finishes within the sample. While a note is held, playback loops between the loop start and here. | | Layer 1/Playback/Loop | Crossfade Size | 169 | L1Lp Crossfade Size | Set the size of the loop crossfade, which blends audio across the loop point so the loop doesn't click. A small amount usually helps, especially for sustained or tonal sounds. Floe keeps the crossfade within the loop and the sample, so it shrinks automatically if you make the loop too small for it. | | Layer 1/Playback/Loop | Sample Start Offset | 171 | L1Lp Sample Start Offset | Change the starting point of the sample | | Layer 1/Playback/Loop | Reverse On | 172 | L1Lp Reverse On | Play the Instrument's samples backwards, from the end to the start. It works in every play mode and whether looping is on or off. The waveform display flips to match, so playback always runs from left to right (unless in the reverse portion of a ping-pong loop). | | Layer 1/Main/Volume Envelope | On | 173 | L1Vol On | Switch the volume envelope on or off. It's typically best left on. When it's off, every note plays its sample straight through to the end, however briefly you press the key. Handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off, since nothing would ever bring a looping note to an end. Careful: with the envelope off, notes can't be cut short, so voices pile up if you play quickly, which costs CPU. | | Layer 1/Main/Volume Envelope | Attack | 174 | L1Vol Attack | Attack sets how long each note takes to fade in. A few milliseconds is enough to avoid clicks if you've moved the sample start point. | | Layer 1/Main/Volume Envelope | Decay | 175 | L1Vol Decay | Decay sets how long the note takes to fall to the Sustain level after the attack. | | Layer 1/Main/Volume Envelope | Sustain | 176 | L1Vol Sustain | Sustain sets the level the note holds at while the key is down. At 0 dB, Decay has nothing to do. | | Layer 1/Main/Volume Envelope | Release | 177 | L1Vol Release | Release sets how long the note takes to fade out after you lift the key. | | Layer 1/Main/Filter | On | 178 | L1Filt On | Switch the filter on or off. It's a clean, digital-sounding state-variable filter (12 dB per octave). Every voice gets its own copy, so the filter envelope and the LFO (on the LFO tab) can sweep each note independently. Tip: for broader tone shaping, the EQ tab has a three-band equaliser. | | Layer 1/Main/Filter | Legacy Cutoff Frequency | 179 | L1Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Main/Filter | Legacy Resonance | 180 | L1Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Main/Filter | Legacy Type | 181 | L1Filt Legacy Type | Legacy filter type parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Main/Filter | Envelope Amount | 182 | L1Filt Envelope Amount | Envelope Amount sets how strongly the filter envelope (shown to the right) moves the cutoff on every note. At 0% the envelope does nothing. Turn it up and the cutoff follows the envelope's shape, rising and falling with it. Turn it down and the cutoff moves the opposite way, falling as the envelope rises. The envelope is centred on the Cutoff setting: the top half of the display pushes the cutoff above it, the bottom half pulls it below. A negative amount flips this. For example, with a low-pass filter, a long attack opens the sound up gradually at the start of each note. | | Layer 1/Main/Filter | Attack | 183 | L1Filt Attack | Attack sets how long the filter envelope takes to reach its peak. | | Layer 1/Main/Filter | Decay | 184 | L1Filt Decay | Decay sets how long the filter envelope takes to fall to the Sustain level after the attack. | | Layer 1/Main/Filter | Sustain | 185 | L1Filt Sustain | Sustain sets the level the filter envelope holds at while the key is down. | | Layer 1/Main/Filter | Release | 186 | L1Filt Release | Release sets how long the filter envelope takes to fall back after you lift the key. | | Layer 1/LFO | On | 187 | L1Lfo On | Switch this layer's LFO on or off. Enable Floe's LFO (low frequency oscillator) for adding movement to a one of this layer's controls (such as the volume or filter cutoff). | | Layer 1/LFO | Legacy Shape | 188 | L1Lfo Legacy Shape | Legacy LFO shape parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Mode | 189 | L1Lfo Mode | Choose where the LFO starts when you play a new note. With Retrigger, every note starts the LFO from the beginning of its cycle. With Free, a new note joins in wherever this layer's sounding notes have reached, so every note modulates precisely together. | | Layer 1/LFO | Amount | 190 | L1Lfo Amount | Amount sets how far the LFO moves its target. 0% is no movement at all and 100% is the full range for that target: silence to full level for Volume, a semitone either way for Pitch, and so on. Negative values flip the shape upside down, so a falling sawtooth becomes a rising one. For random Shapes this only makes a difference when Variation is set to one of the Identical options. The LFO display shows the shape at the current Amount. | | Layer 1/LFO | Target (Legacy) | 191 | L1Lfo Target (Legacy) | Legacy LFO target parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Time (Tempo Synced) (Legacy) | 192 | L1Lfo Time (Tempo Synced) (Legacy) | Legacy LFO rate. Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Time (Hz) | 193 | L1Lfo Time (Hz) | Time sets how fast the LFO cycles, in Hz (cycles per second). Tip: for movement that stays in time with your track, switch Sync on and choose a note length instead. | | Layer 1/LFO | Sync On | 194 | L1Lfo Sync On | Sync ties the LFO's speed to your DAW's tempo. When it's on, Time is chosen as a note length that follows the tempo; when it's off, Time is set freely in Hz. Both settings are remembered, so you can flick between them without losing either. | | Layer 1/EQ | On | 195 | L1Eq On | Switch on this layer's three-band equaliser to shape its tone before it's mixed with the other layers. | | Layer 1/EQ/Band 1 | Legacy Frequency | 196 | L1EqB1 Legacy Frequency | Legacy band 1 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 1 | Legacy Resonance | 197 | L1EqB1 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 1 | Gain | 198 | L1EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 1/EQ/Band 1 | Legacy Type | 199 | L1EqB1 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 2 | Legacy Frequency | 200 | L1EqB2 Legacy Frequency | Legacy band 2 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 2 | Legacy Resonance | 201 | L1EqB2 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 2 | Gain | 202 | L1EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 1/EQ/Band 2 | Legacy Type | 203 | L1EqB2 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/Config | Legacy Velocity Mapping | 204 | L1 Legacy Velocity Mapping | Choose how MIDI velocity should affect the volume of this layer. There are 6 modes that can be selected for this parameter via the buttons on the GUI. By setting one layer to be quiet at high velocities and another layer to be quiet at low velocities you can create an instrument that sounds different based on how hard the notes are played. (0) Ignore velocity, always play full volume. (1) Loudest at high velocity, quietist at low velocity (2) Loudest at low velocity, quietist at high velocity (3) Loudest at high velocity, quietist at middle velocity and below (4) Loudest at middle velocity, quietist at both high and low velocities (5) Loudest at bottom velocity, quietist at middle velocity and above, | | Layer 1/Config | Keytrack On | 205 | L1 Keytrack On | With Keytrack on, this layer follows the keyboard: higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which might be what you want for drum hits, loops and sound effects that shouldn't be transposed. Some sample libraries may override this - marking individual samples as always or never keytracked. | | Layer 1/Config | Legacy Monophonic On | 206 | L1 Legacy Monophonic On | Only allow one voice of each sound to play at a time | | Layer 1/Config | MIDI Transpose On | 208 | L1 MIDI Transpose On | Transpose shifts this layer up or down in semitones by changing which samples get triggered, rather than by speeding the audio up or down. On a multi-sampled Instrument that keeps the character of the sound intact, so it's the better choice for large shifts. The key range isn't affected: you play the same keys as before, they just reach for different samples. Tip: the Pitch control at the top of the layer transposes by re-pitching the audio instead. That's the one to reach for on a single-sample Instrument, and Detune beside it covers amounts smaller than a semitone. | | Layer 1/Playback/Loop | Loop Mode | 209 | L1Lp Loop Mode | Select the Loop Mode for this layer. Floe can loop a portion of the sound for as long as you hold a note, so even a short sample can sustain indefinitely. Some Instruments come with loop points built in, while others let you set your own on the waveform. You can also turn looping off. There's 2 modes: 'standard' wrap-around loops jump from the loop end back to the start; 'ping-pong' loops bounce back and forth, alternating playback direction. The options that are available depend on the Instrument: library authors can provide built-in loops, allow or disallow custom loops, or require that certain sounds always loop. | | Layer 1/Config | Key Range Low | 210 | L1 Key Range Low | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Key Range High | 211 | L1 Key Range High | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Key Range Low Fade | 212 | L1 Key Range Low Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Key Range High Fade | 213 | L1 Key Range High Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 1/Config | Pitch Bend Range | 214 | L1 Pitch Bend Range | Pitch Bend Range sets how far the pitch wheel bends this layer, in semitones. Each layer has its own, so for example, a lead can bend a whole tone while the pad underneath can be set to zero to ignore the wheel entirely. Bending re-pitches the audio by speeding it up or slowing it down, so large bends will noticeably change the character of the sound. With MPE enabled, this governs the wheel on the master channel; the per-note bend of each individual note follows the range the controller asks for. | | Layer 1/Config | Monophonic Mode | 215 | L1 Monophonic Mode | Monophonic decides what happens when notes on this layer overlap. Left off, the layer is polyphonic and every note you play gets a voice of its own; the other two modes hold it to one note at a time, in different ways. It's set per layer, so a monophonic lead can sit on top of a polyphonic pad in the same preset. The arpeggiator handles its own notes, so this has no effect while the arpeggiator is running on this layer. | | Layer 1/Playback | Play Mode | 216 | L1 Play Mode | Select the Play Mode for this layer: the engine it uses to play its Instrument. Standard Playback plays each sample straight through: the playhead moves steadily from start to end, with options for looping and reversing along the way. The granular modes instead rebuild the sound from a stream of tiny snippets called grains. In Granular Playback, the point grains are drawn from moves through the sample at a rate you set with Speed, giving a time-stretch-like effect. In Granular Fixed, you place that point yourself with Position, letting you freeze on one part of the sample and explore its texture. | | Layer 1/Playback/Granular | Length | 217 | L1Grn Length | Length sets how long each grain lasts, from a few milliseconds up to a second. Short grains chop the sound into a fine, buzzy texture that keeps little of the original's shape. Long grains preserve much more of the sample's natural character. Density and Smooth are both measured relative to Length, so changing it here changes how they feel too. | | Layer 1/Playback/Granular | Speed | 218 | L1Grn Speed | Speed sets how fast the playhead travels through the sample in Granular Playback mode. Grains are drawn from wherever the playhead is. 100% is the sample's original speed. Turn it down to slow the sound to a crawl or stop it altogether, or up to race through at up to eight times normal speed. The playhead still respects the sample start, looping and Reverse settings. In Granular Fixed, this knob is replaced by Position. | | Layer 1/Playback/Granular | Position | 219 | L1Grn Position | Position chooses where in the sample grains are drawn from, shown as the highlighted region on the waveform. Grains come from here for as long as you hold the note, so you can freeze on one moment of the sound and sustain it indefinitely. Tip: you can create movement with this parameter by setting the LFO's target to Grain Position, or by assigning this knob to a macro. | | Layer 1/Playback/Granular | Density | 220 | L1Grn Density | Density sets how many grains overlap at once, relative to their Length. At 0%, each grain starts as the previous one ends, so they follow on one after another. Turning it up starts new grains sooner, stacking more and more of them on top of each other. Low values give an open texture where individual grains can be picked out. High values pile up so many grains that they smear into a thick, continuous wash. | | Layer 1/Playback/Granular | Spread | 221 | L1Grn Spread | Spread widens the area of the sample that grains can start from. Each new grain begins somewhere between the playhead and a point up to this far past it, measured as a percentage of the whole sample. Small values keep every grain close to the playhead for a focused, precise sound. Large values scatter grains across a wide stretch of the sample. | | Layer 1/Playback/Granular | Smooth | 222 | L1Grn Smooth | Smooth shapes the envelope of each grain: how gently it fades in and out, relative to its Length. At 0% grains start and stop abruptly, giving a hard, percussive edge. At 100% the fade-in and fade-out meet in the middle, so neighbouring grains blend into each other for a seamless texture. | | Layer 1/Playback/Granular | Pan | 223 | L1Grn Pan | Pan randomises where each grain sits in the stereo field. Every new grain is given its own position, picked at random within the range you set here. At 0% every grain plays dead centre. At 100% grains can land anywhere from fully left to fully right, spreading the cloud from one side to the other. A quick way to create an interestingly wide stereo image. | | Layer 1/Playback/Granular | Detune | 224 | L1Grn Detune | Detune randomises the pitch of each grain. Every new grain is nudged sharp or flat by a random amount within the range you set here. At 0% all grains play in tune. At 100% each grain can be up to a semitone sharp or flat. Small amounts thicken the sound like a chorus; larger amounts get progressively more smeared and out of tune. | | Layer 1/Playback/Granular | Direction | 225 | L1Grn Direction | Direction gives each grain a chance of playing the opposite way to the main playhead. At 0% every grain follows the playhead's direction. At 100% each grain is equally likely to play forwards or backwards. In between, you can dial in a blend of the two for meandering, less predictable tones. | | Layer 1/Playback/Granular | Harmony | 226 | L1Grn Harmony | Harmony gives each grain a chance of playing at a musical interval above or below the note you played, so a single note can bloom into a chord or a shimmering octave. At 0% every grain plays at the root. Turning it up shifts more of the grains, until at 100% every grain picks at random from the root and the intervals you've chosen. Choose which intervals are allowed with the Intervals menu next to this knob: pick a preset such as Octaves or Major Triad, or toggle individual semitones yourself. | | Layer 1/LFO | Legacy Shape V2 | 227 | L1Lfo Legacy Shape V2 | Legacy LFO shape parameter (v2). Kept for backwards-compatibility with DAW automation | | Layer 1/LFO | Target | 228 | L1Lfo Target | Choose the Target: what the LFO modulates. The modulation is applied relative to the target's current knob/slider. For example, when Volume is chosen, the movement will occur around wherever the layer's volume slider is currently set. Hover over each option for details. | | Layer 1/Main/Filter | Resonance | 229 | L1Filt Resonance | Resonance emphasises the frequencies at the cutoff. At 0% the slope is smooth and rounded; at 100% it peaks by around 20 dB, without ever self-oscillating. For the band-pass, notch and band-shelving types it also narrows the band, and for Peak it sets the size of the boost. | | Layer 1/Arp | Note Order | 230 | L1Arp Note Order | Order sets how the notes you're holding are shared out across the steps: climbing, falling, bouncing between the two, picked at random, or one of the less common shapes. Chord is the odd one out — it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in Fixed Notes mode. | | Layer 1/Arp | Trigger | 231 | L1Arp Trigger | Trigger decides what a new note does to a pattern that's already running. Free lets it carry on, so you can change chord underneath without breaking the groove. Retrigger restarts it from step 1 every time you press a note, which keeps the pattern locked to your playing. | | Layer 1/Arp | Rate (Legacy) | 232 | L1Arp Rate (Legacy) | Legacy arpeggiator rate. Kept for backwards-compatibility with DAW automation | | Layer 1/Arp | Length | 233 | L1Arp Length | Length sets how many steps the pattern runs through before it loops back to the start. Steps beyond the length are hidden from the sequencer but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. | | Layer 1/Arp | Arpeggiator Mode | 234 | L1Arp Arpeggiator Mode | Choose where the steps get their notes from. Played Notes arpeggiates whatever you're holding, giving each step one of those notes in the order set by Order. Fixed Notes ignores what you play and runs a sequence of notes you've set yourself, either by dragging each step's note or by capturing a performance with the Record button. | | Layer 1/Arp | Humanise | 235 | L1Arp Humanise | Humanise loosens the pattern up by nudging each step's timing and velocity by a random amount. A few percent takes the machine-like edge off; higher settings give a much looser, hand-played feel, which suits percussion especially well. Steps are only ever pushed later, never earlier, and never by more than a fifth of a step. | | Layer 1/Arp | Auto Rate | 236 | L1Arp Auto Rate | Auto Rate lets Floe pick the step rate so a sliced Instrument plays close to the speed it was recorded at, rather than leaving silent gaps between slices when your host tempo is a long way from the loop's own. While it's on, the rate Floe has chosen is shown in place of the Rate menu. The multiplier shifts that choice: 2x for double speed, 0.5x for half, with Dotted and Triplet variants for a different feel. Because the choice has to land on a tempo-synced division it moves in jumps as the tempo changes, and every layer using Auto Rate jumps at the same points so they stay in the same rhythmic relationship. | | Layer 1/Arp | Polyrate | 237 | L1Arp Polyrate | Polyrate gives each octave of the notes you're holding its own speed, so a single chord can produce several interleaving rhythms at once. The octave starting at middle C plays at the Rate you've set, and the octaves above and below scale from there by the ratio you choose. Tip: hold two notes an octave apart to hear the effect at its clearest. | | Layer 1/Arp | One Shot | 238 | L1Arp One Shot | With One Shot on, the pattern plays through once and stops rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes, or for letting a sliced loop play through exactly once. | | Layer 1/EQ/Band 1 | Resonance | 239 | L1EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 1/EQ/Band 2 | Resonance | 240 | L1EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 1/Arp | Arpeggiator | 241 | L1Arp Arpeggiator | Switch on the arpeggiator to turn the notes you hold into a rhythmic pattern locked to your host's tempo. Each step retriggers this layer's Instrument exactly as if you'd played the note yourself, so the envelopes, filter, LFOs and effects all respond as normal. Every layer has its own arpeggiator, so you can run different patterns side by side. | | Layer 1/LFO | Shape | 242 | L1Lfo Shape | Choose the Shape of the LFO. Alongside the classics there are a few more interesting options, such as random and plucky shapes. | | Layer 1/EQ/Band 1 | Type | 244 | L1EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 1/EQ/Band 2 | Type | 245 | L1EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 1/EQ/Band 3 | Legacy Frequency | 246 | L1EqB3 Legacy Frequency | Legacy band 3 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 1/EQ/Band 3 | Resonance | 247 | L1EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 1/EQ/Band 3 | Gain | 248 | L1EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 1/EQ/Band 3 | Type | 249 | L1EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 1/Main/Filter | Cutoff Frequency | 250 | L1Filt Cutoff Frequency | Cutoff Frequency sets where the filter takes effect. The filter envelope and the LFO sweep the cutoff around this value, so it's the centre of any modulation rather than the starting point. | | Layer 1/EQ/Band 1 | Frequency | 251 | L1EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 1/EQ/Band 2 | Frequency | 252 | L1EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 1/EQ/Band 3 | Frequency | 253 | L1EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 1/Main/Filter | Type | 254 | L1Filt Type | Select the filter type. Hover over the options in the menu for a description of each. | | Layer 1 | Stereo Width | 255 | L1 Stereo Width | Stereo narrows or widens this layer's stereo image. Negative values pull it toward mono, positive values push it wider, and 0% leaves the sound as recorded. It works by splitting the sound into mid (what both channels share) and side (what differs between them), then rebalancing the two with a constant-power crossfade. At -100% only the mid remains; at +100% only the side, so anything dead centre disappears. Mono sounds have no side, so pushing to +100% silences them. | | Layer 1/Config | MPE Press Target | 256 | L1 MPE Press Target | Press is the channel pressure, or aftertouch, that an MPE controller sends on each note's own channel. On most keyboards it follows how hard you're pushing into the key once it's sounding. Choose what it controls on this layer here, and how strongly with Amount beside it. Press rests at nothing and climbs from there, so it only ever adds to the destination you point it at. MPE has to be switched on in the Performance Controls panel before press does anything. | | Layer 1/Config | MPE Press Amount | 257 | L1 MPE Press Amount | Amount sets how far press moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before press reaches its own, so you get the full effect from a lighter touch. | | Layer 1/Config | MPE Slide Target | 258 | L1 MPE Slide Target | Slide is CC74, which an MPE controller sends on each note's own channel. On most keyboards it follows where your finger sits along the front-to-back axis of the key. Choose what it controls on this layer here, and how strongly with Amount beside it. Slide rests in the middle, so it pushes the destination either side of where you've set it. MPE has to be switched on in the Performance Controls panel before slide does anything. | | Layer 1/Config | MPE Slide Amount | 259 | L1 MPE Slide Amount | Amount sets how far slide moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before slide reaches its own, so you get the full effect from a smaller movement. | | Layer 1/LFO | Time (Tempo Synced) | 260 | L1Lfo Time (Tempo Synced) | Time sets how long one LFO cycle lasts, as a note length at your DAW's tempo. 1/4 is a quarter note; a D on the end is dotted (one and a half times as long) and a T is triplet (two thirds as long). The LFO follows tempo changes, but it isn't locked to the bar: each cycle starts from the note, as set by Mode. | | Layer 1/Arp | Rate | 261 | L1Arp Rate | Rate sets how long each step lasts, synced to your host's tempo. Together with Length it decides how long the whole pattern takes to come round — eight steps at 1/8 fills one bar of 4/4. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. | | Layer 1 | Pitch Semitones | 262 | L1 Pitch Semitones | Pitch moves this layer up or down in semitones. This works by speeding up or slowing down the audio. Tip: for a multisampled Instrument, you might get better results from Transpose on the CONFIG tab. It changes which samples are played rather than processing them, which can sound more natural. | | Layer 1/Playback/Granular | Variation | 263 | L1Grn Variation | Variation decides whether each note scatters its grains differently or plays back the exact same grains every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern of grains and save it with the preset. Open the menu and hover over each option for details. | | Layer 1/Playback/Granular | Seed | 264 | L1Grn Seed | Seed picks which pattern of grains repeats. Try a few numbers until you find one you like: it's saved with the preset, so the grains you choose are the grains everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 1/LFO | Variation | 265 | L1Lfo Variation | Variation decides whether the random shapes move differently on each note or play back the exact same pattern every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern and save it with the preset. In Free mode, a note that joins already-sounding notes follows their pattern. Open the menu and hover over each option for details. | | Layer 1/LFO | Seed | 266 | L1Lfo Seed | Seed picks which random pattern repeats. Try a few numbers until you find one you like: it's saved with the preset, so the movement you choose is the movement everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 1/Playback/Granular | Share Grains | 267 | L1Grn Share Grains | Share Grains keeps the number of grains the same whether you play one note or a chord, so the sound keeps the same density however many notes you hold. Each grain plays from one of the held notes, weaving the chord's pitches together. At low Density you can hear the grains hop between the notes of the chord. | | Layer 2 | Volume | 320 | L2 Volume | The Layer Volume sets the level of this layer. The marks on the slider show the level of each sounding voice: its velocity, key range fade and any MPE volume expression. Tip: to change how velocity relates to volume, edit the velocity to volume curve on the CONFIG tab. | | Layer 2 | Mute | 321 | L2 Mute | Mute silences this layer. Handy for hearing how the other layers sit together while you're designing a sound. A muted layer keeps running in the background exactly as if you could hear it, so when you unmute, the sound carries on seamlessly from wherever it has naturally got to. If you're trying to save CPU, unload the Instrument instead. If a layer is still audible after muting it, check whether it's also soloed: Solo takes priority over Mute. | | Layer 2 | Solo | 322 | L2 Solo | Solo lets you hear this layer on its own. Any layer that isn't soloed goes quiet. Handy for focusing on one part of a sound while you're designing it. Silenced layers keep running in the background exactly as if you could hear them, so when you unsolo, they carry on seamlessly from wherever they have naturally got to. If you're trying to save CPU, unload their Instruments instead. If a layer has gone quiet unexpectedly, check whether another layer is soloed. And if a muted layer is still audible, that's because Solo takes priority over Mute. | | Layer 2 | Pan | 323 | L2 Pan | Pan places this layer in the stereo field, anywhere from fully left to fully right. It uses a constant-power pan law (-3 dB at centre), so the layer stays at the same perceived loudness wherever you put it. Pan is applied after the Stereo control, so you can narrow a wide sound first and then place it as a single point. | | Layer 2 | Detune Cents | 324 | L2 Detune Cents | Detune fine-tunes this layer's pitch in cents (100 cents is one semitone). This works by speeding up or slowing down the audio. | | Layer 2 | Pitch Semitones (Legacy) | 325 | L2 Pitch Semitones (Legacy) | Legacy layer pitch in semitones. Kept for backwards-compatibility with DAW automation | | Layer 2/Playback/Loop | Start | 327 | L2Lp Start | Set the loop start point, where the loop begins within the sample. While a note is held, playback loops between here and the loop end. | | Layer 2/Playback/Loop | End | 328 | L2Lp End | Set the loop end point, where the loop finishes within the sample. While a note is held, playback loops between the loop start and here. | | Layer 2/Playback/Loop | Crossfade Size | 329 | L2Lp Crossfade Size | Set the size of the loop crossfade, which blends audio across the loop point so the loop doesn't click. A small amount usually helps, especially for sustained or tonal sounds. Floe keeps the crossfade within the loop and the sample, so it shrinks automatically if you make the loop too small for it. | | Layer 2/Playback/Loop | Sample Start Offset | 331 | L2Lp Sample Start Offset | Change the starting point of the sample | | Layer 2/Playback/Loop | Reverse On | 332 | L2Lp Reverse On | Play the Instrument's samples backwards, from the end to the start. It works in every play mode and whether looping is on or off. The waveform display flips to match, so playback always runs from left to right (unless in the reverse portion of a ping-pong loop). | | Layer 2/Main/Volume Envelope | On | 333 | L2Vol On | Switch the volume envelope on or off. It's typically best left on. When it's off, every note plays its sample straight through to the end, however briefly you press the key. Handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off, since nothing would ever bring a looping note to an end. Careful: with the envelope off, notes can't be cut short, so voices pile up if you play quickly, which costs CPU. | | Layer 2/Main/Volume Envelope | Attack | 334 | L2Vol Attack | Attack sets how long each note takes to fade in. A few milliseconds is enough to avoid clicks if you've moved the sample start point. | | Layer 2/Main/Volume Envelope | Decay | 335 | L2Vol Decay | Decay sets how long the note takes to fall to the Sustain level after the attack. | | Layer 2/Main/Volume Envelope | Sustain | 336 | L2Vol Sustain | Sustain sets the level the note holds at while the key is down. At 0 dB, Decay has nothing to do. | | Layer 2/Main/Volume Envelope | Release | 337 | L2Vol Release | Release sets how long the note takes to fade out after you lift the key. | | Layer 2/Main/Filter | On | 338 | L2Filt On | Switch the filter on or off. It's a clean, digital-sounding state-variable filter (12 dB per octave). Every voice gets its own copy, so the filter envelope and the LFO (on the LFO tab) can sweep each note independently. Tip: for broader tone shaping, the EQ tab has a three-band equaliser. | | Layer 2/Main/Filter | Legacy Cutoff Frequency | 339 | L2Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Main/Filter | Legacy Resonance | 340 | L2Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Main/Filter | Legacy Type | 341 | L2Filt Legacy Type | Legacy filter type parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Main/Filter | Envelope Amount | 342 | L2Filt Envelope Amount | Envelope Amount sets how strongly the filter envelope (shown to the right) moves the cutoff on every note. At 0% the envelope does nothing. Turn it up and the cutoff follows the envelope's shape, rising and falling with it. Turn it down and the cutoff moves the opposite way, falling as the envelope rises. The envelope is centred on the Cutoff setting: the top half of the display pushes the cutoff above it, the bottom half pulls it below. A negative amount flips this. For example, with a low-pass filter, a long attack opens the sound up gradually at the start of each note. | | Layer 2/Main/Filter | Attack | 343 | L2Filt Attack | Attack sets how long the filter envelope takes to reach its peak. | | Layer 2/Main/Filter | Decay | 344 | L2Filt Decay | Decay sets how long the filter envelope takes to fall to the Sustain level after the attack. | | Layer 2/Main/Filter | Sustain | 345 | L2Filt Sustain | Sustain sets the level the filter envelope holds at while the key is down. | | Layer 2/Main/Filter | Release | 346 | L2Filt Release | Release sets how long the filter envelope takes to fall back after you lift the key. | | Layer 2/LFO | On | 347 | L2Lfo On | Switch this layer's LFO on or off. Enable Floe's LFO (low frequency oscillator) for adding movement to a one of this layer's controls (such as the volume or filter cutoff). | | Layer 2/LFO | Legacy Shape | 348 | L2Lfo Legacy Shape | Legacy LFO shape parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Mode | 349 | L2Lfo Mode | Choose where the LFO starts when you play a new note. With Retrigger, every note starts the LFO from the beginning of its cycle. With Free, a new note joins in wherever this layer's sounding notes have reached, so every note modulates precisely together. | | Layer 2/LFO | Amount | 350 | L2Lfo Amount | Amount sets how far the LFO moves its target. 0% is no movement at all and 100% is the full range for that target: silence to full level for Volume, a semitone either way for Pitch, and so on. Negative values flip the shape upside down, so a falling sawtooth becomes a rising one. For random Shapes this only makes a difference when Variation is set to one of the Identical options. The LFO display shows the shape at the current Amount. | | Layer 2/LFO | Target (Legacy) | 351 | L2Lfo Target (Legacy) | Legacy LFO target parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Time (Tempo Synced) (Legacy) | 352 | L2Lfo Time (Tempo Synced) (Legacy) | Legacy LFO rate. Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Time (Hz) | 353 | L2Lfo Time (Hz) | Time sets how fast the LFO cycles, in Hz (cycles per second). Tip: for movement that stays in time with your track, switch Sync on and choose a note length instead. | | Layer 2/LFO | Sync On | 354 | L2Lfo Sync On | Sync ties the LFO's speed to your DAW's tempo. When it's on, Time is chosen as a note length that follows the tempo; when it's off, Time is set freely in Hz. Both settings are remembered, so you can flick between them without losing either. | | Layer 2/EQ | On | 355 | L2Eq On | Switch on this layer's three-band equaliser to shape its tone before it's mixed with the other layers. | | Layer 2/EQ/Band 1 | Legacy Frequency | 356 | L2EqB1 Legacy Frequency | Legacy band 1 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 1 | Legacy Resonance | 357 | L2EqB1 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 1 | Gain | 358 | L2EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 2/EQ/Band 1 | Legacy Type | 359 | L2EqB1 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 2 | Legacy Frequency | 360 | L2EqB2 Legacy Frequency | Legacy band 2 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 2 | Legacy Resonance | 361 | L2EqB2 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 2 | Gain | 362 | L2EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 2/EQ/Band 2 | Legacy Type | 363 | L2EqB2 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/Config | Legacy Velocity Mapping | 364 | L2 Legacy Velocity Mapping | Choose how MIDI velocity should affect the volume of this layer. There are 6 modes that can be selected for this parameter via the buttons on the GUI. By setting one layer to be quiet at high velocities and another layer to be quiet at low velocities you can create an instrument that sounds different based on how hard the notes are played. (0) Ignore velocity, always play full volume. (1) Loudest at high velocity, quietist at low velocity (2) Loudest at low velocity, quietist at high velocity (3) Loudest at high velocity, quietist at middle velocity and below (4) Loudest at middle velocity, quietist at both high and low velocities (5) Loudest at bottom velocity, quietist at middle velocity and above, | | Layer 2/Config | Keytrack On | 365 | L2 Keytrack On | With Keytrack on, this layer follows the keyboard: higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which might be what you want for drum hits, loops and sound effects that shouldn't be transposed. Some sample libraries may override this - marking individual samples as always or never keytracked. | | Layer 2/Config | Legacy Monophonic On | 366 | L2 Legacy Monophonic On | Only allow one voice of each sound to play at a time | | Layer 2/Config | MIDI Transpose On | 368 | L2 MIDI Transpose On | Transpose shifts this layer up or down in semitones by changing which samples get triggered, rather than by speeding the audio up or down. On a multi-sampled Instrument that keeps the character of the sound intact, so it's the better choice for large shifts. The key range isn't affected: you play the same keys as before, they just reach for different samples. Tip: the Pitch control at the top of the layer transposes by re-pitching the audio instead. That's the one to reach for on a single-sample Instrument, and Detune beside it covers amounts smaller than a semitone. | | Layer 2/Playback/Loop | Loop Mode | 369 | L2Lp Loop Mode | Select the Loop Mode for this layer. Floe can loop a portion of the sound for as long as you hold a note, so even a short sample can sustain indefinitely. Some Instruments come with loop points built in, while others let you set your own on the waveform. You can also turn looping off. There's 2 modes: 'standard' wrap-around loops jump from the loop end back to the start; 'ping-pong' loops bounce back and forth, alternating playback direction. The options that are available depend on the Instrument: library authors can provide built-in loops, allow or disallow custom loops, or require that certain sounds always loop. | | Layer 2/Config | Key Range Low | 370 | L2 Key Range Low | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Key Range High | 371 | L2 Key Range High | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Key Range Low Fade | 372 | L2 Key Range Low Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Key Range High Fade | 373 | L2 Key Range High Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 2/Config | Pitch Bend Range | 374 | L2 Pitch Bend Range | Pitch Bend Range sets how far the pitch wheel bends this layer, in semitones. Each layer has its own, so for example, a lead can bend a whole tone while the pad underneath can be set to zero to ignore the wheel entirely. Bending re-pitches the audio by speeding it up or slowing it down, so large bends will noticeably change the character of the sound. With MPE enabled, this governs the wheel on the master channel; the per-note bend of each individual note follows the range the controller asks for. | | Layer 2/Config | Monophonic Mode | 375 | L2 Monophonic Mode | Monophonic decides what happens when notes on this layer overlap. Left off, the layer is polyphonic and every note you play gets a voice of its own; the other two modes hold it to one note at a time, in different ways. It's set per layer, so a monophonic lead can sit on top of a polyphonic pad in the same preset. The arpeggiator handles its own notes, so this has no effect while the arpeggiator is running on this layer. | | Layer 2/Playback | Play Mode | 376 | L2 Play Mode | Select the Play Mode for this layer: the engine it uses to play its Instrument. Standard Playback plays each sample straight through: the playhead moves steadily from start to end, with options for looping and reversing along the way. The granular modes instead rebuild the sound from a stream of tiny snippets called grains. In Granular Playback, the point grains are drawn from moves through the sample at a rate you set with Speed, giving a time-stretch-like effect. In Granular Fixed, you place that point yourself with Position, letting you freeze on one part of the sample and explore its texture. | | Layer 2/Playback/Granular | Length | 377 | L2Grn Length | Length sets how long each grain lasts, from a few milliseconds up to a second. Short grains chop the sound into a fine, buzzy texture that keeps little of the original's shape. Long grains preserve much more of the sample's natural character. Density and Smooth are both measured relative to Length, so changing it here changes how they feel too. | | Layer 2/Playback/Granular | Speed | 378 | L2Grn Speed | Speed sets how fast the playhead travels through the sample in Granular Playback mode. Grains are drawn from wherever the playhead is. 100% is the sample's original speed. Turn it down to slow the sound to a crawl or stop it altogether, or up to race through at up to eight times normal speed. The playhead still respects the sample start, looping and Reverse settings. In Granular Fixed, this knob is replaced by Position. | | Layer 2/Playback/Granular | Position | 379 | L2Grn Position | Position chooses where in the sample grains are drawn from, shown as the highlighted region on the waveform. Grains come from here for as long as you hold the note, so you can freeze on one moment of the sound and sustain it indefinitely. Tip: you can create movement with this parameter by setting the LFO's target to Grain Position, or by assigning this knob to a macro. | | Layer 2/Playback/Granular | Density | 380 | L2Grn Density | Density sets how many grains overlap at once, relative to their Length. At 0%, each grain starts as the previous one ends, so they follow on one after another. Turning it up starts new grains sooner, stacking more and more of them on top of each other. Low values give an open texture where individual grains can be picked out. High values pile up so many grains that they smear into a thick, continuous wash. | | Layer 2/Playback/Granular | Spread | 381 | L2Grn Spread | Spread widens the area of the sample that grains can start from. Each new grain begins somewhere between the playhead and a point up to this far past it, measured as a percentage of the whole sample. Small values keep every grain close to the playhead for a focused, precise sound. Large values scatter grains across a wide stretch of the sample. | | Layer 2/Playback/Granular | Smooth | 382 | L2Grn Smooth | Smooth shapes the envelope of each grain: how gently it fades in and out, relative to its Length. At 0% grains start and stop abruptly, giving a hard, percussive edge. At 100% the fade-in and fade-out meet in the middle, so neighbouring grains blend into each other for a seamless texture. | | Layer 2/Playback/Granular | Pan | 383 | L2Grn Pan | Pan randomises where each grain sits in the stereo field. Every new grain is given its own position, picked at random within the range you set here. At 0% every grain plays dead centre. At 100% grains can land anywhere from fully left to fully right, spreading the cloud from one side to the other. A quick way to create an interestingly wide stereo image. | | Layer 2/Playback/Granular | Detune | 384 | L2Grn Detune | Detune randomises the pitch of each grain. Every new grain is nudged sharp or flat by a random amount within the range you set here. At 0% all grains play in tune. At 100% each grain can be up to a semitone sharp or flat. Small amounts thicken the sound like a chorus; larger amounts get progressively more smeared and out of tune. | | Layer 2/Playback/Granular | Direction | 385 | L2Grn Direction | Direction gives each grain a chance of playing the opposite way to the main playhead. At 0% every grain follows the playhead's direction. At 100% each grain is equally likely to play forwards or backwards. In between, you can dial in a blend of the two for meandering, less predictable tones. | | Layer 2/Playback/Granular | Harmony | 386 | L2Grn Harmony | Harmony gives each grain a chance of playing at a musical interval above or below the note you played, so a single note can bloom into a chord or a shimmering octave. At 0% every grain plays at the root. Turning it up shifts more of the grains, until at 100% every grain picks at random from the root and the intervals you've chosen. Choose which intervals are allowed with the Intervals menu next to this knob: pick a preset such as Octaves or Major Triad, or toggle individual semitones yourself. | | Layer 2/LFO | Legacy Shape V2 | 387 | L2Lfo Legacy Shape V2 | Legacy LFO shape parameter (v2). Kept for backwards-compatibility with DAW automation | | Layer 2/LFO | Target | 388 | L2Lfo Target | Choose the Target: what the LFO modulates. The modulation is applied relative to the target's current knob/slider. For example, when Volume is chosen, the movement will occur around wherever the layer's volume slider is currently set. Hover over each option for details. | | Layer 2/Main/Filter | Resonance | 389 | L2Filt Resonance | Resonance emphasises the frequencies at the cutoff. At 0% the slope is smooth and rounded; at 100% it peaks by around 20 dB, without ever self-oscillating. For the band-pass, notch and band-shelving types it also narrows the band, and for Peak it sets the size of the boost. | | Layer 2/Arp | Note Order | 390 | L2Arp Note Order | Order sets how the notes you're holding are shared out across the steps: climbing, falling, bouncing between the two, picked at random, or one of the less common shapes. Chord is the odd one out — it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in Fixed Notes mode. | | Layer 2/Arp | Trigger | 391 | L2Arp Trigger | Trigger decides what a new note does to a pattern that's already running. Free lets it carry on, so you can change chord underneath without breaking the groove. Retrigger restarts it from step 1 every time you press a note, which keeps the pattern locked to your playing. | | Layer 2/Arp | Rate (Legacy) | 392 | L2Arp Rate (Legacy) | Legacy arpeggiator rate. Kept for backwards-compatibility with DAW automation | | Layer 2/Arp | Length | 393 | L2Arp Length | Length sets how many steps the pattern runs through before it loops back to the start. Steps beyond the length are hidden from the sequencer but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. | | Layer 2/Arp | Arpeggiator Mode | 394 | L2Arp Arpeggiator Mode | Choose where the steps get their notes from. Played Notes arpeggiates whatever you're holding, giving each step one of those notes in the order set by Order. Fixed Notes ignores what you play and runs a sequence of notes you've set yourself, either by dragging each step's note or by capturing a performance with the Record button. | | Layer 2/Arp | Humanise | 395 | L2Arp Humanise | Humanise loosens the pattern up by nudging each step's timing and velocity by a random amount. A few percent takes the machine-like edge off; higher settings give a much looser, hand-played feel, which suits percussion especially well. Steps are only ever pushed later, never earlier, and never by more than a fifth of a step. | | Layer 2/Arp | Auto Rate | 396 | L2Arp Auto Rate | Auto Rate lets Floe pick the step rate so a sliced Instrument plays close to the speed it was recorded at, rather than leaving silent gaps between slices when your host tempo is a long way from the loop's own. While it's on, the rate Floe has chosen is shown in place of the Rate menu. The multiplier shifts that choice: 2x for double speed, 0.5x for half, with Dotted and Triplet variants for a different feel. Because the choice has to land on a tempo-synced division it moves in jumps as the tempo changes, and every layer using Auto Rate jumps at the same points so they stay in the same rhythmic relationship. | | Layer 2/Arp | Polyrate | 397 | L2Arp Polyrate | Polyrate gives each octave of the notes you're holding its own speed, so a single chord can produce several interleaving rhythms at once. The octave starting at middle C plays at the Rate you've set, and the octaves above and below scale from there by the ratio you choose. Tip: hold two notes an octave apart to hear the effect at its clearest. | | Layer 2/Arp | One Shot | 398 | L2Arp One Shot | With One Shot on, the pattern plays through once and stops rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes, or for letting a sliced loop play through exactly once. | | Layer 2/EQ/Band 1 | Resonance | 399 | L2EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 2/EQ/Band 2 | Resonance | 400 | L2EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 2/Arp | Arpeggiator | 401 | L2Arp Arpeggiator | Switch on the arpeggiator to turn the notes you hold into a rhythmic pattern locked to your host's tempo. Each step retriggers this layer's Instrument exactly as if you'd played the note yourself, so the envelopes, filter, LFOs and effects all respond as normal. Every layer has its own arpeggiator, so you can run different patterns side by side. | | Layer 2/LFO | Shape | 402 | L2Lfo Shape | Choose the Shape of the LFO. Alongside the classics there are a few more interesting options, such as random and plucky shapes. | | Layer 2/EQ/Band 1 | Type | 404 | L2EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 2/EQ/Band 2 | Type | 405 | L2EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 2/EQ/Band 3 | Legacy Frequency | 406 | L2EqB3 Legacy Frequency | Legacy band 3 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 2/EQ/Band 3 | Resonance | 407 | L2EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 2/EQ/Band 3 | Gain | 408 | L2EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 2/EQ/Band 3 | Type | 409 | L2EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 2/Main/Filter | Cutoff Frequency | 410 | L2Filt Cutoff Frequency | Cutoff Frequency sets where the filter takes effect. The filter envelope and the LFO sweep the cutoff around this value, so it's the centre of any modulation rather than the starting point. | | Layer 2/EQ/Band 1 | Frequency | 411 | L2EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 2/EQ/Band 2 | Frequency | 412 | L2EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 2/EQ/Band 3 | Frequency | 413 | L2EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 2/Main/Filter | Type | 414 | L2Filt Type | Select the filter type. Hover over the options in the menu for a description of each. | | Layer 2 | Stereo Width | 415 | L2 Stereo Width | Stereo narrows or widens this layer's stereo image. Negative values pull it toward mono, positive values push it wider, and 0% leaves the sound as recorded. It works by splitting the sound into mid (what both channels share) and side (what differs between them), then rebalancing the two with a constant-power crossfade. At -100% only the mid remains; at +100% only the side, so anything dead centre disappears. Mono sounds have no side, so pushing to +100% silences them. | | Layer 2/Config | MPE Press Target | 416 | L2 MPE Press Target | Press is the channel pressure, or aftertouch, that an MPE controller sends on each note's own channel. On most keyboards it follows how hard you're pushing into the key once it's sounding. Choose what it controls on this layer here, and how strongly with Amount beside it. Press rests at nothing and climbs from there, so it only ever adds to the destination you point it at. MPE has to be switched on in the Performance Controls panel before press does anything. | | Layer 2/Config | MPE Press Amount | 417 | L2 MPE Press Amount | Amount sets how far press moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before press reaches its own, so you get the full effect from a lighter touch. | | Layer 2/Config | MPE Slide Target | 418 | L2 MPE Slide Target | Slide is CC74, which an MPE controller sends on each note's own channel. On most keyboards it follows where your finger sits along the front-to-back axis of the key. Choose what it controls on this layer here, and how strongly with Amount beside it. Slide rests in the middle, so it pushes the destination either side of where you've set it. MPE has to be switched on in the Performance Controls panel before slide does anything. | | Layer 2/Config | MPE Slide Amount | 419 | L2 MPE Slide Amount | Amount sets how far slide moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before slide reaches its own, so you get the full effect from a smaller movement. | | Layer 2/LFO | Time (Tempo Synced) | 420 | L2Lfo Time (Tempo Synced) | Time sets how long one LFO cycle lasts, as a note length at your DAW's tempo. 1/4 is a quarter note; a D on the end is dotted (one and a half times as long) and a T is triplet (two thirds as long). The LFO follows tempo changes, but it isn't locked to the bar: each cycle starts from the note, as set by Mode. | | Layer 2/Arp | Rate | 421 | L2Arp Rate | Rate sets how long each step lasts, synced to your host's tempo. Together with Length it decides how long the whole pattern takes to come round — eight steps at 1/8 fills one bar of 4/4. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. | | Layer 2 | Pitch Semitones | 422 | L2 Pitch Semitones | Pitch moves this layer up or down in semitones. This works by speeding up or slowing down the audio. Tip: for a multisampled Instrument, you might get better results from Transpose on the CONFIG tab. It changes which samples are played rather than processing them, which can sound more natural. | | Layer 2/Playback/Granular | Variation | 423 | L2Grn Variation | Variation decides whether each note scatters its grains differently or plays back the exact same grains every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern of grains and save it with the preset. Open the menu and hover over each option for details. | | Layer 2/Playback/Granular | Seed | 424 | L2Grn Seed | Seed picks which pattern of grains repeats. Try a few numbers until you find one you like: it's saved with the preset, so the grains you choose are the grains everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 2/LFO | Variation | 425 | L2Lfo Variation | Variation decides whether the random shapes move differently on each note or play back the exact same pattern every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern and save it with the preset. In Free mode, a note that joins already-sounding notes follows their pattern. Open the menu and hover over each option for details. | | Layer 2/LFO | Seed | 426 | L2Lfo Seed | Seed picks which random pattern repeats. Try a few numbers until you find one you like: it's saved with the preset, so the movement you choose is the movement everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 2/Playback/Granular | Share Grains | 427 | L2Grn Share Grains | Share Grains keeps the number of grains the same whether you play one note or a chord, so the sound keeps the same density however many notes you hold. Each grain plays from one of the held notes, weaving the chord's pitches together. At low Density you can hear the grains hop between the notes of the chord. | | Layer 3 | Volume | 480 | L3 Volume | The Layer Volume sets the level of this layer. The marks on the slider show the level of each sounding voice: its velocity, key range fade and any MPE volume expression. Tip: to change how velocity relates to volume, edit the velocity to volume curve on the CONFIG tab. | | Layer 3 | Mute | 481 | L3 Mute | Mute silences this layer. Handy for hearing how the other layers sit together while you're designing a sound. A muted layer keeps running in the background exactly as if you could hear it, so when you unmute, the sound carries on seamlessly from wherever it has naturally got to. If you're trying to save CPU, unload the Instrument instead. If a layer is still audible after muting it, check whether it's also soloed: Solo takes priority over Mute. | | Layer 3 | Solo | 482 | L3 Solo | Solo lets you hear this layer on its own. Any layer that isn't soloed goes quiet. Handy for focusing on one part of a sound while you're designing it. Silenced layers keep running in the background exactly as if you could hear them, so when you unsolo, they carry on seamlessly from wherever they have naturally got to. If you're trying to save CPU, unload their Instruments instead. If a layer has gone quiet unexpectedly, check whether another layer is soloed. And if a muted layer is still audible, that's because Solo takes priority over Mute. | | Layer 3 | Pan | 483 | L3 Pan | Pan places this layer in the stereo field, anywhere from fully left to fully right. It uses a constant-power pan law (-3 dB at centre), so the layer stays at the same perceived loudness wherever you put it. Pan is applied after the Stereo control, so you can narrow a wide sound first and then place it as a single point. | | Layer 3 | Detune Cents | 484 | L3 Detune Cents | Detune fine-tunes this layer's pitch in cents (100 cents is one semitone). This works by speeding up or slowing down the audio. | | Layer 3 | Pitch Semitones (Legacy) | 485 | L3 Pitch Semitones (Legacy) | Legacy layer pitch in semitones. Kept for backwards-compatibility with DAW automation | | Layer 3/Playback/Loop | Start | 487 | L3Lp Start | Set the loop start point, where the loop begins within the sample. While a note is held, playback loops between here and the loop end. | | Layer 3/Playback/Loop | End | 488 | L3Lp End | Set the loop end point, where the loop finishes within the sample. While a note is held, playback loops between the loop start and here. | | Layer 3/Playback/Loop | Crossfade Size | 489 | L3Lp Crossfade Size | Set the size of the loop crossfade, which blends audio across the loop point so the loop doesn't click. A small amount usually helps, especially for sustained or tonal sounds. Floe keeps the crossfade within the loop and the sample, so it shrinks automatically if you make the loop too small for it. | | Layer 3/Playback/Loop | Sample Start Offset | 491 | L3Lp Sample Start Offset | Change the starting point of the sample | | Layer 3/Playback/Loop | Reverse On | 492 | L3Lp Reverse On | Play the Instrument's samples backwards, from the end to the start. It works in every play mode and whether looping is on or off. The waveform display flips to match, so playback always runs from left to right (unless in the reverse portion of a ping-pong loop). | | Layer 3/Main/Volume Envelope | On | 493 | L3Vol On | Switch the volume envelope on or off. It's typically best left on. When it's off, every note plays its sample straight through to the end, however briefly you press the key. Handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off, since nothing would ever bring a looping note to an end. Careful: with the envelope off, notes can't be cut short, so voices pile up if you play quickly, which costs CPU. | | Layer 3/Main/Volume Envelope | Attack | 494 | L3Vol Attack | Attack sets how long each note takes to fade in. A few milliseconds is enough to avoid clicks if you've moved the sample start point. | | Layer 3/Main/Volume Envelope | Decay | 495 | L3Vol Decay | Decay sets how long the note takes to fall to the Sustain level after the attack. | | Layer 3/Main/Volume Envelope | Sustain | 496 | L3Vol Sustain | Sustain sets the level the note holds at while the key is down. At 0 dB, Decay has nothing to do. | | Layer 3/Main/Volume Envelope | Release | 497 | L3Vol Release | Release sets how long the note takes to fade out after you lift the key. | | Layer 3/Main/Filter | On | 498 | L3Filt On | Switch the filter on or off. It's a clean, digital-sounding state-variable filter (12 dB per octave). Every voice gets its own copy, so the filter envelope and the LFO (on the LFO tab) can sweep each note independently. Tip: for broader tone shaping, the EQ tab has a three-band equaliser. | | Layer 3/Main/Filter | Legacy Cutoff Frequency | 499 | L3Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Main/Filter | Legacy Resonance | 500 | L3Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Main/Filter | Legacy Type | 501 | L3Filt Legacy Type | Legacy filter type parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Main/Filter | Envelope Amount | 502 | L3Filt Envelope Amount | Envelope Amount sets how strongly the filter envelope (shown to the right) moves the cutoff on every note. At 0% the envelope does nothing. Turn it up and the cutoff follows the envelope's shape, rising and falling with it. Turn it down and the cutoff moves the opposite way, falling as the envelope rises. The envelope is centred on the Cutoff setting: the top half of the display pushes the cutoff above it, the bottom half pulls it below. A negative amount flips this. For example, with a low-pass filter, a long attack opens the sound up gradually at the start of each note. | | Layer 3/Main/Filter | Attack | 503 | L3Filt Attack | Attack sets how long the filter envelope takes to reach its peak. | | Layer 3/Main/Filter | Decay | 504 | L3Filt Decay | Decay sets how long the filter envelope takes to fall to the Sustain level after the attack. | | Layer 3/Main/Filter | Sustain | 505 | L3Filt Sustain | Sustain sets the level the filter envelope holds at while the key is down. | | Layer 3/Main/Filter | Release | 506 | L3Filt Release | Release sets how long the filter envelope takes to fall back after you lift the key. | | Layer 3/LFO | On | 507 | L3Lfo On | Switch this layer's LFO on or off. Enable Floe's LFO (low frequency oscillator) for adding movement to a one of this layer's controls (such as the volume or filter cutoff). | | Layer 3/LFO | Legacy Shape | 508 | L3Lfo Legacy Shape | Legacy LFO shape parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Mode | 509 | L3Lfo Mode | Choose where the LFO starts when you play a new note. With Retrigger, every note starts the LFO from the beginning of its cycle. With Free, a new note joins in wherever this layer's sounding notes have reached, so every note modulates precisely together. | | Layer 3/LFO | Amount | 510 | L3Lfo Amount | Amount sets how far the LFO moves its target. 0% is no movement at all and 100% is the full range for that target: silence to full level for Volume, a semitone either way for Pitch, and so on. Negative values flip the shape upside down, so a falling sawtooth becomes a rising one. For random Shapes this only makes a difference when Variation is set to one of the Identical options. The LFO display shows the shape at the current Amount. | | Layer 3/LFO | Target (Legacy) | 511 | L3Lfo Target (Legacy) | Legacy LFO target parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Time (Tempo Synced) (Legacy) | 512 | L3Lfo Time (Tempo Synced) (Legacy) | Legacy LFO rate. Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Time (Hz) | 513 | L3Lfo Time (Hz) | Time sets how fast the LFO cycles, in Hz (cycles per second). Tip: for movement that stays in time with your track, switch Sync on and choose a note length instead. | | Layer 3/LFO | Sync On | 514 | L3Lfo Sync On | Sync ties the LFO's speed to your DAW's tempo. When it's on, Time is chosen as a note length that follows the tempo; when it's off, Time is set freely in Hz. Both settings are remembered, so you can flick between them without losing either. | | Layer 3/EQ | On | 515 | L3Eq On | Switch on this layer's three-band equaliser to shape its tone before it's mixed with the other layers. | | Layer 3/EQ/Band 1 | Legacy Frequency | 516 | L3EqB1 Legacy Frequency | Legacy band 1 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 1 | Legacy Resonance | 517 | L3EqB1 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 1 | Gain | 518 | L3EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 3/EQ/Band 1 | Legacy Type | 519 | L3EqB1 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 2 | Legacy Frequency | 520 | L3EqB2 Legacy Frequency | Legacy band 2 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 2 | Legacy Resonance | 521 | L3EqB2 Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 2 | Gain | 522 | L3EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 3/EQ/Band 2 | Legacy Type | 523 | L3EqB2 Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/Config | Legacy Velocity Mapping | 524 | L3 Legacy Velocity Mapping | Choose how MIDI velocity should affect the volume of this layer. There are 6 modes that can be selected for this parameter via the buttons on the GUI. By setting one layer to be quiet at high velocities and another layer to be quiet at low velocities you can create an instrument that sounds different based on how hard the notes are played. (0) Ignore velocity, always play full volume. (1) Loudest at high velocity, quietist at low velocity (2) Loudest at low velocity, quietist at high velocity (3) Loudest at high velocity, quietist at middle velocity and below (4) Loudest at middle velocity, quietist at both high and low velocities (5) Loudest at bottom velocity, quietist at middle velocity and above, | | Layer 3/Config | Keytrack On | 525 | L3 Keytrack On | With Keytrack on, this layer follows the keyboard: higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which might be what you want for drum hits, loops and sound effects that shouldn't be transposed. Some sample libraries may override this - marking individual samples as always or never keytracked. | | Layer 3/Config | Legacy Monophonic On | 526 | L3 Legacy Monophonic On | Only allow one voice of each sound to play at a time | | Layer 3/Config | MIDI Transpose On | 528 | L3 MIDI Transpose On | Transpose shifts this layer up or down in semitones by changing which samples get triggered, rather than by speeding the audio up or down. On a multi-sampled Instrument that keeps the character of the sound intact, so it's the better choice for large shifts. The key range isn't affected: you play the same keys as before, they just reach for different samples. Tip: the Pitch control at the top of the layer transposes by re-pitching the audio instead. That's the one to reach for on a single-sample Instrument, and Detune beside it covers amounts smaller than a semitone. | | Layer 3/Playback/Loop | Loop Mode | 529 | L3Lp Loop Mode | Select the Loop Mode for this layer. Floe can loop a portion of the sound for as long as you hold a note, so even a short sample can sustain indefinitely. Some Instruments come with loop points built in, while others let you set your own on the waveform. You can also turn looping off. There's 2 modes: 'standard' wrap-around loops jump from the loop end back to the start; 'ping-pong' loops bounce back and forth, alternating playback direction. The options that are available depend on the Instrument: library authors can provide built-in loops, allow or disallow custom loops, or require that certain sounds always loop. | | Layer 3/Config | Key Range Low | 530 | L3 Key Range Low | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Key Range High | 531 | L3 Key Range High | This layer only plays within the given range of keys, letting you give each layer its own portion of the keyboard. Key Fade below softens the edges of the range, so the layer eases in and out instead of switching on abruptly. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Key Range Low Fade | 532 | L3 Key Range Low Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Key Range High Fade | 533 | L3 Key Range High Fade | Key Fade eases the layer in and out at the edges of its key range instead of letting it switch on abruptly. Both values are in semitones: the left one fades up from Range Low, the right one fades down from Range High. Give two layers overlapping fades and they crossfade into one another as you play up the keyboard. Tip: see each layer's range on the bar above the keyboard in the bottom panel. Hover it to enlarge it, and use the octave arrows beside the keyboard to scroll beyond the keys shown. | | Layer 3/Config | Pitch Bend Range | 534 | L3 Pitch Bend Range | Pitch Bend Range sets how far the pitch wheel bends this layer, in semitones. Each layer has its own, so for example, a lead can bend a whole tone while the pad underneath can be set to zero to ignore the wheel entirely. Bending re-pitches the audio by speeding it up or slowing it down, so large bends will noticeably change the character of the sound. With MPE enabled, this governs the wheel on the master channel; the per-note bend of each individual note follows the range the controller asks for. | | Layer 3/Config | Monophonic Mode | 535 | L3 Monophonic Mode | Monophonic decides what happens when notes on this layer overlap. Left off, the layer is polyphonic and every note you play gets a voice of its own; the other two modes hold it to one note at a time, in different ways. It's set per layer, so a monophonic lead can sit on top of a polyphonic pad in the same preset. The arpeggiator handles its own notes, so this has no effect while the arpeggiator is running on this layer. | | Layer 3/Playback | Play Mode | 536 | L3 Play Mode | Select the Play Mode for this layer: the engine it uses to play its Instrument. Standard Playback plays each sample straight through: the playhead moves steadily from start to end, with options for looping and reversing along the way. The granular modes instead rebuild the sound from a stream of tiny snippets called grains. In Granular Playback, the point grains are drawn from moves through the sample at a rate you set with Speed, giving a time-stretch-like effect. In Granular Fixed, you place that point yourself with Position, letting you freeze on one part of the sample and explore its texture. | | Layer 3/Playback/Granular | Length | 537 | L3Grn Length | Length sets how long each grain lasts, from a few milliseconds up to a second. Short grains chop the sound into a fine, buzzy texture that keeps little of the original's shape. Long grains preserve much more of the sample's natural character. Density and Smooth are both measured relative to Length, so changing it here changes how they feel too. | | Layer 3/Playback/Granular | Speed | 538 | L3Grn Speed | Speed sets how fast the playhead travels through the sample in Granular Playback mode. Grains are drawn from wherever the playhead is. 100% is the sample's original speed. Turn it down to slow the sound to a crawl or stop it altogether, or up to race through at up to eight times normal speed. The playhead still respects the sample start, looping and Reverse settings. In Granular Fixed, this knob is replaced by Position. | | Layer 3/Playback/Granular | Position | 539 | L3Grn Position | Position chooses where in the sample grains are drawn from, shown as the highlighted region on the waveform. Grains come from here for as long as you hold the note, so you can freeze on one moment of the sound and sustain it indefinitely. Tip: you can create movement with this parameter by setting the LFO's target to Grain Position, or by assigning this knob to a macro. | | Layer 3/Playback/Granular | Density | 540 | L3Grn Density | Density sets how many grains overlap at once, relative to their Length. At 0%, each grain starts as the previous one ends, so they follow on one after another. Turning it up starts new grains sooner, stacking more and more of them on top of each other. Low values give an open texture where individual grains can be picked out. High values pile up so many grains that they smear into a thick, continuous wash. | | Layer 3/Playback/Granular | Spread | 541 | L3Grn Spread | Spread widens the area of the sample that grains can start from. Each new grain begins somewhere between the playhead and a point up to this far past it, measured as a percentage of the whole sample. Small values keep every grain close to the playhead for a focused, precise sound. Large values scatter grains across a wide stretch of the sample. | | Layer 3/Playback/Granular | Smooth | 542 | L3Grn Smooth | Smooth shapes the envelope of each grain: how gently it fades in and out, relative to its Length. At 0% grains start and stop abruptly, giving a hard, percussive edge. At 100% the fade-in and fade-out meet in the middle, so neighbouring grains blend into each other for a seamless texture. | | Layer 3/Playback/Granular | Pan | 543 | L3Grn Pan | Pan randomises where each grain sits in the stereo field. Every new grain is given its own position, picked at random within the range you set here. At 0% every grain plays dead centre. At 100% grains can land anywhere from fully left to fully right, spreading the cloud from one side to the other. A quick way to create an interestingly wide stereo image. | | Layer 3/Playback/Granular | Detune | 544 | L3Grn Detune | Detune randomises the pitch of each grain. Every new grain is nudged sharp or flat by a random amount within the range you set here. At 0% all grains play in tune. At 100% each grain can be up to a semitone sharp or flat. Small amounts thicken the sound like a chorus; larger amounts get progressively more smeared and out of tune. | | Layer 3/Playback/Granular | Direction | 545 | L3Grn Direction | Direction gives each grain a chance of playing the opposite way to the main playhead. At 0% every grain follows the playhead's direction. At 100% each grain is equally likely to play forwards or backwards. In between, you can dial in a blend of the two for meandering, less predictable tones. | | Layer 3/Playback/Granular | Harmony | 546 | L3Grn Harmony | Harmony gives each grain a chance of playing at a musical interval above or below the note you played, so a single note can bloom into a chord or a shimmering octave. At 0% every grain plays at the root. Turning it up shifts more of the grains, until at 100% every grain picks at random from the root and the intervals you've chosen. Choose which intervals are allowed with the Intervals menu next to this knob: pick a preset such as Octaves or Major Triad, or toggle individual semitones yourself. | | Layer 3/LFO | Legacy Shape V2 | 547 | L3Lfo Legacy Shape V2 | Legacy LFO shape parameter (v2). Kept for backwards-compatibility with DAW automation | | Layer 3/LFO | Target | 548 | L3Lfo Target | Choose the Target: what the LFO modulates. The modulation is applied relative to the target's current knob/slider. For example, when Volume is chosen, the movement will occur around wherever the layer's volume slider is currently set. Hover over each option for details. | | Layer 3/Main/Filter | Resonance | 549 | L3Filt Resonance | Resonance emphasises the frequencies at the cutoff. At 0% the slope is smooth and rounded; at 100% it peaks by around 20 dB, without ever self-oscillating. For the band-pass, notch and band-shelving types it also narrows the band, and for Peak it sets the size of the boost. | | Layer 3/Arp | Note Order | 550 | L3Arp Note Order | Order sets how the notes you're holding are shared out across the steps: climbing, falling, bouncing between the two, picked at random, or one of the less common shapes. Chord is the odd one out — it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in Fixed Notes mode. | | Layer 3/Arp | Trigger | 551 | L3Arp Trigger | Trigger decides what a new note does to a pattern that's already running. Free lets it carry on, so you can change chord underneath without breaking the groove. Retrigger restarts it from step 1 every time you press a note, which keeps the pattern locked to your playing. | | Layer 3/Arp | Rate (Legacy) | 552 | L3Arp Rate (Legacy) | Legacy arpeggiator rate. Kept for backwards-compatibility with DAW automation | | Layer 3/Arp | Length | 553 | L3Arp Length | Length sets how many steps the pattern runs through before it loops back to the start. Steps beyond the length are hidden from the sequencer but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. | | Layer 3/Arp | Arpeggiator Mode | 554 | L3Arp Arpeggiator Mode | Choose where the steps get their notes from. Played Notes arpeggiates whatever you're holding, giving each step one of those notes in the order set by Order. Fixed Notes ignores what you play and runs a sequence of notes you've set yourself, either by dragging each step's note or by capturing a performance with the Record button. | | Layer 3/Arp | Humanise | 555 | L3Arp Humanise | Humanise loosens the pattern up by nudging each step's timing and velocity by a random amount. A few percent takes the machine-like edge off; higher settings give a much looser, hand-played feel, which suits percussion especially well. Steps are only ever pushed later, never earlier, and never by more than a fifth of a step. | | Layer 3/Arp | Auto Rate | 556 | L3Arp Auto Rate | Auto Rate lets Floe pick the step rate so a sliced Instrument plays close to the speed it was recorded at, rather than leaving silent gaps between slices when your host tempo is a long way from the loop's own. While it's on, the rate Floe has chosen is shown in place of the Rate menu. The multiplier shifts that choice: 2x for double speed, 0.5x for half, with Dotted and Triplet variants for a different feel. Because the choice has to land on a tempo-synced division it moves in jumps as the tempo changes, and every layer using Auto Rate jumps at the same points so they stay in the same rhythmic relationship. | | Layer 3/Arp | Polyrate | 557 | L3Arp Polyrate | Polyrate gives each octave of the notes you're holding its own speed, so a single chord can produce several interleaving rhythms at once. The octave starting at middle C plays at the Rate you've set, and the octaves above and below scale from there by the ratio you choose. Tip: hold two notes an octave apart to hear the effect at its clearest. | | Layer 3/Arp | One Shot | 558 | L3Arp One Shot | With One Shot on, the pattern plays through once and stops rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes, or for letting a sliced loop play through exactly once. | | Layer 3/EQ/Band 1 | Resonance | 559 | L3EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 3/EQ/Band 2 | Resonance | 560 | L3EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 3/Arp | Arpeggiator | 561 | L3Arp Arpeggiator | Switch on the arpeggiator to turn the notes you hold into a rhythmic pattern locked to your host's tempo. Each step retriggers this layer's Instrument exactly as if you'd played the note yourself, so the envelopes, filter, LFOs and effects all respond as normal. Every layer has its own arpeggiator, so you can run different patterns side by side. | | Layer 3/LFO | Shape | 562 | L3Lfo Shape | Choose the Shape of the LFO. Alongside the classics there are a few more interesting options, such as random and plucky shapes. | | Layer 3/EQ/Band 1 | Type | 564 | L3EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 3/EQ/Band 2 | Type | 565 | L3EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 3/EQ/Band 3 | Legacy Frequency | 566 | L3EqB3 Legacy Frequency | Legacy band 3 frequency parameter. Kept for backwards-compatibility with DAW automation | | Layer 3/EQ/Band 3 | Resonance | 567 | L3EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Layer 3/EQ/Band 3 | Gain | 568 | L3EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Layer 3/EQ/Band 3 | Type | 569 | L3EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Layer 3/Main/Filter | Cutoff Frequency | 570 | L3Filt Cutoff Frequency | Cutoff Frequency sets where the filter takes effect. The filter envelope and the LFO sweep the cutoff around this value, so it's the centre of any modulation rather than the starting point. | | Layer 3/EQ/Band 1 | Frequency | 571 | L3EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 3/EQ/Band 2 | Frequency | 572 | L3EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 3/EQ/Band 3 | Frequency | 573 | L3EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Layer 3/Main/Filter | Type | 574 | L3Filt Type | Select the filter type. Hover over the options in the menu for a description of each. | | Layer 3 | Stereo Width | 575 | L3 Stereo Width | Stereo narrows or widens this layer's stereo image. Negative values pull it toward mono, positive values push it wider, and 0% leaves the sound as recorded. It works by splitting the sound into mid (what both channels share) and side (what differs between them), then rebalancing the two with a constant-power crossfade. At -100% only the mid remains; at +100% only the side, so anything dead centre disappears. Mono sounds have no side, so pushing to +100% silences them. | | Layer 3/Config | MPE Press Target | 576 | L3 MPE Press Target | Press is the channel pressure, or aftertouch, that an MPE controller sends on each note's own channel. On most keyboards it follows how hard you're pushing into the key once it's sounding. Choose what it controls on this layer here, and how strongly with Amount beside it. Press rests at nothing and climbs from there, so it only ever adds to the destination you point it at. MPE has to be switched on in the Performance Controls panel before press does anything. | | Layer 3/Config | MPE Press Amount | 577 | L3 MPE Press Amount | Amount sets how far press moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before press reaches its own, so you get the full effect from a lighter touch. | | Layer 3/Config | MPE Slide Target | 578 | L3 MPE Slide Target | Slide is CC74, which an MPE controller sends on each note's own channel. On most keyboards it follows where your finger sits along the front-to-back axis of the key. Choose what it controls on this layer here, and how strongly with Amount beside it. Slide rests in the middle, so it pushes the destination either side of where you've set it. MPE has to be switched on in the Performance Controls panel before slide does anything. | | Layer 3/Config | MPE Slide Amount | 579 | L3 MPE Slide Amount | Amount sets how far slide moves its destination, and a negative value flips the direction so the effect runs in reverse. Past 100% the destination reaches its limit before slide reaches its own, so you get the full effect from a smaller movement. | | Layer 3/LFO | Time (Tempo Synced) | 580 | L3Lfo Time (Tempo Synced) | Time sets how long one LFO cycle lasts, as a note length at your DAW's tempo. 1/4 is a quarter note; a D on the end is dotted (one and a half times as long) and a T is triplet (two thirds as long). The LFO follows tempo changes, but it isn't locked to the bar: each cycle starts from the note, as set by Mode. | | Layer 3/Arp | Rate | 581 | L3Arp Rate | Rate sets how long each step lasts, synced to your host's tempo. Together with Length it decides how long the whole pattern takes to come round — eight steps at 1/8 fills one bar of 4/4. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. | | Layer 3 | Pitch Semitones | 582 | L3 Pitch Semitones | Pitch moves this layer up or down in semitones. This works by speeding up or slowing down the audio. Tip: for a multisampled Instrument, you might get better results from Transpose on the CONFIG tab. It changes which samples are played rather than processing them, which can sound more natural. | | Layer 3/Playback/Granular | Variation | 583 | L3Grn Variation | Variation decides whether each note scatters its grains differently or plays back the exact same grains every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern of grains and save it with the preset. Open the menu and hover over each option for details. | | Layer 3/Playback/Granular | Seed | 584 | L3Grn Seed | Seed picks which pattern of grains repeats. Try a few numbers until you find one you like: it's saved with the preset, so the grains you choose are the grains everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 3/LFO | Variation | 585 | L3Lfo Variation | Variation decides whether the random shapes move differently on each note or play back the exact same pattern every time. Different on every note suits most sounds, while the Identical options let you capture a particular pattern and save it with the preset. In Free mode, a note that joins already-sounding notes follows their pattern. Open the menu and hover over each option for details. | | Layer 3/LFO | Seed | 586 | L3Lfo Seed | Seed picks which random pattern repeats. Try a few numbers until you find one you like: it's saved with the preset, so the movement you choose is the movement everyone hears. Set Variation to one of the Identical options for this to take effect. | | Layer 3/Playback/Granular | Share Grains | 587 | L3Grn Share Grains | Share Grains keeps the number of grains the same whether you play one note or a chord, so the sound keeps the same density however many notes you hold. Each grain plays from one of the held notes, weaving the chord's pitches together. At low Density you can hear the grains hop between the notes of the chord. | | Effect/Distortion | Legacy Type | 3 | Dist Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Effect/Distortion | Drive | 4 | Dist Drive | Drive sets how hard the signal is pushed into the Type's shaping curve, and is the main control for how much distortion you hear. For the Mangle types it also moves the effect itself, so the character changes as well as the intensity. | | Effect/Distortion | On | 5 | Dist On | Enable/disable this effect. | | Effect/Bitcrush | Legacy Bits | 6 | Bitc Legacy Bits | Legacy bits parameter. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | Legacy Sample Rate | 7 | Bitc Legacy Sample Rate | Legacy sample rate parameter. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | Legacy Wet | 8 | Bitc Legacy Wet | Legacy processed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | Legacy Dry | 9 | Bitc Legacy Dry | Legacy unprocessed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Bitcrush | On | 10 | Bitc On | Enable/disable this effect. | | Effect/Compressor | Legacy Threshold | 11 | Comp Legacy Threshold | Legacy threshold parameter. Kept for backwards-compatibility with DAW automation | | Effect/Compressor | Legacy Ratio | 12 | Comp Legacy Ratio | Legacy ratio parameter. Kept for backwards-compatibility with DAW automation | | Effect/Compressor | Gain | 13 | Comp Gain | An additional control for volume after compression. | | Effect/Compressor | Auto Gain | 14 | Comp Auto Gain | Automatically re-adjust the gain to stay consistent regardless of compression intensity. | | Effect/Compressor | On | 15 | Comp On | Enable/disable this effect. | | Effect/Filter | On | 16 | Filt On | Enable/disable this effect. | | Effect/Filter | Legacy Cutoff Frequency | 17 | Filt Legacy Cutoff Frequency | Legacy cutoff parameter. Kept for backwards-compatibility with DAW automation | | Effect/Filter | Legacy Resonance | 18 | Filt Legacy Resonance | Legacy resonance parameter. Kept for backwards-compatibility with DAW automation | | Effect/Filter | Legacy Gain | 19 | Filt Legacy Gain | Legacy gain parameter. Kept for backwards-compatibility with DAW automation | | Effect/Filter | Legacy Type | 20 | Filt Legacy Type | Legacy type parameter. Kept for backwards-compatibility with DAW automation | | Effect/StereoWiden | Width | 21 | Ster Width | Width narrows or widens the stereo image. Negative values pull the sound towards mono, positive values push it wider, and 0% leaves it as it is. It rebalances the mid (what both channels share) against the side (what differs between them), so at -100% only the mid is left, and at +100% only the side, which makes anything dead centre disappear. Tip: each layer has its own Stereo control if you want to widen just one of them. | | Effect/StereoWiden | On | 22 | Ster On | Enable/disable this effect. | | Effect/Chorus | Rate | 23 | Chr Rate | The Rate sets how quickly the pitch drifts up and down. Slow rates give a gentle swelling movement, while faster rates become a shimmering warble. | | Effect/Chorus | Legacy High-pass | 24 | Chr Legacy High-pass | Legacy high-pass parameter. Kept for backwards-compatibility with DAW automation | | Effect/Chorus | Depth | 25 | Chr Depth | The Depth sets how far the pitch drifts away from the original. Small amounts thicken the sound, while larger amounts give an obvious, tape-like wobble. At zero, the delayed copies are still there, adding a static colouration. | | Effect/Chorus | Legacy Wet | 26 | Chr Legacy Wet | Legacy processed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Chorus | Legacy Dry | 27 | Chr Legacy Dry | Legacy unprocessed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Chorus | On | 28 | Chr On | Enable/disable this effect. | | Effect/Filter | Resonance | 29 | Filt Resonance | Resonance emphasises the frequencies right at the cutoff, adding a peak there on the pass filters. For Band-pass and Notch it narrows the band, for Peak it tightens the boost, and for the shelves it steepens the corner. | | Effect/Filter | Gain | 30 | Filt Gain | Gain sets how far the Peak and shelf types boost or cut around the cutoff. | | Effect/StereoWiden | Mode | 31 | Ster Mode | Mode sets how the widening is done. Hover over the options in the menu for a description of each. | | Effect/StereoWiden | Bass Mono | 32 | Ster Bass Mono | Bass Mono sets the point below which the sound is summed to the centre. Holding the low end in the middle keeps kicks and basslines solid, and stops them losing power on mono systems. The two bands are split with a 24 dB per octave Linkwitz-Riley crossover, so they recombine without a dip around the crossover point. | | Effect/Compressor | Type | 33 | Comp Type | The compressor algorithm to use. The Vintage type has a bit of character, and automatically sets the attack and release. The Modern type offers more precision. | | Effect/Compressor | Attack | 34 | Comp Attack | How quickly the compressor responds to a rise in level. | | Effect/Compressor | Release | 35 | Comp Release | How quickly the compressor recovers after the level drops. | | Effect/Compressor | Mix | 36 | Comp Mix | Blend between the dry input and the compressed signal. | | Effect/Convolution Reverb | Legacy High-pass | 65 | Conv Legacy High-pass | Legacy high-pass parameter. Kept for backwards-compatibility with DAW automation | | Effect/Convolution Reverb | Legacy Wet | 66 | Conv Legacy Wet | Legacy processed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Convolution Reverb | Legacy Dry | 67 | Conv Legacy Dry | Legacy unprocessed-signal volume. Kept for backwards-compatibility with DAW automation | | Effect/Convolution Reverb | On | 68 | Conv On | Enable/disable this effect. | | Effect/Reverb | Decay Time | 69 | Rvrb Decay Time | The Decay Time sets how long the tail takes to fade away once a sound stops. It holds steady whatever the Size, so you can choose the length of the reverb and the character of the space separately. | | Effect/Reverb | Pre Low-pass Cutoff | 70 | Rvrb Pre Low-pass Cutoff | The Pre LP is a low-pass filter cutoff for rolling the highs off the signal on its way into the reverb, for a darker, more distant space. The dry signal keeps its full range. | | Effect/Reverb | Pre High-pass Cutoff | 71 | Rvrb Pre High-pass Cutoff | The Pre HP is a high-pass filter cutoff for rolling the lows off the signal on its way into the reverb, keeping the tail clear so the bass stays tight and centred. The dry signal keeps its full range. | | Effect/Reverb | Low-shelf Cutoff | 72 | Rvrb Low-shelf Cutoff | The Lo-Shelf sets the frequency below which the reverb tail is cut by the Lo-Gain amount. Turn Lo-Gain down to hear it work. | | Effect/Reverb | Low Gain | 73 | Rvrb Low Gain | The Lo-Gain sets how much the reverb tail is cut below the Lo-Shelf frequency. The cut builds up as the tail recirculates, so the low end thins out as the reverb fades - handy for stopping long tails clouding the bass. | | Effect/Reverb | High-shelf Cutoff | 74 | Rvrb High-shelf Cutoff | The Hi-Shelf sets the frequency above which the reverb tail is cut by the Hi-Gain amount. Turn Hi-Gain down to hear it work. | | Effect/Reverb | High Gain | 75 | Rvrb High Gain | The Hi-Gain sets how much the reverb tail is cut above the Hi-Shelf frequency. The cut builds up as the tail recirculates, so the highs die away first, just as soft furnishings absorb them in a real room. | | Effect/Reverb | Chorus Amount | 76 | Rvrb Chorus Amount | The Depth sets how far the reverb's reflections drift, smearing the resonances that build up in the tail. A little stops long tails ringing; more gives an obvious shimmer and movement. | | Effect/Reverb | Chorus Frequency | 77 | Rvrb Chorus Frequency | The Mod Rate sets how quickly the drift set by Depth moves through the tail. Very slow rates give a gentle, breathing wash, while faster rates add a distinct warble. | | Effect/Reverb | Size | 78 | Rvrb Size | The Size scales the spacing of the simulated reflections, setting how large the space feels. Small values pack them together for a boxy, coloured character; large values spread them out for something open and airy. | | Effect/Reverb | Delay | 79 | Rvrb Delay | The Predelay holds the reverb back for a moment so the dry sound is heard on its own first. Short amounts keep the sound upfront and defined, while longer amounts push the walls further away. | | Effect/Reverb | Mix | 80 | Rvrb Mix | Blend between the dry input and the reverb signal. | | Effect/Reverb | On | 81 | Rvrb On | Enable/disable this effect. | | Effect/Phaser | Feedback | 82 | Phs Feedback | Feedback routes the phased signal back into the filters, sharpening the peaks and deepening the notches. Small amounts keep it as a gentle swoosh, while higher amounts give the sweep a resonant, whistling edge. | | Effect/Phaser | Mod Rate | 83 | Phs Mod Rate | The Rate sets how quickly the peaks sweep up and down the frequency range. Slow rates give a gentle, drifting movement, while faster rates turn the sweep into a warble. | | Effect/Phaser | Center Frequency | 84 | Phs Center Frequency | Freq sets the centre of the sweep: the frequency that the peaks and notches travel around. Keep it low for a deep, throaty movement, or raise it to place the phasing amongst the brighter harmonics. | | Effect/Phaser | Shape | 85 | Phs Shape | Shape sets how many peaks and notches are carved into the sound. Turned down there's a single broad one for a soft, vowel-like sweep; turned up there are more of them stacked up the spectrum for a richer, more obvious phasing. | | Effect/Phaser | Mod Depth | 86 | Phs Mod Depth | The Depth sets how far the peaks travel either side of the Freq setting. Small amounts give a narrow, shimmering movement, while larger amounts sweep across the whole spectrum. Tip: with Depth all the way down the peaks hold still, leaving a fixed colouration that you can sweep by hand with Freq. | | Effect/Phaser | Stereo Amount | 87 | Phs Stereo Amount | Stereo offsets the left and right sweeps from each other so the movement drifts across the stereo image. At zero both channels sweep together; at maximum they sweep in opposite directions, for a wide, swirling feel. | | Effect/Phaser | Mix | 88 | Phs Mix | Blend between the dry input and the phased signal. | | Effect/Phaser | On | 89 | Phs On | Enable/disable this effect. | | Effect/Delay | Mode | 90 | Dly Mode | Mode sets how the repeats move around the stereo image. Hover over the options in the menu for a description of each. | | Effect/Delay | Filter Cutoff | 91 | Dly Filter Cutoff | Filter sets the centre of a band-pass that the repeats run through, with Spread setting how wide that band is. The dry signal is left untouched. It sits inside the feedback loop, so every repeat is filtered again and the echoes thin out as they fade. | | Effect/Delay | Filter Spread | 92 | Dly Filter Spread | Spread sets how wide the repeats' filter band is. Wide open leaves them close to the original sound; narrowed, they squeeze towards the Filter frequency, losing a little more of the top and bottom ends with every pass. | | Effect/Delay | Time Left (ms) | 93 | Dly Time Left (ms) | The gap between the repeats in the left channel, set freely in milliseconds. Tip: very short times stop sounding like separate echoes and become a metallic, resonant tone instead. | | Effect/Delay | Legacy Time Right (ms) | 94 | Dly Legacy Time Right (ms) | The gap between the repeats in the right channel, set freely in milliseconds. It's unused in Mono mode, where both channels follow Time L. | | Effect/Delay | Time Left (Tempo Synced) (Legacy) | 95 | Dly Time Left (Tempo Synced) (Legacy) | Legacy left delay time. Kept for backwards-compatibility with DAW automation | | Effect/Delay | Time Right (Tempo Synced) (Legacy) | 96 | Dly Time Right (Tempo Synced) (Legacy) | Legacy right delay time. Kept for backwards-compatibility with DAW automation | | Effect/Delay | On | 97 | Dly On | Enable Tempo Sync to set the delay times as note lengths that follow the host's tempo, keeping the repeats in time with your track. With it off, the times are dialled in freely in milliseconds. | | Effect/Delay | Mix | 98 | Dly Mix | Blend between the dry input and the delayed signal. | | Effect/Delay | On | 99 | Dly On | Enable/disable this effect. | | Effect/Delay | Feedback | 100 | Dly Feedback | Feedback sets how long the echoes trail on for: low amounts give a handful of repeats, while high amounts carry on long after the note has gone. It works by feeding each repeat back in to make the next one. | | Effect/Filter | Type | 105 | Filt Type | Select the filter type. Peak, Low-shelf and High-shelf bring in the Gain knob, letting you boost as well as cut. | | Effect/Filter | Cutoff Frequency | 106 | Filt Cutoff Frequency | Cutoff sets where the filter does its work: the point the pass filters roll off from, the centre of the band for Band-pass and Notch, or the corner for the shelves. | | Effect/Chorus | High-pass | 107 | Chr High-pass | Remove low frequencies from the chorused copies. The dry signal is unaffected. Raise this to keep the bass tight and free from movement. | | Effect/Convolution Reverb | High-pass | 108 | Conv High-pass | Use the high-pass to roll off the low end of the reverb to avoid muddy bass. It applies to the reverbed signal alone, before the Mix blend. | | Effect/Bitcrush | Mix | 109 | Bitc Mix | Blend between the dry input and the bitcrushed signal. | | Effect/Bitcrush | Output | 110 | Bitc Output | Output level after the mix. | | Effect/Chorus | Mix | 111 | Chr Mix | Blend between the dry input and the chorused signal. | | Effect/Chorus | Output | 112 | Chr Output | Output level after the mix. | | Effect/Convolution Reverb | Mix | 113 | Conv Mix | Blend between the dry input and the reverb signal. | | Effect/Convolution Reverb | Output | 114 | Conv Output | The effect's output level, applied after the Mix blend. | | Effect/Distortion | Mix | 115 | Dist Mix | Blend between the dry input and the distorted signal. Backing it off keeps the clarity of the original sound with the distortion sitting underneath it. | | Effect/StereoWiden | Mix | 116 | Ster Mix | Blend between the dry input and the stereo-widened signal. | | Effect/Filter | Mix | 117 | Filt Mix | Blend between the dry input and the filtered signal. | | Effect/Compressor | Threshold | 118 | Comp Threshold | The threshold that the audio has to pass above before the compression should start taking place. | | Effect/Compressor | Ratio | 119 | Comp Ratio | The intensity of compression (high ratios mean more compression). Above around 2:1 begins to make the pumping effect much more noticable. | | Effect/EQ | On | 120 | Eq On | Enable/disable this effect. | | Effect/EQ | Mix | 121 | Eq Mix | Blend between the dry input and the equalised signal. | | Effect/EQ/Band 1 | Type | 122 | EqB1 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Effect/EQ/Band 1 | Frequency | 123 | EqB1 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Effect/EQ/Band 1 | Resonance | 124 | EqB1 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Effect/EQ/Band 1 | Gain | 125 | EqB1 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Effect/EQ/Band 2 | Type | 126 | EqB2 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Effect/EQ/Band 2 | Frequency | 127 | EqB2 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Effect/EQ/Band 2 | Resonance | 128 | EqB2 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Effect/EQ/Band 2 | Gain | 129 | EqB2 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Effect/EQ/Band 3 | Type | 130 | EqB3 Type | Choose the shape of this band: a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. Only the Peak, Low-shelf and High-shelf types use the Gain knob; with the others it's inactive. | | Effect/EQ/Band 3 | Frequency | 131 | EqB3 Frequency | Frequency sets where this band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. | | Effect/EQ/Band 3 | Resonance | 132 | EqB3 Resonance | Resonance sets how tightly the band is focused. For the Peak and Notch types it's the width, going from broad and gentle to tight and focused. The shelves use it to steepen the transition at their corner, and the pass filters use it to add a peak at the cutoff. | | Effect/EQ/Band 3 | Gain | 133 | EqB3 Gain | Gain sets how far this band boosts or cuts at its frequency. Only the Peak, Low-shelf and High-shelf types use Gain. The notch and pass filters always cut by their own fixed shape, so with those the knob is inactive. | | Effect/Limiter | On | 140 | Lmtr On | Enable/disable this effect. | | Effect/Limiter | Mix | 141 | Lmtr Mix | Blend between the dry input and the limited signal. | | Effect/Limiter | Gain | 142 | Lmtr Gain | Boost the level going into the limiter. The harder you push, the more it's limited, making the sound louder and denser. | | Effect/Limiter | Ceiling | 143 | Lmtr Ceiling | The level the output is never allowed to exceed. Leaving a small margin below 0 dB gives headroom for whatever comes after Floe. | | Effect/Delay | Time Left (Tempo Synced) | 146 | Dly Time Left (Tempo Synced) | The gap between the repeats in the left channel, as a note length that follows the host's tempo. | | Effect/Delay | Time Right (Tempo Synced) | 147 | Dly Time Right (Tempo Synced) | The gap between the repeats in the right channel, as a note length that follows the host's tempo. It's unused in Mono mode, where both channels follow Time L. | | Effect/Distortion | Auto Gain | 148 | Dist Auto Gain | Enable Auto Gain to hold this Legacy type's loudness steady as Drive is increased; it's the same compensation that the Bite and Mangle types always use. Presets made before Floe had this switch load with it off, so they sound just as they were made. | | Effect/Distortion | Punish | 149 | Dist Punish | Punish stacks extra distortion stages after the first, each one driven harder than the last, for a denser, grittier, more compressed edge. Drive sets how hard the signal hits the first stage; Punish sets how much is piled on top. | | Effect/Distortion | Tilt EQ | 150 | Dist Tilt EQ | Tilt the tone going into the distortion. Positive lifts the highs so they saturate more for a brighter result; negative lifts the lows for a warmer, fatter drive. | | Effect/Distortion | Type | 151 | Dist Type | The Type sets the character and flavour of the distortion. The Bite types saturate and thicken the sound; the Mangle types tear it apart into something more extreme. The Legacy types are the original algorithms from Floe's early days, kept so that older presets still sound as they were made. | | Effect/Distortion | Gain | 152 | Dist Gain | If needed, you can adjust the level of the distorted signal, applied after all the shaping and before the Mix blend. This is a flat adjustment separate from 'Auto Gain' — which smartly counteracts any change in perceived loudness as you turn up the Drive or Punish. | | Effect/Bitcrush | Bits | 153 | Bitc Bits | Reduce the bit depth of the signal, adding a gritty digital noise that's most obvious in quiet passages and tails. At the lowest settings quiet signals quantise to silence, so feed the effect hot. | | Effect/Bitcrush | Sample Rate | 154 | Bitc Sample Rate | Reduce the sample rate by holding each sample for longer. Lower rates fold high frequencies back down into ringing, metallic aliasing - the sound of early samplers and retro hardware. | | Master | Volume | 0 | Mst Volume | The Master Volume is the final stage of Floe's signal chain: it sits after the effects rack, so it sets the overall level of everything just before the audio leaves Floe. | | Master | Legacy Velocity To Volume Strength | 1 | Mst Legacy Velocity To Volume Strength | Legacy parameter. The amount that the MIDI velocity affects the volume of notes; 100% means notes will be silent when the velocity is very soft, and 0% means that notes will play full volume regardless of the velocity | | Master | Timbre | 2 | Mst Timbre | Sweep between an instrument's crossfade layers, such as soft-to-hard or dark-to-bright variations of the same sound. Only instruments that were built with crossfade layers respond to this knob; they are highlighted while you drag it. If none of the loaded instruments have crossfade layers, the knob is inactive. | | Macro | 1 | 101 | 1 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | | Macro | 2 | 102 | 2 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | | Macro | 3 | 103 | 3 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | | Macro | 4 | 104 | 4 | A macro is a single knob that moves one or more other parameters at once. Preset authors usually set these up and give them custom names, so each macro shapes the sound in a way that's tailored to that particular preset. If you want to set up your own, go to the Layers or Effects page and open the MACROS tab in the bottom panel. There you can choose what each macro controls and rename it. | --- # Sample Libraries > What is a Floe sample library Sample libraries are where Floe's sounds come from: collections of mapped, playable sounds along with images, tags and other details. Without a sample library, Floe can't make any sound. A library usually has a theme or focus. 'Music Box Suite', for example, is multi-sampled music boxes, while 'Lost Reveries' is a collection of single-sample ambient tones. A sample library can contain [Instruments](/docs/reference/instruments), impulse responses, or both. Most focus on Instruments, but some contain only impulse responses, giving the [Convolution Reverb](/docs/usage/effects#convolution-reverb) new spaces and textures to work with. You don't load a library itself. Instead, you load its Instruments into Floe's layers and its impulse responses into the Convolution Reverb. To see which libraries you have installed, open the menu at the top of Floe's window and choose _Info_. ## What's inside a library Floe sample libraries use Floe's own open format: portable folders of audio files and configuration files, made with Floe's [developer tools](/docs/develop/develop-libraries). A library's folder usually has a name like `Developer Name - Library Name`, and inside it a `Samples` subfolder and a file called `floe.lua`. Libraries can hold thousands of audio files and take up many gigabytes. --- # Autosave > How Floe autosaves your sound, and how to get it back Floe saves a copy of each instance's sound every few seconds while you work, so a sound you've spent time on is never lost for good. That helps if Floe or your DAW crashes, but it's just as handy for everyday accidents: deleting the wrong track, closing a project without saving, or tweaking a sound past the point you liked it. Autosaves are ordinary preset files. Floe only saves when something has changed, and the files are tiny, so autosaving won't slow your computer down or fill up your drive. ## Getting a sound back 1. In the [preset box](/docs/presets/loading-presets#the-preset-box), click _Load from file_. 2. Go to Floe's autosave folder: - Windows: `C:\Users\Public\Floe\Autosaves` - macOS: `/Users/Shared/Floe/Autosaves` - Linux: `~/Floe/Autosaves` 3. Pick the autosave you want. Each file name holds the time and date it was saved, followed by the instance name, such as `autosave 14-32-05 Thu 2 Oct 2026 dawn-205 (4821).floe-preset`. The autosave folder isn't one of Floe's preset folders, so autosaves don't clutter the preset browser. Once you've loaded the sound you wanted, [save it](/docs/presets/saving-presets) as a normal preset to keep it. ## Instance names Every instance of Floe has a name of its own, such as `dawn-205`. It's saved with your DAW project, so the same instance keeps its name each time you open the project. When you have several instances of Floe running, the name in an autosave's file name tells you which one it came from. To see each instance's name in the top panel, turn on _Show instance name_ on the _General_ tab of Preferences. It's worth turning on if you often use several instances of Floe at once. ## Settings The defaults suit most people, but you can change them on the _General_ tab of Preferences: - **Autosave interval (seconds)** — how often Floe checks for changes and saves. - **Max autosaves per instance** — how many autosaves to keep for each instance. When an instance reaches the limit, its oldest autosave is deleted to make room. - **Autosave delete after days** — how long to keep autosaves before deleting them. --- # Error Reporting > How Floe reports problems, how to send feedback, and what to do if Floe stops responding Floe is built to be dependable for professional work. When something does go wrong, a few systems help keep your project safe and get the problem fixed quickly. ## Share feedback If you find a bug, have an idea for a feature or just want to tell us something, use the feedback form inside Floe. Open the menu at the top of Floe's window and choose _Share Feedback_. - **Description** — what happened, or what you'd like. For a bug, say what you did just before it happened. - **Email** — optional. Add it if you'd like a reply. - **Include anonymous diagnostic data** — sends details about your system and Floe's state along with your message, which often makes a bug much quicker to track down. Please do report anything that doesn't seem right. We want to know about it, and we want to fix it. ## Automatic error reports If Floe crashes, it sends an anonymous error report. The report describes the error, the state of Floe leading up to it, and the computer it was running on. That gives us what we need to fix the bug without asking you to gather the information yourself. Floe also sends anonymous notes of when each session starts and ends, which tell us how reliably Floe is running overall. To turn all of this off, enable _Disable anonymous error reports_ on the _General_ tab of Preferences. Floe is open source, so anyone can read the code and see exactly what's sent. ## If Floe stops responding Floe tries never to take your DAW down with it. If it detects a serious problem, it stops itself rather than crashing the DAW: it goes silent and stops responding. Every instance of Floe in that DAW session is affected. When this happens: 1. Save your DAW project under a new name. That keeps the rest of your work safe without replacing your last good save, since a stopped Floe can't save its sound into the project. 2. Restart your DAW. Floe can't start again within the same DAW session. 3. If a sound in Floe didn't come back as you left it, recover it from an [autosave](/docs/support/autosave). The [instance name](/docs/support/autosave#instance-names) in each autosave's file name tells you which instance it came from. An anonymous report of the problem is usually sent to us automatically, so we can work on a fix. --- # FAQ > Answers to common questions about Floe ### Can I add my own samples? Not at the moment. Floe isn't a sampler you drop your own recordings into: it's a platform for complete, polished sample libraries, a bit like an open ROMpler. Each library comes ready to play, with its Instruments set up and presets designed around them. We're looking into ways to expand this in the future. If you have some programming experience, you can make your own sample libraries for Floe with its open tools: see [Library Development](/docs/develop/develop-libraries). ### Does Floe load SFZ, SoundFont or other formats? No. Floe loads sample libraries in its own format, an open format with similar ideas to SFZ that uses the Lua programming language. It also loads the older Mirage format used by some FrozenPlain libraries. --- # Arp Tab > Turn held notes into rhythmic patterns with each layer's own arpeggiator The arpeggiator turns the notes you hold down into a tempo-synced rhythmic pattern. You choose how fast the steps go, the order the notes of your chord are played in, and the velocity, length, and pitch of each step. Every [layer](/docs/usage/layers) has its own arpeggiator, so you can build sounds with several rhythmic parts playing off each other: fast, high hits over slow, booming drums, say, or a melody over a pulsing bass. With a couple of arpeggiated layers, a single preset can drive a whole track. Switch the arpeggiator on and hold a chord: you'll hear its notes play one after another in a rhythm. Each step triggers the layer's Instrument just as if you'd played the note yourself; each step runs through all the layer's usual settings, such as its play mode, volume envelope, filter and LFO. The arpeggiator lives on each layer's _ARP_ tab. A dot on the tab shows that it's on. ![A layer's ARP tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-arp.3e2ced3e273a2a2e.png)12345 1. **On/off and mode** — the _Arpeggiator_ switch, and a menu choosing where the steps get their notes from: _Played Notes_ or _Fixed Notes_. 2. **Velocity bars** — one bar for each step, setting its velocity. Click and drag to change them, or drag sideways across the bars to draw a whole pattern in one go. 3. **Step settings** — under each bar, from top to bottom, are the step number (click it to turn the step on or off), its pitch, a tie to the previous step, and its gate. 4. **Sequence** — the step _Rate_, the pattern's _Length_, the note _Order_ and _Humanise_. 5. **Config** — _Trigger_, _Polyrate_ and _One Shot_, plus the _Record_ button in _Fixed Notes_ mode. While the arpeggiator is off, its controls are greyed out. ## The step sequencer ### Velocity bars The height of each bar (2) is that step's velocity — typically, that's how loud the step is played. The taller the bar, the louder the step. Use this to accent every 4th step, for example. `ctrl`/`cmd`\-click a bar to reset it, or `ctrl`/`cmd`\-drag across several to reset them all. There are a few things that are good to know about velocities in Floe. Velocity usually corresponds to volume, but how much depends on the layer's [velocity to volume curve](/docs/usage/config-tab#velocity-to-volume-curve) on the _CONFIG_ tab. That curve sometimes doesn't start at zero, so even the lowest bar may still be heard quietly. Velocity can also affect more than just volume. For multi-sampled Instruments, it may select different samples to play (for example, playing a softer dynamic hit). In _Played Notes_ mode, whilst the step's velocity is a major factor, how hard you play the note that triggers the sequence also plays a part — it scales the step velocities down. In other words, when you play the triggering note as softly as possible (MIDI velocity 1), the step velocities will be 50% as intense. When you play as hard as possible (MIDI velocity 127), the step velocities reach their full intensity. This upholds the natural way you use velocity on a keyboard. Play at full velocity to make the step velocities the only thing that matters. In _Fixed Notes_ mode, how hard you play is ignored. ### Step settings Under each velocity bar is a column of smaller controls (3): ![The rows of step settings under the velocity bars, numbered](https://assets.floe.audio/website/screenshots/arp-step-settings.03a9288cde0f19a0.png)1234 1. **Step number** — click to skip the step, leaving a gap in the pattern. A skipped step keeps its other settings, so you can bring it back later. It still ends the note before it, just as an active step would. 2. **Pitch** — drag up or down to nudge the step's note. In _Played Notes_ mode it's an offset in semitones from whichever held note the step plays. In _Fixed Notes_ mode it's the exact note the step plays. Double-click to type a value. 3. **Tie** — the link icon joins the step to the previous one, so they play as one longer note. Use ties to place some long notes among the short ones. 4. **Gate** — the small knob sets how long each note lasts, as a proportion of the step. Pull it right down for short, percussive notes; at 100% the notes run into each other for a more legato feel. Remember that the volume envelope's release on the layer's _MAIN_ tab may affect what you hear. ### More step options Right-click a velocity bar for a menu of options for that step: reset it, apply its settings to all the steps, reset all the steps, or rotate the whole pattern forwards or backwards by one step. Right-click a pitch or gate control to type a value or reset it, or to apply it to every step or reset it on every step. When the pattern has more steps than fit across the tab, scroll sideways to see the rest; while it plays, the view follows the current step. Alternatively, click _OVERVIEW_ in the top-right corner to squeeze every step on screen at once. You can still draw velocities there, but the other step settings are hidden until you switch back. ## Sequence controls The _SEQUENCE_ section (4) sets the shape and feel of the whole pattern: ![The arpeggiator's SEQUENCE controls](https://assets.floe.audio/website/screenshots/arp-sequence.3fcc1295cec251c5.png) - **Rate** — how long each step lasts, as a note length at your DAW's tempo. The T and D suffixes are triplet and dotted divisions, useful for swung or lopsided patterns. Together with _Length_ it decides how long the pattern takes to come round: eight steps at 1/8 fills one bar of 4/4. - **Length** — how many steps the pattern runs through before it loops. Steps beyond the length are hidden but keep their settings, so you can shorten a pattern and lengthen it again without losing anything. - **Order** — how the notes you're holding are shared out across the steps. The options include going from lowest to highest or highest to lowest, bouncing between the two, playing at random, and some less common shapes. Hover over the options in the menu for a description of each. _Chord_ is the odd one out: it plays every held note together on each step, which is ideal for rhythmic stabs and percussion. Not available in _Fixed Notes_ mode. - **Humanise** — nudges each step's timing and velocity by a random amount, to counteract the machine-gun effect of perfectly identical steps. A few percent takes the mechanical edge off; higher settings give a much looser, hand-played feel. Steps are only ever pushed later, never earlier. _Humanise_ works especially well with _Chord_ order: instead of every note of the chord starting at exactly the same instant, they spread out slightly, for a more natural, wider sound. ## Config controls The _CONFIG_ section (5) sets how the pattern responds to your playing: ![The arpeggiator's CONFIG controls](https://assets.floe.audio/website/screenshots/arp-config.69dfd372a93a94bf.png) - **Trigger** — what a new note does to a pattern that's already running. _Free_ is usually the one you want: the pattern carries on, so you can change chord underneath it without breaking the groove. _Retrigger_ restarts the pattern from the first step every time you press a note, which keeps it locked to your playing. In both modes, letting go of every key (and the sustain pedal) resets the pattern, so the next chord starts from the first step. - **Polyrate** — gives each octave of the notes you're holding its own speed, so one chord can produce several interweaving rhythms. The octave starting at middle C (C3) plays at the _Rate_, and the octaves above and below scale from there. _Double at octaves_ is particularly good: each octave up plays twice as fast as the one below. _3:2 at octaves_ and _4:3 at octaves_ create polyrhythms, where the octaves drift apart and meet up again. Hold two notes an octave apart to hear it most clearly. - **One Shot** — the pattern plays through once and stops, rather than looping for as long as you hold the notes. It's handy for fills and one-off flourishes. To play it again, release the keys and press again, or use _Retrigger_. - **Record** — in _Fixed Notes_ mode only; see below. ## Played Notes and Fixed Notes The menu next to the _Arpeggiator_ switch (1) chooses where the steps get their notes from. _Played Notes_ arpeggiates whatever you're holding. Each step plays one of your held notes, chosen by _Order_, moved up or down by the step's pitch offset. _Fixed Notes_ ignores which notes you play, and each step plays a specific note that you set. You still hold a key to make the pattern run, but which key doesn't matter. Every step starts on C3, and you can set each one to any note by dragging its pitch. ![A layer's ARP tab in Fixed Notes mode with its parts numbered](https://assets.floe.audio/website/screenshots/arp-fixed-notes.3501fc38f7f26fd5.png)123 1. **Mode** — the menu beside the _Arpeggiator_ switch, set to _Fixed Notes_. 2. **Step notes** — each step's note, shown by name. Drag one up or down to change it. 3. **Record** — play the pattern in from your keyboard. It's particularly useful with a drum kit Instrument, where each key is a different drum: rather than following your chord, the pattern always plays the drums you've picked. You can also play the pattern in with the _Record_ button (3) in the _CONFIG_ section. Click it, then play notes on your keyboard in your own time: each note you press lands on the next step. Recording stops by itself once the last step is filled, or you can click again to stop early. Only the notes are recorded; each step keeps the velocity, gate and tie you've already set. While recording, your notes play normally rather than through the pattern. If your kick drum is on C3 and your snare on D3, for example, play C3, D3, C3, D3 for an alternating pattern. ## Sliced loops Some Instruments are sliced loops: rhythmic loops marked up with slice points. The arpeggiator is what powers them: each slice becomes a step, so the loop plays in time with your DAW at any tempo. Because each slice is played as it was recorded, rather than being time-stretched, the loop still sounds natural even when your tempo is a long way from the one it was recorded at. With a sliced Instrument loaded, the arpeggiator is always on, and the _ARP_ tab changes a little: ![A layer's ARP tab with a sliced Instrument loaded, with its parts numbered](https://assets.floe.audio/website/screenshots/arp-sliced.080368edd742cf1b.png)12 - The _Arpeggiator_ switch, mode menu and _Length_ are hidden. - Each step has its velocity bar, step number and gate, but no pitch or tie: ties are set for you, so slices longer than one step play in full. - **Auto Rate** appears in the _SEQUENCE_ section (1). It picks the step rate for you, so the loop plays close to the speed it was recorded at rather than leaving silent gaps between slices. It's most useful when making presets: the preset keeps the same feel whether it's loaded into a 60 BPM track or a 170 BPM one. While it's on, the chosen rate is shown in place of the _Rate_ menu. The multiplier shifts that choice: _2x_ for double speed, _0.5x_ for half, with dotted and triplet variants for a different feel. Set it to _Off_ to choose the rate yourself. - A _SLICING_ section (2) appears. **Offset** picks which slice the pattern starts from, so you can begin part-way into the loop: an easy way to get a fresh groove out of a familiar loop. **Length** sets how many slices play before the pattern loops back to the offset, wrapping round the end of the loop if it needs to. Set it to _All_ to play every slice. Looping a short run of slices turns a long loop into a tight, repeating figure. ### Auto Rate and tempo changes You may notice that raising the tempo sometimes makes a loop using _Auto Rate_ play slower, and lowering it can make it play faster: for example, a loop can feel faster at 147 BPM than at 148 BPM. That's because _Auto Rate_ aims to play the loop at roughly the speed it was recorded at, where it sounds most natural, with the fewest silent gaps or overlaps between slices. It can only choose from the tempo-synced note lengths, so when the tempo moves far enough from the loop's own speed, it switches to whichever note length is now closer. Every layer using _Auto Rate_ switches at the same tempos, so they stay in the same rhythmic relationship. ## Good to know - The pattern starts the moment you press the first key, and runs whether or not your DAW is playing. It follows your DAW's tempo, but it isn't lined up to its bars and beats. - The sustain pedal counts as holding notes, so it keeps the pattern running. - The layer's [key range](/docs/usage/config-tab#key-ranges) applies to the notes the arpeggiator plays, not the keys you hold. In _Played Notes_ mode a step whose note lands outside the range is silent. - The [_Monophonic_](/docs/usage/config-tab) setting has no effect while the arpeggiator is running. - In _Free_ mode with _Chord_ order, press the notes of a chord at the same moment. If one arrives slightly late, the first step plays without it, and it joins on the next step. When playing from your DAW, quantising the recorded notes lines them up so every step plays the whole chord. - Right-click the _ARP_ tab to copy and paste the whole arpeggiator, steps included, to another layer. --- # Browsers > How to find and load presets, Instruments and impulse responses with Floe's browsers. The browsers help you find the right items quickly, without scrolling through long lists. Think of them as supercharged drop-down menus. There are three browsers, and they all work the same way. Each one opens when you click the name of the item it loads: - **Preset browser** — click the preset's name in the [top panel](/docs/usage/top-panel), which is there on every page. - **Instrument browser** — click the Instrument name at the top of a layer, on the [_Layers_](/docs/usage/layers#layer-header) page. - **IR browser** — click the IR name in the [Convolution Reverb](/docs/usage/effects#convolution-reverb) effect, on the _Effects_ page. ![Layer 1's Instrument browser, open beneath its selector, with its regions numbered](https://assets.floe.audio/website/screenshots/browser-browse.73d96a92f8a5fdb2.png)12345 1. **Items** — the light panel on the left lists everything you can load. Click one to load it. 2. **Narrowing down** — the dark panel on the right is for narrowing down the list on the left, such as to one sample library or one tag. 3. **Selector** — the box you clicked to open the browser. It stays usable while the browser is open. 4. **Navigation** — step back and forth through the pages of the right-hand panel. 5. **Mode** — switch the right-hand panel between browse mode and [filter mode](#filter-mode). ## Loading items Click an item (1) to load it. The browser stays open, so you can try one sound after another, playing as you go. Once you've loaded something, the browser closes by itself as soon as you move the mouse away from it. You can also double-click an item to load it and close the browser in one go, or close it at any time by clicking outside it or pressing `escape`. While the browser is open, the selector you clicked (3) can still be used: previous, next, random and unload, where it has them. Hover over an item for a moment to see more about it, such as its description. ## Favourites If there are items you keep coming back to, mark them as favourites. Hover over an item and click the next to its name. The star stays lit to show it's a favourite. To see only your favourites, click the in the toolbar at the bottom of the list. Click it again to see everything. Favourites are shared by every instance of Floe, so anything you star in one project is there in the next. ## The list of items The left panel (1) starts off showing everything, and shrinks as you narrow it down with the right panel. Beneath the list, a line of italic text says what you're looking at, such as _Showing all instruments_. As you narrow things down it changes to match, such as _Showing from Lost Reveries_. Each part of it that narrows the list has a : click one to remove it. At the very bottom is a small toolbar: - — jump to the item that's currently loaded. The right panel jumps to where it came from, too. - — show only your favourites. - — search. As you type, the list shows only the items containing your text. `ctrl`+`F` (`cmd`+`F` on macOS) opens it too. ## Narrowing down The right panel (2) has pages that you click through to narrow down the list. In the Instrument browser, for example, you might click _Libraries_, then a particular sample library. The list on the left then shows only that library's Instruments. Numbers in brackets, such as _(26)_, show how many items each option holds. The first page offers two ways in. _Browse by collection_ narrows down by where items come from. _Browse by attribute_ narrows down by their properties, such as their tags or who made them. As you click through the pages, a trail of the pages you've visited builds up at the bottom of the panel (4) — a bit like a web browser. Click any step to jump back to it, or click to go back to the first page. The and arrows step back and forth. ## Right-click menus Right-click items in the browsers for options to do with their files: - **A preset** — open the folder it's in, make it your [default preset](/docs/presets/loading-presets#default-preset), or send it to the bin. - **A preset bank or folder** — open it in your file manager, or uninstall it. - **A sample library** — open its folder, or uninstall it. See [Uninstalling](/docs/installation/uninstalling). ## Keyboard navigation You can use the browsers from your computer keyboard. The focused item gets a blue outline, which appears once you press an arrow key. - `up`/`down` move through the list. - `enter` clicks the focused item. - `tab` moves between the left and right panels. - `left`/`right` move along the trail at the bottom of the right panel. - `ctrl`+`F` (`cmd`+`F` on macOS) opens the search. - `home`/`end` jump to the start or end of the list. - `ctrl`+`up`/`down` (`cmd` on macOS) jump to the previous or next folder. - `page up`/`page down` jump 8 items at a time. ## Filter mode Browse mode, where you click through one page at a time, is all most people need. When you know exactly what you're after, filter mode goes further: it lets you combine several ways of narrowing down at once, such as showing only Instruments tagged _ambient_ from one particular sample library. Switch to it with the button (5), and back to browse mode with . ![The Instrument browser in filter mode, with its regions numbered](https://assets.floe.audio/website/screenshots/browser-full.89de4f11b56240f7.png)1234 1. **Filters** — every option in one tree, rather than pages to click through. Click a to open a section, then click the options you want. 2. **Summary** — what's currently showing. Click the next to a filter to remove it. 3. **Mode** — switch between browse mode and filter mode. 4. **Matching** — choose how your filters combine. The list on the left updates as soon as you click an option. Choose how the filters combine with the button next to the mode switch (4): ![The One, Match all and Match any menu](https://assets.floe.audio/website/screenshots/browser-menu.5ef644a9f8155d92.png) - **Match all (AND)** — the one you'll usually want. Only items that match every selected filter are shown, so the more filters you choose, the shorter the list gets. Filters that would leave nothing to show are greyed out, so you don't hit dead ends. - **Match any (OR)** — items that match any of the selected filters are shown, so the more filters you choose, the longer the list gets. - **One** — only one filter at a time, like browse mode but with the tree layout. Filter mode has its own search, at the bottom of the right panel, for finding a filter in the tree, such as the _aggressive_ tag. Filter mode pairs well with the random button: narrow the list down to the kind of sound you're after, then jump around within it for inspiration. See [Randomisation](/docs/usage/randomisation). ## Tips - The previous, next and random buttons ( ) always stay within the list you've narrowed down to, whether the browser is open or closed. On the _Perform_ page and in the top panel, the preset arrows follow the preset browser in the same way. - Drag the bottom-right corner of a browser to resize it. To make room for longer names, drag the line where the two panels meet. Double-click either to reset it. - Each layer's Instrument browser remembers its own settings. On the _Layers_ page, set up each one the way you like, perhaps the first narrowed to the _bass_ tag and the second to _keys_. Then click the button that randomises every layer, and each one jumps to a random Instrument within its own selection. --- # Config Tab > How a layer responds to your playing, including key ranges, pitch bend, velocity and MPE The _CONFIG_ tab sets how the layer responds to your playing: which keys it uses, and how it follows velocity, pitch bend and MPE controllers. ![A layer's CONFIG tab](https://assets.floe.audio/website/screenshots/layer-config.499578f75666d12d.png)1234567 1. **Transpose** — shift the layer in semitones by changing which samples are triggered, rather than re-pitching the audio as _Pitch_ in the [layer header](/docs/usage/layers#layer-header) does. On a multi-sampled Instrument this keeps the character of the sound intact, so it's the better choice for large shifts. You still play the same keys; they just reach for different samples. 2. **Pitch Bend Range** — how far the pitch wheel bends this layer, in semitones. Each layer has its own, so one layer can bend a whole tone while another ignores the wheel entirely. 3. **Keytrack** — with it on, higher keys play higher pitches. Switch it off and every key plays the sample at its recorded pitch, which suits drum hits, loops and sound effects. Some libraries mark particular samples as always or never keytracked. 4. **Monophonic** — what happens when notes overlap. _Off_ is polyphonic: every note gets its own voice. _Retrigger_ plays one note at a time, with each new note releasing the previous one. _Latch_ holds on to the first note, ignoring any new ones, until you let go of every key: useful for drones and textures. Because it's per layer, one layer can play one note at a time while another stays polyphonic. While the layer's [arpeggiator](/docs/usage/arp-tab) is on, this setting has no effect. 5. **MPE** — choose what an MPE controller's press (channel pressure) and slide (CC74) control on this layer, such as volume, filter cutoff, timbre or LFO amount, and by how much. Negative amounts reverse the response. MPE must be switched on in the Performance Controls panel first. See [MIDI](/docs/usage/midi#mpe) for details. 6. **Key Range** and **Key Fade** — give the layer its own portion of the keyboard, with soft edges if you like. 7. **Velocity to volume curve** — how hard you play turns into how loud each note sounds. Steepen the curve for a wider dynamic range, or flatten it to even out your playing. When you play, a red line shows where your note landed. ## Key ranges Key ranges let you split the keyboard into zones, with each layer responding to specific keys. Use them to split the keyboard, stack zones on top of each other, or crossfade smoothly from one sound to another as you play up the keys. ### Setting up key ranges _Key Range_ is the lowest and highest note the layer plays, and _Key Fade_ is how many semitones it takes to fade in at the bottom of the range, and to fade out at the top. Drag a value up or down, click its arrows ( ), or double-click to type it in (a note name, for the range). ![Key range controls](https://assets.floe.audio/website/screenshots/key-range-controls.8f042068dc69b686.png) Fades are what make smooth transitions possible: overlap two layers' ranges by a few notes, fade the lower layer out and the upper layer in across the overlap, and one sound crossfades into the other as you play up the keyboard. To play a different part of a multi-sampled Instrument's mapping, use _Transpose_ on the same tab. It shifts which samples are triggered, so higher or lower samples play, while the layer's _Pitch_ re-pitches the audio by speeding it up or slowing it down. _Transpose_ doesn't move the key range itself. ### Key range display A bar above the keyboard at the bottom of the interface shows which keys trigger each layer, with colours corresponding to each layer. Only layers with an Instrument loaded appear. The bar is hidden when every layer uses the full keyboard range (C-2 to G8), unless an Instrument has named ranges (see below). ![Key range display above the keyboard](https://assets.floe.audio/website/screenshots/key-range-bars.bccf7ecc8a586a01.png) On the _Layers_ and _Effects_ pages, the keyboard shows a section of the full 128 keys: use the [octave controls](/docs/usage/keyboard) to scroll it, and the bar scrolls with it. The _Perform_ page shows a wider, fixed stretch of nine octaves. Vertical lines mark where each range starts and ends, and small chevrons show when a range carries on past the visible keys. Fades show as gradients on the bars: the more transparent, the quieter. Hover over the display to see an enlarged view with more detail. An Instrument can also have named ranges, such as the name of the sound on each key, or each group of drums in a kit. They appear as thicker capsules, labelled in the enlarged view. ![Enlarged key range view with named ranges, fades, and off-screen chevrons](https://assets.floe.audio/website/screenshots/key-range-enlarged.631825e6f15b2f25.png) ## Velocity to volume curve Each layer has its own _velocity to volume curve_, which shapes how hard you play (MIDI velocity) into the volume of each note. ![Velocity to volume curve editor](https://assets.floe.audio/website/screenshots/velocity-curve.7a4bb3dd5dc53a7e.png) ### How the curve works The horizontal axis is velocity — far left is the softest possible velocity (MIDI value 1), far right is the hardest (MIDI value 127). The vertical axis is the resulting note volume. When you play a note, a red indicator appears at its velocity position on the curve so you can see where you're playing. While notes are sounding, each active voice also gets a red line on the layer's volume slider, showing the level that voice is playing at, once the curve, any [key range](#key-ranges) fade and any MPE volume expression are taken into account. A straight line from bottom-left to top-right gives a natural response: the harder you play, the louder the note. Move, add or remove points, or reshape the curve between them, to change this relationship: make soft playing louder than it would be naturally, cap the volume of hard hits, or create a non-linear response that emphasises a particular dynamic range. The curve pictured above is one example. The softest notes stay quiet, the volume climbs steeply as you play a little harder, then it levels off so the hardest hits can't get much louder. Setting different curves across the three layers also opens up creative sound design — for example, fading one layer in as you play harder while another fades out. By default the curve doesn't start at zero, so even the softest notes still make a quiet sound. Drag the left-most point down to the bottom if you want the softest notes to be silent. ### Velocity and multi-sampled Instruments While not directly related to this curve, it's worth noting that velocity does more than just control volume. For multi-sampled Instruments that contain separate velocity layers, a note's velocity also selects _which_ sample is played — not just how loud it is. A low-velocity note on a piano, for instance, plays the soft-velocity samples (with their distinct tone and character) rather than a quieter version of the hard-hit samples. ### Editing the curve - **Double-click** anywhere on the curve to add a control point (up to 8 in total) - **Drag control points** to move them - **Drag between points** to adjust curve shape - **Double-click a point** to remove it - **Shift-drag** for finer control - **`ctrl`/`cmd`\-click** a point to reset its height, or between points to reset that stretch's shape - **Right-click** to add or remove points, copy and paste the curve between layers, or reset it --- # Controls > How to use Floe's knobs, sliders, menus and graphs Almost everything you shape is done with knobs and sliders, and they all work the same way. ## Knobs and sliders - **Drag** — click and drag up or right to increase the value, down or left to decrease it. Use whichever direction feels natural. - **Fine adjustment** — hold `shift` while dragging for four times finer control. You can press or release `shift` mid-drag. - **Reset** — `ctrl`\-click (`cmd`\-click on macOS) to return the control to its default value. - **Type a value** — double-click to type an exact number. You can typically use abbreviations like `2k` instead of 2000 Hz. - **More options** — right-click for a menu of extra actions (see below). When you hover over a control it lights up, and its current value appears below it. Pause on it for a moment and a short description appears too, with a reminder of these shortcuts underneath. Both are adjustable in the preferences: _Show tooltips_ turns the descriptions off, and turning off _Instant value readouts_ makes the value appear only after a moment or while you're dragging. Sometimes controls are greyed out — showing it currently has no effect; such as a filter knob while the filter is switched off. ### Reading a knob A knob shows its value in two places: the line on the dial, and the coloured arc around the edge. These 2 aspects can differ when a [macro](/docs/usage/macros) is controlling the knob. The dial shows the knob's own setting, the one you drag. The coloured arc shows the value you actually hear once the macros have been applied. Hover over the knob to see both readouts. ![The Filter effect's controls, with a macro moving its Cutoff knob](https://assets.floe.audio/website/screenshots/knob.ed9ee6bd141faee8.png) Here, a macro is raising the Filter's _Cutoff_. The dial points to where the knob is set, while the arc reaches further round, to the cutoff you hear. ## The right-click menu ![The right-click menu of the Filter effect's Cutoff knob](https://assets.floe.audio/website/screenshots/knob-menu.2b32dcce31cfb5f2.png) Right-click any knob or slider for extra actions, including: - **Copy Value** and **Paste Value** — carry a setting from one control to another. - **Enter Value** — type an exact value, the same as double-clicking. - **Reset Value to Default** — the same as `ctrl`/`cmd`\-click. - **Reset Value to "…" state** — appears when you've loaded a preset, and names it. It returns just this control to how the preset had it. - **MIDI CC Learn** — link the control to a knob or fader on your MIDI controller. See [MIDI](/docs/usage/midi#midi-cc). Some controls add their own shortcuts. A layer's _Pitch_, for example, has _+1 Octave_ and _\-1 Octave_, and _Detune_ can fold whole semitones into _Pitch_. Many sections have a right-click menu of their own too. Right-click a layer's tab, an envelope or an effect to copy, paste or reset the whole section at once: a quick way to give two layers the same filter settings, for example. ## Menus, buttons and number fields - **Menus** — click to open the list of options. The arrows either side, and , step to the previous or next option, which is a quick way to audition them. Hover over an option in the open menu to see what it does. - **Buttons** — click to switch on or off. Most can be right-clicked for more options. - **Number fields**, such as a layer's _Pitch_ — drag them like a knob, double-click to type, or use the arrows beside them ( ). Menus reset to their default with `ctrl`/`cmd`\-click, just like knobs. ## Graphs Envelopes, filters and EQs have graphs with points you can drag directly. Dragging a point is simply another way of moving the knobs beneath it. Everything above still applies: `shift` for fine adjustment, `ctrl`/`cmd`\-click to reset, double-click to type. Hover over a point to see exactly what it controls. On a filter point, for example, moving left and right changes the cutoff, and moving up and down changes the resonance. On some points, such as the EQ bands, the mouse wheel adjusts the resonance. ## Undo Every change you make can be undone. Use the _Undo_ and _Redo_ buttons in the [top panel](/docs/usage/top-panel#buttons) to step back and forth through your edits. --- # Effects Page > How to use Floe's effects rack, and details of each effect ![Floe's window with the EFFECTS page tab highlighted](https://assets.floe.audio/website/screenshots/page-effects.73801094172d2026.png) The _Effects_ page is where you colour the whole sound. The three [layers](/docs/usage/layers) are mixed together and then passed through a single rack of effects, from top to bottom. Use them lightly to add some space or warmth, or push much further with heavy distortion, filtering and modulation to take the sound somewhere new. There's 12 effects available. Each can be used once in the rack, in whatever order you like. ![Floe's Effects page with its parts numbered](https://assets.floe.audio/website/screenshots/effects.39fc87a1ccda5330.png)12345 1. **Switchboard** — every effect listed in order, each on its own card. Tick a card's checkbox to add that effect to the rack. 2. **Rack** — the effects that are in use, with their controls. 3. **Effect name** — drag it to move the effect up or down the chain. Right-click for more options. 4. **Mix, remove and bypass** — _Mix_ sets how much of the effect you hear, removes the effect from the rack, and bypasses it. 5. **All-effect buttons** — these act on the whole rack at once: randomise , bypass all , and remove all . ### Adding and removing effects The switchboard (1) lists every effect. Those in the rack are shown brightly with a ticked checkbox; the rest are dimmed. - **Add an effect** by ticking its checkbox. Doing so will add it to the rack, and the rack will scroll to show it. - **Remove an effect** by unticking its checkbox, or clicking next to its _Mix_ knob (4). Removing an effect doesn't reset its controls, it will be the same if you re-add it later. - **Jump to an effect** by clicking its card anywhere other than the checkbox. The rack will scroll to show it, with a brief flash so you can spot it. ### Bypassing effects Bypassing an effect lets the sound pass straight through it while it stays in the rack, ready to switch back on. It's the easiest way to hear exactly what an effect is contributing. A bypassed effect is greyed out and uses no CPU. Click next to an effect's _Mix_ knob (4), or the coloured light at the left of its switchboard card, to bypass it. Click again to switch it back on. The button at the top right of the page (5) bypasses every effect in the rack at once, so you can hear your layers without any processing. Click it again to switch them all back on. ### Changing the order The effects run from top to bottom, and the order can make a big difference: a reverb after a distortion gives a clean tail on a gritty sound, while a reverb before it distorts the tail too. Drag an effect's name (3) up or down the rack to move it. You can also drag the cards in the switchboard: hover over a card and a grip appears to show it can be moved. Because the switchboard also shows the effects that aren't in the rack, after some reordering the effects in use can end up scattered among the unused ones. Right-click the switchboard and choose _Tidy FX Order_ to group the effects in the rack at the top, without changing their order. ### Mix Every effect has a _Mix_ knob (4). It blends the sound going into the effect with the effect's output. At 100% you hear only the effect's output; turn it down to bring back more of the unprocessed sound. It's a quick way to set an effect's strength without changing its other settings: a touch of reverb, gentle distortion, or parallel compression, say. ### The all-effect buttons The buttons at the top right of the page (5) act on the whole rack: - **Randomise** — randomly puts each effect in or takes it out of the rack, and shuffles the order. The effects' settings aren't changed. It's a quick way to stumble on combinations you'd never have reached for. Use _Undo_ from the top panel if you don't like the result. For bigger changes, including new settings, try the [Random Variation](/docs/usage/randomisation) strip on the _Perform_ page. - **Bypass all** — deactivates all effects. - **Remove all** — removes every effect from the rack. ### Copying, pasting and resetting Right-click an effect's name in the rack or its card in the switchboard for a menu to: - **Copy and paste one effect** — copy an effect's settings, then paste them onto the same effect on another preset. - **Copy and paste the whole rack** — copy every effect, its order and its settings, then paste them all at once to a new preset. - **Reset** — return the effect's settings to their defaults. Copying works between presets: copy from one, load another, and paste. Right-click an empty part of the switchboard or rack for the whole-rack options, and to paste a single copied effect. ## Distortion ![The Distortion effect at its default settings](https://assets.floe.audio/website/screenshots/effect-distortion.a583b9946e316265.png) Distortion adds harmonics to a sound, anything from gentle tape warmth to outright destruction. Choose a character from the _Type_ menu, then set how hard you push it with the _Drive_ knob. That's the whole workflow; everything else is there to shape the result. The display on the left passes a sine wave through your current settings, so you can see how each type and setting reshapes it. It runs with 4× oversampling and is anti-aliased to stay clean and musical. It also has built-in gain compensation to keep the level steady as you turn up _Drive_ or _Punish_. For the Legacy types, you opt in to this with the _Auto Gain_ switch; for the other types it's always on. - **Type** — the character of the distortion. See below. - **Drive** — how hard the sound is pushed into the distortion, and the main control for how much distortion you hear. Each step of the knob adds a similar amount. For the Mangle types it also moves the effect itself, so the character changes as well as the intensity. - **Punish** — stacks extra distortion stages after the first, each driven harder than the last, like an amp cascading its gain stages. Turn it up for a denser, grittier, more compressed drive that holds its character as notes decay. - **Tilt EQ** — shifts the tone going into the distortion. Turn it up to saturate the highs for a brighter result, or down to push the lows for a warmer, fatter drive. - **Gain** — a flat level adjustment to the distorted sound, before _Mix_ blends it with the unprocessed sound. It's separate from the automatic gain compensation. - **Auto Gain** — for the Legacy types, holds the loudness steady as you turn up _Drive_. For the other types it's always on. The types are grouped into two families in the menu. _Bite_ types saturate and thicken the sound, from clean warmth to hard clipping: - **Tape** — warm and smooth. Rounds off the loud peaks while quieter passages and tails stay clean. - **Valve** — rich, even harmonics that stay musical however hard you push, instead of collapsing into a harsh square. - **Overdrive** — pedal-style grit with a threshold. A note cleans up as it decays, and playing harder brings the bite in. - **Hard Clip** — clean, aggressive brickwall clipping. - **Octave** — adds a hard octave-up edge, then saturates. It squares up on hot notes and follows their dynamics. _Mangle_ types are more extreme, tearing the sound apart and adding new tones rather than just thickening it: - **Bitcrush** — lo-fi digital crunch, made by lowering the effective sample rate. More _Drive_ means coarser and grittier. - **Ring Mod** — multiplies the sound by a low oscillator for clangorous, metallic, bell-like tones. _Drive_ raises the oscillator's pitch and deepens the effect. - **Sine Fold** — folds the wave through a sine curve for interesting, chaotic harmonics. - **Warp** — an asymmetric shaper that bends the wave lopsidedly into a gritty, off-kilter drive. - **Wavefolder** — folds the peaks back on themselves for bright, metallic harmonics. The Legacy types are the original distortion algorithms, kept so that older presets and projects sound the same. They load with _Auto Gain_ off to keep their original level; turn it on to give them the same steady loudness as the other types. ## Bit Crush ![The Bit Crush effect at its default settings](https://assets.floe.audio/website/screenshots/effect-bit-crush.eb0ae0d0c3717f57.png) Bit Crush is a lo-fi effect that degrades the sound in two ways: lowering the sample rate for ringing, metallic aliasing, and lowering the bit depth for gritty noise. The display shows a preview of the crushing applied to a rising test signal. Both controls start at full quality, so turn them down to hear the effect. - **Bits** — lowers the bit depth, adding a gritty digital noise that's most obvious in quiet passages and tails. At the lowest settings quiet sounds crush to silence, so feed the effect a strong signal. - **Samp Rate** — lowers the sample rate by holding each sample for longer. Lower rates fold high frequencies back down into ringing, metallic aliasing: the sound of early samplers and retro hardware. - **Output** — the level after the _Mix_ blend. ## Compressor ![The Compressor effect at its default settings](https://assets.floe.audio/website/screenshots/effect-compressor.5a5d0c835f3f6c23.png) The compressor shapes the dynamics of the sound, evening out the difference between its loud and quiet parts. It has two types, each with its own character. - **Type** — _Modern_ is precise, and gives you the _Attack_ and _Release_ knobs. _Vintage_ has a bit more character, and sets its attack and release for you. - **Threshold** — the level the sound has to rise above before it's compressed. - **Ratio** — how strongly the sound is compressed once it's above the threshold. Higher ratios compress more, and above about 2:1 the pumping becomes much more noticeable. - **Attack** and **Release** (_Modern_ only) — how quickly the compressor responds to a rise in level, and how quickly it recovers after the level drops. - **Gain** — adjusts the level after compression. - **Auto Gain** (_Vintage_ only) — automatically adjusts the level so the sound stays consistently loud however hard it's compressed. Three meters show what the compressor is doing: _In_ is the incoming level, with a marker at the threshold; _GR_ (gain reduction) is how much it's turning the sound down; and _Out_ is the final level. ## Filter ![The Filter effect at its default settings](https://assets.floe.audio/website/screenshots/effect-filter.6e299e9ebedef899.png) The Filter cuts away part of the frequency range, or boosts or dips it. It's a single filter across the whole mix; each layer also has its own filter for shaping notes individually (see [Layers](/docs/usage/main-tab#filter)). - **Type** — the shape of the filter, such as low-pass, high-pass, band-pass, notch, peak or shelf. The low-pass and high-pass types come in 12 and 24 dB per octave slopes. - **Cutoff** — where the filter does its work: where the low-pass and high-pass filters roll off from, the centre of the band for band-pass and notch, or the corner for the shelves. - **Reso** — resonance, which emphasises the frequencies right at the cutoff, adding a peak there on the low-pass and high-pass filters. For band-pass and notch it narrows the band, for peak it tightens the boost, and for the shelves it steepens the corner. - **Gain** — how far the peak and shelf types boost or cut. It only appears for those types. ## Stereo Widen ![The Stereo Widen effect at its default settings](https://assets.floe.audio/website/screenshots/effect-stereo-widen.689f9c85db9c28f0.png) Stereo Widen narrows the sound towards mono or spreads it out wider. Each layer also has its own _Stereo_ control, if you want to widen just one of them. - **Mode** — how the widening is done. Hover over the options in the menu for a description of each. - _Balanced_ keeps the loudness the same wherever _Width_ is set. It's the one to reach for by default. - _Bass Mono_ widens in the same way, but keeps everything below the _Bass Mono_ frequency in the centre. - _Legacy_ is the widening from older versions of Floe, kept so that existing presets sound as they always did. It gets louder as _Width_ goes up. - **Width** — negative values pull the sound towards mono, positive values push it wider, and 0% leaves it as it is. It works by rebalancing the mid (what both channels share) against the side (what differs between them). At the far left only the mid is left; at the far right only the side is left, so anything dead centre disappears. - **Bass Mono** (_Bass Mono_ mode only) — the frequency below which the sound is kept in the centre. Holding the low end in the middle keeps kicks and basslines solid, and stops them losing power on mono systems. The split uses a 24 dB per octave Linkwitz-Riley crossover, so the two bands recombine without a dip around the crossover point. ## Chorus ![The Chorus effect at its default settings](https://assets.floe.audio/website/screenshots/effect-chorus.3bdf4b0fca3fc2fe.png) The Chorus thickens the sound by layering it with delayed copies that drift in pitch. Gentle settings add a subtle shimmer and movement, while deeper settings give an obvious, tape-like wobble. - **Rate** — how quickly the pitch drifts up and down. Low settings give a gentle swelling movement, while turning it up gives a quicker, shimmering warble. - **Depth** — how far the pitch drifts away from the original. Small amounts thicken the sound, while larger amounts give an obvious wobble. At zero, the delayed copies are still there, adding a static colouration. - **High-pass** — removes low frequencies from the chorused copies, leaving the unprocessed sound untouched. Raise it to keep the bass tight and free from movement. - **Output** — the level after the _Mix_ blend. ## Reverb ![The Reverb effect at its default settings](https://assets.floe.audio/website/screenshots/effect-reverb.3ca4505d77aaecb2.png) The Reverb simulates the reflections of a real space, from a small, tight room to a vast hall that takes many seconds to fade. It can also modulate its tail for a shimmering, moving sound. - **Pre LP** and **Pre HP** — low-pass and high-pass filters on the sound going into the reverb. _Pre LP_ rolls off the highs for a darker, more distant space. _Pre HP_ rolls off the lows, keeping the tail clear so the bass stays tight and centred. The unprocessed sound keeps its full range. - **Lo-Shelf** and **Lo-Gain** — cut the reverb's tail below the _Lo-Shelf_ frequency by the _Lo-Gain_ amount. The cut builds up as the tail recirculates, so the low end thins out as the reverb fades: handy for stopping long tails clouding the bass. Turn _Lo-Gain_ down to hear it work. - **Hi-Shelf** and **Hi-Gain** — the same for the highs, so they die away first, just as soft furnishings absorb them in a real room. - **Decay** — how long the tail takes to fade away once a sound stops. It holds steady whatever the _Size_, so you can choose the length of the reverb and the character of the space separately. - **Size** — how large the space feels. Small values pack the reflections together for a boxy, coloured character; large values spread them out for something open and airy. - **Predelay** — holds the reverb back for a moment so the unprocessed sound is heard on its own first. Short amounts keep the sound upfront and defined, while longer amounts push the walls further away. - **Mod Rate** and **Depth** — make the reflections drift, smearing the resonances that build up in the tail. A little _Depth_ stops long tails ringing; more gives an obvious shimmer and movement. _Mod Rate_ sets how quickly the drift moves: keep it low for a gentle, breathing wash, or turn it up for a quicker, more distinct warble. ## Delay ![The Delay effect at its default settings](https://assets.floe.audio/website/screenshots/effect-delay.e6e66ebc5fbfc868.png) The Delay is a stereo echo. You can set the left and right times separately, either freely or synced to tempo, bounce the repeats between the speakers with the ping-pong modes, and thin them out with a filter as they fade. - **Time L** and **Time R** — the gap between the repeats in the left and right channels. With _Tempo Sync_ off, they're set freely in milliseconds. Very short times stop sounding like separate echoes and become a metallic, resonant tone instead. - **Tempo Sync** — sets the times as note lengths that follow your DAW's tempo, keeping the repeats in time with your track. - **Feedback** — how long the echoes trail on for. Low amounts give a handful of repeats, while high amounts carry on long after the note has gone. It works by feeding each repeat back in to make the next one. - **Mode** — how the repeats move around the stereo image: - _Mono_ — both channels repeat at the _Time L_ setting, so the echoes sit where the original sound sits in the stereo image. _Time R_ is unused. - _Stereo_ — each channel has its own delay, so setting _Time L_ and _Time R_ apart spreads the repeats across the stereo image. - _Ping-pong_ — the sound is summed to the centre, and the repeats then bounce from one side to the other, with _Time L_ and _Time R_ setting how long each half of the bounce lasts. - _Mid ping-pong_ — the repeats bounce from side to side as in _Ping-pong_, but the sound keeps its stereo image on the way in. Choose _Ping-pong_ for the clearest left-right bounce, especially from a wide sound, and _Mid ping-pong_ when you want the echoes to keep some of the original's width. - **Filter** and **Spread** — a band-pass filter the repeats run through, leaving the unprocessed sound untouched. _Filter_ sets the centre of the band and _Spread_ its width. Wide open, the repeats stay close to the original sound; narrowed, they squeeze towards the _Filter_ frequency. The filter sits inside the feedback loop, so every repeat is filtered again and the echoes thin out as they fade. ## Convolution Reverb ![The Convolution Reverb effect at its default settings](https://assets.floe.audio/website/screenshots/effect-convolution-reverb.80934c27d68d6c02.png) The Convolution Reverb gets all its character from an impulse response (IR): a recording of how a space or object responds to sound. Floe's IRs are chosen for character. Some are realistic spaces, but most are stranger: textures and resonances that can transform a sound, making this as much a sound-design tool as a reverb. - **Impulse** — click the IR's name to choose one in the [IR browser](/docs/usage/browsers). The arrows beside it, and , step to the previous or next IR, and jumps to a random one. All three follow the filters you've set in the IR browser. unloads the IR. There's no reverb until one is loaded. - **High-pass** — rolls off the low end of the reverb to avoid muddy bass, before the _Mix_ blend. - **Output** — the level after the _Mix_ blend. Floe always has its own built-in IRs, and some sample libraries add more. ## Phaser ![The Phaser effect at its default settings](https://assets.floe.audio/website/screenshots/effect-phaser.440718747662cf50.png) The Phaser sweeps a series of peaks and notches through the sound, giving it the classic swooshing, jet-like motion. Gentle settings add a subtle sense of movement to sustained sounds, while faster or more resonant ones become an unmistakable whoosh. - **Freq** — the centre of the sweep. Keep it low for a deep, throaty movement, or raise it to place the phasing amongst the brighter harmonics. - **Feedback** — sharpens the peaks and deepens the notches. Small amounts keep it a gentle swoosh, while higher amounts give the sweep a resonant, whistling edge. - **Shape** — how many peaks and notches there are. Turned down, there's a single broad one for a soft, vowel-like sweep; turned up, there are more of them for a richer, more obvious phasing. - **Rate** — how quickly the peaks sweep up and down. Low settings give a gentle, drifting movement, while turning it up makes the sweep a warble. - **Depth** — how far the peaks travel either side of _Freq_. Small amounts give a narrow, shimmering movement, while larger amounts sweep across the whole spectrum. With _Depth_ all the way down, the peaks hold still, leaving a fixed colouration that you can sweep by hand with _Freq_. - **Stereo** — offsets the left and right sweeps from each other so the movement drifts across the stereo image. At zero both channels sweep together; at maximum they sweep in opposite directions, for a wide, swirling feel. ## EQ ![The EQ effect at its default settings](https://assets.floe.audio/website/screenshots/effect-eq.65bb6b6d6747ec42.png) The EQ is a three-band equaliser for lifting or taming parts of the frequency range, from broad tonal shaping to surgical cuts. Each layer also has its own EQ (see [Layers](/docs/usage/eq-tab)). The graph shows the combined effect of all three bands. Drag a band's handle to move it, scroll over it to change its resonance, or right-click it to change its type or copy and paste the whole band. The three bands have identical controls: - **Type** — a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a low-pass or high-pass filter for rolling off one end of the spectrum. - **Freq** — where the band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. - **Reso** — how tightly the band is focused. For peaks and notches it's the width, from broad and gentle to tight and focused. The shelves use it to steepen their corner, and the pass filters to add a peak at the cutoff. - **Gain** — how far the band boosts or cuts. Only the peak and shelf types use it. ## Limiter ![The Limiter effect at its default settings](https://assets.floe.audio/website/screenshots/effect-limiter.411ca416265c7bf3.png) The limiter is a brickwall limiter: it holds your output firmly below a maximum level, whether you just want to catch stray peaks or push the overall level up without clipping. It's usually best placed last in the rack, so it catches everything above it. - **Gain** — drives the sound harder into the limiter. The harder you push, the more it's limited, making the sound louder and denser. - **Ceiling** — the level the output is never allowed to go above. Leave a small safety margin below 0 dB, giving headroom for whatever comes after Floe. Three meters show what the limiter is doing: _In_ is the incoming level, _GR_ (gain reduction) is how much it's turning the sound down, and _Out_ is the final level. It's a true-peak limiter, so the _Ceiling_ is a reliable maximum for the output. It looks a fraction of a millisecond ahead in the audio so it can react before a peak arrives. The delay is so small (0.5 ms) that Floe absorbs it rather than asking your DAW to compensate for it, so you don't need to do anything about it. Thanks to that short lookahead, the limiter is fast and transparent for moderate amounts of limiting. Push it hard and there's less room for the gain change to ramp smoothly, so you may start to hear it colour or slightly distort the sound. If that happens, back off the _Gain_ or raise the _Ceiling_ a little. --- # EQ Tab > Shape a layer's tone with its three-band equaliser The _EQ_ tab has a three-band equaliser for shaping the layer's tone before it's mixed with the other layers. ![A layer's EQ tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-eq.9ddfe3af1923a2ab.png)123 1. **On/off** — switch the EQ on or off. A dot on the _EQ_ tab shows that it's on. 2. **EQ graph** — shows the combined effect of all three bands. Drag a band's point to move it, use your mouse scroll wheel over it to change its resonance, or right-click it to change its type or copy and paste the whole band. For band types without a gain control, dragging up and down changes the resonance. 3. **Bands** — the three bands have identical controls: - **Type** — a peak or shelf for boosting and cutting, a notch for removing a narrow slice, or a pass filter for rolling off one end of the spectrum. - **Freq** — where the band does its work: the centre of a peak or notch, the corner of a shelf, or the cutoff of a pass filter. - **Reso** — how tightly the band is focused. For peaks and notches it's the width; shelves use it to steepen their corner, and pass filters to add a peak at the cutoff. - **Gain** — how far the band boosts or cuts. Only the peak and shelf types use it. --- # Keyboard > The on-screen keyboard in Floe's bottom panel, and what it shows about the notes and voices playing The bottom panel of Floe's window is home to the on-screen keyboard. It's there on every page, and it's a quick way to see which notes are coming in, how many voices each one is playing, and which keys play which layer. You can click it to play notes too. ![The bottom panel on the Layers page, with a chord held on the keyboard](https://assets.floe.audio/website/screenshots/keyboard.65449d5b30f4e02c.png)12345 1. **Tabs** — _PLAY_ shows the keyboard and macros. _MACROS_ shows the panel where you [set up the macros](/docs/usage/macros#making-your-own-macros). 2. **Macros** — the four macro knobs, the same ones as on the _Perform_ page. A greyed-out macro has nothing linked to it. See [Macros](/docs/usage/macros). 3. **Key range bars** — which keys play each layer, shown when any layer is limited to part of the keyboard. 4. **Keys** — held notes light up, and red marks along the top show the voices sounding on each note. 5. **Octave** — scroll the keyboard up or down to see a different part of the note range. On the _Perform_ page, the bottom panel is simpler: there are no tabs, macros or octave controls, and the keyboard stretches across the whole panel to show nine octaves at once. ## Playing notes Click a key to play it. Where you click sets the velocity: near the top of the key for the softest note, lower down for harder. A clicked note plays just like a note from your MIDI keyboard, so the layers' key ranges, the arpeggiator and everything else apply as usual. Throughout the UI we label middle C (MIDI note 60) as C3. But some DAWs call that note C4. ## What the keyboard shows The keys light up when you play, whether that's from your MIDI keyboard, your DAW, or a click, on any MIDI channel. The red marks along the top of a key show the voices currently sounding on that note. A note can have more than one voice, such as one for each layer, and the mark gets stronger the more voices there are. Marks often linger after you let go, because each voice plays on through the release of its [volume envelope](/docs/usage/main-tab#volume-envelope). If you've set a _Reset keyswitch_ in [Performance Controls](/docs/usage/performance-controls), that key has a blue marker along its bottom edge. See [Reproducibility](/docs/usage/reproducibility). ## Key range bars When a layer is limited to part of the keyboard, the bars above the keys (3) show which keys trigger each layer, with a separate colour for each layer. Hover over them for an enlarged view that names each layer's Instrument. See [Key range display](/docs/usage/config-tab#key-range-display) for everything the bars show, and [Key ranges](/docs/usage/config-tab#key-ranges) for how to set ranges up. --- # Layers Page > How to build and shape sounds with Floe's three layers ![Floe's window with the LAYERS page tab highlighted](https://assets.floe.audio/website/screenshots/page-layers.cf24954b099e9572.png) Floe is built around three layers, each holding a sound of its own, playing together as one. For each layer, you pick a sound source, its _Instrument_, then shape it further with envelopes, filters, an LFO, looping and more. A sound can use a single layer or blend two or three together. The LAYERS page is where you control all aspects of these identical layers. ## How sound flows through the engine When you play a note, all three layers play at once (unless a layer is limited to a [key range](/docs/usage/config-tab#key-ranges)). Each is processed on its own, then the three are mixed together and sent through the [effects rack](/docs/usage/effects) and the master volume. A layer with no Instrument is simply silent. ## The layer layout ![Floe's Layers page with the parts of a layer numbered](https://assets.floe.audio/website/screenshots/layers.b8bae924c810b253.png)1234 1. **Layer header** — the layer's Instrument and its mixing controls, always visible. 2. **Tabs** — switch between the layer's groups of controls: _PLAYBACK_, _MAIN_, _LFO_, _EQ_, _ARP_ and _CONFIG_. A dot on the _EQ_, _LFO_ or _ARP_ tab shows that it's switched on. 3. **Tab controls** — the controls for the selected tab. Each tab has its own chapter. You can right-click these to copy, paste or reset all of its settings at once. It's a quick way to give two layers the same configuration. 4. **All-layer buttons** — these act on all three layers together. loads a random Instrument into every layer, with each layer following its own Instrument browser filters (see [Randomisation](/docs/usage/randomisation)). clears every layer. ## Layer header ![A layer's header with its controls numbered](https://assets.floe.audio/website/screenshots/layer-top-controls.2543928912c17947.png)123456 1. **Instrument selector** — shows the layer's Instrument. Click it to open the [Instrument browser](/docs/usage/browsers) and choose a different one. Right-click for more options: unload the Instrument, copy and paste the Instrument or the whole layer, or swap this layer with the one to its left or right (macro assignments move with a swapped layer). 2. **Instrument navigation** — the arrows step to the previous or next Instrument, and jumps to a random one: a quick way to audition sounds without opening the browser. They follow the filters you've set in the Instrument browser, so they only move between the Instruments that match. unloads the Instrument, leaving the layer empty and silent. 3. **Mute and Solo** — _Mute_ silences this layer, and _Solo_ lets you hear it on its own. Silenced layers keep running in the background, so if you unmute or unsolo them they carry on seamlessly from wherever they've got to. To save CPU, unload the Instrument instead. It's simplest to just use either Solo or Mute across the layers, not both — if you do mix them, Solo is prioritised over Mute. 4. **Volume** — the layer's level, with its level meter alongside. While notes are sounding, red marks on the slider show the level of each voice. A voice's level depends on its velocity, where it falls in a [key range](/docs/usage/config-tab#key-ranges) fade, and any MPE volume expression. 5. **Pan and Stereo** — _Pan_ places the layer anywhere from left to right. It uses a constant-power pan law (-3 dB at centre), so the layer keeps the same perceived loudness wherever you put it. _Stereo_ narrows or widens the layer: negative values pull it toward mono, positive values push it wider. Pan comes after Stereo, so you can narrow a wide sound and then place it as a single point. A mono sound has nothing to widen, so pushing it to maximum stereo width silences it. 6. **Detune and Pitch** — _Pitch_ moves the layer up or down in semitones, and _Detune_ fine-tunes it in cents (hundredths of a semitone). Both work by speeding up or slowing down the audio. Right-click _Pitch_ to jump up or down an octave. Right-click _Detune_ and choose _Fold into Pitch_ to move any whole semitones from _Detune_ into _Pitch_, leaving the overall tuning unchanged. For a multi-sampled Instrument, _Transpose_ on the [CONFIG tab](/docs/usage/config-tab) may sound more natural. See [Controls](/docs/usage/controls) for the ways to adjust knobs, sliders and number fields. ## The tabs Below the header, each layer's controls are grouped into six tabs. Each has its own chapter: - [**PLAYBACK**](/docs/usage/playback-tab) — how the layer plays its samples: play mode, sample start, reverse, [granular synthesis](/docs/usage/playback-tab#granular-synthesis) and [looping](/docs/usage/playback-tab#looping). - [**MAIN**](/docs/usage/main-tab) — the [volume envelope](/docs/usage/main-tab#volume-envelope) and [filter](/docs/usage/main-tab#filter). - [**LFO**](/docs/usage/lfo-tab) — add movement to various aspects. - [**EQ**](/docs/usage/eq-tab) — a three-band equaliser to shape the layer's tone. - [**ARP**](/docs/usage/arp-tab) — the arpeggiator, which turns held notes into rhythmic patterns. - [**CONFIG**](/docs/usage/config-tab) — how the layer responds to your playing: transpose, pitch bend, keytracking, monophonic, MPE, [key ranges](/docs/usage/config-tab#key-ranges) and the velocity curve. Right-click a tab to copy, paste or reset all of its settings at once. Copy a tab on one layer and paste it into another to give both layers the same settings, or reset a tab to start it afresh. ![The menu that opens when you right-click a layer's MAIN tab](https://assets.floe.audio/website/screenshots/layer-tab-menu.43085b4dca75ff1e.png) --- # LFO Tab > Add movement to a layer by modulating its volume, filter, pan, pitch or grain position Use the LFO (low frequency oscillator) to add movement to the sound, modulating one of the layer's controls such as its volume or filter cutoff. ![A layer's LFO tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-lfo.dee1730f34b4599a.png)1234 1. **On/off** — switch the LFO on or off. A dot on the _LFO_ tab shows that it's on. 2. **LFO display** — a live preview of the LFO's shape and speed. Drag it left and right to change _Time_, and up and down to change _Amount_. 3. **Target, Shape and Mode**: - **Target** — what the LFO moves: _Volume_, _Filter_, _Pan_, _Pitch_ or _Grain Position_. The movement happens around the target's current setting. Some targets need their feature switched on first: for example, the filter must be on for the _Filter_ target, and the play mode must be _Granular Fixed_ for _Grain Position_. - **Shape** — the LFO's waveform. Alongside the classic shapes there are random and plucky ones. - **Variation** — appears when a random shape (_Random Steps_ or _Random Glide_) is selected. It allows you to remove the element of chance from random movement. _Different on every note_ gives each note a fresh random pattern. _Identical on all notes_ plays exactly the same pattern every time, chosen by the **Seed** number: try a few until you find a movement you like. It's saved with the preset, so everyone hears the same movement. _Identical on each key_ gives each key its own repeatable pattern. In _Free_ mode, a note that joins already-sounding notes follows their pattern. The Seed works because the random steps follow a sequence of numbers that only looks random: the Seed is where that sequence starts. Learn more about seeds and reproducibility on the [Reproducibility](/docs/usage/reproducibility) page. - **Mode** — with _Retrigger_, every note starts the LFO from the beginning of its cycle. With _Free_, a new note joins in wherever the layer's sounding notes have reached, so all the notes move together. 4. **Amount and Time**: - **Amount** — how far the LFO moves its target. Negative values flip the shape upside down. If MPE press or slide is routed to the LFO amount (see the [CONFIG tab](/docs/usage/config-tab)), red marks show each voice's current amount. - **Time** — how long each cycle lasts. With _Sync_ on, it's a note length at your DAW's tempo, such as 1/4; a D means dotted and a T means triplet. With _Sync_ off, it's a speed in Hz. - **Sync** — tie the LFO to your DAW's tempo. Both the synced and free _Time_ settings are remembered, so you can switch between them without losing either. --- # Macros > Shape a sound with knobs that move several controls at once, and make your own A macro is a knob that moves other controls for you. Floe has four of them, and each can be linked to up to six controls anywhere in Floe, each by its own amount. ![The four macro knobs in the bottom panel, each named for what it does in the preset](https://assets.floe.audio/website/screenshots/macros-play.33614f920333aa4e.png) Preset authors use macros in two main ways. Sometimes a macro simply brings forward one control that matters a lot for this particular sound, tuned to a useful range, so you don't have to go looking for it. Other times it moves several controls together to create something that feels like a brand-new control made for the preset. A macro called _Surge_ might push up a distortion's drive, open a low-pass filter and thicken a granular texture, all with one turn. Each macro has a name, chosen by whoever made the preset, that hints at what it does. Not every preset uses all four. ## Playing with macros The macro knobs appear on the [_Perform_](/docs/usage/perform) page, and on the _PLAY_ tab of the bottom panel when you're on the [_Layers_](/docs/usage/layers) or [_Effects_](/docs/usage/effects) page. They're the same four knobs in both places. A greyed-out macro isn't linked to anything, so it does nothing. Your MIDI keyboard's mod wheel is linked to the first macro, so you can shape the sound as you play. You can change this, and link the other macros to knobs or faders on your controller, in the [Performance Controls](/docs/usage/performance-controls) panel. Macros are also handy for automation in your DAW: one lane can move several controls at once. When a macro moves a knob, the knob's coloured arc separates from its dial. The dial shows the knob's own setting; the arc shows the value you actually hear. See [Controls](/docs/usage/controls). ## Making your own macros Macros aren't only for preset authors. Once you're comfortable designing your own sounds, a macro or two can give your own presets a few expressive controls that shape the sound exactly the way you want, ready for your MIDI controller or DAW automation. The first macro is a good one to start with, since your mod wheel already moves it. To set up macros, go to the _Layers_ or _Effects_ page and click the _MACROS_ tab on the left of the bottom panel. Each macro's knob is shown alongside its settings. ![The MACROS tab of the bottom panel, showing the first macro with its parts numbered](https://assets.floe.audio/website/screenshots/macros.dda7e4e0ecfb2b8a.png)123 1. **Destination knobs** — one blue knob for each control the macro is linked to, setting how far the macro moves it. 2. **Add destination** — link another control to the macro. 3. **Name** — click to rename the macro. _Linking controls, setting their amounts, and renaming a macro_ ### Linking a control 1. **Click** next to the macro (2). Every control you can link to gets a blue plus icon of its own, across the whole window. 2. **Hover** over one of them. A line joins it to the macro, with a note of what's about to be connected. 3. **Click** to make the link. A new blue destination knob (1) appears next to the macro. To cancel instead, press `escape` or click somewhere empty. You can link knobs, sliders and number fields. You can also link the handles you drag around, such as the points on the envelopes and the EQ graph, or the loop points on the waveform. ### Setting the amount There are two kinds of knob here, and they do different jobs. The macro knob is the one you play: turning it moves every control linked to it at once. Each blue destination knob (1) is one you set and then leave alone: it decides how far the macro moves its one control, anywhere from a subtle nudge to a sweep across the control's whole range. A new link starts at zero, so the macro does nothing to that control until you change it. The easiest way to set it is to turn the macro all the way up, then drag the destination knob while you play. Watch the linked control's coloured arc move, and listen until it sounds right. - **Right of centre** — the control goes up as the macro goes up. - **Left of centre** — the control goes down as the macro goes up. The destination knob isn't linear: more of its travel is given to small amounts, so they're easier to set precisely. Hover over a destination knob to see what it's linked to. It also shows the control's value right now, and what it will be with the macro at 0% and at 100%. Rest the cursor there for a moment and Floe draws a line to the linked control, scrolling it into view if needed. Double-click a destination knob to type an amount, or right-click it for more options: copy and paste the amount between destinations, type a value, reset it to zero, invert it, or edit its range. ### Editing the range Instead of setting an amount, you can set the two values the control moves between, in the control's own units: a filter sweeping from 200 Hz to 2 kHz, say. Right-click a destination knob and choose _Edit Range…_. The popup has two knobs: - **Macro at 0%** — the control's value when the macro is fully down. - **Macro at 100%** — the control's value when the macro is fully up. Each knob changes only its own end, so you can raise the bottom of a filter sweep without changing where it ends up. While you hold either knob, you hear the sound as it would be with the macro at that end, though the macro itself doesn't move. Play some notes as you drag to find exactly the right values. Changing an end also changes what you hear with the macro where it is now. To keep the current sound, tick _Move (macro name) to keep this value_: Floe moves the macro to whichever position gives the control the value it has now. Everything else the macro controls moves with it. ### How a macro moves a control A macro moves a control relative to the control's own setting. With the macro at 0%, the control is exactly where you set it, and turning the macro up adds the amount on top. So adjusting the control itself shifts the whole sweep up or down. If more than one macro is linked to the same control, their movements add together. A control can never go beyond its normal range, however far the macros push it. ### Removing a link Hover over a destination knob and a red appears beneath it. Click it to remove the link. The control keeps its own setting; it just stops following the macro. ### Naming macros Click the name (3) and type a new one. Choose a name that says what the macro does to the sound, such as _Brightness_ or _Swell_. The name is saved with the preset and labels the macro knob everywhere it appears. ### Copying, swapping and resetting Right-click a macro knob for these options, alongside the usual ones for any knob: - **Copy Macro** and **Paste Macro** — copy a macro's value, name and links onto another macro. - **Swap with Left** and **Swap with Right** — exchange the macro with its neighbour, along with its value, name and links. This doesn't move MIDI CC assignments or DAW automation, though. - **Reset Macro to Default** — start the macro afresh, with no links and its original name. The next option resets it to how it was in the loaded preset instead. ### Legacy destinations A yellow on a destination knob means it's linked to a [legacy parameter](/docs/reference/legacy-parameters). These are kept so older DAW projects still work, and you'll only hear the macro move it while the legacy override is active. Legacy destinations can't use _Edit Range…_. --- # Main Tab > Shape each note's volume and tone over time with a layer's volume envelope and filter The _MAIN_ tab shapes how each note's volume and tone change over time, using the volume envelope and the filter. ![A layer's MAIN tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-main.86776d3fc54ab4a0.png)1234 1. **Volume envelope** — its switch and graph. 2. **Filter** — its switch and graph. 3. **Filter controls** — _Type_, _Cut_, _Res_ and _Env_. 4. **Filter envelope** — shapes how the cutoff moves over time. ## Volume envelope - **On/off** — the volume envelope is typically best left on. If you turn it off every note plays its sample straight through to the end, however briefly you press the key: handy for one-shot sounds that should always be heard in full. Looping is disabled while the envelope is off. And since notes can't be cut short, voices can pile up and use a lot of CPU if you play quickly. - **Envelope graph** — drag its three points to shape each note's volume over time: the first sets the _Attack_, the second the _Decay_ and _Sustain_ together, and the third the _Release_. ## Filter Each note gets its own filter, so the filter envelope and the LFO can sweep every note independently. It's a clean, digital-sounding state-variable filter (12 dB per octave). For broader tone shaping, see the [EQ tab](/docs/usage/eq-tab). - **On/off** — switch the filter on or off. - **Filter graph** — shows the filter's response. Drag the point left and right to set the cutoff, and up and down for the resonance. - **Type** — choose the kind of filter, such as low-pass, high-pass or band-pass. Hover over the options in the menu for a description of each. - **Cut** — the cutoff frequency, where the filter takes effect. The filter envelope and LFO move the cutoff around this setting. If MPE press or slide is routed to the filter (see the [CONFIG tab](/docs/usage/config-tab)), red marks show each voice's current cutoff. - **Res** — resonance, which emphasises the frequencies around the cutoff. It never self-oscillates. For the band-pass, notch and band-shelving types it also narrows the band, and for the peak type it sets the size of the boost. - **Env** — how strongly the filter envelope moves the cutoff on each note. At the centre it does nothing. Turn it up and the cutoff rises and falls with the envelope; turn it down and the cutoff moves the opposite way. With a low-pass filter, for example, a long attack opens the sound up gradually as each note begins. - **Filter envelope** — works like the volume envelope, shaping how the cutoff moves over time, scaled by _Env_. --- # MIDI > Information about MIDI control in Floe Floe responds to MIDI the way you'd expect from a software instrument: notes and velocity, the sustain pedal and pitch wheel, CC controllers mapped to its parameters, and MPE for expressive controllers. - **Velocity** — how hard you play sets each note's volume, shaped by each layer's [velocity to volume curve](/docs/usage/config-tab#velocity-to-volume-curve) on its _CONFIG_ tab. On multi-sampled Instruments with velocity layers, it also picks which samples play. - **Sustain pedal** — CC-64 holds notes after you release the keys, until you lift the pedal, just like a piano's sustain pedal. - **Pitch wheel** — how far it bends is set per layer with _Pitch Bend Range_ on the layer's [_CONFIG_ tab](/docs/usage/config-tab), so one layer can bend a whole tone while another underneath it stays put. A range of 0 disables pitch bend for that layer. - **All Notes Off and All Sound Off** — the channel messages that DAWs and controllers send to stop stuck notes. All Notes Off (CC-123) releases every note on that channel, including sustained ones, so they fade out naturally; All Sound Off (CC-120) silences them immediately. ## MIDI CC All automatable parameters can be assigned to a MIDI CC, so you can move them with the knobs and faders on your MIDI controller. ### Creating a mapping Right-click a parameter (a knob or slider anywhere on the UI) and select _MIDI CC Learn_, then move the dial on your MIDI controller that you want to assign. To remove a mapping, right-click the parameter and select _Remove MIDI CC_ (followed by the CC number). A mapped CC works on any MIDI channel. You can also add and remove mappings from the [Performance Controls](/docs/usage/performance-controls) panel, which lists every mapping on the current instance in one place. ![MIDI CC tab of the Performance Controls panel](https://assets.floe.audio/website/screenshots/midi-cc.2063ddce6cec1071.png) ### Default mappings Unless you have changed your default Performance Controls, these mappings will be assigned: - **CC 1 (Modwheel)** — Macro 1 - **CC 7** — Master Volume - **CC 11** — Master Timbre ### How mappings are saved MIDI CC mappings are part of the [Performance Controls](/docs/usage/performance-controls) system. They apply only to the current instance of Floe, but you can set up a default configuration that all new instances start with. Presets never touch them, so you can browse presets without your settings changing each time. ## MPE MIDI Polyphonic Expression (MPE) lets compatible controllers, such as the Seaboard, LinnStrument, Osmose and Haken Continuum, shape each note independently. To switch it on, open the [Performance Controls](/docs/usage/performance-controls) panel with in the top panel, click the _MPE_ tab, and tick _MPE (MIDI Polyphonic Expression)_. ![The MPE tab of the Performance Controls panel](https://assets.floe.audio/website/screenshots/mpe.2d6bff66cf1a9aa7.png) Once it's on, each note responds to the standard MPE per-note messages: - **Glide**: pitch bend on a note's channel bends just that note, following the MPE ±48-semitone convention (or whatever range your controller negotiates). The master channel's pitch wheel still bends everything, using each layer's pitch bend range parameter. - **Press**: each note's channel pressure (aftertouch). - **Slide**: each note's CC74. Choose what press and slide control for each layer with the _MPE_ button on its [_CONFIG_ tab](/docs/usage/config-tab). Each has a target (_Volume_, _Filter_, _Timbre_ or _LFO Amount_) and an amount. The amount can be negative to invert the response, or beyond 100% to reach the full effect with a smaller gesture. With the _Volume_ target, press brings each note up to the level of the layer's _Volume_ slider, and slide works like a fader for each note, topping out at the slider's level. So until you apply expression, notes play quieter than the slider. The _Filter_, _Timbre_ and _LFO Amount_ targets nudge a setting for each note individually: _Filter_ moves the layer's filter cutoff, _Timbre_ the master _Timbre_ control, and _LFO Amount_ the layer's LFO _Amount_. Press adds to the setting, while slide can move it either way, with its centre position leaving it unchanged. The _MPE smoothing_ setting in the [Performance Controls](/docs/usage/performance-controls) panel sets how gradually press and slide respond: lower is more responsive, higher is smoother. While notes are sounding, each active voice gets a red line on whichever control press or slide is routed to — the filter cutoff knob, the LFO Amount knob, or the master Timbre knob in the top panel — so you can see the expression from each voice. The MPE Configuration Message for zone setup is supported too, and a sustain pedal on a zone's master channel sustains the whole zone. CLAP note expressions (per-note pitch, pressure, and brightness) work the same way in supporting hosts regardless of the MPE setting. --- # Perform Page > The distraction-free page for exploring presets and variations ![Floe's window with the PERFORM page tab highlighted](https://assets.floe.audio/website/screenshots/page-perform.2da3c92ed66c142e.png) The _Perform_ page is a good place to start when you're getting to know a sample library and its presets. It shows the artwork in full, and gathers the controls you'll reach for most often into one uncluttered panel. Most of the controls here also appear elsewhere in the interface. They're the same controls, so a change on one page shows up on the other. When you're ready to go deeper, everything else can be found on the [_Layers_](/docs/usage/layers) and [_Effects_](/docs/usage/effects) pages. ![Floe's Perform page and top panel with their controls numbered](https://assets.floe.audio/website/screenshots/perform.a40ff59a2509fcb3.png)12345678910 1. **Preset box** — in the top panel. Click it to open the preset browser. 2. **Preset** — the name of the current preset's sample library, with the preset's name beneath it. The arrows either side, and , step to the previous or next preset, just like the arrows in the top panel. 3. **Folder** — the folder the preset lives in, which usually tells you what kind of sound it is. 4. **Macros** — four knobs set up to shape this particular sound. 5. **Layers** — the Instrument on each of the three layers, with its mute, solo and volume controls. 6. **Random variation** — click the strip for a fresh take on the preset. 7. **Compare** — switch between the preset as it was loaded and your changes. 8. **Description** — more about the preset, from its author or written automatically by Floe. 9. **Hide panel** — hides the panel so you can see the artwork in full. The arrow only appears when you hover just above the panel. 10. **Keyboard** — lights up with the notes you play, and you can click it to play notes too. See [Keyboard](/docs/usage/keyboard). ## Choosing presets The arrows (2) are the quickest way to audition presets: play a few notes, click an arrow, and play again. To look through them by folder or tag, click the preset name in the top panel (1) to open the preset browser. See [Loading Presets](/docs/presets/loading-presets) for more ways to find presets. Once you change anything, the preset's name is marked _(modified)_. ## Macros Use the macros (4) to shape the preset to your liking. Each one is tuned to move one or more settings in a musical way, and the knob's name hints at what it does. A greyed-out macro isn't used by the preset. By default, your mod wheel is linked to the first macro, so you can shape the sound as you play. See also [Macros](/docs/usage/macros) and [MIDI](/docs/usage/midi). ## Layers Each preset is built from up to three layers (5). Not every preset uses all three. For each active layer you'll see: - **Instrument** — the name of the layer's Instrument, with the folder it comes from in italics. Click it to open the [Instrument browser](/docs/usage/browsers) and choose a different one. - **Waveform** — a picture of the Instrument's sound. - **Mute and Solo** — _M_ silences the layer, and _S_ lets you hear it on its own. Try each layer in turn to hear what it adds to the whole. - **Volume** — the slider sets the layer's level, with its level meter alongside. For everything else a layer can do, switch to the [_Layers_](/docs/usage/layers) page. ## Random variation Click anywhere on the _Random Variation_ strip (6) for a fresh take on the preset. Where you click sets how far it strays. Towards the left gives gentle, related tweaks; towards the right gets wilder, with Instruments swapped, layers added and effects changed. Hover over the strip to see how big a change you'll get. The button at its left edge rolls another variation at the same amount as last time. Every variation starts from the preset as you loaded it, so you can keep clicking without drifting ever further away. _Undo_ in the top panel steps back through them. When you find one you like, save it as a preset to keep it. See [Randomisation](/docs/usage/randomisation). ## Compare Once you've changed something, the _Original/Modified_ switch (7) lets you flick between the preset as it was last loaded or saved and your changed version. It's an easy way to check that your changes really are an improvement. If you edit anything while you're listening to the original, that edit replaces your modified version, but you can always get it back with _Undo_. ## Description The description tells you about the preset, such as any unusual tuning or tips for playing it. The top panel shows its opening, usually a summary of the sound, and the rest continues here (8). If the whole description fits in the top panel, Floe fills this space with a generated summary of the preset instead. ## Seeing the artwork in full Hover just above the panel, in the middle, and a small arrow appears (9). Click it to hide the panel and see the artwork uncovered. Click the arrow again to bring the panel back. --- # Performance Controls > The Performance Controls panel — MIDI CC mappings, MPE, Reproducibility, and Profiles The _Performance Controls_ panel is where you set up how Floe responds to your playing and your controllers. Open it with in the top panel, or from the main menu. ![The Performance Controls panel with its parts numbered](https://assets.floe.audio/website/screenshots/performance-controls.2063ddce6cec1071.png)123 1. **Profiles menu** — load and save profiles. It reads _Profiles_ until you load one, and then shows that profile's name. 2. **Settings for new instances** — make this panel's settings the ones new instances start with. 3. **Tabs**: - **MIDI CC** — every [MIDI CC mapping](/docs/usage/midi#midi-cc) on this instance. Remove one with its button, or click _Add_ to create one by choosing a CC number and a parameter, as an alternative to right-clicking a knob and using _MIDI CC Learn_. - **Reproducibility** — the _Seed_ and reset settings that make Floe's random elements play back the same every time. See [Reproducibility](/docs/usage/reproducibility). - **MPE** — switch on [MPE](/docs/usage/midi#mpe) for expressive controllers, and set how smoothly per-note expression responds. ## Scope Everything in this panel belongs to the current instance rather than being a global preference. When you save your DAW project, these settings are saved with it, so the next time you open the project you can perform it the same way. Different instances in the same project can each have their own settings. However, loading a _preset_ leaves it untouched, meaning you can audition presets without disturbing your performance setup. ## Settings for new instances Each Floe instance has its own performance controls, but you can choose what new instances start with: their MIDI CC mappings, MPE, and Reproducibility settings. Set the panel up the way you like, then click _Make default_ (2), just below the panel's title. The reset button beside it does the reverse, returning this instance to your defaults. Both only appear when the current settings differ from your defaults; otherwise a _Default for new instances_ label shows in their place. For example, say your keyboard has a fader that you always want on the second macro. Assign it once with _MIDI CC Learn_, click _Make default_, and every new instance you add from then on starts with that fader ready to go. Instances already in your projects keep their own settings. Floe's own defaults include some common MIDI CC mappings, such as the mod wheel (CC1) to the first macro. See [MIDI](/docs/usage/midi#default-mappings) for the full list. ## Profiles A profile is a named, saved bundle of the panel's settings, like a save file for this Performance Controls. Profiles are useful when you switch between MIDI controllers regularly: save one profile per controller, then switch between them as you swap hardware. Open the _Profiles_ menu (1) at the top-right of the panel to: - Load a profile, applying it to the current instance immediately. This is a one-shot copy, not a persistent link: further changes to the instance don't affect the saved profile unless you save over it. - Save the current settings as a new profile. - Overwrite, rename, or delete an existing profile. Once a profile is loaded, the menu shows its name, with an asterisk when you've changed the settings since. --- # Playback Tab > How a layer plays its samples, including granular synthesis and looping The _PLAYBACK_ tab controls how the layer plays its Instrument's samples: straight through, rebuilt into textures by the [granular engine](#granular-synthesis), or [looping](#looping) for as long as you hold a note. ![A layer's PLAYBACK tab with its parts numbered](https://assets.floe.audio/website/screenshots/layer-playback.306deb78b66d7fc2.png)12345 1. **Play mode** — there are three modes: - _Standard Playback_ plays each sample straight through (or [loops](#looping) part of it). - _Granular Playback_ uses [granular synthesis](#granular-synthesis), with the point the grains come from moving through the sample at a speed you choose (and looping, if a loop is set). - _Granular Fixed_ also uses granular synthesis, with the point the grains come from set directly by a _Position_ control rather than moving on its own. 2. **Waveform display** — for a single-sample Instrument, this is the sample itself. A multi-sampled Instrument contains many samples, so this shows the one from the most recent note (or a representative one until you play). If notes change too quickly to follow, it pauses on a recent sample, shown with a checkered overlay. When you play, red markers track each voice through the sample. The waveform often has [looping](#looping) controls as well. - **Sample start** — the arrow on the bottom edge of the waveform sets where playback begins. Drag it to skip the beginning of the sound; the skipped part is shaded. If you move it into the audio, a few milliseconds of _Attack_ on the [volume envelope](/docs/usage/main-tab#volume-envelope) avoids clicks. It isn't available for sliced Instruments. 3. **Sample info** — shows whether the Instrument is a single sample or a multisample, with details such as the number of samples, or a single sample's length and root key. 4. **Reverse** — play the samples backwards. It works in every play mode, with or without looping. The waveform flips to match, so playback always runs from left to right. 5. **Loop mode** — choose how the sound loops, if at all. For example, you can use the Instrument's built-in loops, or set your own loop points on the waveform. Hover over the selector to see what the current setting does for this Instrument, and why some options may be unavailable. Floe comes with a few simple built-in waveforms (oscillators). Many of the controls above don't apply to them, and so are hidden. Since they're algorithmic waveforms, the red voice markers are placed left to right by pitch instead of moving through a sample. ## Granular synthesis As well as playing samples the usual way, from start to finish, each layer can switch to the granular engine. Granular synthesis plays lots of small snippets of the sample, called grains. Each grain can come from a different part of the sample, and play in a different direction, at a different pitch, or from a different place in the stereo field. It can completely transform a sample. It's particularly good at smooth, lush textures. You can isolate a tiny fraction of a sample, such as one particular tonal moment, and hold it for as long as you like by running lots of grains over it. It's just as good at crackly, gritty textures, or at sparse ones where the grains are spread out so you can hear each one coming from a different point in the sample. The granular engine works with any sampled Instrument. For each note, the grains come from the sample that note would normally play. Granular synthesis uses randomness to keep the grains spontaneous and natural-sounding, rather than a mechanical, machine-gun-like repetition. Because of that, the sound can vary from note to note. When you want the same result every time, you have full control over that too: see [Reproducibility](/docs/usage/reproducibility). ### The two granular modes Choose a granular mode from the play mode menu at the top of the tab, where _Standard Playback_ is the usual way of playing samples. - **Granular Playback** — the point the grains come from travels through the sample at a steady speed, set by _Speed_. Use it to slow a sample down or speed it up without changing its pitch. It's not as precise as a dedicated time-stretching algorithm, but it gives a grainy or lush kind of time-stretch that's useful in its own right. Turn _Speed_ right down and the playhead barely moves, so a sample only a couple of seconds long can give you a whole minute of slowly changing texture. _Speed_ at 100%, the centre of the knob, is the sample's original speed, and the playhead still follows the sample start, looping and _Reverse_ settings. - **Granular Fixed** — instead of _Speed_ there's a _Position_ knob, which picks a precise point in the sample for all the grains to come from. _Spread_ sets how wide that region is. Apart from _Speed_ and _Position_, the two modes have exactly the same controls. ### Getting started Granular Fixed is perhaps the best place to start, because you can see and hear exactly what each control does. ![A layer's PLAYBACK tab in Granular Fixed mode with its parts numbered](https://assets.floe.audio/website/screenshots/layer-playback-granular-fixed.2140192424972f7d.png)123456 1. **Share grains** — how grains build up when you play several notes at once. 2. **Variation** — take the element of chance out of the grains. 3. **Waveform display** — shows where the grains come from. 4. **Playhead** — where in the sample the grains come from. 5. **Grains** — the shape of each grain, and how much they overlap. 6. **Random** — how much each grain differs from the next. Choose _Granular Fixed_ from the play mode menu, then use _Position_ to pick the point in the sample you want to isolate. The highlighted region on the waveform shows where grains will come from. Play some keys: all the sound you hear is coming from that exact point, and lilac lines on the waveform show each grain as it plays. From there, try these controls: ![The PLAYHEAD and GRAINS controls](https://assets.floe.audio/website/screenshots/granular-controls.9551a5fa66a30bfb.png) - **Density** — perhaps the next most useful control. It works a bit like an overlap percentage: at 0%, each grain starts as the previous one ends. Turn it up and new grains start sooner, so they overlap more and more, up to 100% where there may be hundreds of grains playing. Low values give an open texture where you can pick out individual grains; high values build a thick, continuous wash. High _Density_ uses more CPU. - **Length** — how long each grain lasts. Short grains chop the sound into a fine, buzzy texture; long grains keep much more of the sample's natural character. _Density_ and _Smooth_ are both measured relative to _Length_, so changing it changes how they feel too. - **Smooth** — how gently each grain fades in and out. High values give a softer texture, with neighbouring grains blending into each other. Low values make grains start and stop abruptly, for a grittier, glitchier texture. - **Spread** — widens the region that grains can come from, which you can see straight away on the waveform: each grain starts somewhere between _Position_ and a point this far past it. A narrow spread gives an isolated, pinpoint tone. Spread it out completely and grains come from all over the sample, for a texture that's much more varied, unexpected and full of different tones. ### Random The controls under the _RANDOM_ heading (6) make the texture even more varied. Each grain picks its own settings at random as it starts, within the range you set. At 0% every grain is the same. ![The RANDOM controls and the Intervals menu](https://assets.floe.audio/website/screenshots/granular-random.2567c6ef69428431.png) - **Pan** — the higher it goes, the more likely grains are to be panned left and right. Especially with a high _Density_, it gives a rich stereo image, with grains spread right across it. - **Detune** — sets each grain's pitch at random, up to a semitone up or down. Low values give a chorus or unison-like thickness; high values sound obviously out of tune. - **Direction** — the chance of each grain playing in the opposite direction, backwards if the playhead is going forwards. At 100%, each grain is equally likely to play either way. - **Harmony** — the chance of a grain playing at a musical interval from the note you played. It works with the _Intervals_ menu beside it, and does nothing until you've chosen at least one interval there. For example, click _12_ in the menu's grid and some grains will play 12 semitones (an octave) above your note; turn up _Harmony_ and more of them will. Click a selected interval again to turn it off. You can pick lots of intervals at once, or choose a preset such as _Wide Octaves_, _Major Triad_ or _Pentatonic_. The note you played is always included. It's a great way to make lush, interesting tones. ![The open Intervals menu, with presets on the left and the grid of intervals on the right](https://assets.floe.audio/website/screenshots/granular-harmony.7692588f84b54478.png) ### Share grains The button just to the right of the mode's name, showing a cloud of dots (1), chooses how grains build up when you play several notes at once. Hover over it to see which way it's set. It's there for both granular modes. - **Shared grains** — the number of grains stays the same however many notes you play. If you're after a sparse texture, it stays sparse even when you play a whole chord. Each grain plays from one of the held notes, so at a low _Density_ you can hear the grains hop between the notes of the chord. This is the default setting. - **Per-voice grains** — every note you play adds its own full set of grains. If your _Density_ setting gives 20 overlapping grains, a second note adds another 20, so the sound gets denser, and possibly louder, with each note. ### Variation ![The Variation and Seed settings, open beneath the Variation button](https://assets.floe.audio/website/screenshots/granular-variation.865ff2e8cbd88c95.png) Each grain picks its starting point, pan, detune and so on at random, so every note you play scatters its grains differently. That keeps a granular sound alive, but it also means a pattern of grains you love might not come back. _Variation_ lets you make the grains the same every time instead. Click the button (2), to the right of the share grains button, and choose one of these: - **Different on every note** (default) — every note scatters its grains differently. The best choice for most sounds, especially dense, textural ones. Even in this mode, you can get reproducible renders of your DAW track, see [Reproducibility](/docs/usage/reproducibility). - **Identical on all notes** — every note plays exactly the same grains. Hold a chord and each note plays them at its own pitch. With shared grains, the notes take turns, so you hear the same grains come back at different pitches. - **Identical on each key** — each key gets its own pattern of grains. C3 always sounds the same, D3 always sounds the same (but is different to C3), etc.. With either _Identical_ option, the _Seed_ number picks which pattern repeats. Try a few numbers until you find one you like. It's saved with the preset, so the grains you chose are the grains everyone hears. The button lights up while one of the _Identical_ options is chosen. See [Reproducibility](/docs/usage/reproducibility) for more on seeds, and on making a whole performance come out the same every time in your DAW. ### Granular tips - In _Granular Fixed_ mode, the point the grains come from only moves when _Position_ does. To make it wander through the sample on its own, set the [LFO's](/docs/usage/lfo-tab) target to _Grain Position_: the LFO sweeps _Position_ back and forth, so the texture keeps changing as you hold a note. Or link _Position_ to a [macro](/docs/usage/macros) to move it by hand as you play. - The volume envelope, filter, EQ and effects all shape the granular sound just as they would in _Standard Playback_. - When designing a sound, try _Identical on all notes_ with a low _Density_ and step through a few _Seed_ values. Once you hear a grain scatter you like, save the preset and it's kept exactly. ## Looping You can loop part of a sample for as long as you hold a note. Even a short sample can then sustain indefinitely, or you can pick out a section that has some movement in it, so the sound cycles through it over and over. You have full control over where the loop sits and how smoothly it joins up. Looping works in _Standard Playback_ and in the _Granular Playback_ [granular mode](#granular-synthesis). ![A layer's waveform and loop controls with their parts numbered](https://assets.floe.audio/website/screenshots/looping.4f51878d98be7c61.png)123456 1. **Loop start** — where the loop begins. 2. **Loop end** — where the loop finishes, and playback goes back round. 3. **Crossfade** — how smoothly the loop joins up. 4. **Sample start** — where playback begins when you press a key. It isn't part of the loop, but it lives alongside it. 5. **Reverse** — play the samples, and the loop, backwards. The loop end then appears on the left and the loop start on the right, though the loop points themselves don't change. 6. **Loop mode** — how the sound loops, if at all. ### Loop modes There are two modes of looping: - **Standard** — when playback reaches the loop end, it jumps back to the loop start, optionally smoothing the jump with a crossfade. - **Ping-pong** — uses the same start and end points, but at each end of the loop the playback direction reverses, so it goes back over what it just played, the other way. Choose the loop mode from the selector (6). Which options are available depends on the Instrument. Some let you set your own loop points, some come with loops already built in, and some keep that control to themselves, such as sounds that are perfectly sustained or already loop. ![The loop mode menu](https://assets.floe.audio/website/screenshots/loop-mode-menu.96adc5ab47405221.png) - **Default** — let the Instrument decide: each sound loops, or doesn't, just as it was designed to. The menu shows what that means for the current Instrument. - **Built-in Loop - Standard** and **Built-in Loop - Ping-pong** — use the loop points that come built into the Instrument, looping in the direction you choose. - **No Loop** — each sound plays straight through. - **Custom Loop - Standard** and **Custom Loop - Ping-pong** — set your own loop points on the waveform. Options that aren't available for the current Instrument are dimmed: hover over one to see why. Some Instruments have no built-in loops, for example, or don't allow custom loop points, or have sounds that must always loop. The selector itself shows what's actually happening, and hovering over it explains the current setting. The arrows beside it, and , step through only the options that are available. ### Setting your own loop Choose one of the _Custom Loop_ modes, and the loop's handles appear on the waveform. Drag the loop start (1) and loop end (2) to set where the loop sits. The highlighted region between them is the part that loops. Drag inside the region to move the whole loop without changing its length. The handles work like Floe's other [controls](/docs/usage/controls): double-click one to type an exact value, `shift`\-drag for finer control, and `ctrl`/`cmd`\-click to reset it. Double-clicking the highlighted region types a value for the loop start. For a multi-sampled Instrument, the loop points are positions through the sample, as a percentage of its length. Whichever sample a note triggers, it loops between those same percentages. With a built-in loop on an Instrument that has just one sample, the handles show where the loop sits, but they're greyed out and can't be moved. To set your own, choose one of the _Custom Loop_ modes. ### Crossfade A loop can click as playback jumps from one point in the sample to another. The crossfade (3) blends the audio across the join to smooth it out. A small crossfade usually helps, especially for sustained or tonal sounds. Drag its handle to change it. - In _Standard_ mode, the crossfade happens as playback nears the loop end, blending into the audio just before the loop start. Its handle sits inside the loop. - In _Ping-pong_ mode, the crossfade smooths each turnaround, blending in the audio just beyond the loop point. Its handle sits outside the loop. The crossfade needs audio before the loop start to blend in from, so it can't be used while the loop starts at the very beginning of the sample: its handle is greyed out until you move the loop start later. The crossfade also has to fit within the loop and the sample, so it shrinks automatically if you make the loop too small for it. In _Ping-pong_ mode, it also needs room after the loop end. ### Looping tips - Looping needs the [volume envelope](/docs/usage/main-tab#volume-envelope) to be on. With it off, nothing would ever bring a looping note to an end. - Pitch is changed by speeding up or slowing down playback. So the higher you play, the faster the loop cycles, and the lower you play, the slower. In _Granular Playback_ mode, the loop cycles at the rate set by _Speed_ instead. - In _Granular Fixed_ mode the grains always come from the _Position_ you choose, so there's no looping and the loop controls are hidden. - A loop can be moved by a [macro](/docs/usage/macros). The highlighted region then shows where the loop actually is, while the handles stay at their own settings. - Release samples, which some Instruments play when you let go of a key, never loop. --- # Randomisation > Use an element of chance to find sounds you might not have found yourself Floe has a few features that bring in an element of chance. It's a way to find spontaneous inspiration, and sounds you might not have reached for yourself. They're also good fun. As with anything left to chance, sometimes the results are great and sometimes they're a bit too wacky. The _Undo_ button in the top panel is always available. All of these randomisation buttons use the same shuffle icon, so you can identify them at a glance. ## Random variation The main random feature is the _Random Variation_ strip on the [_Perform_](/docs/usage/perform) page. It takes the preset you've loaded and changes some of its properties, giving you a fresh take on the sound. ![The Random Variation strip on the Perform page](https://assets.floe.audio/website/screenshots/perform-variation-strip.68e36d0f47412a76.png) Click anywhere on the strip. Where you click sets how far the variation strays from the preset. Towards the left, the changes are mostly subtle and the sound keeps its character. Move towards the right to venture into wilder changes. As you hover, the strip shows the amount and a word for it, from _small variation_ to _extreme variation_. The button at the left of the strip rolls another variation at the same amount as last time, so you can try several takes at an intensity you like. Every variation starts from the preset as you loaded it, not from the previous variation, so you can keep clicking without drifting ever further away. When you find one you like, save it as a preset. That keeps it, and makes it the new starting point for further variations. If nothing is loaded, the strip builds a random sound instead, around an Instrument picked at random. ### What a variation changes A variation reworks the preset rather than starting from scratch, so it usually keeps something of the original's feel. Depending on how far right you click, it may: - **Swap Instruments** — each layer can get a different Instrument. Further left, the new one is usually a close relative, from the same library or folder or with similar tags. Further right, it can come from anywhere. With more than one layer in use, one is sometimes left as it is. Layers using a built-in waveform are never changed. - **Fill or empty layers** — an empty layer may get an Instrument, and occasionally a layer is cleared. Filling is much more likely than emptying, so wilder variations tend to add to the sound rather than thin it out. At least one layer always keeps an Instrument. - **Move the macros** — some of the preset's [macros](/docs/usage/macros) are turned by a noticeable amount, taking everything they control with them. - **Change the effects** — some effects' mix levels move, and a few effects are switched on or off. An effect that's switched on gets fresh settings, kept within sensible limits so it won't suddenly jump in level. - **Shift octaves** — now and then, a layer's _Transpose_ moves up or down an octave or two. ## Jumping to a random item in a browser Wherever you can choose a preset, an Instrument or an impulse response, there's a button that jumps to a random one: - **Presets** — in the top panel, next to the preset name. - **Instruments** — in each layer's header on the [_Layers_](/docs/usage/layers#layer-header) page. It loads a random Instrument into that layer only. - **Impulse responses** — on the [Convolution Reverb](/docs/usage/effects#convolution-reverb) effect. Each button is linked to its [browser](/docs/usage/browsers): it only picks from what that browser's filters allow, so you can set the bounds of what "random" means. Filter the preset browser to one library and a tag such as _ambient_, say, then keep clicking to jump around within that selection. The same goes for the browser's own button while it's open. ## Layers and effects The button at the top right of the [_Layers_](/docs/usage/layers) page loads a random Instrument into all three layers at once, as if you'd clicked each layer's button in turn. Each layer has its own Instrument browser filters, so narrow the first layer to bass sounds and the second to textures, for example, then click it to roll through combinations that stay within those bounds. The button at the top right of the [_Effects_](/docs/usage/effects) page randomly puts each effect in or takes it out of the rack, and shuffles their order. It leaves each effect's settings alone, so anything you've dialled in is still there when the effect comes back. ## Randomness in the sound itself Parts of the audio engine, such as the [granular engine](/docs/usage/playback-tab#granular-synthesis), also use randomness while you play, to create varied, natural-sounding performances. See [Reproducibility](/docs/usage/reproducibility). --- # Reproducibility > How to make Floe's playback exactly reproducible in a DAW Some features, most noticeably granular synthesis and the random LFO shapes, are designed around randomness to make the sound more natural and lively. Normally you don't need to worry about reproducibility: Floe's default setting, _Reset on transport_, covers most uses by making every render of your track in your DAW come out exactly the same. But sometimes those choices aren't quite what you want, such as grains landing in the wrong places or a random LFO moving the wrong way at a key moment. For that, Floe has _seed_ settings that let you take more control. To understand what a seed does, it helps to know that Floe's randomness isn't truly random. It comes from a sequence of numbers that looks random. The sequence is so long that it never comes round again in practice, but it's fixed: from the same starting point, it always unfolds the same way. The seed is that starting point. So you keep all the spontaneity of random choices, but the same seed always gives the same choices. Floe goes back to the start of the seed's sequence only at certain moments, called resets. You choose when they happen, and which seed to use, on the _Reproducibility_ tab of the [Performance Controls](/docs/usage/performance-controls) panel: ![Reproducibility tab of the Performance Controls panel, with its settings numbered](https://assets.floe.audio/website/screenshots/reproducibility.acda98d8ce410fef.png)123 1. **Reset on transport** — reset whenever you press play or start a render in your DAW. Play your track from the top twice and you hear exactly the same thing both times. It's on by default. 2. **Reset keyswitch** — reset whenever Floe receives the MIDI note you choose here. Put that note in your MIDI just before a section, and that section plays back identically every time, wherever you start playback from. The keyswitch note makes no sound, and it's shown as a blue marker on the on-screen keyboard. 3. **Seed** — which sequence Floe starts from. Change it to hear a different take, just as lively as the last and just as repeatable. You can use either kind of reset, or both. The _Seed_ also covers these smaller sources of variation: - The arpeggiator's _Humanise_ and random note orders - Which round robin sample plays first after a reset - The _White Noise_ Instruments ## Workflow The _Seed_ settings are a finishing step. You choose a seed once your MIDI is recorded and you're getting ready to render, rather than while you're improvising. There's one _Seed_ for the whole instance of Floe, and every random choice Floe makes moves its sequence along. So each choice affects all the choices that come after it. That's why it's important to ensure that you play the exact same notes with the exact same timing. A saved MIDI item in your DAW ensures this. ### With _Reset on transport_ This is the default. Floe starts from the _Seed_ whenever you press play or render, so everything from that point on comes out the same every time. To judge a seed properly, render the whole track again, or play it from the very start. It won't sound the same if you start playback in the middle of a MIDI item, or between MIDI items played by the same instance of Floe, because Floe needs to make all the same choices from start to finish, not starting in the middle. So the workflow is: 1. Render your track, or play it from the very start. 2. If something isn't quite right, change the _Seed_. 3. Render again and listen, repeating until you have a take you like. If Floe only plays in one part of your track, you don't need to go right back to the start. Anywhere before Floe's first note works just as well, since Floe hasn't made any choices before then. ### With _Reset keyswitch_ A _Reset keyswitch_ lets you lock in a performance with more granularity. Floe starts again from the _Seed_ every time the keyswitch note plays, so everything after it comes out the same no matter where you started playback or what Floe played before. You can add several of these lock-in points through your track, allowing you to audition the section after each one by starting playback just before its keyswitch. This also suits looping a section: put the keyswitch at the start of the loop. A DAW loop jumping back to its start doesn't count as pressing play, so without the keyswitch each pass carries on from where the last one left off. The catch is that every keyswitch uses the same _Seed_. If you change the seed to get a better take of one section, every other section that follows a keyswitch changes too. If a seed suits one section of your track but not another, load a second instance of Floe for that section and give it its own seed. ### Per-layer seeds instead The [granular engine](/docs/usage/playback-tab#variation) and the LFO's [random shapes](/docs/usage/lfo-tab) offer an alternative to all of this: a per-layer seed , saved with the preset. Rather than waiting for a reset, it applies every time a note starts, so each note gets its own sequence. Choose one of the _Identical_ modes and try a few _Seed_ values until you like the result. It then sounds exactly the same on any computer, in any instance of Floe, without needing any of the settings above. Unlike the instance's _Seed_, it's a sound-design setting you can choose at any time. ## Tips - Floe can't recapture a variation after the fact. If an improvised take sounds great, the random choices behind it are gone. Record the MIDI first, then try seeds against it. - Performance Controls settings belong to the instance, so loading a preset leaves them untouched: you can try out presets without losing your seed and reset setup. - When designing a granular sound, try _Identical on all notes_ with a low _Density_ and step through a few _Seed_ values. --- # Top Panel and Main Menu > The top panel's preset box, buttons, master controls and meters, and everything in the main menu The top panel runs along the top of Floe's window and stays there on every page. It holds the things that apply to the whole sound rather than to one page: the current preset, undo and redo, the master controls and the output meters, along with the buttons that open Floe's other windows. ![Floe's top panel with its parts numbered](https://assets.floe.audio/website/screenshots/top-panel-overview.6c17c53c76feceb5.png)12345 1. **Logo and version** — the version of Floe you're running. If you turn on _Show instance name_ on the _General_ tab of Preferences, this instance's [name](/docs/support/autosave#instance-names) appears after it. 2. **Preset box** — the current preset's name and description, with buttons to step through presets, save, and load a preset from a file. Click the name to open the preset browser. See [The preset box](/docs/presets/loading-presets#the-preset-box). 3. **Buttons** — Preferences, Performance Controls, undo and redo, and the main menu. 4. **Timbre and Volume** — the master controls, which act on everything you hear. 5. **Meters** — the level of the final output. ## Buttons - **Preferences** — settings for Floe itself rather than for your sound, such as how the interface looks and where your sounds and presets are installed. They're saved on your computer and apply to every instance of Floe. - **Performance Controls** — how you play Floe: mostly MIDI settings, plus options for making performances exactly reproducible. They're saved with this instance in your DAW project, and loading a preset never changes them. See [Performance Controls](/docs/usage/performance-controls). - **Undo** — step back through your changes to the sound, including tweaks to controls and loading Instruments or effects, so you can experiment freely. Hover over the button to see which change it will undo. - **Redo** — bring back a change you've just undone. If you make a new change instead, there's nothing left to redo. - **Attribution** — appears in red when a sound you've loaded comes from a library that asks to be credited. Click it for the exact text to use. See [Attribution](/docs/reference/attribution). - **Main menu** — more options, and Floe's other windows. A red dot on the button means a new version of Floe is available: see [Updating](/docs/installation/download-and-install-floe#updating). ## Master controls - **Volume** — the final stage of the sound. It comes after the [effects rack](/docs/usage/effects), so it sets the overall level of everything just before the audio leaves Floe. - **Timbre** — some Instruments are built with crossfade layers: variations of the same sound, such as soft to hard or dark to bright. _Timbre_ sweeps between them, so you can shape the tone. While you drag it, the Instruments that respond are highlighted. When none of the loaded Instruments have crossfade layers, the knob is greyed out. An MPE controller can move it for each note separately: see [MIDI](/docs/usage/midi#mpe). ## Meters The peak meter (5) shows the level of the final output, measured after the master _Volume_. It flashes red if the signal clips above 0 dB. There's also an optional loudness (LUFS) meter, mostly useful if you're making presets and want them to sit at a consistent level. Turn on _Show Loudness (LUFS) meter_ on the _General_ tab of Preferences, and hover over it for details. ## The main menu Click , the last of the buttons (3), to open the main menu. ![Floe's main menu, open beneath its button in the top panel](https://assets.floe.audio/website/screenshots/main-menu.f549d251ee1a692d.png) - **Load Blank Preset** — return every setting to its default and clear all the Instruments and IRs, ready to build a sound from scratch. Remember, if you need it, _Undo_ brings back what you had. - **Panic (Stop All Sound)** — stop all audio and clear every playing note. Handy if a note gets stuck. - **Rescan Libraries & Presets** — Floe notices new and changed files in its folders by itself, but if something you've added doesn't show up, this makes it look through every folder again. - **Preferences** and **Performance Controls** — the same as the buttons in the top panel. - **Info** — the _Libraries_ tab shows what's installed and is where you can [uninstall](/docs/installation/uninstalling) it. The other tabs show your version of Floe and whether an update is available, the legal notices, and some metrics, such as how many voices are playing and how much memory the samples use. - **Share Feedback** — send a message to the developers, such as a bug report or an idea. See [Share feedback](/docs/support/error-reporting#share-feedback). - **Legacy Parameters** — controls kept from older versions of Floe so that projects made with them still sound the same. You only need this window if a control shows a yellow badge. See [Legacy Parameters](/docs/reference/legacy-parameters). - **Library Developer Tools** — tools for people making their own sample libraries for Floe. See [Library Development](/docs/develop/develop-libraries). - **Add Mirage Folders** — add the library and preset folders of Mirage, Floe's predecessor, if you had it installed. Not shown on Linux. - **Help** — open Floe's documentation website.