U.S. patent application number 13/560903 was filed with the patent office on 2013-07-25 for method and apparatus for controlling volume.
The applicant listed for this patent is James Brasure, Glenn Reid. Invention is credited to James Brasure, Glenn Reid.
Application Number | 20130191743 13/560903 |
Document ID | / |
Family ID | 38921065 |
Filed Date | 2013-07-25 |
United States Patent
Application |
20130191743 |
Kind Code |
A1 |
Reid; Glenn ; et
al. |
July 25, 2013 |
METHOD AND APPARATUS FOR CONTROLLING VOLUME
Abstract
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.
Inventors: |
Reid; Glenn; (Woodside,
CA) ; Brasure; James; (Cupertino, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Reid; Glenn
Brasure; James |
Woodside
Cupertino |
CA
CA |
US
US |
|
|
Family ID: |
38921065 |
Appl. No.: |
13/560903 |
Filed: |
July 27, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11949764 |
Dec 3, 2007 |
8265300 |
|
|
13560903 |
|
|
|
|
10337925 |
Jan 6, 2003 |
7319764 |
|
|
11949764 |
|
|
|
|
Current U.S.
Class: |
715/716 |
Current CPC
Class: |
G06F 3/0484 20130101;
G06F 3/04847 20130101; G10L 25/00 20130101 |
Class at
Publication: |
715/716 |
International
Class: |
G06F 3/0484 20060101
G06F003/0484 |
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.
Description
FIELD OF THE INVENTION
[0001] The invention is directed towards method and apparatus for
controlling volume.
BACKGROUND OF THE INVENTION
[0002] Controlling 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 INVENTION
[0003] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] 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.
[0005] FIG. 1 illustrates a deformable line bar of some embodiments
of the invention.
[0006] FIG. 2 illustrates a deformation of the volume-control bar
of FIG. 1.
[0007] FIGS. 3 and 4 illustrate a click-and-drag operation that
results in the deformation illustrated in FIG. 2.
[0008] FIG. 5 illustrates an example where the user drags a
duration-control knob associated with a deformity in the
volume-control bar.
[0009] FIG. 6 illustrates an example of moving a deformity in the
volume-control bar left or right along the timeline by dragging a
volume-control knob associated with this deformity.
[0010] FIG. 7 illustrates an example of moving the volume-control
bar up or down along a volume-level axis in order to change the
volume-level specified by a deformity in the volume-control
bar.
[0011] FIG. 8 illustrates the attributes of a volume marker in some
embodiments.
[0012] FIG. 9A illustrates a process that creates a volume
marker.
[0013] FIG. 9B illustrates an example of performing a
click-and-drag operation on a portion of a previously defined
deformity along the volume-control bar.
[0014] FIG. 10 illustrates an example of drawing a dashed line to
assist in the vertical movement of a volume-control knob.
[0015] FIG. 11 illustrates a process for modifying a volume marker
by performing a click-and-drag operation on the marker's
volume-control knob.
[0016] FIG. 12 illustrates a process for modifying a volume marker
by performing a click-and-drag operation on the marker's
duration-control knob.
[0017] FIGS. 13, 14, and 15 illustrate how some embodiments use the
volume markers specified along a volume bar to define the volume
level of an audio track.
[0018] FIG. 16 illustrates an example where the invention is useful
in mixing two audio tracks.
[0019] FIG. 17 illustrates a computer system with which one
embodiment of the invention is implemented.
DETAILED DESCRIPTION OF THE INVENTION
[0020] 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.
[0021] 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.
[0022] Different embodiments use different types of graphs to
represent volume. For instance, the embodiments described below use
a deformable line bar. Specifically, FIG. 1 illustrates a
deformable line bar 105 that is superimposed on a rectangular box
110. This box is a graphical representation of the audio track. In
some embodiments, the line bar 105 and the rectangular box are part
of a graphical user interface ("GUI") with which the user can
interact through traditional GUI operations, such as click
operations (e.g., to select an item), click-and-drag operations
(e.g., to move an item), etc.
[0023] 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.
[0024] In FIG. 1, the volume-control bar 105 is defined by
reference to two axes. One axis is the above-described horizontal
timeline 115, while the other is a vertical volume axis 117.
Different embodiments express different volume indicia along the
volume axis. For instance, in some embodiments, this volume axis
expresses the volume levels in terms of percentages that are to be
multiplied with a base volume value. The volume-axis value of the
volume-control bar 105 at any instance in time (i.e., at any point
along the time axis) represents the volume level of the audio track
at that instance. Initially, this bar is flat about a midrange
volume value M. In other words, the initial volume along the entire
track is equal to the midrange volume value M.
[0025] 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 FIG. 1. In some
embodiments, this knob is not visible or is only visible once the
user clicks on the start of the bar.
[0026] The user can also change the volume level at any point in
time by deforming the bar at that point in time. For instance, FIG.
2 illustrates the deformation of the volume-control bar 105
starting at a time t1. As a result of this deformation, the
volume-control bar 105 has three different portions. These are (1)
a flat portion 205 representing the audio track's volume before the
time t1, (2) a ramping portion 210 representing the track's volume
between times t1 and t2, and (3) a flat portion 215 representing
the track's volume after time t2. The flat portion 205 signifies
that the audio track's volume before the time t1 is constant and
equal to the midrange value M. The ramping portion 210 signifies
that the track's volume changes from the midrange value M to an
adjusted value A between the time t1 and a time t2. The flat
portion 215 signifies that the audio track's volume after the time
t2 is constant and equal to the adjusted value A. Two control knobs
220 and 225 specify the beginning and end of the ramping portion
210. These control knobs are further described below. Also, some
embodiments specify the ramp as a smooth spline curve, instead of
specifying it as a straight line.
[0027] 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).
[0028] FIGS. 3 and 4 illustrate the click-and-drag operation that
results in the modification illustrated in FIG. 2. FIG. 3 shows
that a cursor 305 is initially positioned at a location 310 on the
bar 105. As shown in FIG. 3, the moment that the user starts to
perform the click-and-drag operation at location 310, the two
control knobs 225 and 220 are defined on the volume bar. The knob
225 is initially defined at the location of the click, while the
knob 220 is a time interval (e.g., 0.5 seconds) behind the other
knob. These knobs are further described below.
[0029] FIG. 4 shows the cursor 305 after it has been dragged to a
new position 315. As shown in this figure, this dragging specifies
a ramp 320 that divides a previously undivided portion of the bar
(which in this case is the entire bar) into two portions 325 and
330 that are at different volume levels. Once the user drags the
cursor to the position 335, the user terminates the click-and-drag
operation (e.g., releases the mouse button). At this point, the
modification illustrated in FIG. 2 is specified. Some embodiments
automatically set the duration of a ramp to a particular value
(e.g., 0.5 seconds) in most instances when a portion of the volume
bar is deformed and a ramp is defined. This duration, however, can
be modified, as further described below.
[0030] As shown in FIG. 2, the click-and-drag operation creates two
knobs 220 and 225 that respectively specify the beginning and end
of ramp 210 (i.e., specify the beginning and end of the
deformation). The knob 220 is square and specifies the beginning of
the ramp, while the knob 225 is round and specifies the end of the
ramp. In the embodiments described below, the square knob is always
to the left of the round knob. As shown in FIG. 3, the round knob
coincides with the location of the cursor during the click-and-drag
operation, while the square knob typically remains a particular
time interval behind the round knob.
[0031] 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.
[0032] 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.
[0033] 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. FIG. 5 illustrates an example of the
operation of the square knob. In this example, the user drags the
knob 220 in a direction away from the knob 225 to increase the
duration of the ramp 210. A duration-control knob can also be moved
towards the round knob, in order to reduce the duration of the
ramp. The duration-control knob, however, cannot pass the round
knob.
[0034] 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. FIG. 6 illustrates an example of the operation
of the volume-control knob. This figure illustrates that the ramp
210 can be moved left or right along the timeline by dragging the
round knob 225 horizontally right or left along the timeline. FIG.
7 illustrates that dragging the round knob 225 vertically up or
down changes the volume-level specified by the ramp.
[0035] 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.
[0036] 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 FIG. 2, two volume markers are
defined, an initial volume marker for the initial volume-control
knob 125, and another volume marker for the modification 235
specified by the duration-control knob 220, ramp 210, and
volume-control knob 225. Each volume marker is associated with a
volume-control knob.
[0037] FIG. 8 illustrates the attributes of a volume marker in some
embodiments. These attributes include a time value, a volume value,
and a ramp duration. The time value and the volume value are
respectively the time-axis value and the volume-axis value of the
volume-control knob that is associated with the volume marker. For
example, in the example illustrated in FIG. 2, the time-axis value
t2 and the volume-axis value A are the time- and volume-values
associated with the volume-control knob 225 for this modification.
Hence, the time and volume values t2 and A are stored for the
volume marker of the modification 235. Similarly, in this example,
the time-axis value 0 and the volume-axis value M of the knob 125
are the time and volume values of the volume-control knob 125 that
is associated with the bar's initial volume marker.
[0038] 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 FIG. 2 is the
difference in the time-axis values (i.e., (t2-t1)) of the knobs 225
and 220.
[0039] FIG. 9A illustrates a process 900 that creates a volume
marker. This process starts (at 905) when it detects that a user
has started a click-and-drag operation on a portion of the
volume-control bar that is not within a specified distance of a
control knob. The process then creates (at 910) a volume marker for
the modification to the volume bar that the user has started to
make.
[0040] 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, FIG. 9B illustrates one such operation that
starts at a location 970 of a ramp 960 of a previously defined
volume modification. A volume-control knob 962 and a
duration-control knob 964 define the ramp 960. Once the user starts
his click-and-drag operation, the ramp 960 is modified.
Specifically, the location of its duration-control knob 964 is
given to a duration-control knob 966 of a new ramp 968 that is
defined in response to the click-and-drag operation. For the new
ramp 968, a volume-control knob 972 is defined to the left of the
start location 970 of the click-and-drag operation, as shown in
FIG. 9B. The duration-control knob 964 of the ramp 960 moves to the
right of the start location 970. Hence, when the click-and-drag
operation is performed on the previously defined ramp 960, the
process modifies the duration attribute of the volume marker of the
ramp 960 to reflect the movement of this ramp's duration-control
knob 964. In the example illustrated in FIG. 9B, if the user starts
to drag the cursor to the right of the location 970, the
volume-control knob 972 starts to modify immediately the ramp 960.
The handling of such a modification will be described further
below.
[0041] 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.
[0042] 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. FIG. 10 illustrates an
example of drawing such a dashed line. In this example, the user is
specifying another modification 1005 after a first modification 235
on the volume bar 105. The modification 1005 is specified by a
volume control knob 1010, which follows the cursor's movement.
Accordingly, when the cursor's gets close to the volume level prior
to the modification 235 (i.e., when the volume level of the knob
1010 is within a first threshold of the volume level of the initial
volume control knob 125), the process 900 specifies a dashed line
1015, which the graphics system draws to specify the volume level
of the initial volume control knob 125.
[0043] 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.
[0044] 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 FIG. 10, the process
will define the volume level Current_Vol to be the volume level
1015, when the control knob 1010 gets within a second threshold of
the volume level 1015. In some embodiments, the process also causes
(at 935) the cursor to snap to the volume level identified at 930.
Some embodiments snap to, and/or specify dashed lines for, only
volume levels of volume markers that are before the current volume
marker.
[0045] 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.
[0046] 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.
[0047] FIG. 11 illustrates a process 1100 for modifying a volume
marker by performing a click-and-drag operation on the marker's
volume-control knob (such as knob 225 for the volume marker 235 in
FIG. 2). In some embodiments, this process 1100 starts when the
user clicks within a certain distance of the volume-control knob
and drags this knob by a slight amount. In other words, this
click-and-drag operation starts (at 1105) the process 1100. Once
this process starts, its operation is similar to the operations
after 910 of the process 900 of FIG. 9A. In other words, the
operations 915-950 of the process 1100 are similar to the similarly
numbered operations 915-950 of the process 900. These similar
operations are not further described below in order not to obscure
the description of the invention with unnecessary detail.
[0048] FIG. 12 illustrates a process 1200 for modifying a volume
marker by performing a click-and-drag operation on the marker's
duration-control knob (such as knob 220 for the volume marker 235
in FIG. 2). In some embodiments, this process 1200 starts (at 1205)
when the user (1) clicks within a certain distance of the
duration-control knob of a volume marker, and (2) drags this knob
by a slight amount. Once the process detects this click-and-drag
operation, the process identifies (at 1210) the current
x-coordinate cursor. It maps (at 1210) this coordinate to a time
value along the time axis 115.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] FIGS. 13 and 14 illustrate how some embodiments use the
volume markers specified along a volume bar to define the volume
level of an audio track. FIG. 13 illustrates a mixer that receives
audio tracks 1 to N and produces an output audio based on these
tracks. The mixer also receives volume levels for each track from a
volume setting process 1300 for the track.
[0053] FIG. 14 illustrates one example of a volume setting process
1300. Some embodiments perform this process each time a user
directs these embodiments to play an audio track that has set
according to the invention. The user might direct the audio track
to start playing from its beginning or from some other part of the
track. As mentioned above by reference to FIG. 1, a user in some
embodiments can drag a timer marker 120 along a timeline 115 to
specify where to start playing the audio track.
[0054] 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, FIG. 15 illustrates
an example of an audio track that starts to play at a time t1. In
this example, the process 1300 identifies (at 1405) the volume
marker that is associated with the volume modification 1505. This
is because this volume modification occurs before the time t1 and
is the closest modification to this time. At 1405, the process
defines the marker that it identified at 1405 as the
Current_Marker.
[0055] 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 FIG. 15, this volume level is
the level 1510. The process then determines (at 1415) whether there
is another volume marker after the Current_Marker on the volume
bar. If not, the process terminates. Otherwise, at 1420, the
process identifies the volume marker that is after the
Current_Marker on the volume bar, and specifies this identified
marker as the new Current_Marker. In FIG. 15, the next volume
marker is the marker for the modification 1515.
[0056] 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.
[0057] FIG. 15 provides an example of the periodic computation at
1425. Specifically, this figure illustrates that while the track's
play time falls between the start and end times t2 and t3 of the
ramp 1520, the process 1300 computes four volume levels, where each
volume level is generated at a different time during the audio's
play. The process computes the first level 1525 at time t4, the
second level 1530 at time t5, the third level 1535 at time t6, and
the fourth level 1540 at time t3.
[0058] 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 FIG. 15, the process
transitions back to 1415 after it computes the fourth level 1540
and then determines that the play time has past t3. The operation
of the process 1300 from 1415 was described above.
[0059] 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.
[0060] 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.
FIG. 16 illustrates one such example. This figure illustrates the
GUI interface of a movie editing application. In this example, a
user is utilizing the editing application to work on a video clip
that has an audio track associated with it. The volume level of the
audio track appears as a line bar 1605 that is superimposed on the
rectangular box 1610, which represents the video clip. This line
bar is superimposed on this box since the user has checked an edit
volume button 1640.
[0061] In FIG. 16, the user has added a second audio track to the
clip. This added audio track appears as a rectangular box 1615
below the box 1610. A line bar 1620 is superimposed on the box
1615. This line bar represents the volume level of the second audio
track. As shown in FIG. 16, the volume level of the video clip's
audio component is increased in a time interval 1625, while the
volume level of the added audio track is decreased in this
interval. This allows the viewer to hear the video clip's audio
much more clearly during the timer interval 1625. Another volume
feature in FIG. 16 should be noted. This feature is the volume
control bar 1630. After selecting an audio track (which can be
either the audio component of a visual clip or a separate audio
track), the user can drag a marker 1635 along this bar to reduce or
increase the overall volume level.
[0062] FIG. 17 presents a computer system with which one embodiment
of the invention is implemented. Computer system 1700 includes a
bus 1705, a processor 1710, a system memory 1715, a read-only
memory 1720, a permanent storage device 1725, input devices 1730,
and output devices 1735.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] Other embodiments use a removable storage device (such as a
floppy disk or Zip.RTM. 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.
[0067] 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).
[0068] Finally, as shown in FIG. 17, bus 1705 also couples computer
1700 to a network 1765 through a network adapter (not shown). In
this manner, the computer can be a part of a network of computers
(such as a local area network ("LAN"), a wide area network ("WAN"),
or an Intranet) or a network of networks (such as the Internet).
Any or all of the components of computer system 1700 may be used in
conjunction with the invention. However, one of ordinary skill in
the art would appreciate that any other system configuration may
also be used in conjunction with the present invention.
[0069] 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.
* * * * *