Requirements and installation
- Windows 10 or Windows 11, x64.
- Extract the portable ZIP and run
Sioto Loops.exe. - No installer is required.
- For low-latency recording, use the ASIO driver supplied with the audio interface.
- Low-latency, shared, and exclusive WASAPI modes are available when ASIO is unavailable.
- VST3 effects are supported. Legacy VST2 effects are not supported.
The current package is not code-signed, so Windows may display a SmartScreen warning.
Projects and files
- Create a project inside a dedicated folder.
- Save songs as readable
.siotoJSON project files. - Open existing projects from the File menu.
- Use Save to update the current project.
- Access the 10 most recent projects directly from the File menu.
- Access up to 20 additional recent projects through the expanded recent-project submenu.
- Use Exit to close the application.
- Project loading uses an in-window loading splash.
- Recorded samples are stored inside
<project>/Recorded. - The project Recorded folder is automatically shown in the sample browser and cannot be removed.
Transport and timing
- Play and stop controls.
- Space plays or stops everywhere except while typing in a text input.
- Pause is not used: stopping returns immediately to the stored playlist cursor position.
- Press Stop again when already at the stored cursor position to return to the start of the song.
- Only clicking the playlist ruler changes the stored cursor position.
- Playback loops to the start after the final sample ends.
- Adjust tempo from 30 to 300 BPM by dragging the tempo number vertically.
- Beat position and elapsed song time are shown in separate displays.
- A parameter display shows the value of the currently hovered knob, slider, control, or automation curve.
- Enable or disable the metronome from the toolbar.
- Recording always begins with a four-beat count-in, even when the normal metronome is disabled.
Sample browser
- Add and remove persistent sample-folder roots.
- Folder selections are saved between application sessions.
- Browse the complete hierarchy below every selected folder.
- Filter folders while selecting them from disk.
- Filter the folder list inside the folder-selection dialog as text is entered.
- Browse WAV, WAVE, AIFF, AIF, FLAC, MP3, and Ogg files.
- Click a sample to preview it once.
- Drag a sample from the browser onto a valid playlist lane.
- Drag supported audio files directly from Windows Explorer into the playlist.
- Drop a sample onto the Add Channel row to create a channel and place the sample there.
- Ctrl-drag a sample onto another channel to create a new channel and place the sample in it.
Playlist and channels
- Create and delete an unlimited number of playlist channels.
- Create a playlist track from the Add Channel row at the bottom of the playlist.
- Create a channel below another channel from its context menu.
- Create subchannels that have independent playlist lanes but share their parent mixer channel.
- Subchannels and automation lanes are indented below their owner channel.
- Mixer buses appear as short, grayed playlist rows that cannot contain audio clips.
- Automation lanes are kept directly below the channel or bus they automate.
- Reorder channels by dragging playlist headers.
- Ctrl-click channel headers to select multiple channels.
- F2 renames the selected channel. Double-click does not rename channels.
- Mute or unmute a playlist channel from its header.
- Playlist channel headers contain stereo VU meters.
- Routed channel groups are kept together and outlined.
- The tools and channel headers remain pinned while scrolling horizontally.
- The ruler and tool header remain pinned while scrolling vertically.
- Every four beats uses an alternating grid background.
- Visible grid subdivisions become finer as horizontal zoom increases.
- Snapping follows the subdivisions currently displayed.
- Horizontal and vertical playlist zoom have extended maximum ranges.
- The cursor has a left-side playback glow that fades when playback stops.
Clip editing
Tools
- Select: drag a marquee over clips.
- Move: move clips between valid playlist lanes and beats.
- Paint: place the selected sample repeatedly next to existing placements without overlap.
- Audition: hold the mouse on a clip to play only that clip from the clicked position; release to stop and restore the previous transport position.
- Slice: split a clip at the clicked position.
- Slip: move the source audio inside the clip without moving the clip itself.
- Mute: mute or unmute a clip.
- Erase: delete a clip.
Selection and movement
- Click a clip to select it.
- Ctrl-drag a marquee to add clips to the current selection.
- Click outside the playlist to clear clip selection.
- Move all selected clips together.
- Shift-drag selected clips to duplicate them and move the copies.
- While dragging between lanes, clips are drawn at their actual proposed destination.
- Clips cannot be dropped on bus or automation rows.
- Drop a moved clip on the Add Channel row to create a channel.
Length, source, and stretching
- Drag either clip edge without Ctrl to reveal or trim source audio without time-stretching.
- Hold Ctrl while dragging either edge to time-stretch the clip.
- Hold Alt during supported edits to disable grid snapping.
- Choose whether time-stretching preserves pitch.
- Fit a sample to the song tempo from the clip context menu.
- Pitch-shift a clip without changing its length.
Gain, pan, fades, and overlaps
- Adjust per-clip gain, pan, and pitch with the controls at the bottom of the clip.
- Vertical progress indicators show the value of gain, pan, and pitch.
- Right-click a clip parameter to set an exact value, copy, paste, or reset it.
- Clip gain supports values up to +120 dB.
- Drag the handles at both ends of a clip to adjust fade-in and fade-out durations.
- Drag fade curve handles to bend each fade.
- Set fade curves exactly or select bend down, linear, or bend up.
- Overlapping clips remain translucent so both waveforms stay visible.
- Overlapping waveforms are visually blended.
- Overlapping clips crossfade automatically.
- Edit crossfades manually or reset them to automatic mode.
- Clip fades affect the rendered waveform and audio.
- Handles and edges remain accessible when clips overlap.
- Parameter changes apply to every selected clip.
- Merge selected clips into a project-local audio file from the context menu.
Automation
- Automate mixer knobs, buttons, sliders, effect mix values, clip parameters, and VST3 parameters.
- Create an automation lane for the last-tweaked parameter from the current channel.
- Create automation directly from supported parameter context menus.
- Automation lanes appear as subchannels below the channel or bus they control.
- The current automation value is shown below the automation lane title.
- Click an automation line to create a point.
- Drag points horizontally and vertically.
- Internal points are atomic: moving or deleting one does not move the others.
- The first and last points remain anchored to the start of the first clip and end of the last clip in the owner group.
- When the owner range changes, only the final anchor moves with the end.
- Edit the curve from any point to the following point.
- Curve handles capture relative mouse movement.
- Set point values and curve values exactly.
- Copy, paste, and reset point or curve values.
- Delete internal automation points.
- If an automation lane exists, automation controls the parameter during playback. Otherwise the normal mixer, clip, or plug-in value is used.
Mixer and routing
- A fixed Master channel is always at the far left and cannot be moved.
- New channels route to Master by default.
- Create playlist channels and mixer-only buses from the right side of the mixer.
- Route any regular channel or bus into any other valid mixer destination.
- Routing prevents cycles.
- Connection lines use the source channel color.
- Channels routed into the same bus are automatically placed together and grouped.
- Select one mixer strip by clicking it.
- Ctrl-click strips to add or remove them from the current mixer selection.
- Click elsewhere to clear mixer selection.
- Apply volume, pan, mute, solo, arm, input, and routing changes to all selected channels.
- Select every mixer channel, every channel routed to the clicked destination, or every channel sharing a destination.
- Reorder mixer channels by dragging strips. Master remains fixed.
- Rename the selected strip with F2.
- Control channel volume with a thin color-matched fader.
- Control pan with a circular knob whose filled region uses the channel color.
- Mute channels and right-click mute to solo or unsolo.
- Arm a channel for recording and processed input monitoring.
- Enable or bypass the entire effect chain on a channel.
- Stereo VU meters show left and right levels, colored green through -6 dB, orange to 0 dB, and red above 0 dB.
- VU meters include peak hold and glow.
- Save a mixer channel or bus as a preset and load it later.
- Copy or cut a complete effect chain from one channel to a selected destination channel.
- Right-click supported mixer parameters to set exact values, create automation, copy, paste, or reset.
VST3 effects
- Automatically scan the standard Windows VST3 locations.
- Rescan VST3 folders manually.
- Cache scan results between sessions.
- Track scan progress and avoid repeatedly loading a plug-in that crashed during scanning.
- Filter the plug-in list by plug-in or manufacturer name.
- Mark plug-ins as favorites and filter the list to favorites.
- Add any number of effects to a mixer channel.
- Display the selected channel’s effects as a vertical ordered list.
- Drag effects to reorder the processing chain.
- Open the native VST3 editor in a custom application window.
- Set a wet/dry mix value for every effect; the default is 100%.
- Set the effect mix exactly, automate it, copy it, paste it, or reset it.
- Copy a single VST3 and its complete saved state, then paste it into another channel.
- Persist plug-in state in the project.
- Automate exposed VST3 parameters.
- Copy, paste, reset, and enter exact values for supported plug-in parameters.
Audio and recording
- Prefer installed ASIO drivers and fall back to WASAPI when necessary.
- Persist the selected driver, input/output channels, sample rate, and buffer size.
- Choose from every buffer size advertised by the current audio device.
- Open the active ASIO driver control panel.
- View device input/output latency and XRUN count.
- Use a mono physical input.
- Use stereo physical inputs 1 and 2.
- Use the always-available Windows output (loopback) option to record the stereo Windows speaker mix.
- Windows loopback capture runs on a dedicated WASAPI capture thread and remains selectable while the DAW uses ASIO.
- Audio processing runs separately from the user interface.
- Triple buffering is used for audio/UI state exchange.
- Armed physical inputs are monitored through the channel effects while stopped, playing, and recording.
- Windows loopback is not fed back to the speaker output, preventing recursive feedback.
- Record multiple armed channels at once.
- Recording always uses a four-beat count-in.
- Draw the recorded waveform live up to the current transport position.
- Stream takes to 24-bit WAV files instead of retaining the complete take in memory.
- Add completed takes to the playlist automatically.
Export and metadata
- Open the export dialog from Export....
- Export WAV, MP3, Ogg Vorbis, FLAC, M4A/AAC, or MIDI.
- Select sample rate, bit depth, bitrate, mono/stereo output, floating-point WAV, and tail behavior where applicable.
- MP3 and M4A export use FFmpeg when it is available.
- Edit title, artist, album, genre, year, track number, comment, and copyright from Properties....
- Apply project metadata to supported exported formats.
Undo and redo
- Use an indefinite named undo/redo history for project edits.
- Undo or redo one action from the Edit menu.
- View action names in the Undo History and Redo History submenus.
- Select a named action to move multiple steps through history.
- Use Ctrl+Z, Ctrl+Shift+Z, or Ctrl+Y.
Shortcuts and mouse controls
Keyboard
| Input | Action |
|---|---|
| Space | Play or stop. Ignored while typing in a text input. |
| Ctrl+Z | Undo one action. |
| Ctrl+Shift+Z | Redo one action. |
| Ctrl+Y | Redo one action. |
| F2 | Rename the selected playlist or mixer channel. |
| Delete or Backspace | Delete the selected playlist clips. |
Playlist
| Input | Action |
|---|---|
| Click playlist ruler | Set the stored playback cursor position. |
| Click playlist grid or clip | Select or edit without moving the stored playback cursor. |
| Click clip | Select the clip. |
| Ctrl+drag empty grid | Add clips inside the marquee to the existing selection. |
| Drag clip body | Move selected clips and snap them to the visible grid. |
| Alt+drag clip | Move without grid snapping. |
| Shift+drag selected clip | Duplicate selected clips and move the copies. |
| Drag clip edge | Reveal or trim source audio without stretching. |
| Ctrl+drag clip edge | Time-stretch from that edge. |
| Alt while resizing | Resize without grid snapping. |
| Drag gain, pan, or pitch control | Change that parameter for every selected clip. |
| Right-click gain, pan, pitch, or curve | Set exact value, copy, paste, or reset. |
| Drag fade endpoint | Change fade duration. |
| Drag fade curve handle | Change fade curvature with captured relative movement. |
| Ctrl+wheel | Zoom the playlist horizontally around the pointer. |
| Alt+wheel | Zoom playlist lane height around the pointer. |
| Ctrl-drag sample to lane | Create a new channel and place the sample in it. |
| Drag sample to Add Channel row | Create a new channel and place the sample in it. |
Mixer, parameters, and transport
| Input | Action |
|---|---|
| Click mixer strip | Select only that channel. |
| Ctrl+click mixer strip | Add or remove that channel from the mixer selection. |
| Right-click mute | Solo or unsolo the channel. |
| Drag mixer strip | Reorder the channel. Master cannot be moved. |
| Drag effect handle | Reorder the selected channel’s effect chain. |
| Double-click effect mix | Reset effect mix to 100%. |
| Double-click supported parameter | Open exact-value entry. |
| Right-click supported parameter | Set exact value, automate, copy, paste, or reset. |
| Drag captured slider or parameter | Adjust relative to its current value without being limited by screen edges. |
| Drag tempo number | Change BPM. |
| Shift+drag tempo number | Change BPM with finer precision. |
| Stop button | Return immediately to the stored cursor position. |
| Stop again at stored cursor | Return to the start of the song. |
Build from source
Requirements: Visual Studio 2022 with the Desktop C++ workload, CMake 3.24+, PowerShell, and Windows 10/11. JUCE 8.0.13 is fetched automatically unless SIOTO_JUCE_PATH points to an existing JUCE checkout.
git clone https://github.com/martinpetkovski/SiotoLoops.git cd SiotoLoops powershell -ExecutionPolicy Bypass -File .\scripts\Dev.ps1 build powershell -ExecutionPolicy Bypass -File .\scripts\Dev.ps1 run -NoBuild powershell -ExecutionPolicy Bypass -File .\scripts\Dev.ps1 test powershell -ExecutionPolicy Bypass -File .\scripts\Dev.ps1 package
- Build output:
artifacts/build - Portable packages:
artifacts/packages - Available scripts: configure, build, run, rebuild, clean, test, package, format, and doctor.
Current limitations
- This is an early functional release, not a replacement for a mature production DAW.
- Audio clips are decoded into memory for playback.
- There is no MIDI editing or sequencing.
- There is no automatic plug-in delay compensation.
- VST2 is not supported.
- The Windows release is not code-signed.