Abstract:
A programmed “Stutter Edit” creates, stores and triggers combinations of effects to be used on a repeated short sample (“slice”) of recorded audio. The combination of effects (“gesture”) act on the sample over a specified duration (“gesture length”), with the change in parameters for each effect over the gesture length being dictated by user-defined curves. Such a system affords wide manipulation of audio recorded on-the-fly, perfectly suited for live performance. These effects preferably include not only stuttering but also imposing an amplitude envelope on the slice being triggered, sample rate and bit rate manipulation, panning (interpolation between pre-defined spatial positions), high- and low-pass filters and compression. Destructive edits, such as reversing, pitch shifting, and fading may also alter the way the Stutter Edit is heard. More advanced techniques, include using filters, FX processors, and other plug-ins, can increase the detail and uniqueness of a particular Stutter Edit effect.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority from provisional application 60/803,210 entitled “Sound Recording Technique”, which is hereby incorporated by reference in its entirety. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    1. Field of the Invention 
         [0003]    The present invention relates to processing of digital audio and, more particularly, to a method and apparatus for manipulating the digital audio with various user defined effects. 
         [0004]    2. Description of the Related Art 
         [0005]    “Stutter Edit” encompasses a technique which is a unique way of manipulating digital audio in such a manner as to create an effect that cannot be done with contemporary software or plug-ins. There is currently no software available to create a so-called “Stutter Edit” sound using digital audio. “Stutter Edit” refers to a technique pioneered by the inventor which typically involves the rapid retriggering of a portion of the audio input and affecting the resulting sound sample with a variety of audio effects, all synchronized to a master tempo, and is conventionally performed by editing the sample by hand with the use of multiple programs. The resultant “Stutter Edit” sound may then be combined with the original and/or other sound sources. From this point there are various additional steps in molding the desired effect. After a basic “Stutter” effect is created (typically a continual retriggering of a specific, smaller slice of digitized audio from an associated buffer), it can be processed in many ways. With the manual techniques pioneered by the inventor, destructive edits, such as reversing, pitch shifting, and fading to alter the way the stutter is heard, are sometimes used. More advanced techniques, include using filters, FX processors, and other plug-ins, can increase the detail and uniqueness of a particular stutter effect. 
         [0006]    There are programs and plug-ins that perform and produce relatively simple “Stutter” effects which some have characterized as a “Stutter Edit”. but which lack the mathematical and aesthetic qualities of the sounds previously created by the inventor&#39;s manual Stutter Edit techniques. One such known process is the “SupaTrigga program by Smart Electronix. This program captures slices of audio and rearranges them in a random and generally unpredictable way. The “Buffer Override” program by DestroyFX has the ability to repeat small sections of audio at rates such that they sound as pitches, but offers no rhythmic repetition, slice selection, or built in effects. 
         [0007]    Other techniques involve methods that are restricting at best. Retriggering sounds via MIDI (Musical Instrument Digital Interface) is one potential solution to creating a simple “Stutter Edit” type sound. However, MIDI samplers are usually designed for studio use and do not provide the option for tempo synchronized capture of audio. MIDi has many problems and, due to bandwidth limitations, MIDI is inaccurate and unreliable. Also, the retriggering of a sound is only a beginning step in the creation of a Stutter Edit sound effect. 
         [0008]    The use of software samplers triggering audio from hard drives has also been tried. Besides the problems inherent in retriggering sounds via MIDI and digital audio from hard drives, there is more to the process in creating a desirable Stutter Edit effect. 
         [0009]    In summary, the known prior art software fails to provide a mechanism for conveniently replicating the structure, sound, and specific effects of the inventor&#39;s manual Stutter Edit. In particular, none of the currently available plug-ins provides for the real time processing of audio sufficient to produce a complex “stutter-edit” type sound including the ability to prepare, beforehand, a time varying combination of effects, and to then apply these effects in real time to a sound sample subsequently captured during a live performance. 
       SUMMARY OF THE INVENTION 
       [0010]    As envisaged by the inventor, a programmed “Stutter Edit” is a novel system for creating, storing and triggering combinations of effects to be used on a repeated short sample (“slice”) of recorded audio. The combination of effects (“gesture”) act on the sample over a specified duration (“gesture length”), with the change in parameters for each effect over the gesture length being dictated by user-defined curves. Such a system affords wide manipulation of audio recorded on-the-fly, perfectly suited for live performance. 
         [0011]    These effects preferably include not only stuttering but also imposing an amplitude envelope on the slice being triggered, sample rate and bit rate manipulation, panning (interpolation between pre-defined spatial positions), high- and low-pass filters and compression. Destructive edits, such as reversing, pitch shifting, and fading may also alter the way the Stutter Edit is heard. More advanced techniques, include using filters, FX processors, and other plug-ins, can increase the detail and uniqueness of a particular Stutter Edit effect. 
         [0012]    Another optional feature of the present invention is the ability to manipulate the levels and effect parameters of a second set of outputs which feed a companion plug-in “Catch”. For example, one audio stream passes through a reverb and a flanger, and another through a bandpass filter and a tempo-sync&#39;d delay line. Any number of Catch plug-ins can be initiated on other channels and each can receive and output one of these streams. 
         [0013]    In some embodiments, the rate at which slices are retriggered can be selected by alternative methods which overlap somewhat. The first is by selecting note lengths, such as quarter notes or sixteenth notes. The second is by choosing note names, whereby a plug-in can retrigger the slice so fast that it becomes an audible pitch corresponding to that note name. A matrix of note lengths and note names would then let the user select which specific values of each will be available for use on the stutter interpolation curve and pre-defined musical scales of note names can be turned off or on at once by the use of a drop-down menu. 
         [0014]    Preferably, the rate of retriggering can be changed over the course of the gesture length by the stutter interpolation curve. This either creates a smooth transition form the start value to end value, or can step at rhythmic intervals. When stepping, the plug-in will always choose stutter values selected by the user via the selection matrix. 
         [0015]    The specific slice of the buffer to used for stuttering is preferably selected with the mouse via a graphical representation of the buffer to select an audio signal of desired duration and store it in a buffer. Using that same graphic user interface, the user could also select a start and stop time for the entire gesture and choose the nature of each included effect, 
         [0016]    Alternatively specific slice can be chosen by other methods. For example, a “Follow Mode” changes the slice along with the playback of the host sequencer and a “Random Mode” randomly selects a new slice after completing playback of the old slice. 
         [0017]    The novel features which are characteristic of the invention, both as to structure and method of operation thereof, together with further objects and advantages thereof, will be understood from the following description, considered in connection with the accompanying drawing, in which the preferred embodiment of the invention is illustrated by way of example. It is to be expressly understood, however, that the drawing is for the purpose of illustration and description only, and is not intended as a definition of the limits of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWING 
         [0018]      FIG. 1  is a flow chart showing the components utilized in creating the unique sound effect of the present invention. 
           [0019]      FIG. 2  is a screen shot of a Graphic User Interface (GUI) which has a keyboard input and represents particular settings; and 
           [0020]      FIG. 3  is a screen shot of an alternative screen of the GUI showing a wave pattern used to determine starting points. 
       
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0021]    Turning to flow chart of  FIG. 1 , it will be seen that the Stutter Edit program works synchronously to produce the effect desired. Those connections which transmit audio signals are indicated by solid lines while connections transmitting control signals are shown as interrupted or dashed lines. 
         [0022]    At the heart of the program system  10  is a master clock  12  which pulses and locks internally to a host environment sequencer (not shown). Every event generated by the system  10  can be synchronized to the master clock  12 . The master clock  12  holds the tempo synchronization information for the entire system  10 . 
         [0023]    In the preferred embodiment, a frequency divider  14  is provided to convert the clock signals into timing intervals that can be used to generate desired effects. A “grab” switch  16  under control of signals from the frequency divider  14  acts to gate audio signals from an audio source  18  and to synchronize the storage of an audio segment of a selected musical interval in a buffer  20 . 
         [0024]    A Graphic User Interface (“GUI”)  22  allows for manual selection of values for the components dependant upon user input. The user can edit breakpoints and select particular curves which are created in a curve generator  24 . A length determiner circuit  26  receives inputs from the curve generator  24  and the frequency divider  14  to select the duration of a created effect. 
         [0025]    A selection reader  28  under control of the length determiner  26  obtains an audio sample from the buffer  20  of preselected duration. This sample is retriggered at a rate controlled by the length determiner  26 . An amplitude envelope  30  receives an audio input from the selection reader  28  and parameter controlling signals from the length determiner  26 . 
         [0026]    The envelope  30  implements the “buffer width” effect previously mentioned. When this effect is in line, it creates an amplitude envelope on each retriggered portion of audio, giving the output a “staccato” sound. The duration of the envelope changes over time according to a curve the user defines in the GUI. 
         [0027]    The audio signal is passed to a Sample Rate Reduce element  32  in which the input is resampled at a rate less than would be normally considered desirable for high quality audio. The result is a grainy “lo fi” sound which is often found in some genres of electronic music. 
         [0028]    A Bit Rate Reduce element  34  creates yet a different effect. The amplitude of the signal is quantized to a smaller set of values than would be normally used for high quality audio. The result is a loud, distorted version of the input which can be pleasing because of the odd harmonics the effect introduces. 
         [0029]    The audio signal next is applied to a low Pass Filter element  36 . This digital filter simply attenuates high frequencies and has the ability to add resonance at the cutoff frequency. Sweeping the cutoff over time according to a user defined curve in the GUI allows for a classic “filter sweep” sound which sounds like a drastic change in tone. 
         [0030]    The audio signal is next applied to a High Pass Filter  38  which behaves similarly to the low Pass Filter  36  except that frequencies below the cutoff frequency are attenuated. This, too, can be a desirable effect in some instances. 
         [0031]    The audio path goes next to a first Pan Module  40  which, when engaged, adds panning effects to the stereo input signal according to certain preset “Pan Patterns.” The pattern is stepped through at the same rate at which the audio is being retriggered. The module can morph from one pattern to another over time (according to a user defined curve), and in this case the pattern at any given time is the weighted average of the start pattern and the end pattern. 
         [0032]    For added effects, a Noise generator  42  independently generates “white noise”. The amplitude at which it outputs is controlled by a predefined curve, once it is triggered by the user. This “white noise” is applied to a Multimode Filter element  44  which is just like the low pass or high pass filter elements  36 ,  38  previously discussed except that it has the ability to be either one of those, or both, in the case of it being switched by the user to the appropriate “Band pass” mode. 
         [0033]    A second Pan Module  46  is a little different from the first Pan Module  40  in that it simply sweeps the noise back and forth between the left and right channels. In this case it&#39;s the rate at which it&#39;s sweeping that can be controlled by a user-defined curve. 
         [0034]    The outputs of the Pan Modules  40 ,  46  are combined in an adding circuit  48  and the output is presented to one terminal  50  of a 2 position switch, the other terminal  52  of which receives the output of the Buffer  20  without modification. The switch output  54  which alternates between the terminals  50 ,  52  transmits its signal to several destinations. 
         [0035]    A first destination is a crossfader  54  which serves as a switch between the Memory Buffer  20  (with the switch output  54  selecting either the audio stored in the buffer  20  or the processed signal from signal conditioners and modifiers) and the audio source  18 . It allows the user the option to output Memory Buffer  20  playback or the source audio. By switching to the audio source  18 , the user, in essence, bypasses the system  10 . 
         [0036]    The same signal that is applied to the cross fader is also transmitted to a bus channel  58  which connects to (in the present example) a Bus  1   60  further modifies the output signal through the use a reverb circuit  62  and a flanger  64 . 
         [0037]    Bus  2   66  receives its input from the bus channel  58 , modified by an additional band pass filter  66  and a delay circuit  68 . However, bus  3   70  and bus  472  receive their signals from switch output  54  without further modification. 
         [0038]    Addition processes will be implemented to include hard processing and sequencing of audio segments. When not synchronized to the host sequencer  40  by the master clock  12 , the system  10  can implement offline processing of playback audio segments. From this point many effects and processes can be applied for use in real-time playback. 
         [0039]    The buttons Stutter  86 , Reverse  88 , Reverb  90 , Delay  92 , BUS 1   94 , and BUS 2   96  allow the user to initiate certain effects. The primary one is, of course, Stutter  86 . Actuating the Stutter button  86  causes the triggering of the current configuration of effects. The other buttons allow implementation of other, simpler, auxiliary effects, not central to a Stutter Edit implementation. The Reverse button  88  serves as the trigger for the separate “NOISE” signal chain, described in connection with the flow chart of  FIG. 1 , above. The Reverb button  90  opens a gate to the Reverb  62  and Flanger  64  signal path that feeds Bus 1   60 , visible in the flowchart of  FIG. 1 . 
         [0040]    The Delay button  90  opens a gate to the Bandpass Filter  66  and Delay  68  signal chain that feeds Bus  2   70 , visible in the flow chart of  FIG. 1 . The Bus 1  button  92  feeds a copy of all audio output to Bus  3   72  in the flowchart. This is counterintuitive, of course inasmuch as internally the Buses are numbered 1-4. However, the user will consider Bus  160  as the Reverb Bus, Bus  2   70  as the Delay Bus, Bus  3   72  as Bus  1 , and Bus  4   74  as Bus  2 . The Bus  2  button  94  feeds a copy of all audio output to Bus  4   74  in the flowchart of  FIG. 1 . 
         [0041]    On the right side of the screen  80  there are additional control icons shown as buttons with a column legends “D” and “T”, which represent a Selection Matrix. This is not where one selects the start and end value of the Stutter. Rather, this is where one chooses exactly what note values are available as valid “start” and “end” values. The program also looks at this matrix when the user chooses to quantize a curve (“Step Mode”) to determine which note values are valid from which to pick when quantizing. Below these note value buttons  96  there is another group of note selection buttons  98  which resemble a small keyboard. Along with rhythmic lengths, note “names” (A, Bb, C#, etc) can also be made to be the Start or End values for the Stutter length. This small “keyboard” allows one to turn certain notes “on” or “off”, thereby choosing whether they are valid choices for this purpose. 
         [0042]    The “Keys” button  100  and “Wave” button  102  at the bottom of the screen  84  simply select which panels are visible, for example, the screen of  FIG. 2  or the screen of  FIG. 3 . The upper panel  82  can be either the Envelope panel ( FIG. 2 ) or the LFO panel, ( FIG. 3 ) depending on these toggles, just like the lower panel  84  can be either the Waveform Panel ( FIG. 2 ) or the Keyboard Panel ( FIG. 3 ). 
         [0043]    With Specific reference to  FIG. 2 , The top panel  82  is the Envelope Editor. The left 40% of the panel allows one to select which parameter&#39;s envelope is being edited at any given time. The right 60% of the panel shows that particular envelope in the foreground, with other envelopes lightly in the background. The envelopes are edited by clicking and dragging the vertical position of any of three points on the envelope. These three points are the start value, middle value, and end value. The vertical axis represents the total range of the parameter, while the horizontal axis represents the length of time over which the entire gesture (and therefore all parameter envelopes) takes place. It is with the envelope editor that one chooses the Start Value and End Value for the stutter length, but that is just one of the many parameters available for editing by the envelope editor. The curves shown in the figure are merely examples of possible curves that can be created by clicking and dragging the three points. 
         [0044]    The lower panel  84  is the Waveform Display. The main view in this panel is of the waveform of the stored samples in the buffer  20 , captured when the user activated the GRAB button  104 , visible below it. The waveform view is also a control that lets the user choose that point in the buffer which should be used as a start point, when drawing samples from the buffer for playback. The three menus  106 ,  108 ,  110  below control various aspects of the buffer. A first Menu button  106  lets the user choose how large the buffer is in units of one measure. A second Menu button  108  lets the user choose among various modes which alter the playback position over the course of the gesture in different ways. A third Menu button  110  lets the user pick the note durations (¼, ⅛, etc) to which a user selected point in the buffer is quantized. 
         [0045]    Turning next to  FIG. 3 , which is the alternative screen display selected by the “wave” switch  102 , the top panel  82  is the LFO Editor. This has four tabs, LFO A through LFO D  112 ,  114 ,  116 ,  118 . Each represents a LFO (Low Frequency Oscillator). As each all are identical, it is only necessary to explain the operation of one of them. An LFO runs continuously, outputting a signal that varies over time according to one of several user-selectable wave shapes. The frequency is low, so that the length of time the LFO takes to complete one cycle might be as long as two seconds. In Sync mode, the period can be “snapped” to musical lengths, such as I bar. The LFO is provides an even more dynamic quality to the parameters controlling the stutter effect. Each parameter receives its instantaneous value not just from the envelopes, but from the sum of the envelopes and a user-specified percentage of the LFO signal. Each LFO can be assigned to a different parameter. That is the reason there are four of them. 
         [0046]    The lower panel  84  is the Keyboard Editor  120 . The Keyboard Editor  120  allows one to assign “gestures” to different keys  122 . It is important, however, to keep a record of which gestures have been assigned to which keys  122 . The buttons “Assign”  124 , “Delete”  126 , “Save”  128  and “Load”  130  facilitate that process. 
         [0047]    Those skilled in the art may modify the teaching for particular applications. However, it is believed that a new and creative tool has been provided to the performing arts.