Skip to main content

Live looping application with DAW elements.

Project description

Logo

codecov build Docs

ShoopDaLoop - Limitless Looping

ShoopDaLoop is an cross-platform advanced live looping application. It offers intuitive looping of audio+MIDI clips in a grid-style layout and some DAW-like features for sequencing.

It is designed for both free-form jamming (solo or together) and pre-scripted looping sessions. Live performance could be a good use-case, although it is not stable enough yet to recommend that at this point.

Documentation lives here.

:warning: There is no release yet. This is in pre-alpha. Feel free to give this a test drive, but don't expect a finished product.

For currently open known issues, check the GitHub Issues page.

Screenshot

Screenshot

In a nutshell

  • Fast: can easily handle a large number of loops.
  • Grid-based: loops are organized into a grid of tracks, which share inputs/outputs and effects/synthesis.
  • MIDI and audio: can both be looped, including alongside each other in the same loop.
  • FX/synthesis: can be inserted into a loop directly (plugins) or via external JACK connections. The same loop can simultaneously record "dry" and "wet" (post-fx) to save precious CPU during playback.
  • Synchronization: every loop is synced to the "sync loop", which typically holds a beat, click-track or just fixed-length silence. Loops may also be a multiple of the sync loop length.
  • Grabbing: instead of triggering the recording, you can grab loops retroactively from an always-on recording buffer.
  • Combining: A powerful system for combining multiple loops into sequences and/or scenes, which can also be controlled as if they were loops.
  • NSM: Non/New Session Manager support on Linux (experimental).
  • Hackable: Users can run their own Lua scripts to control the application in new ways.

These features are explained in detail in the docs.

Status

ShoopDaLoop is in early development. The basics work but not nearly all of its intended functionality is finished yet (see below).

The intent is for the master branch to always work and pass CI tests, but at the moment, some significant bugs will probably come and go. Check the issues list for currently known issues and please add any you encounter yourself.

As such, it obviously has not been used for on-stage performing and definitely shouldn't until after doing some serious testing.

Note however that having automated testing with high coverage is among the project goals.

Comparison table

To summarize why ShoopDaLoop exists and what the goals and plans are, a short comparison table with similar open-source software gives a good picture. Of course, the devil is in the details: the other listed software is great and in many ways different and better. The aim here is not to take away from them in any way.

ShoopDaLoop SooperLooper Luppp Ardour
OS Linux (2) Linux, Mac Linux Linux, Mac, Windows
MIDI looping
Audio+MIDI co-recording ?
Audio dry+wet co-recording manual setup ?
Loop Organization Grid Separate loopers Grid Grid
Scenes support ✅ (5) ✅ (grid row = scene) ?
Designed for live use
Plugin Host (1)
Song/performance sequencing (4) ✅ (not sure of details)
MIDI controller support ✅ (learn / script) (6) ✅ (MIDI learn) ✅ (not sure of method) ✅ (not sure of method)
NSM Session Management
Overdubbing ❌ (planned) ?
Plugin scripts (3)
Transport/tempo system None (trigger on sync loop) None JACK transport / MIDI beats ?

(1): ShoopDaLoop has built-in support to host Carla through LV2, relying on Carla as a proxy to support other plugin types such as VST(3).
(2): Focus is on Linux for now until it is reasonably feature-complete. Windows and Mac builds already available, but not useful yet due to lacking audio and plugin support.
(3): ShoopDaLoop plug-in scripts are written in LUA. Currently the main goal is to support deep MIDI controller integrations and custom keyboard control scripts and opening/managing additional MIDI control ports. Future goals could be integration with the future song/performance sequencer or integration with the outside world by e.g. network.
(4): ShooDaLoop supports "composite loops", allowing you to combine sequences of loops into other loops hierarchically. Through this method, complex sequences and simple songs can be constructed.
(5): See (4): composite loops can be used as scenes.
(6): Currently this can be used to control ShoopDaLoop. Mapping to plugin parameters is planned for the future.

Disclaimers:

  • I may have mistakes in this table due to not being completely familiar with these programs. Please raise an issue/PR for corrections or extra products to compare.
  • Also note that I filled this in primarily as a comparison of FOSS loopers for Linux. Software like Ardour offers way more other DAW functionality that neither ShoopDaLoop nor the other loopers have.

