METHOD AND APPARATUS FOR CONTROLLING VOLUME
Some embodiments of the invention provide a method for controlling the volume of an audio track. This method represents the volume of an audio track with a graph. This graph is defined along two axes, with one axis representing time and the other representing the volume level. A user can adjust the graph at different instances in time in order to change the volume level in the audio track at these instances. Different embodiments use different types of graphs to represent volume. For instance, some embodiments use a deformable line bar.
The invention is directed towards method and apparatus for controlling volume.
BACKGROUND OF THE INVENTIONControlling volume is often an important aspect of creating multimedia content. This is especially the case when several tracks of audio are mixed to create the content. Controlling the volume of several audio tracks, however, often requires expensive equipment. Less expensive equipment often does not provide sufficient control over the volume level. In addition, the prior art does not provide a visual and intuitive technique for controlling volume. Therefore, there is a need for a simple method that controls the volume of an audio track in a visual and intuitive manner.
SUMMARY OF THE INVENTIONSome embodiments of the invention provide a method for controlling the volume of an audio track. This method represents the volume of an audio track with a graph. This graph is defined along two axes, with one axis representing time and the other representing the volume level. A user can adjust the graph at different instances in time in order to change the volume level in the audio track at these instances. Different embodiments use different types of graphs to represent volume. For instance, some embodiments use a deformable line bar.
The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order not to obscure the description of the invention with unnecessary detail.
Some embodiments of the invention provide a method for controlling the volume of an audio track. The audio track can be a standalone track, or it can be associated with, or a part of, a visual presentation (such as a slide show, a movie, an animation, etc.). This method represents the volume of an audio track with a graph. This graph is defined along two axes, with one axis representing time and the other representing the volume level. A user can adjust the graph at different instances in time in order to change the volume level in the audio track at these instances.
Different embodiments use different types of graphs to represent volume. For instance, the embodiments described below use a deformable line bar. Specifically,
Above the rectangular box are a timeline 115 and a time marker 120. When the audio track is playing, the time marker 120 moves along the timeline 115 to specify the portion of the track that is playing at each instance in time. A user can also drag the time marker 120 to a particular time on the timeline 115 to listen to the audio track starting at that time.
In
Through the volume-control bar 105, the user can easily change the volume level. For instance, this bar has a volume-control knob 125 at its beginning. The user can drag this knob vertically up or down to increase or reduce the volume level of the audio track. This is illustrated in
The user can also change the volume level at any point in time by deforming the bar at that point in time. For instance,
The user can deform the bar through a simple click-and-drag operation. Specifically, to modify the bar, the user can (1) move the cursor to a portion of the bar that is not within a specified distance of a control knob, (2) perform a click-and-hold operation (e.g., press a mouse button down and hold it in a depressed state), (3) drag the cursor to a new location within the box 110, and (4) terminate the click operation (e.g., release the mouse button).
As shown in
During the entire click-and-drag operation, the volume level of the square knob remains the initial volume level of the bar at the position that the user clicked when he initiated the click-and-drag operation. In other words, the volume-axis value of the square knob 220 is the volume level of the audio track before it was changed. On the other hand, the volume-axis value of the round knob 225 specifies a new volume level for the audio track. The audio track will be at this new volume level unless the bar is modified again.
The knobs 220 and 225 are selectable data points that can be used to modify attributes of the ramp 210. All control knobs (such as knobs 125, 220, and 225) of the volume bar can be dragged through click-and-drag operations. Specifically, to drag any control knob, the user can place the cursor over the knob, perform a click-and-hold operation to select the knob, drag the knob to the desired location, and then terminate the click operation.
A user can increase or decrease the duration of the ramp by dragging the square knob 220 away or towards the round knob 225. Accordingly, the square knob will be referred to below as the duration-control knob.
The round knob 225 can be used to change the ramp's location or to change the new-volume level specified by the ramp. Accordingly, the round knob is referred to below as the volume-control knob.
In the embodiments described below, the duration-control knob of one ramp cannot move the volume-control knob of another ramp. However, the volume-control knob of one ramp can move the duration-control knob of another ramp. In fact, one ramp's volume-control knob can push another ramp's duration-control knob so much that the two ramp's volume-control knobs overlap. When two volume-control knobs overlap, the ramp that possesses the duration-control knob that is being pushed (i.e., the ramp that does not contain the volume-control knob that is doing the pushing) is deleted. A user can also delete a ramp by selecting it and pressing the delete key.
Some embodiments use one or more volume markers to specify the volume levels along the volume-control bar. These embodiments define an initial volume marker that specifies the volume level at the start of the volume-control bar. For each modification along the volume-control bar, these embodiments also define a volume marker to represent the change in the volume level due to the modification. For instance, in
The initial volume marker, which is specified at the start of the volume-control bar, does not have an associated ramp, since it is not defined for a volume-bar modification. Hence, its ramp duration is null. On the other hand, each volume marker that is specified for a volume-bar modification has an associated ramp, and the duration of this ramp is stored as an attribute of the volume marker. This duration is the difference between the time-axis values of the duration-control and volume control knobs of the volume bar modification. For instance, the ramp duration of a volume marker specified for the modification 235 in
If the click-and-drag operation is performed on a portion of a previously defined ramp, the process also modifies (at 910) the duration attribute of the volume marker of the previously defined ramp. For instance,
At 910, the process also sets the duration of the volume marker that it created at 910. In most situations, the process typically sets this value to 0.5 seconds. The process might set this value to less than 0.5 seconds when the volume marker is close to the temporal boundary of the audio track, or when the volume marker is defined in a middle of a previously defined ramp that is relatively short.
After 910, the process identifies (at 915) the current y-coordinate of the cursor. At 915, the process maps this coordinate to a volume level Current_Vol along the volume axis 117. Next, the process determines (at 920) whether the volume level Current_Vol is within a first threshold of a volume level of any other volume marker of the volume bar 105. If not, the process transitions to 930, which is further described below. Otherwise, to show each volume level that is within the first threshold of the volume level Current_Vol, the process specifies (at 925) a dashed line for the graphics system to draw.
After 925, the process transitions to 930. At 930, the process determines whether the volume level Current_Vol is within a second threshold of the volume level of any other volume marker of the volume bar. The second threshold is typically smaller than the first threshold. When the volume level Current_Vol is not within the second threshold of any other volume level, the process transitions to 940.
Otherwise, if the process identifies (at 930) a volume level that is within a threshold of Current_Vol, the process sets (at 935) the volume level Current_Vol to the identified volume level. For instance, in the example illustrated in
After 935, the process transitions to 940. At 940, the process records the volume level Current_Vol as the volume-level attribute of the volume marker. At 945, the process then identifies the current x-coordinate of the cursor, maps this x-coordinate to a time value along the timeline 115, and then records this time value as the time-value attribute of the volume marker. As mentioned before, this time value is the time value of the volume-control knob of the volume marker.
After 945, the process determines (950) whether the click-and-drag operation is still continuing. If so, the process returns to 915 to repeat its operations and update the volume marker attributes. Each time the process reaches 950, it has updated the volume marker's volume and time attributes. Hence, each time the process reaches 950, the graphics system can redraw the volume marker, the volume bar, and/or the other attributes of this bar to provide an up to date representation of the volume marker and volume bar on the display. The process terminates when it determines (at 950) that the click-and-drag operation has terminated.
Next, at 1215, it computes a new duration for the volume marker's ramp. This new duration equals the difference between the time value attribute of the volume marker (where this attribute corresponds to the time value of the marker's volume-control knob) and the time value identified at 1210. This difference can never be less than zero, as the duration-control knob can never pass the volume-control knob on the timeline. At 1215, the process records the new computed duration in the volume marker.
After 1215, the process determines (at 1220) whether the click-and-drag operation is still continuing. If so, the process returns to 1210 to repeat its operations and again update the volume marker duration attribute. Each time the process reaches 1220, it has updated the volume marker's duration attribute. Hence, each time the process reaches 1220, the graphics system can redraw the volume marker, the volume bar, and/or the other attributes of this bar to provide an up to date representation of the volume marker and the volume bar on the display. The process terminates when it determines (at 1220) that the click-and-drag operation has terminated.
As mentioned above, the duration of a particular volume marker can also be modified if another volume marker's volume-control knob pushes the particular volume marker's duration-control knob towards the particular volume marker's volume-control knob. In this circumstance, some embodiments use a process similar to process 1200, except that the process in this case deletes the volume marker when its ramp duration has reached zero, as at this point the two volume-control knobs of the two volume markers overlap.
The process 1300 initially identifies (at 1405) the volume marker that sets the volume level for the part of the audio track that starts the current play. When the audio track starts from its beginning, this volume marker is the initial volume marker associated with the initial volume-control knob 125. However, when the audio track starts at some time t within the track, the volume marker identified at 1405 is the volume marker that has a time-value attribute that (1) is before the start time t and (2) is the closest to the start time t. For instance,
Next, at 1410, the process supplies to the mixer 1310 the volume level that is specified by the volume marker identified at 1405. In the example illustrated in
After 1420, the process transitions to 1425, where it stays until the mixer has played the audio track up to the time value specified in the Current_Marker. The time value specified in this marker corresponds to the time that the ramp associated with this marker ends. When the process 1300 is at 1425 and the track's play time falls between the start and end times of the ramp associated with the Current_Marker, the process periodically (at 1425) (1) computes the volume level based on the ramp's attributes, and (2) supplies the computed volume levels to the mixer. As mentioned above, some embodiments specify the ramp as a smooth spline curve. Hence, the values computed at 1425 are value along this curve at different points in time.
Once the process 1300 determines (at 1420) that the play time has passed the time value specified in the Current_Marker, it transitions back to 1415. For instance, in
The above-described embodiments have numerous advantages. These embodiments allow a user to set easily different volume levels at different times for the same track. They enable the user to do this in a visual and intuitive manner. This volume control is especially beneficially when mixing several audio tracks, where at different times the volumes of different tracks need to be raised while others need to be lowered.
For instance, this is a useful feature when dubbing commentary over the audio track of a video clip. It is also useful when wishing to reduce the background music associated with a video clip in order to listen to the audio component of the video clip.
In
The bus 1705 collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of the computer system 1700. For instance, the bus 1705 communicatively connects the processor 1710 with the read-only memory 1720, the system memory 1715, and the permanent storage device 1725.
From these various memory units, the processor 1710 retrieves instructions to execute and data to process in order to execute the processes of the invention. The read-only-memory (ROM) 1720 stores static data and instructions that are needed by the processor 1710 and other modules of the computer system.
The permanent storage device 1725, on the other hand, is read-and-write memory device. This device is a non-volatile memory unit that stores instruction and data even when the computer system 1700 is off. Some embodiments of the invention use a mass-storage device (such as a magnetic or optical disk and its corresponding disk drive) as the permanent storage device 1725.
Other embodiments use a removable storage device (such as a floppy disk or Zip® disk, and its corresponding disk drive) as the permanent storage device. Like the permanent storage device 1725, the system memory 1715 is a read-and-write memory device. However, unlike storage device 1725, the system memory is a volatile read-and-write memory, such as a random access memory. The system memory stores some of the instructions and data that the processor needs at runtime. In some embodiments, the invention's processes are stored in the system memory 1715, the permanent storage device 1725, and/or the read-only memory 1720.
The bus 1705 also connects to the input and output devices 1730 and 1735. The input devices enable the user to communicate information and select commands to the computer system. The input devices 1730 include alphanumeric keyboards and cursor-controllers. The output devices 1735 display images generated by the computer system. For instance, these devices display IC design layouts. The output devices include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD).
Finally, as shown in
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.
Claims
1-22. (canceled)
23. A method for controlling a volume of an audio track, the method comprising:
- generating a graphical representation of a user-modifiable line within a timeline, the user-modifiable line representing a volume level during times depicted by the timeline, wherein the graphical representation is generated for display in a graphical user interface;
- identifying a select command received within the graphical user interface for modification of the line, the select command identifying a point of the line used to modify a selected portion of the line;
- modifying, in response to the select command, the graphical representation of the volume level to illustrate a change to the volume level during a period of time corresponding to the selected portion of the line, the graphical representation of the volume level modified to depict multiple portions including: a representation of the volume level before the selected portion of the line, a representation of the volume level within the selected portion of the line, and a representation of the volume level after the selected portion of the line; and
- specifying the volume level of the audio track according to a volume level before the selected portion of the line, a volume level within the selected portion of the line, and a volume level after the portion of the line, based on the user interaction with the line received in the graphical user interface.
24. The method of claim 23, wherein generating a graphical representation of a user-modifiable line includes generating a deformable line configured to move in the graphical user interface in correspondence to a determined amount of user interaction with the line identified from the select command.
25. The method of claim 24, further comprising generating a graphical representation of the audio track along the timeline.
26. The method of claim 25, wherein the deformable line is superimposed on the graphical representation of the audio track.
27. The method of claim 26, wherein identifying a select command received within the graphical user interface includes identifying when the line is being dragged in the select command, and wherein modifying the graphical representation of the volume level includes deforming the line based on the select command.
28. The method of claim 24, wherein the select command includes a movement of the point along the line from a first position to a second position at a point in time within the timeline.
29. The method of claim 24, wherein the deformed line is modified to include a deformity that is bounded by two points, wherein the two points are respective points in time within the timeline, wherein at least one of the two points is moveable to adjust the deformity.
30. The method of claim 29, wherein the at least one of the two points that is moveable is used to modify one or more of: the volume after the deformity, the duration of the deformity, or a location of the deformity in the deformable line.
31. A computer readable storage medium comprising a computer program for controlling a volume of an audio track, the computer program comprising instructions for:
- representing a volume level of the audio track during a period of time with a timeline for display in a graphical user interface, a first axis of the timeline representing the period of time and a second axis of the timeline representing the volume level;
- receiving a modification to a portion of a line of the timeline displayed in the graphical user interface, the modification provided from a user command to select and modify a portion of the line, resulting in: the volume level represented before the portion of the line, the volume level represented with the portion of the line, and the volume level represented after the portion of the line; and
- specifying the volume level of the audio track at different instances in time corresponding to a time location of the portion of the line.
32. The computer readable storage medium of claim 31, wherein the line is a deformable line configured to move in the graphical user interface in correspondence to a user interaction with the line determined from the user command.
33. The computer readable storage medium of claim 32, wherein the computer program further comprises a set of instructions for:
- providing a graphical representation of the audio track along the first axis; and
- superimposing the deformable line on the graphical representation of the audio track.
34. The computer readable storage medium of claim 31, wherein the user command includes a drag operation, and wherein the computer program further comprises sets of instructions for:
- identifying when the drag operation is applied to the line; and
- deforming the line based on the drag operation.
35. The computer readable storage medium of claim 31, wherein the computer program further comprises a set of instructions for displaying the line in the graphical user interface, and wherein the line is manipulated through select and drag operations received in the graphical user interface.
36. The computer readable storage medium of claim 31, wherein the line is modified to include a deformity in the portion of the line, the portion of the line being bounded by two points.
37. The computer readable storage medium of claim 36, wherein the two points are two data points defined along the axes, wherein at least one of the two points is moveable to adjust the deformity in the portion of the line.
38. The computer readable storage medium of claim 31, wherein the modification to the portion of the line produces a nonlinear line.
39. The computer readable storage medium of claim 38, wherein the modification to the portion of the line produces a spline curve in the portion of the line.
40. A computing system, comprising:
- a processor;
- a system memory;
- a display device; and
- instructions stored with the system memory, the instructions configured for execution with the processor to provide a graphical user interface for output to the display device to control a volume of an audio track, the instructions configured to implement operations to: represent a volume level of the audio track with a deformable line in a timeline area, wherein the timeline area is defined along two axes, including a first axis to represent time and a second axis to represent the volume level; receive a modification to the deformable line from a selection operation and a movement operation provided from user input in the graphical user interface; illustrate the modification to the timeline as a first point and a second point on the timeline, producing multiple portions of the line, the multiple portions of the line including a portion of the line before the first point, a portion of the line between the first point and the second point, and a portion of the line after the second point; and determine volume levels of the audio track at different instances in time corresponding to the modification to the deformable line.
41. The computing system of claim 40, wherein the deformable line in the timeline is configured to respond in the graphical user interface to a corresponding amount of movement of the line generated from the selection operation and the movement operation.
42. The computing system of claim 40, wherein the instructions are further configured to implement operations to:
- provide a graphical representation of the audio track along the first axis; and
- superimpose the deformable line on the graphical representation of the audio track.
43. The computing system of claim 40, wherein the display device is configured to display a display area for displaying a video clip, and wherein the instructions are further configured to implement operations to:
- represent the volume level of a first audio track for the video clip in the timeline, the timeline configured for receiving modifications that modify the volume level of the first audio track during portions of the displayed video clip.
44. The computing system of claim 43, wherein the instructions are further configured to implement operations to:
- represent the volume level of a second audio track for the video clip in a second timeline, the second audio track added to the video by a user, and the second timeline configured for receiving modifications that modify the volume level of the second audio track during portions of the displayed video clip.
Type: Application
Filed: Jul 27, 2012
Publication Date: Jul 25, 2013
Inventors: Glenn Reid (Woodside, CA), James Brasure (Cupertino, CA)
Application Number: 13/560,903
International Classification: G06F 3/0484 (20060101);