Skip to content

jaderdev/pi-loop-console

 
 

Repository files navigation

A linux based audio looper written in C++.

Licence current-version Demo Gitter

Description

Pi-Loop is a real-time audio looper application that enables users to create interactive musical sessions. One may use an external audio interface to connect a microphone and an instrument or to use the integrated sound card to test it.

This repo consists of 2 different modes that make use of alternative user interfaces to interact with the software:

  • PC mode
    This version runs directly on a Linux machine and allows the usage of computer components such as the keyboard to trigger events and the screen to access the output state of the program.
  • RPI mode
    This version runs on a Raspberry Pi and uses GPIO-based connected buttons and rotaries to enable user interaction with the program, and LEDs to access the output state of the program.

Both modes lie on the same codebase and can be configured on build. More information can be found in the installation section below.

Features

Key features that make PiLoop unique:

  • Input signal handling flexibility

    Individual ARM and Monitor (IN/OUT) states for each input channel allow users to choose on the fly which input channels will be streamed on the speakers and which will contribute to the creation of the current loop.

  • Jam saving feature

    Once decided, users can save their overall musical session as a wave file, by pressing a single button. Therefore, not only the loop stream is saved but the combined audio signal stream that has been streamed on the speakers during the session. This can be quite handy for musicians who want to save a session and use it to keep track of their inspirational dynamics or alternatively to use the saved file as a songwriting guide that can be further manipulated in a DAW afterward.

  • Individual effects on each input channel

    This increases the flexibility to add effects individually on each input channel.

Common features supported:

  • 2 input channels*
  • 1 stereo output channel*
  • 3 fully operational loop channels (read further in the manual page )
  • metronome
    • tap tempo
    • alter tempo
  • a menu feature to load, change, and save session presets.

*depends on the number of IO channels supported by the audio interface used.

Documentation

Documentation is uploaded as a pdf form.

To use an html version, install and run doxygen to generate the documentation files.

cd pi-loop-console
doxygen Doxyfile

The documentation files will be stored within the files/docs/html directory. Open the files/docs/html/index.html in a browser window to overview it.

If you are also interested in the code design, you may want to check the UML file.

Installation

Follow this link to access information on installing, configuring, and building PiLoop.

Additionally, to setup Pi-Loop in RPI mode on a Raspberry Pi, follow this link to obtain an overview on the connections made to the GPIO pins.

Usage

To run PiLoop, you have to run with sudo priviledge:

$ sudo ./piloop

To see how to use it, visit the manual page

Future_Work

The future work listing is summarized as follows:

  • Fix found bugs.
  • Improve existing features
  • Add new features
  • Upgrade

Visit the future-work list to get informed about what's next.

Feedback

If you have used this application and would like to contribute or share your feedback and recommendations on improvements, or if there is anything you would like to say about it by any means, please don't hesitate to share it on Gitter or contact me at [email protected].

Related

If you liked this project, you may also like:


🥁 🖥️ 🎸 🎺 🪕 🎻 🎹 🪗 🎷 🎧 🎵 🎶 😃 Enjoy PiLoop 😃 🎶 🎵 🎧 🎷 🪗 🎹 🎻 🪕 🎺 🎸 🖥️ 🥁


About

dsp console running on a headless raspberry pi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.3%
  • Shell 1.6%
  • CMake 1.3%
  • C 0.8%