As seen in the comparison table, ShoopDaLoop is closest to Luppp in what it offers, the main differentiators being built-in MIDI support and the planned features for song construction. And of course, the details of how loops are managed exactly differ between all these tools and are a matter of preference.

Roadmap

All the basic features needed for a 1.0 release are there. The following items are planned before a first release:

  • Polishing: Many features are there but some need to be tweaked and improved.
  • Distribution: Currently the build process is quite convoluted and error-prone. This will be improved and tested for several repos.
  • Bugfixing: Fix the most critical bugs in the list. Improve test coverage.

Installation

There is no official release. To test-drive ShoopDaLoop, you can choose between building from source or grabbing an (unsupported) pre-release build for your platform. See INSTALL for details.

License / Copyright

Other than Git submodules and files which explicitly mention a different copyright owner, copyright owner for all files in this repo is Sander Vocke (2023). For copying, see LICENSE.txt.

Credits

This project is only made possible due to many libraries and tools, including but not limited to:

  • Qt and Qt for Python;
  • JACK audio;
  • mido;
  • numpy;
  • scipy;
  • soundfile;
  • (lib-)samplerate;
  • boost::ut;
  • qoverage, coverage for QML / Python code coverage, resp.;
  • many others (see submodules and dependencies)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

shoopdaloop-0.1.0-cp39-abi3-win_amd64.whl (6.0 MB view details)

Uploaded CPython 3.9+ Windows x86-64

shoopdaloop-0.1.0-cp39-abi3-manylinux_2_31_x86_64.whl (6.0 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.31+ x86-64

shoopdaloop-0.1.0-cp39-abi3-manylinux_2_31_aarch64.whl (5.9 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.31+ ARM64

shoopdaloop-0.1.0-cp39-abi3-macosx_14_0_arm64.whl (5.5 MB view details)

Uploaded CPython 3.9+ macOS 14.0+ ARM64

shoopdaloop-0.1.0-cp39-abi3-macosx_12_0_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.9+ macOS 12.0+ x86-64

File details

Details for the file shoopdaloop-0.1.0-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for shoopdaloop-0.1.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 dd413464c88b098ed17dfa65034dd4af33965602969e25d1b042a008e04eaf83
MD5 45804372e5e6ef310a7f981682315f4b
BLAKE2b-256 09afa37dd3e54de092db242bf48700d630d10d094fbc06d523fe7523e37480df

See more details on using hashes here.

File details

Details for the file shoopdaloop-0.1.0-cp39-abi3-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for shoopdaloop-0.1.0-cp39-abi3-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 6b9555e071512dc94d361bc0a41863cd0d565ad243f3e15e3d3742d462fbce56
MD5 e18ebc2a192be7254749fe0c2bd6a6c4
BLAKE2b-256 3fb773321be77bc05b8bda6d370ff641be7b7a7bd38bee184f7a37c4e970f9d5

See more details on using hashes here.

File details

Details for the file shoopdaloop-0.1.0-cp39-abi3-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for shoopdaloop-0.1.0-cp39-abi3-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 490e2014233fc11bf982ba3f2376951f9604f5bb0d64045d3b2388bdfde85ca9
MD5 7f155ed383cb4347ceb3abd65e2f3d53
BLAKE2b-256 e0a2d9504cd0c372da9b9b1e64aa4a85291a348a246e20dbd3468d581eba8c3c

See more details on using hashes here.

File details

Details for the file shoopdaloop-0.1.0-cp39-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for shoopdaloop-0.1.0-cp39-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f0aa7e26d34b512cf0a3ff7586b01e16146aeaaf23cb8d64e131432fb8a6976e
MD5 900c68ee98d50ff1beffc8a527906dba
BLAKE2b-256 5730d6ab8f636bc611d09a23a78ce9f36b54a63f9dc0a2f4a48dfa20229a5466

See more details on using hashes here.

File details

Details for the file shoopdaloop-0.1.0-cp39-abi3-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for shoopdaloop-0.1.0-cp39-abi3-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 fa1abcd937b452eb3cba592e3cdbc7967b5f2491ae7d37581608ff0bdd4cf0e7
MD5 0d5d58a68b31e1a025513f65078122ef
BLAKE2b-256 8a408c595f9e9784f05519c13dc033c47d2e3f7ffadc647680c56be1857f31c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page