i n s t r u m e n t

developments:

 

aL00p, aL00p_standalone

(max/msp, simon2003-11, current vers. 1.1)

Part of "praxisTime" (for Fa. Wohlhart) - a toolsuite to support practicing music. And also part of ombOS.

abstract:

al

aL00p is an audio-looper particularly for practicing purposes. You can use e.g. drum/baselines to play along with your own instrument, or to learn/transcribe a solo. You can change the tempo and pitch independently and easily set the loop-section of a loaded track, stop/start playback from your midi-instrument, even with an automatic offset and more features.

Note that aL00p is written with two zeros (if you happen to search for it)

background:

Practicing music by playing along with recorded tracks, either to use them as harmonic or rythmic backtrack, or to study the playing and interpretation of a master, is a preferred practicing method today.

With a standard audio-player it is not very comfortable to stop and start at a particular point in the track and replay a certain phrase. Already to leave the instrument and manually operate the player can be obstructive and usually you dont want to continue exactly where you stopped, but rather a bit before, either because the stopping was delayed by the time you needed to switch between instrument and computer, or because you need some time to switch back, or because you need some beats before your cue... In aL00p you can define

  1. a loop that plays exactly the phrase you want to learn and
  2. an offset to automatically let the startpoint jump back that amount of time

Also, if you happen to use a midi-instrument, you can define keys to control aL00p from your instrument. You can alter the tempo of the playback as well as the pitch (independently). And there is a record function to check your playing.

The practiceTime project aims at integrating program-use seamlessly into the practicing process, so it is necessary to carefully define a set of useful features and leave others out and decide which controls can and should be done from the instrument and which from the computer.

The user-interface of aL00p does not conform to the (Apple) user interface guidelines for good reasons: The program is not meant to be used only once in a while, but daily. So after some time the user will be aware of the features also without descriptors (there are mouse-over descriptors) and get used to the condensed appearence of aL00p: it leaves screenspace to additionally display sheet music or to write down notes or comments. The function-hierarchy is flat, so the user can make adjustments with a minimum of interaction (switching beween instrument and computer).

Usecases

Some of the USECASES of aL00p are:

  • Just a typical audioplayer, that can also patch-play an entire folder of audiofiles (aka playlist).
  • I also use it to speed up, or slow down audio-books. And i set the offset to -10sec, because i somtimes like to hear a sentence again. Thats just done with a quick hit on the spacebar.
  • Practice rhythms, by playing along with rythm-loops. Loops can easily be readjusted. having these loops in a folder allows to quickly switch between loops.
  • Harmonic practice, by playing along with harmonies (e.g. a blues line) or a second voice. With the folder-menu and patch-play selected a full program of music can be assembled.
  • Learn/practice an instrumental solo, eased by features, such as:
    • jumping to certain tune-positions,
    • looping difficult parts,
    • slowing down difficult phrases (at constant pitch)
    • pitch-shifting to play in a different root
  • Transscribe a solo or tune, where the automatic offset is helpful to start again before the position, where you have stopped.
Quick Start

Start the aL00p application. Moving the cursor over the interface-elements shows their name. Before starting to play a track, it may be necessary to select the appropriate audio-device in the in&out-panel.

Open the function menu and load a single audio file, or select a folder containing audio files and select one of these from the track-menu. After loading, it should appear as a waveform and start playing automatically.

If the patch-play toggle is checked when playback of a track has ended, the next track in the folder will be played automatically and so on. If the patch-play toggle is not checked then the loaded track will be looped.

A vertical line shows the current position and a green area shows the looping region, which is actually played. After loading the entire track-length is covered with the loop-region, so the entire track will be looped. To change the looping-region use the select tool (default) and click at the desired starting point in the waveform and drag to the desired endpoint.

Uncheck the stop-toggle to stop the playback. Checking it again will start playback from track-start. If you stopped the playback with the sop/continue toggle it will pause and continue from there. There are also keyboard-commands and midi-commands to control playback with the computer keyboard, or a midi-instrument.

interface-elements:

The program-interface consists of the following elements:

  • audio-volume slider and peak level indicator
  • tempo-slider & reset-button
  • pitch-slider & reset-button
  • start/stop-toggles
  • playback/record indicator
  • start-offset
  • graphical waveform-editor
  • function menu (load audio, loadfolder, record, open PREFS)
  • track-folder menu
  • patch-play toggle
  • track start/end, selection start/end - indicator/edit
  • wave form vertical zoom
  • selection crop
  • waveform manipulation tools (select,loop, move, draw)
  • select-all button
  • more/less preferences button

Preferences Pane

  • in&out-button
  • speaker select
  • function-assignment menu
  • key assign-toggle, modifier- and key indicator
  • midi-key assign-toggle, modifier- and key indicator
  • loopmode (one-shot, forward, bidirectional)
  • loop method (none, 4-point, linear)
  • mouse-modes
  • keyboard-asignment
  • midi-asignment
F E A T U R E S - main screen

Interface-elements Descriptions - move the mouse over an element to see its descriptor !

Function Menu:

load audio - loads various audio-formats (.mp3, m4a, aif, wav, raw, au) and presents them as grafical wafeforms. The name of the track is inserted to the foldermenu at first position, in order to be seen. (Note, that these inserts to the track-folder menu can not be loaded from there, unless they happen to be in the loaded folder).

