Giter Site home page Giter Site logo

looptool's Introduction

LoopTool

A collection of tools for audio loop files.

Description:

LoopTool is a collection of tools made for audio loops. LoopTool is able to split audio files into many equal parts or to extract a specific part, it can also put files in sequence or mix them together. It has also a lot more of handy features like applying fades, gain adjustement, normalize, convert to mono/stereo, etc etc... Its main goal is to prepare audio loops for live performence (with e.g. SuperBoucle, Luppp, Giada, Bitwig...). LoopTool is mainly based on SoX.

screenshot

Main Features:

  • Audio waveform
  • Play via jack
  • Graphical manipulations (divide, fades, select part)
  • Load/Save file
  • Set working directory
  • Audiofile browser
  • Queue list
  • Grid and bpm
  • Export click file
  • Split files into equal parts
  • Extract a specific part
  • Apply fade in and fade out to the parts
  • Change the gain
  • Normalize
  • Convert mono to stereo or stereo to mono
  • Put audio files in sequence
  • Mix audio files

Installation:

  1. copy the whole LoopTool folder on your system
git clone https://github.com/sonejostudios/LoopTool.git
  1. from this folder start LoopTool with:
python3 LoopTool.py

Requirements:

On Ubuntu/Mint:

sudo apt-get install python3 python3-tk sox sndfile-tools

Install PySoundFile via pip3:

pip3 install pysoundfile

Notes:

  • LoopTool is for now a Linux-only Software. It was tested only on LinuxMint 17 MATE, but it should work also on Cinnamon, GNOME and KDE. No OSX and Windows versions are available.
  • LoopTool was one of my playground for learning Python, so except a very bad code. For now it's fine for me, I learned a lot and it works, but it definitely needs a complete rewrite.. If you have suggestions or you want to help, please contact me. Otherwise, have fun with it, I hope it will be helpful for you!

Shortcuts:

  • Left-click on the waveform will select a part
  • Right-click on the waveform will remove the selection
  • Mouse-roll on any drop-down menu for a quick access (grid, fades, gain, divide)
  • Enter manual values on almost all the entries (e.g. gain = 1.5)
  • Space bar plays or stops the loaded file
  • Double-click a file in the file browser will add that file to the queue list
  • Double-click a file in the queue list will remove that file from the que list

Entries and Buttons:

Info:

  • WAV-File: Copy/Paste a .wav file there or type its path
  • ... : Opens a .wav file dialog
  • Load: Loads the file into LoopTool
  • Save As: Save the selected file as a new file (via save file dialog)
  • Play: Plays the selected file via Jack (snd-jackplay)
  • Stop: Stop playing
  • Samples: Total length (in samples) of the selected file
  • Seconds: Total length (in seconds) of the selected file
  • Channels: Amount of audio chanels in the file (mono/stereo/etc)
  • Samplerate: Samplerate of the selected file
  • Grid: Grid for help
  • Bpm: Calculates the bpm of the file according to the grid (4 beats/grid line)

One-File Editing:

  • Fade In: Add fade in via presets. The last one is a grid length and will stick to it
  • Fade out: Same as fade in, but for fade out
  • Gain dB: Change file(s) gain(s) on export
  • Normalize: Normalize file(s) gain(s) on export, this will overwrite Gain dB
  • Mono/Stereo. Force Mono or Stereo. (Mix two stereo channels together to mono or split a mono channel to stereo)
  • Split to files: Export all parts according to Divide
  • Export/Extract Part: Export the selected part only
  • Divide: Divides file into N parts
  • Extract Part: The choosen part
  • Part Length: Length of the selected part, in samples
  • Start Point: Starting point of the selected part

File Browser:

  • Shows the content of the working directory
  • Delete File: Delete the file permanently
  • ->: Add selected file to Queue List

Queue List (Many-Files Editing):

  • Shows the files in the queue list for processing
  • Remove: Remove selected file from the queue list
  • Clear: Clear the queue
  • Seq: Export all files in the queue list sequenced into one file (aka. Concatenate)
  • Mix: Mix all files in the queue list together into one file

Working Directory:

  • Workdir: Copy/paste file path or type the folder path.
  • ...: Open path via dialog
  • Load: Load path as a working directory for LoopTool

Get started:

  • Open a working directory or a wave file, press load, done.

Tips and Tricks:

  • Keep in mind, you can enter manual values on almost all the entries
  • Split a loop into parts and sequence them in a new order
  • Take the first or second half of a loop
  • Apply gain changes or normalize
  • Add fades
  • Split mono to stereo or mix stereo into mono
  • Try to figure out the bpm with the grid (4 beats in one grid part)

looptool's People

Contributors

sonejostudios avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

looptool's Issues

Read file

hi I tried running this but it gives me this error:

File "./LoopTool.py", line 1233, in
my_gui = MainWindow(root)
File "./LoopTool.py", line 83, in init
self.logo = PhotoImage(file='bg.png')
File "/usr/lib/python3.7/tkinter/init.py", line 3545, in init
Image.init(self, 'photo', name, cnf, master, **kw)
File "/usr/lib/python3.7/tkinter/init.py", line 3501, in init
self.tk.call(('image', 'create', 'imgtype', 'name') + options)
_tkinter.TclError: image type "imgtype" doesn't exist

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.