AmbiLoop 1.40 - September 23rd, 2002 Contents: Welcome What is AmbiLoop? How Does it Work? Features Using AmbiLoop License Welcome: Thanks for your interest in this fourth major release of the AmbiLoop software. AmbiLoop may be downloaded and used free of charge, subject to the license agreement shown on the download web page and at the end of this document. We hope you enjoy the program and welcome comments, questions and bug reports related to it. Chris MacDonald & Chris Roberts AmbiLoop@yahoo.com What is AmbiLoop? AmbiLoop is a Windows software application that uses your sound card to implement a real-time, multi-tracking audio looping recorder. How Does it Work? AmbiLoop basically functions like a multi-track endless audio tape loop or digital delay box with feedback. Simply set the desired loop time for a track and press the record button. Incoming audio is recorded in real time for the length of the loop. Recording continues seamlessly as the loop repeats and the previously recorded audio begins playing back at a volume set by the feedback control. Or just grab a single loop on the fly with the Insert Record feature. AmbiLoop will play up to eight tracks simultaneously. Loops can be slowed to half speed or played backwards, and a multimode filter and reverb algorithm are available for non-destructive, realtime effects processing. Features: (New to Version 1.40) * MIDI Control allows nearly all AmbiLoop commands to be triggered via MIDI. * Session load/save remembers loop and effect settings unique to your projects. * Configuration load/save allows customization of global system settings. * Mix-to-track allows real-time mixdown of up to seven tracks to an eighth track. * Reverb effect. * Pan slider allows panning of mono and stereo tracks. * Metronome improved with count-off and auto-mute features. (New to Version 1.32) * Windows size properly with large system font * small application icon corrected (New to Version 1.30) * Updated track interface. * Solo button per-track. * Slow and Reverse now selectable per-track. * Mute per-track. * Insert Record mode to automatically record a single, complete pass through a loop. * Set loop time via tempo and measures. * Change loop time for all tracks simultaneously. * Metronome available in play and/or record. * Option to use spacebar for Record instead of Play/Pause. (New to Version 1.20) * Play up to eight loops simultaneously. * Record and play loops in mono or stereo. * Stereo state variable filter with Low/Band/High/Notch outputs plus LFO. * Record and playback in reverse. (New to Version 1.10) * Improved user interface. * Undo last recording. * Half speed recording & playback. * Keyboard shortcuts for transport controls. * Monitor latent input. (new to Version 1.01) * Stereo loop recording and playback. * Seamless recording through loop end-to-beginning transition. * Loop times up to 100 seconds or more (memory limited). * Set loop point while recording. * Instant multiply doubles loop length. * Load and save loops as .wav files. * Multiple sample rates supported (depends on audio card). * Input and output device selection. * Adjustable latency time. * Uses PortAudio library technology (thank you PortAudio group!). Using AmbiLoop: SETTING INPUT: You will be recording audio that is sent to the input (usually "line" or "mic") of the selected sound card. See your sound card documentation for information on how to select which input will be used. Use the Windows volume control application to set the input monitoring level. If everything is working properly you should see AmbiLoop's Input Meter flickering as you make sounds. Be careful not to overload the input of your card, as audible distortion can occur. Avoid extreme or prolonged over-driving of the sound card. Consult your soundcard documentation for correct operation of your card. SETTING LOOP TIME: You may set a loop time by choosing the Options->Set_Loop_Time menu option. To enter the desired loop time in seconds, click on the Seconds "radio button" and enter a value (the Tempo value will be recalculated based on the new time and the current Measures value.) Or, select the Tempo radio button and enter a value for tempo and measures (the loop time will be automatically computed, 4/4 time is assumed). If you wish to change the loop time of all the tracks to the new value, check the "Set All Loops to This Time" box. To change the time of empty (unrecorded) loops only, check the box marked "Set Empty Loops to This Time." Click Okay to change the loop times. RECORDING A LOOP: Press the Record button on the Transport control and begin your performance. The Loop Position indicator will advance, showing where you are in the loop (numbers below the bar show time in seconds). Your performance is being recorded, and when the loop completes the Loop Position indicator will reset and whatever you played during the first pass through the loop will begin playing back. You are still recording at this point and may continue to play over what was previously recorded. If you want to stop the loop, press the Stop button on the Transport. To play back without recording, press the Play button. To pause the loop at its current position, press Pause. Press the Record or Play buttons to resume after Pausing. SETTING THE FEEDBACK AMOUNT: As you continue recording the sound will gradually die out at a rate specified by the Feedback slider. If the slider is set to 0, no recorded sound will be heard during recording. If it is set to 50, the recorded sound will become half as loud on each pass through the loop. If the slider is set to 100, the recorded sound never gets quieter. Be careful at high feedback settings, it's easy to "pile up" so much sound on top of itself that distortion occurs. The feedback slider has no effect during playback, only recording. SETTING THE LOOP POINT: If you begin recording and decide that you want the loop to end before the full loop time has passed, press the Record button again, or press the Set Loop button. This will cause the loop to recycle immediately and the loop length will be set to the position at the time the button was pressed. This only works during the first recording pass through the loop. After the loop has recycled once the feature is disabled. If you Erase the current loop, the feature will be enabled again for the first pass of recording. FROM RECORD TO PLAY WITHOUT STOPPING: If you are recording and want to switch to the play mode without stopping the loop, press the Record button a second time. (This only works after the first pass through the loop has completed, otherwise you will be setting the loop point as described in the paragraph above.) INSERT RECORDING: This feature can be used to record a loop exactly once from beginning to end. If you press the Insert button while playback is under way, the insert light will begin to flash green, indicating it is "armed". The insert light will switch to red and recording will begin as soon as the recording track wraps back to the beginning of its loop. Recording will continue until one pass through the loop has been made, then the insert will end and playback will continue without further recording. If the Insert button is pressed when playback is stopped (Stop light is lit), the Insert light will turn red and recording will begin immediately. One pass through the loop will be recorded and then the transport will switch to the Play mode. MIX-TO-TRACK RECORDING: The Mix To Track feature allows a loop to be recorded which will contain the sound from any other loops that are playing when recording takes place. This allows up to seven tracks to be mixed down onto one track. To use this feature, select the "Rec" button of the track on which you would like to record. Then select the "Mix To Track" check box located to the right of the Reverse button in the Transport Controls area. When the Record button is pressed, any loops that are set to play back will be recorded onto the recording track. You can change volume, pan, and effect settings during recording and these changes will be audible on the recorded track. The recorded track is an ordinary AmbiLoop loop, and may be any length (i.e. not necessarily the same length as the loops that are playing back.) MULTIPLYING A LOOP: If you have recorded a short loop but now want to record a longer passage over it, press the Multiply button. This will double the loop length and copy the old loop contents twice, seamlessly multiplying the loop by two. Now you can continue recording over the new, longer loop. This feature works at any time. USING MULTIPLE TRACKS: There are eight "tracks" available on which to record loops. By default you will record on Track 1. To select a different track for recording, simply click the Record "radio button" for the corresponding track in the Track section at the top of the AmbiLoop window. You can now record on the new track and any recording you did on Track 1 will remain untouched. You can move from track to track in this way, recording wherever you wish. The loop transport controls, feedback slider, and large loop position indicator will all refer to the track you on which are currently recording. MUTING A TRACK: If you don't want to hear a particular track, check its Mute box. Note that the current recording track must be unmuted or no sound will be recorded. SOLOING A TRACK: Click on a track's Solo box to silence all other tracks and hear the soloed track alone. You can solo multiple tracks at once. Solo even works on a muted track. Be sure to uncheck all the solo boxes when you are done. If you can't figure out why a particular track isn't playing, make sure that other tracks aren't being soloed. SETTING TRACK VOLUME: To change the playback volume of a track, move the track's vertical slider up and down. The meter just to the left of the slider will show the track's current "post fader" volume. SETTING TRACK PAN: To change the position of a track in the stereo field, move the horizontal pan slider (located below the Reverse checkbox) left or right. There is a "detent" at the center position so it is easy to re-center sounds. TRACK LOOP POSITION: The horizontal meter located above the track volume control indicates that track's current loop position. SAVING LOOPS: To save your loops to disk, choose the File->Save_Loop menu option. A dialog box will appear asking which of the eight tracks you would like to save. Select a track and click Okay. A file requester will appear allowing you to save your loop as a wave file. A warning will be displayed if there are unsaved loops when quitting via the File menu, or if a session save is attempted while unsaved loops exist. This warning can be disabled in the Preferences dialog. LOADING LOOPS: You can also load wave files into AmbiLoop and play them as loops. Select the File->Load_Loop menu option. A dialog appears which allows you to specify the track on which you would like the loop loaded. Select a track and click okay. A file requester will appear allowing you to find and load your file. SAVING SESSIONS: A "session" file in AmbiLoop is a file that remembers what loops are currently loaded, what track and effect settings are currently set, and the current tempo and measures. To save a session, select the File->Save_Session menu option. You can then enter a name and location for your session file. Note that loop data is not stored in the session file, only the location on disk where the loops can be found. LOADING SESSIONS: Select the File->Load_Session menu option to load a previously saved session file. If loop files were moved after the session file was saved, a requester will appear prompting for the new loop file locations. The session file must then be saved to record the new loop file locations. SAVING CONFIGURATION: The configuration file records the current settings for latency, metronome, preferences, and devices. It also records the current "session" information, such as loops loaded and track and effect settings. This information is stored in two files, SysConfig.xml and Default.session, located in the AmbiLoop directory. These settings will be automatically restored every time AmbiLoop is started. To save the configuration, select the File->Save_Configuration_as_Default menu option. LOADING CONFIGURATION: The default configuration file is automatically loaded when AmbiLoop starts up. To re-load the configuration file, select the File->Load_Default_Configuration menu option. REVERSE FEATURE: Select the Reverse checkbox for any track you would like to be reversed. The Reverse transport button causes playback direction to change for all selected loops. Press reverse to hear your loops backwards! If you have checked the Reverse box for the current recording track, you can record a loop while in reverse, then press Reverse again to hear the new loop backwards while previously recorded loops play forwards. UNDO FEATURE: It is possible to undo the last recorded layer of a loop by pressing the Undo button any time. There is only one layer of undo, so every time you press the record button, any previous recording is "commited" to the loop. If your system is tight on memory, try disabling the Undo feature in the Options->Preferences menu. The next time you set a new loop time or load a loop from disk, less memory will be needed for the loop. SLOW FEATURE: Select the Slow checkbox for any track you would like to be slowed. Press the transport Slow button to hear those loops at half speed. If you have checked the Slow box for the current recording track, you can now record at half speed as well. Pressing the Slow button again will return the selected loops to normal speed. Anything recorded at half speed will now sound twice as fast and the pitch will be doubled. METRONOME: Access the metronome features dialog box by selecting Options->Metronome from the menu. Check the "Audible on Record" box to enable the metronome sound to be heard during recording. Check the "Audible on Playback" box to hear the metronome during playback. Or check both if desired. The metronome volume may be adjusted with the volume slider. The metronome tempo is set to the last Tempo value entered in the Set Loop Time dialog box (Options->Set_Loop_Time from the menu). The metronome has a count-off feature which causes metronome clicks to play for a set number of measures before recording actually begins. To use this feature, click the "Count Off n Measures" box and enter the number of measures of count-off desired. When the Record button is pressed, the metronome clicks will sound for that many measures before recording begins. There is also an auto-mute feature, which causes the metronome to go silent after a set number of measures. Click the "Mute After n Measures" check box to enable this feature, then enter the desired number of measures for the metronome to sound before muting. Count-off measures are included in this total. Pressing Stop resets the mute measure counting. KEYBOARD SHORTCUTS: There are several keyboard shortcuts available for the transport controls: spacebar = Stop/Play (or Record via "Spacebar Record" preference) return = Stop/Play r = Record/Set Loop Point/Play p = Pause v = Reverse s = Slow l = Set Loop Point E = Erase Loop (uppercase E only, a small safeguard) m = Multiply u = Undo i = Insert Record If you wish to use the spacebar to trigger recording rather than play/pause, click the "Spacebar Record" checkbox in the Preferences dialog box (Options->Preferences from the menu). MIDI CONTROL: Nearly all AmbiLoop commands may be triggered via MIDI. To access this feature, select the Options->MIDI_Control menu option. This brings up the MIDI Control dialog box. Although the dialog contols may seem complicated at first, the operation is fairly simple. The goal of the dialog is to match up a MIDI command (called a "MIDI Trigger") with an action in the AmbiLoop software (called an "AmbiLoop Event"). After this mapping is made, any time the MIDI Trigger is received, the corresponding AmbiLoop Event will occur. To create a new mapping, click the New button in the lower left corner of the dialog. This will create a default trigger and map it to a default event. Now select the desired MIDI command and other parameters in the MIDI Trigger list boxes in the upper right of the dialog. AmbiLoop is also "listening" for MIDI commands at this point and will automatically set the MIDI Trigger information to correspond to any supported incoming MIDI command. Once you have set your MIDI trigger, select the AmbiLoop event you would like this trigger to control. When you are done editing, click the OK button to save your changes to disk, or Cancel to abandon your changes. USING THE FILTER: AmbiLoop features a modeled state variable filter that you can use to filter your loops during playback. The actual contents of the loops are unchanged, only the playback sound is affected. To use the filter, click the Enable box in the filter section. Then click the Effects box for the particular track you would like filtered (you can filter as many of the tracks as you wish). Select the Low radio button in the filter section. Now press Play and try moving the Frequency slider to the left. The loop sound will become more muffled until it finally disappears. Move the Resonance slider up to 50% and try moving the Frequency slider back to the right. You will hear a resonant filter sweep of your loop. If you wish to filter the left and right channels independantly, uncheck the Link box in the filter section. You can now move the Frequency and Resonance sliders individually. Filtering is non-destructive; your original loops are unaffected by the filtering. USING THE FILTER LFO: The filter features a dual Low Frequency Oscillator that can be used to automatically sweep the filter frequency. To use the LFO, check the Enable box in the LFO section. Set the Rate slider to around 1Hz and the Depth slider to 100%. With a filtered loop playing, you will hear the filter frequency rising and falling at a rate of one cycle per second. If you wish to modulate frequency of each filter independantly, uncheck the Link box in the LFO section. Now you can move the sliders individually. REVERB EFFECT: The Reverb effect is located after the filter in the effects "chain". To enable Reverb, click the Enable box in the Reverb controls area. The Length slider controls reverb time. The Mix slider controls the ratio of dry sound to reverbed sound. The Damping slider controls the high frequency rolloff of the reverb sound. MONITORING SOFTWARE INPUT: It is possible to monitor AmbiLoop's "latent" input (input after it has arrived for processing by the software). Check the box in the Options->Preferences dialog to do so. Note that this audio will be delayed somewhat, in proportion to system speed and other factors. For general usage, it may be better to listen to the "real time" input sound via the Windows mixer. AmbiLoop's latency compensation is designed to work with the real time input rather than the latent input. If you have a very fast system you may not notice much difference though. SETTING LATENCY (CLICKING AND POPPING): If you experience periodic clicking or popping while playing loops, you may need to increase the latency time. The default value is 70 which should be sufficiently large for most computers. Finding the right value is a matter of experimentation. To set latency, choose the Options->Set_Latency menu option, enter a value (units are in milliseconds) and click okay. Try increasing the value by 10 or 20 until the clicking is eliminated. Conversly if you have a fast system, you may be able to reduce the latency amount. AmbiLoop has a latency compensation mechanism so that newly recorded sound will match up with playback sound. This should greatly reduce any noticable effects of latency. Monitoring the latent input (described below) may help to more rapidly set a latency value as it allows you to immediately hear the effects of the latency time setting without needing to record a loop. SELECTING AUDIO DEVICES AND SAMPLE RATE: AmbiLoop will automatically select an audio input and output device (sound card) upon startup. If you have multiple sound cards or otherwise need to change devices, choose the Options->Select_Audio_Device menu option. A dialog box will be displayed with the available input and output devices. Clicking on a device will cause its properties to be displayed below the selection box. The sample rate at which AmbiLoop records can also be set in this dialog box by clicking on one of the rates shown. Click Okay to save your changes. License: AmbiLoop 1.xx may be downloaded and used without charge. Redistribution by any means is prohibited. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright 2002, Christopher MacDonald.