load folder - opens a dialog to choose a folder with audiofiles, the names of which are put into the below folder menu. This allows to quickly choose from a set of tracks to be practiced.

record - changes to record-mode. start/stop- and offset- control the recording process. Save not yet implemented. In future there will be the option to include the accompaning track in the recording.

open PREFS - opens the preferences pane (audio/midi settings, loop-modes, mouse-modes, key-assignment)

open in&out devices - audio- and midi-device selection and settings

folder menu - "load folder" in function menu populates this menu with audios

patch-play toggle - when checked, it plays all consecutive tracks in the track-folder, below the one that has been loaded (like a playlist). After having played the remaining list it loops the last track. Also unchecking the toggle returns to the loop-play-mode.

start/stop - both toggles can be used to stop the playback. The left toggle starts playback from the start of a track, the right continues where it has been stopped before. start/continue can also be triggered with the space-bar, start/stop is assigned to the enter-key and the back-arrow starts immediately (without stopping) at the loop-start. These default assignments can be altered. Also there are default assignments for a midi-instrument.

start-offset - number-box to assign the amount of milliseconds before the current stop-position, from where the track should start when the playback continues (with the left start-toggle, or space-bar). Usually after a stop you want to continue a bit before you stopped, in order to bring your fingers from the computer back to the instrument or to find the beat before you start playing. If the numberbox shows 0, playback continues exactly where it stopped.

tempo slider - changes the tempo of the playback independently from pitch (thanx to the code-example "free-elestic" by devinkerr.com). The reset-button to the left resets to original.

pitch slider - changes the pitch of the playback by half-tones. The reset-button to the left resets to original pitch.

volume slider - changes the volume. The peak level indicator shows the level.

wave form editor - grafically shows the waveform and allows to modify it, using the mouse-tools.

track start/end number boxes - a kind of horizontal zoom. Note that the loop is not affected.

selection start/end number boxes - here the loop-points (that may have been roughly set with the mouse-tool) can be finetuned. Use the trackstart/end-boxes to zoom down to the wave-level if you need to find exact loop points (zero-crossing).

wave form vertical zoom - adjust vertical extension of the waveform

select all button - selects the whole waveform, as a shortcut to selecting it with the mouse-tool

crop - crops a loop-selection (destructive)

grafical wave form editor tools:

select - I-beam to click and drag with the mouse to select a loop-range.

loop - uses vertical mouse movement to grow and shrink the selection length, while horizontal movement is mapped to position.

move - navigate the waveform. Vertical mouse movement lets you zoom in and out, while horizontal movement scrolls through the time range of the x-axis. Clicking on a point in the graph makes it the center reference point for the rest of the mouse event (until the mouse button is released). This lets you "grab" a spot and zoom in on it without having to constantly re-center the display.

draw - edit the values of the waveform, using a pencil tool. Clicking and dragging in draw mode directly changes the buffer~ samples, and can not be undone. Sample values are interpolated linearly as you drag, resulting in a continuous change, even if you are zoomed out too far to see the individual samples.

Max-Window- opened from the window-menu. It documents the sequence of files that have been loaded and displays error-messages. The text can be copied and pasted into a practicing-logbook (which may be a future enhancement of aL00p)

al
F E A T U R E S - PREFS pane

...open either via the function menu, or the more/less-button.

in&out-panel button - audio- and mididevice setting. For a description see in&out

speaker-select - assign output to particular speakers (in a multispeaker setup)

key-assignments - in order to change the default assingments go into the function menu and select one of the aL00p-functions. Then check the assignment toggle and enter the key or key-combination. In the lower row the same can be done for a midi-key-assignent.

loop-mode menu - one-shot = no looping, forward loops forward, bidirectional loops forth and back.

loop-method menu - none, 4-point is the default method (though cpu-intensive), linear (cpu-cheap)

unit menu - specifies the unit of time measurement to be used in displayed values

mouse-modes (10) -

none -

down - current selection start and end values to be sent only when you click inside the waveform.

up - selection start and end to be sent only when you release the mouse button, after clicking inside the waveform.

downup - selection start and end to be sent both when you click inside the waveform, and when the mouse button is released.

continuous - selection start and end to be sent on click, release, and throughout the drag operation, whenever the values change.

Assign keyboard-keys to functions (default assignments):

  • space-key : toggle stop/continue (right toggle)
  • enter : toggle stop/start (left toggle)
  • down-arrow : immediate start at loop-start

Assign midi-key to functions -

start/continue is assigned to control 74: >64 (rocker on WX5)

to make your own assignments:

  1. select the function from the assignment-menu
  2. you see what it is currently assigned to
  3. check the toggle
  4. press the button on the keyboard or midi-instrument
   

known bugs

win: folderwatcher_beginproc: ReadDirectoryChangesW failed

win max6 app does not start, prob for key reasons

would be nice to delete the inserted tracks from trackmenu, but i get a bad number error. could be the wrong position (but it is 0) or the wrong name. could not resolve sofar.

download: aL00p1.1.zip

This is a stripped down version of the current aL00p, which additionally supports:

  • recording (mic, line, internal viea soundcard or soundflower)
  • saving loops
  • loop-tools (fading-modes, -shapes, length)

if interrested, contact us.

back to main projects

http://uea-io.de/wax/instrument/instr_al00p.html

contact