US20110145743A1 - Locking relationships among parameters in computer programs - Google Patents

Locking relationships among parameters in computer programs Download PDF

Info

Publication number
US20110145743A1
US20110145743A1 US12/972,416 US97241610A US2011145743A1 US 20110145743 A1 US20110145743 A1 US 20110145743A1 US 97241610 A US97241610 A US 97241610A US 2011145743 A1 US2011145743 A1 US 2011145743A1
Authority
US
United States
Prior art keywords
value
parameter
gui
control
adjusting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/972,416
Inventor
Ron Brinkmann
Dan Candela
Eric Larsen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US12/972,416 priority Critical patent/US20110145743A1/en
Publication of US20110145743A1 publication Critical patent/US20110145743A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials

Definitions

  • GUI Graphical User Interface
  • a Graphical User Interface may allow a user to make adjustments to large numbers of parameters. These could include locations, timing, orientations, colors and effects. The user may set each parameter independently. This could take a great deal of time.
  • the optimum blur effect and the optimum virtual camera position may both depend on speed.
  • a change in the speed would make a change in blur effect necessary.
  • the change in speed would also make a change in virtual camera position necessary. So, in this example, the user must change three separate parameters in order to implement a decision to change the speed.
  • Some embodiments provide a method for locking in a mathematical relationship between a set of at least two parameters in a computer program.
  • the method selects a first parameter.
  • the method defines a mathematical relationship that ties the value of the first parameter to the value of a second parameter.
  • the mathematical relationship can be a mathematical function, a Boolean function, or a lookup table.
  • the relationship could be directly entered by the user, or the computer program itself could derive it from the user's actions.
  • the first parameter can be locked to the mathematical relationship.
  • the lock prevents the value of that parameter from being changed, except by changing the value of the second parameter.
  • FIG. 1 illustrates an overview of a GUI of some embodiments.
  • FIG. 2 illustrates the results of changing the value of a parameter by a GUI slider.
  • FIG. 3 illustrates the results of changing the values of two parameters by dragging an object in the GUI.
  • FIG. 4 illustrates the results of changing the value of a parameter by entering a new value.
  • FIG. 5 illustrates the results of entering a mathematical formula for a parameter.
  • FIG. 6 illustrates a dependent parameter changed as a result of changing an independent parameter.
  • FIG. 7 illustrates the lack of protection for the mathematical formula of an unlocked parameter.
  • FIG. 8 shows the mathematical formula re-entered and a lock-in option selected.
  • FIG. 9 shows the results of changing an independent parameter when a mathematical formula is locked in for a dependent parameter.
  • FIG. 10 illustrates that an individual control can be disabled with respect to a locked parameter, but not disabled with respect to an unlocked parameter.
  • FIG. 11 shows a chain of dependencies of parameters.
  • FIG. 12 shows two parameters locked to functions of one independent parameter.
  • FIG. 13 shows a parameter depending on two different independent parameters.
  • FIG. 14 shows two separate sets of mathematical relationships among parameters.
  • FIG. 15 illustrates a parameter of a first object, locked to a mathematical formula that depends on a parameter from a separate object.
  • FIG. 16 illustrates the parameters of the separate object.
  • FIG. 17 demonstrates that a change in the value of a parameter of the separate object, can cause a change in the value of a parameter of the first object.
  • FIG. 18 shows the parameters of the first object after the change.
  • FIG. 19 is a flowchart of the steps a user might take when using a GUI representing one embodiment.
  • Some embodiments provide a method for locking in a mathematical relationship between a set of at least two parameters in a computer program.
  • the method selects a first parameter.
  • the method defines a mathematical relationship that ties the value of the first parameter to the value of a second parameter.
  • the relationship could be directly entered by the user, or the computer program itself could derive it from the user's actions.
  • the first parameter can be locked to the mathematical relationship.
  • the lock prevents the value of that parameter from being changed, except by changing the value of the second parameter.
  • the computer program automatically makes adjustments to the value of the second adjustable parameter, in response to changes in the value of the first adjustable parameter. These adjustments maintain the mathematical relationship between the value of the first adjustable parameter and the value of the second adjustable parameter. Because the second adjustable parameter is locked, the value of that parameter is constrained to follow the mathematical formula on which it depends, and only that formula. In other words, controls that would otherwise directly change the value of the parameter have no effect while the parameter is locked.
  • Some embodiments implement this method by using a GUI with an intuitive set of controls.
  • a GUI's intuitive controls allow a user to easily set up mathematical relationships between the values of two or more parameters and to lock parameters.
  • the mathematical relationship makes the value of one parameter (the dependent parameter) dependent on the value of at least one other parameter (the independent parameter). Consequently, when the user changes the value of the independent parameter or parameters, the GUI changes the value of the dependent parameter in order to maintain the mathematical relationship between the parameters.
  • GUI controls e.g. sliders, data entry boxes, etc.
  • GUI controls e.g. sliders, data entry boxes, etc.
  • GUI changes the value of the dependent parameter only in response to changes to the value of the independent parameter.
  • FIGS. 1-18 illustrate one example of such a GUI.
  • the pictured GUI 100 is the GUI of a video editing application.
  • video editing application broadly and generically refers to any software application that allows the user to modify, composite, generate or otherwise edit digital images and/or video clips. It will be clear to those skilled in the art that these figures illustrate merely some possible embodiments. Those skilled in the art will understand that other embodiments could be used in any type of computer application or operating system.
  • the GUI 100 of the video editing application allows various visual and audio effects to be applied to video clips and individual images.
  • the video editing application has a large number of adjustable parameters.
  • the GUI 100 provides intuitive tools that allow the user to relate nearly any parameter to nearly any other parameter via a mathematical relationship.
  • Some parameters that can be related to each other are: time, x-coordinate, y-coordinate, a z-coordinate, a rotation of the object about an axis, a radius of an object, a blue color setting of an object, a green color setting of an object, a red color setting of an object, an alpha of an object, a reflectivity of an object, a transparency of an object, an intensity of an object, a blur feature of an object, a speed of an object, a height of an object, a width of an object, a falloff radius of an object, an opacity of an object, a resolution of an object, an angular speed of an object, a pitch of a part of a sound file, a
  • the GUI 100 allows the user to associate the value of one parameter with the value of another, through a mathematical relationship.
  • the GUI 100 also allows the user to lock the first parameter. Before those features are described, some general features of the GUI 100 will be described by reference to FIGS. 1-4 .
  • FIG. 1 is a screen capture of GUI 100 .
  • This screen capture illustrates that the GUI 100 contains a parameter control area 101 and a display area 102 .
  • Display area 102 shows the effects of the video editing on a frame of video clip.
  • Display area 102 can contain a number of objects.
  • display area 102 contains a single circular shape, object 130 .
  • Parameter control area 101 provides the user access to a number of parameters that affect objects in the display area 102 .
  • Each parameter shown in parameter control area 101 has multiple GUI controls that can directly affect the value of that parameter. Many of these controls also act as indicators of the value of the parameter.
  • display box 114 shows the value of a parameter, xCenter 110 , and can also be used to directly enter a new value for that parameter.
  • Parameter control area 101 contains parameters defining object 130 .
  • Parameters in parameter control area 101 include xCenter 110 , and yCenter 120 .
  • XCenter 110 and yCenter 120 determine the horizontal and vertical position, respectively, of object 130 .
  • Changing the value of xCenter 110 causes object 130 to be repositioned horizontally.
  • Changing the value of yCenter 120 causes object 130 to be repositioned vertically.
  • Controls in parameter control area 101 include display box 114 , slider 116 , slider track 118 , display box 124 , slider 126 , and slider track 128 .
  • the value of xCenter 110 can be changed by: (1) directly entering a new value or formula in display box 114 , (2) clicking and dragging slider 116 , (3) clicking on slider-track 118 , or (4) dragging object 130 horizontally with a dragging tool (not shown).
  • the value of yCenter 120 can be changed by: (1) directly entering a new value or formula in display box 124 , (2) clicking and dragging slider 126 , (3) clicking on slider-track 128 , or (4) dragging object 130 vertically with a dragging tool (not shown).
  • Indicators of xCenter 110 include display box 114 , slider 116 , and the horizontal position of object 130 . These will hereafter be called, collectively, “xCenter indicators”.
  • indicators of yCenter 120 include display box 124 , slider 126 , and the vertical position of object 130 . These will hereafter be called, collectively, “yCenter indicators”.
  • FIG. 2 illustrates the results of changing the value of yCenter 120 by clicking and dragging slider 126 .
  • the yCenter indicators have changed to reflect the new value of yCenter 120 .
  • FIG. 3 illustrates the results of changing both the value of xCenter 110 and the value of yCenter 120 . These changes were caused by the user clicking and dragging a dragging tool 340 .
  • the xCenter indicators have changed to reflect the new value of xCenter 110 .
  • the yCenter indicators have changed to reflect the new value of yCenter 120 .
  • FIG. 4 illustrates the results of changing the value of yCenter 120 by entering a new numerical value, specifically “100”, in display box 124 .
  • the yCenter indicators have changed to reflect the new value of yCenter 120 .
  • the GUI 100 provides an option for the user to set up a mathematical relationship between two or more parameters.
  • FIGS. 5-7 illustrate the effects of mathematical formulas on unlocked parameters.
  • the formulas in the figures described below were chosen for demonstration purposes. They are not the only possible formulas. Any formula, including but not limited to, a mathematical function, a Boolean expression or a look-up table would be within the scope of the invention.
  • FIG. 6 illustrates the results of changing the value of xCenter 110 by moving slider 116 .
  • the value of yCenter 120 has changed in accord with the formula in display box 525 .
  • the xCenter indicators have changed to reflect the new value of xCenter 110 .
  • the yCenter indicators have changed to reflect the new value of yCenter 120 .
  • FIG. 7 illustrates this lack of protection. Specifically, this figure shows the result of using a control of a parameter, yCenter 120 , which has a mathematical formula, but is not locked. The figure shows the results of moving slider 126 while yCenter 120 is not locked. Moving slider 126 caused the value of yCenter 120 to change. The change is in accord with slider 126 , and without regard for the mathematical formula. Moving slider 126 also caused the mathematical formula in display box 525 (not shown) to be deleted.
  • moving slider 126 deletes the mathematical formula.
  • the slider is not the only control that has that effect. In fact, had any control for yCenter 120 been used, the use of that control would have caused the deletion of the mathematical formula.
  • the departure of a parameter from its mathematical formula is sometimes unwanted. Preventing the unwanted departure of parameters from their mathematical formulas is one aim of some embodiments. This aim is accomplished by use of a lock-in option.
  • the lock-in option is activated for a parameter by selecting a lock-in toggle corresponding to that parameter.
  • the lock-in toggle can also optionally be de-activated. While a lock-in toggle is activated, the corresponding parameter may be described as “locked” or “locked to a mathematical formula”. While a lock-in is de-activated, the corresponding parameter may be described as “unlocked”.
  • FIG. 8 illustrates the effects of locking yCenter 120 to a mathematical function of xCenter 110 .
  • the mathematical formula that was previously used in FIG. 5 was previously used in FIG. 5 :
  • lock-toggle 822 has once again been entered in display box 124 .
  • the formula is again shown in display box 525 .
  • lock-toggle 822 has been selected, locking parameter yCenter 120 .
  • the locked status of yCenter 120 is illustrated by a change in the appearance of lock-toggle 822 .
  • lock-toggle 822 is now a picture of a dark lock on a light background rather than a light lock on a dark background.
  • display box 124 which is highlighted as a result of the locking.
  • locking yCenter 120 locks out the controls that directly change the value of yCenter 120 .
  • Locked out controls include slider 126 , display box 124 , and display box 525 .
  • dragging object 130 in the vertical direction no longer has any effect.
  • attempting to use any of those controls results in no change to the value of yCenter 120 .
  • Such an attempt delete the mathematical formula.
  • yCenter 120 is locked to the mathematical formula in display box 525 , not to some particular value. If the value determined by the formula changes, the value of yCenter 120 changes along with it.
  • the mathematical formula is a function of xCenter 110 , so if the value of xCenter 110 changes, the value of the formula changes.
  • the lock-toggle 812 for xCenter 110 is not active, so parameter xCenter 110 is not locked. Consequently the value of xCenter 110 can be changed by using the usual controls for xCenter 110 .
  • FIG. 9 demonstrates the fact that the value of yCenter 120 can be changed by changing the value of xCenter 110 .
  • the figure shows the results of changing the value of xCenter 110 , while yCenter 120 is locked to the mathematical function of xCenter 110 .
  • the value of xCenter 110 has been directly changed.
  • the value of yCenter 120 has changed in accord with the formula in display box 525 .
  • the yCenter indicators have changed to reflect the new value of yCenter 120 .
  • the previously described controls are each capable of affecting the value of only one parameter. However, in this GUI, some controls can affect more than one parameter. Locking a parameter can lock out the effects that control would have on the locked parameter, while leaving the effects of the control on unlocked parameters unchanged.
  • yCenter 120 is locked, but xCenter 110 is not.
  • Dragging tool 340 ordinarily affects both xCenter 110 and yCenter 120 .
  • the figure shows the effects of dragging object 130 in the horizontal direction using the dragging tool 340 .
  • Object 130 has moved in the horizontal direction, indicating a change in the value of xCenter 110 .
  • time is shown on time scale 1150 .
  • each increment of time 1152 on time scale 1150 represents one frame of video.
  • the value of time for this figure is represented by the position of indicator 1154 .
  • Another parameter, first shown in FIG. 12 is radius 1260 .
  • Radius 1260 determines the radius of object 130 . The larger the value of radius 1260 , the larger the radius of object 130 .
  • FIG. 11 illustrates a chain of dependencies with three parameters. In the figure are: (1) one independent parameter, time, (2) a first dependent parameter, xCenter 110 , which depends on time, and (3) a second dependent parameter, yCenter 120 , which in turn depends on xCenter 110 .
  • Parameter xCenter 110 is locked to the formula, “time*400/75”, shown in display box 1115 . This formula is a function of time.
  • Parameter yCenter 120 is locked to the formula, “256 ⁇ pow((xCenter ⁇ 200)/12.5,2)”, shown in display box 525 . This formula is a function of xCenter 110 .
  • FIG. 12 illustrates such a relationship.
  • two parameters depend on a single other parameter.
  • xCenter 110 and radius 1260 each depend on time.
  • Each of the two dependent parameters is locked to its own formula.
  • the value of xCenter 110 is determined by the function of time, “time*400/75”, shown in display box 1115 .
  • Parameter xCenter 110 is locked to this mathematical formula.
  • the value of radius 1260 is determined by the function of time, “time+10”, shown in display box 1265 .
  • lock-toggle 1262 of radius 1260 has been selected, locking radius 1260 to its mathematical formula.
  • object 130 would move to the right and grow larger as time increases.
  • FIG. 13 illustrates this type of relationship. In the figure, one parameter is dependent on the value of two other parameters.
  • radius 1260 is locked to a function dependent on xCenter 110 and yCenter 120 .
  • the function, “xCenter*yCenter/1000”, of xCenter 110 and yCenter 120 that determines the value of radius 1260 is shown in display box 1265 .
  • xCenter 110 and yCenter 120 are unlocked, radius 1260 is locked.
  • the radius of object 130 increases when the value of xCenter 110 increases. Similarly, the radius of object 130 also increases when the value of yCenter 120 increases.
  • FIG. 14 illustrates this type of relationship.
  • one parameter is dependent on the value of a second parameter and a third parameter is dependent on the value of a fourth parameter.
  • radius 1260 is locked to a function dependent on time.
  • yCenter 120 is locked to a function dependent on xCenter 110 .
  • the parameters in the first relationship are radius 1260 and time.
  • the parameters in the second relationship are xCenter 110 and yCenter 120 . No parameter from the first relationship is found in the second relationship. No parameter from the second relationship is found in the first relationship. This demonstrates the ability of some embodiments to set several mutually independent relationships among parameters. Then, once the relationships are set, to lock-in the relationships.
  • GUI 100 Previous examples of the use of the GUI 100 only used a single object and its parameters. Some embodiments, including the GUI 100 , are not limited to a single object. In the GUI 100 multiple objects can be used in the same video editing session.
  • the GUI 100 allows the values of parameters that define one object to depend on the values of parameters that define another object. In other words, a parameter can be locked to a mathematical relationship that depends on a parameter from a separate object.
  • FIGS. 15-18 demonstrate this option of GUI 100 .
  • FIG. 15 illustrates two objects and a parameter of the first object that depends on a parameter of the second object.
  • there are two objects in display area 102 object 1535 and object 130 .
  • the parameters of object 1535 are not shown in this figure.
  • the parameters displayed in parameter control area 101 apply to object 130 .
  • radius 1260 is locked to the formula in display box 1265 .
  • Part of the formula is in front of a period.
  • that part of the formula indicates that the independent parameter is a parameter of a different object.
  • object 1535 In this case, object 1535 .
  • the GUI 100 calls that object “RGrad2”. Because of the reference to RGrad2, the “xCenter” after the period refers to the xCenter parameter of RGrad2 (object 1535 ), not to the xCenter 110 (not shown) of object 130 .
  • parameter control area 101 has been switched from displaying the parameters of object 130 to displaying the parameters of object 1535 .
  • parameter control area 101 shows that object 1535 has its own position co-ordinates, one of which is xCenter 1670 .
  • the value of xCenter 1670 is displayed in display box 1674 .
  • the value of xCenter 1670 can be changed by moving slider 1676 .
  • the value of radius 1260 depends on the value of xCenter 1670 . Because of this dependency, changing the value of xCenter 1670 would change the radius of object 130 .
  • FIG. 17 demonstrates that a change in the value of xCenter 1670 changes the radius of object 130 . Because xCenter 1670 is the horizontal position parameter of object 1535 , changing the value of xCenter 1670 has changed the horizontal position of object 1535 . Because of the mathematical formula in display box 1265 (not shown), changing the value of xCenter 1670 has also changed the radius of object 130 . Note that the value of xCenter 1670 , shown in display box 1674 is now “633”.
  • radius 1260 The agreement of the value of radius 1260 with its mathematical formula is shown in FIG. 18 .
  • parameter control area 101 has been switched back to showing the parameters of object 130 .
  • the formula in display box 1265 “RGrad2.xCenter/3”, takes the value of xCenter 1670 (as noted previously, “633”) and divides it by 3 to determine the value of radius 1260 .
  • the value of radius 1260 shown in display box 1264 , is now “211”.
  • FIG. 19 is a flowchart of the steps a user might take when using a method that represents one embodiment.
  • an object is selected.
  • the object has adjustable parameters.
  • a parameter is chosen. This parameter will be a dependent parameter.
  • the program accepts a mathematical formula.
  • the mathematical formula will set the value of the dependent parameter.
  • the mathematical formula is based on the value of at least one other parameter.
  • the formula will set values for the dependent parameter based on the formula and the values of those other parameters.
  • the lock option for the parameter is selected. Note that in many embodiments the user has the option of locking the parameter at any time. It doesn't have to be locked immediately after the formula is entered. Once the parameter is locked, at least some of the controls are deactivated.
  • the user decides whether to set another formula for another parameter. Note that in many embodiments, the user has the option of going back at any time to set up new mathematical relationships, and to change the old ones.
  • GUI 100 make no distinction among types of parameters for the purpose of setting up mathematical relationships.
  • the previously described figures show relationships among several types of parameters.
  • FIGS. 5-6 and 8 - 10 show mathematical relationships between parameters of similar type to each other, specifically xCenter 110 and yCenter 120 . Both parameters are location coordinates. The parameters measure distance along two different axes. Those embodiments allow a relationship between those two parameters. That demonstrates that the embodiments could relate parameters that are of similar type to each other.
  • FIGS. 11-12 show mathematical relationships between parameters of different types from each other, specifically xCenter 110 , radius 1260 , and time.
  • Parameter xCenter 110 is a location coordinate.
  • Parameter time is a video frame index.
  • Parameter radius 1260 is determines the size of an object. These parameters measure three different types of units. Those embodiments allow relationships among these three parameters.
  • Some embodiments may have limitations on the allowable values of the parameters.
  • the user may choose a dependent parameter.
  • the user may set a mathematical formula for the dependent parameter.
  • the user may lock the dependent parameter to the mathematical formula. Then the dependent parameter will remain consistent with the mathematical formula, but with some exceptions.
  • the value of the dependent parameter is fixed at some limit.
  • the limit could be a design limitation.
  • the program might not allow the value of a co-ordinate to exceed the maximum or minimum values of the on screen display.
  • the limit could also be an inherent limit of the program.
  • An example of such limit would be where the mathematical formula returns a number larger than the program can handle.
  • the parameter if the value generated by the mathematical formula exceeds one of these limits the parameter will not be equal to the value of the formula. Instead, the value of the parameter will be set by the program as the value of the limit. In some other embodiments, the program will set the parameter at a null value when the value generated by the mathematical formula exceeds the limit.
  • the toggles in the previously described embodiments are options related to the individual parameters. Other embodiments are also possible. In some other embodiments, there may be a separate area in which to enter mathematical formulas. With the lock-in option being related to the formulas rather than parameters. Whether the lock-in is characterized as locking the parameter or locking the formula, those embodiments are still embodiments of the invention. Locking the formula is equivalent to locking the parameter.
  • GUI embodiments illustrated above all demonstrate the invention using one window with multiple sub-areas. This is not a requirement of the invention. Some other embodiments may involve multiple windows. Some of those embodiments may have parameters in one window being referred to in another window. Some other embodiments of the invention may involve a full screen. Some other embodiments of the invention may involve a text box. Still further embodiments may use parameters that are not displayed at all. One example of such an embodiment would be where an independent parameter and its values are contained in an object or file that the user refers to, but does not open. Still other embodiments may involve more or fewer sub-areas.
  • deactivated controls which can interchangeably described as “inactive”, “deactivated”, “cannot be activated”, or “locked out” controls, may manifest in other ways in other GUIs.
  • Another way of making the controls inoperative would be to remove them from the GUI while the parameter is locked.
  • Still another way of making the parameters inoperative would be to allow the controls to change the value temporarily while the control is being actively manipulated, but revert to the locked in mathematical relationship once the control is no longer being actively manipulated.
  • Yet another way of making the controls inoperative would be to allow the control itself to be moved freely, but not have that move affect the value of its corresponding parameter. All of these ways, along with any other way of deactivating the controls, are within the scope of the present invention.

Abstract

Some embodiments provide a method for locking in a mathematical relationship between a set of at least two parameters in a computer program. The method selects a first parameter. The method defines a mathematical relationship that ties the value of the first parameter to the value of a second parameter. In some embodiments, the mathematical relationship can be a mathematical function, a Boolean function, or a lookup table. The relationship could be directly entered by the user, or the computer program itself could derive it from the user's actions. In some embodiments, the first parameter can be locked to the mathematical relationship. The lock prevents the value of that parameter from being changed, except by changing the value of the second parameter. Some embodiments implement this method by using a GUI with an intuitive set of controls.

Description

    BACKGROUND OF THE INVENTION
  • Many computer applications and operating systems have user adjustable parameters. These parameters are often adjustable without regard to other parameters. They can be adjusted despite the fact that an adjustment to one parameter may make an adjustment to a second parameter desirable or necessary.
  • For instance, a Graphical User Interface (“GUI”) may allow a user to make adjustments to large numbers of parameters. These could include locations, timing, orientations, colors and effects. The user may set each parameter independently. This could take a great deal of time.
  • In existing computer programs, often a change in the value of one parameter makes it necessary to change the values of several other parameters. The user of such a program may find that a particular relationship between two or more values (e.g. the values of speed and blur effect) is optimum. The difficulty arises when the user later needs to change one of the variables. For instance, the user might change the value of the first variable, (e.g. speed), and this change would destroy the optimum relationship between the first variable and the second variable (e.g. blur effect). The user would then have to change the second variable to compensate. Thus, every change in one variable requires the user to go back and change the other accordingly.
  • The problem becomes even worse when more than two variables are related to each other. For example, in a video compositing application, the optimum blur effect and the optimum virtual camera position may both depend on speed. In such a case, a change in the speed would make a change in blur effect necessary. The change in speed would also make a change in virtual camera position necessary. So, in this example, the user must change three separate parameters in order to implement a decision to change the speed.
  • Most computer applications do not provide a good set of tools for maintaining optimum relationships among parameters. Thus, there is a need for a method of locking in relationships between two or more parameters of a computer operating system or application. There is also a need for a GUI to allow a user to practice the method in an intuitive manner. Ideally, such a GUI will enable the user to quickly and easily adjust multiple parameters.
  • BRIEF SUMMARY OF THE INVENTION
  • Some embodiments provide a method for locking in a mathematical relationship between a set of at least two parameters in a computer program. The method selects a first parameter. The method defines a mathematical relationship that ties the value of the first parameter to the value of a second parameter. In some embodiments, the mathematical relationship can be a mathematical function, a Boolean function, or a lookup table. The relationship could be directly entered by the user, or the computer program itself could derive it from the user's actions. In some embodiments, the first parameter can be locked to the mathematical relationship. The lock prevents the value of that parameter from being changed, except by changing the value of the second parameter. Some embodiments implement this method by using a GUI with an intuitive set of controls.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several features of some embodiments of the invention are illustrated in the following figures.
  • FIG. 1 illustrates an overview of a GUI of some embodiments.
  • FIG. 2 illustrates the results of changing the value of a parameter by a GUI slider.
  • FIG. 3 illustrates the results of changing the values of two parameters by dragging an object in the GUI.
  • FIG. 4 illustrates the results of changing the value of a parameter by entering a new value.
  • FIG. 5 illustrates the results of entering a mathematical formula for a parameter.
  • FIG. 6 illustrates a dependent parameter changed as a result of changing an independent parameter.
  • FIG. 7 illustrates the lack of protection for the mathematical formula of an unlocked parameter.
  • FIG. 8, shows the mathematical formula re-entered and a lock-in option selected.
  • FIG. 9 shows the results of changing an independent parameter when a mathematical formula is locked in for a dependent parameter.
  • FIG. 10 illustrates that an individual control can be disabled with respect to a locked parameter, but not disabled with respect to an unlocked parameter.
  • FIG. 11 shows a chain of dependencies of parameters.
  • FIG. 12 shows two parameters locked to functions of one independent parameter.
  • FIG. 13 shows a parameter depending on two different independent parameters.
  • FIG. 14 shows two separate sets of mathematical relationships among parameters.
  • FIG. 15 illustrates a parameter of a first object, locked to a mathematical formula that depends on a parameter from a separate object.
  • FIG. 16 illustrates the parameters of the separate object.
  • FIG. 17 demonstrates that a change in the value of a parameter of the separate object, can cause a change in the value of a parameter of the first object.
  • FIG. 18, shows the parameters of the first object after the change.
  • FIG. 19 is a flowchart of the steps a user might take when using a GUI representing one embodiment.
  • DETAILED DESCRIPTION OF THE INVENTION
  • 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.
  • The invention can be embodied in many different ways. The descriptions that follow merely illustrate some embodiments. For the sake of clarity, some actions taken with respect to the embodiments described below are in some chronological order. The orders in which these actions are performed are not necessarily the only orders in which such actions could be performed.
  • I. Overview
  • Some embodiments provide a method for locking in a mathematical relationship between a set of at least two parameters in a computer program. The method selects a first parameter. The method defines a mathematical relationship that ties the value of the first parameter to the value of a second parameter. The relationship could be directly entered by the user, or the computer program itself could derive it from the user's actions. In some embodiments, the first parameter can be locked to the mathematical relationship. The lock prevents the value of that parameter from being changed, except by changing the value of the second parameter.
  • Once a mathematical relationship is set up, and locked in, the computer program automatically makes adjustments to the value of the second adjustable parameter, in response to changes in the value of the first adjustable parameter. These adjustments maintain the mathematical relationship between the value of the first adjustable parameter and the value of the second adjustable parameter. Because the second adjustable parameter is locked, the value of that parameter is constrained to follow the mathematical formula on which it depends, and only that formula. In other words, controls that would otherwise directly change the value of the parameter have no effect while the parameter is locked.
  • Some embodiments implement this method by using a GUI with an intuitive set of controls. Such a GUI's intuitive controls allow a user to easily set up mathematical relationships between the values of two or more parameters and to lock parameters. The mathematical relationship makes the value of one parameter (the dependent parameter) dependent on the value of at least one other parameter (the independent parameter). Consequently, when the user changes the value of the independent parameter or parameters, the GUI changes the value of the dependent parameter in order to maintain the mathematical relationship between the parameters.
  • In some embodiments, most or all parameters have GUI controls associated with them (e.g. sliders, data entry boxes, etc.). Normally using a GUI control directly affects the value of its associated parameter. However, when a parameter is locked, the value of that parameter cannot be directly changed by using its associated controls.
  • While the direct controls are locked out, the GUI changes the value of the dependent parameter only in response to changes to the value of the independent parameter. These changes maintain the specified mathematical relationship between the parameters.
  • II. GUI of Video Editing Applications
  • FIGS. 1-18 illustrate one example of such a GUI. The pictured GUI 100 is the GUI of a video editing application. As used in this document, “video editing application” broadly and generically refers to any software application that allows the user to modify, composite, generate or otherwise edit digital images and/or video clips. It will be clear to those skilled in the art that these figures illustrate merely some possible embodiments. Those skilled in the art will understand that other embodiments could be used in any type of computer application or operating system.
  • The GUI 100 of the video editing application allows various visual and audio effects to be applied to video clips and individual images. The video editing application has a large number of adjustable parameters. The GUI 100 provides intuitive tools that allow the user to relate nearly any parameter to nearly any other parameter via a mathematical relationship. Some parameters that can be related to each other are: time, x-coordinate, y-coordinate, a z-coordinate, a rotation of the object about an axis, a radius of an object, a blue color setting of an object, a green color setting of an object, a red color setting of an object, an alpha of an object, a reflectivity of an object, a transparency of an object, an intensity of an object, a blur feature of an object, a speed of an object, a height of an object, a width of an object, a falloff radius of an object, an opacity of an object, a resolution of an object, an angular speed of an object, a pitch of a part of a sound file, a volume of a part of a sound file, a beat of a part of a sound file, a size of a checkerboard pattern, a brightness of the object, or the amount of warping of an object. The above list is a sample, and is not comprehensive. Various embodiments may include, but are not limited to, any, all, or none of the parameters on the list.
  • A. Overview of the GUI
  • As described above, the GUI 100 allows the user to associate the value of one parameter with the value of another, through a mathematical relationship. The GUI 100 also allows the user to lock the first parameter. Before those features are described, some general features of the GUI 100 will be described by reference to FIGS. 1-4.
  • FIG. 1 is a screen capture of GUI 100. This screen capture illustrates that the GUI 100 contains a parameter control area 101 and a display area 102. Display area 102 shows the effects of the video editing on a frame of video clip. Display area 102 can contain a number of objects. In this figure, display area 102 contains a single circular shape, object 130. Parameter control area 101 provides the user access to a number of parameters that affect objects in the display area 102. Each parameter shown in parameter control area 101 has multiple GUI controls that can directly affect the value of that parameter. Many of these controls also act as indicators of the value of the parameter. For example, display box 114 shows the value of a parameter, xCenter 110, and can also be used to directly enter a new value for that parameter.
  • In FIG. 1, Parameter control area 101 contains parameters defining object 130. Parameters in parameter control area 101 include xCenter 110, and yCenter 120. XCenter 110 and yCenter 120 determine the horizontal and vertical position, respectively, of object 130. Changing the value of xCenter 110 causes object 130 to be repositioned horizontally. Changing the value of yCenter 120 causes object 130 to be repositioned vertically.
  • Changes to the value of xCenter 110 and yCenter 120 can be implemented by use of their parameter controls. Several such controls are found in parameter control area 101. Controls in parameter control area 101 include display box 114, slider 116, slider track 118, display box 124, slider 126, and slider track 128.
  • The value of xCenter 110 can be changed by: (1) directly entering a new value or formula in display box 114, (2) clicking and dragging slider 116, (3) clicking on slider-track 118, or (4) dragging object 130 horizontally with a dragging tool (not shown).
  • Similarly, the value of yCenter 120 can be changed by: (1) directly entering a new value or formula in display box 124, (2) clicking and dragging slider 126, (3) clicking on slider-track 128, or (4) dragging object 130 vertically with a dragging tool (not shown).
  • As mentioned above, several controls in this GUI are also indicators of the value of the corresponding parameter. Indicators of xCenter 110 include display box 114, slider 116, and the horizontal position of object 130. These will hereafter be called, collectively, “xCenter indicators”. Similarly, indicators of yCenter 120 include display box 124, slider 126, and the vertical position of object 130. These will hereafter be called, collectively, “yCenter indicators”.
  • The next few figures illustrate changes, in the values of xCenter 110 and yCenter 120, caused by using various controls. FIG. 2 illustrates the results of changing the value of yCenter 120 by clicking and dragging slider 126. The yCenter indicators have changed to reflect the new value of yCenter 120.
  • FIG. 3 illustrates the results of changing both the value of xCenter 110 and the value of yCenter 120. These changes were caused by the user clicking and dragging a dragging tool 340. The xCenter indicators have changed to reflect the new value of xCenter 110. The yCenter indicators have changed to reflect the new value of yCenter 120.
  • FIG. 4 illustrates the results of changing the value of yCenter 120 by entering a new numerical value, specifically “100”, in display box 124. The yCenter indicators have changed to reflect the new value of yCenter 120.
  • B. Mathematical Formulas Relating Parameters
  • The GUI 100 provides an option for the user to set up a mathematical relationship between two or more parameters. FIGS. 5-7 illustrate the effects of mathematical formulas on unlocked parameters. The formulas in the figures described below were chosen for demonstration purposes. They are not the only possible formulas. Any formula, including but not limited to, a mathematical function, a Boolean expression or a look-up table would be within the scope of the invention.
  • To set up a mathematical relationship for yCenter 120, the user would enter a formula in display box 124. As seen in FIG. 5, after a formula is entered, a new display box 525 opens to display the formula, and display box 124 resumes showing the value of yCenter 120. Once entered, a formula will determine the value of yCenter 120 until the formula is changed or deleted. In this example, the formula is:

  • 289−pow(xCenter−200,2)/150,
  • where “pow(x,2)” means x-squared. This formula represents a parabola with the point at the top of the parabola. The value of yCenter 120 is now the value calculated by the formula. The formula is a function of xCenter 110, so the value of yCenter 120 depends on the value of xCenter 110.
  • Because the mathematical relationship has been set up, changing the value of xCenter 110, on which the relationship depends, will change the value of yCenter 120. FIG. 6 illustrates the results of changing the value of xCenter 110 by moving slider 116. The value of yCenter 120 has changed in accord with the formula in display box 525. The xCenter indicators have changed to reflect the new value of xCenter 110. Similarly, the yCenter indicators have changed to reflect the new value of yCenter 120.
  • The GUI in FIGS. 5-6 changed the value of yCenter 120 in accord with the mathematical formula, but as the following figure will show, the mathematical formula is unprotected.
  • FIG. 7 illustrates this lack of protection. Specifically, this figure shows the result of using a control of a parameter, yCenter 120, which has a mathematical formula, but is not locked. The figure shows the results of moving slider 126 while yCenter 120 is not locked. Moving slider 126 caused the value of yCenter 120 to change. The change is in accord with slider 126, and without regard for the mathematical formula. Moving slider 126 also caused the mathematical formula in display box 525 (not shown) to be deleted.
  • As demonstrated above, moving slider 126 deletes the mathematical formula. However, the slider is not the only control that has that effect. In fact, had any control for yCenter 120 been used, the use of that control would have caused the deletion of the mathematical formula.
  • C. Effects of Locking a Parameter
  • The departure of a parameter from its mathematical formula is sometimes unwanted. Preventing the unwanted departure of parameters from their mathematical formulas is one aim of some embodiments. This aim is accomplished by use of a lock-in option. In the GUI of this video editing application, the lock-in option is activated for a parameter by selecting a lock-in toggle corresponding to that parameter. The lock-in toggle can also optionally be de-activated. While a lock-in toggle is activated, the corresponding parameter may be described as “locked” or “locked to a mathematical formula”. While a lock-in is de-activated, the corresponding parameter may be described as “unlocked”.
  • When a parameter is locked, controls that would otherwise change the value of that parameter are made inoperative. Such inoperative controls may be referred to as “deactivated” or “locked out”. In the following figures, various parameters are locked. Various other parameters are unlocked.
  • FIG. 8 illustrates the effects of locking yCenter 120 to a mathematical function of xCenter 110. The mathematical formula that was previously used in FIG. 5:

  • 289−pow(xCenter−200,2)/150,
  • has once again been entered in display box 124. The formula is again shown in display box 525. But this time, lock-toggle 822 has been selected, locking parameter yCenter 120. The locked status of yCenter 120 is illustrated by a change in the appearance of lock-toggle 822. As shown in the figure, lock-toggle 822 is now a picture of a dark lock on a light background rather than a light lock on a dark background. The selection is further illustrated by display box 124, which is highlighted as a result of the locking.
  • In the GUI, locking yCenter 120 locks out the controls that directly change the value of yCenter 120. Locked out controls include slider 126, display box 124, and display box 525. In addition, dragging object 130 in the vertical direction no longer has any effect. Hence, attempting to use any of those controls results in no change to the value of yCenter 120. Nor does such an attempt delete the mathematical formula. These results stand in contrast to the results shown in the case of an unlocked parameter as previously illustrated in FIG. 7.
  • Any direct changes to the value of yCenter 120 are prevented by the lock. However, yCenter 120 is locked to the mathematical formula in display box 525, not to some particular value. If the value determined by the formula changes, the value of yCenter 120 changes along with it. The mathematical formula is a function of xCenter 110, so if the value of xCenter 110 changes, the value of the formula changes. The lock-toggle 812 for xCenter 110 is not active, so parameter xCenter 110 is not locked. Consequently the value of xCenter 110 can be changed by using the usual controls for xCenter 110.
  • FIG. 9 demonstrates the fact that the value of yCenter 120 can be changed by changing the value of xCenter 110. The figure shows the results of changing the value of xCenter 110, while yCenter 120 is locked to the mathematical function of xCenter 110. The value of xCenter 110 has been directly changed. The value of yCenter 120 has changed in accord with the formula in display box 525. The yCenter indicators have changed to reflect the new value of yCenter 120.
  • The previously described controls are each capable of affecting the value of only one parameter. However, in this GUI, some controls can affect more than one parameter. Locking a parameter can lock out the effects that control would have on the locked parameter, while leaving the effects of the control on unlocked parameters unchanged. In FIG. 10, yCenter 120 is locked, but xCenter 110 is not. Dragging tool 340 ordinarily affects both xCenter 110 and yCenter 120. The figure shows the effects of dragging object 130 in the horizontal direction using the dragging tool 340. Object 130 has moved in the horizontal direction, indicating a change in the value of xCenter 110.
  • As well as moving horizontally, Object 130 has moved vertically. This motion demonstrates a change in the value of yCenter 120. This does not contradict the described effects of the lock. Rather, the change in the value of yCenter 120 is a result of the change in the value of xCenter 110. The only direct effect of the dragging tool 340 was to change the value of xCenter 110. The change in the value of yCenter 120 was an automatic change by the GUI 100. The change kept the value of yCenter 120 consistent with the mathematical formula shown in display box 525.
  • D. Relationships with More than Two Parameters
  • Previous figures illustrated mathematical functions relating a single dependent parameter to a single independent parameter. Some embodiments allow relationships involving more than two parameters.
  • So far, only two parameters have been introduced. So, in order to illustrate relationships with more than two parameters, some previously unmentioned parameters must be introduced. One parameter is time. In FIG. 11, time is shown on time scale 1150. Note that in these embodiments each increment of time 1152 on time scale 1150 represents one frame of video. The value of time for this figure is represented by the position of indicator 1154. Another parameter, first shown in FIG. 12, is radius 1260. Radius 1260 determines the radius of object 130. The larger the value of radius 1260, the larger the radius of object 130.
  • 1. Chain of Dependencies
  • The GUI allows a chain of dependencies. In a chain of dependencies, one parameter depends on another, which depends on a third, and so on for whatever number of parameters the user needs. FIG. 11 illustrates a chain of dependencies with three parameters. In the figure are: (1) one independent parameter, time, (2) a first dependent parameter, xCenter 110, which depends on time, and (3) a second dependent parameter, yCenter 120, which in turn depends on xCenter 110.
  • The last two parameters in the chain are locked. Parameter xCenter 110 is locked to the formula, “time*400/75”, shown in display box 1115. This formula is a function of time. Parameter yCenter 120 is locked to the formula, “256−pow((xCenter−200)/12.5,2)”, shown in display box 525. This formula is a function of xCenter 110.
  • In this embodiment, all controls that would otherwise affect the value of xCenter 110 are locked out. Likewise, all controls that would otherwise affect the values of yCenter 120 are locked out. Because of the locks, the only way to affect the values of either xCenter 110 or yCenter 120 is by changing the values of their respective formulas. The only way to do that is to change the value of the parameter at the beginning of the chain, time.
  • The net result of this chain of dependencies is that as the time index increases, object 130 follows a parabolic path across the screen. This result holds for this embodiment and with these example formulas. This is not a general feature of such chains of dependency.
  • 2. Multiple Dependent Parameters, One Independent Parameter
  • Another relationship with more than two parameters is one in which multiple parameters depend on a single parameter. FIG. 12 illustrates such a relationship. In FIG. 12 two parameters depend on a single other parameter. Specifically, xCenter 110 and radius 1260 each depend on time.
  • Each of the two dependent parameters is locked to its own formula. In this figure, the value of xCenter 110 is determined by the function of time, “time*400/75”, shown in display box 1115. Parameter xCenter 110 is locked to this mathematical formula. The value of radius 1260 is determined by the function of time, “time+10”, shown in display box 1265. As shown in this figure, lock-toggle 1262 of radius 1260 has been selected, locking radius 1260 to its mathematical formula.
  • Because of the given formulas, object 130 would move to the right and grow larger as time increases.
  • 3. Multiple Independent Parameters, One Dependent Parameter
  • Another relationship of more than two parameters is one in which one parameter depends on multiple other parameters. FIG. 13 illustrates this type of relationship. In the figure, one parameter is dependent on the value of two other parameters.
  • In FIG. 13, radius 1260 is locked to a function dependent on xCenter 110 and yCenter 120. The function, “xCenter*yCenter/1000”, of xCenter 110 and yCenter 120 that determines the value of radius 1260 is shown in display box 1265. In this figure, xCenter 110 and yCenter 120 are unlocked, radius 1260 is locked.
  • With the given formula, the radius of object 130 increases when the value of xCenter 110 increases. Similarly, the radius of object 130 also increases when the value of yCenter 120 increases.
  • 4. Multiple Independent Parameters, Multiple Dependent Parameters
  • Still another relationship of more than two parameters is one in which there are multiple sets of relationships between parameters. FIG. 14 illustrates this type of relationship. In the figure, one parameter is dependent on the value of a second parameter and a third parameter is dependent on the value of a fourth parameter.
  • In FIG. 14, radius 1260 is locked to a function dependent on time. Also, yCenter 120 is locked to a function dependent on xCenter 110. The parameters in the first relationship are radius 1260 and time. The parameters in the second relationship are xCenter 110 and yCenter 120. No parameter from the first relationship is found in the second relationship. No parameter from the second relationship is found in the first relationship. This demonstrates the ability of some embodiments to set several mutually independent relationships among parameters. Then, once the relationships are set, to lock-in the relationships.
  • E. Relationships Among Parameters from Different Objects
  • Previous examples of the use of the GUI 100 only used a single object and its parameters. Some embodiments, including the GUI 100, are not limited to a single object. In the GUI 100 multiple objects can be used in the same video editing session. The GUI 100 allows the values of parameters that define one object to depend on the values of parameters that define another object. In other words, a parameter can be locked to a mathematical relationship that depends on a parameter from a separate object.
  • FIGS. 15-18, demonstrate this option of GUI 100.
  • FIG. 15 illustrates two objects and a parameter of the first object that depends on a parameter of the second object. In the figure, there are two objects in display area 102, object 1535 and object 130. The parameters of object 1535 are not shown in this figure. The parameters displayed in parameter control area 101 apply to object 130. In parameter control area 1535, radius 1260 is locked to the formula in display box 1265.
  • This formula is a different from those in the previous figures. In the previous figures, the independent parameters referred to in the formulas were all parameters of the same object 130. Here, the independent parameter is a parameter of object 1535. The formula is:

  • RGrad2.xCenter/3
  • Part of the formula is in front of a period. In the GUI 100, that part of the formula indicates that the independent parameter is a parameter of a different object. In this case, object 1535. The GUI 100 calls that object “RGrad2”. Because of the reference to RGrad2, the “xCenter” after the period refers to the xCenter parameter of RGrad2 (object 1535), not to the xCenter 110 (not shown) of object 130.
  • The parameters of object 1535 are shown in FIG. 16. In FIG. 16, parameter control area 101 has been switched from displaying the parameters of object 130 to displaying the parameters of object 1535. In this figure, parameter control area 101 shows that object 1535 has its own position co-ordinates, one of which is xCenter 1670. The value of xCenter 1670 is displayed in display box 1674. The value of xCenter 1670 can be changed by moving slider 1676.
  • As shown in the description of FIG. 15, the value of radius 1260 depends on the value of xCenter 1670. Because of this dependency, changing the value of xCenter 1670 would change the radius of object 130.
  • FIG. 17 demonstrates that a change in the value of xCenter 1670 changes the radius of object 130. Because xCenter 1670 is the horizontal position parameter of object 1535, changing the value of xCenter 1670 has changed the horizontal position of object 1535. Because of the mathematical formula in display box 1265 (not shown), changing the value of xCenter 1670 has also changed the radius of object 130. Note that the value of xCenter 1670, shown in display box 1674 is now “633”.
  • The agreement of the value of radius 1260 with its mathematical formula is shown in FIG. 18. In this figure, parameter control area 101 has been switched back to showing the parameters of object 130. The formula in display box 1265, “RGrad2.xCenter/3”, takes the value of xCenter 1670 (as noted previously, “633”) and divides it by 3 to determine the value of radius 1260. In this example the formula determines “633/3=211”. The value of radius 1260, shown in display box 1264, is now “211”.
  • FIG. 19 is a flowchart of the steps a user might take when using a method that represents one embodiment.
  • In box 1910, an object is selected. The object has adjustable parameters. In box 1920 a parameter is chosen. This parameter will be a dependent parameter.
  • In box 1930 the program accepts a mathematical formula. The mathematical formula will set the value of the dependent parameter. The mathematical formula is based on the value of at least one other parameter. The formula will set values for the dependent parameter based on the formula and the values of those other parameters.
  • In box 1940, the lock option for the parameter is selected. Note that in many embodiments the user has the option of locking the parameter at any time. It doesn't have to be locked immediately after the formula is entered. Once the parameter is locked, at least some of the controls are deactivated.
  • In diamond 1950, the user decides whether to set another formula for another parameter. Note that in many embodiments, the user has the option of going back at any time to set up new mathematical relationships, and to change the old ones.
  • In box 1960 the parameters on which the mathematical formulas depend are changed. This changes the values of the locked parameters. This does not change the formulas of the locked parameters.
  • F. Types of Parameters
  • Some embodiments, including the GUI 100 make no distinction among types of parameters for the purpose of setting up mathematical relationships. The previously described figures show relationships among several types of parameters.
  • FIGS. 5-6 and 8-10 show mathematical relationships between parameters of similar type to each other, specifically xCenter 110 and yCenter 120. Both parameters are location coordinates. The parameters measure distance along two different axes. Those embodiments allow a relationship between those two parameters. That demonstrates that the embodiments could relate parameters that are of similar type to each other.
  • FIGS. 11-12 show mathematical relationships between parameters of different types from each other, specifically xCenter 110, radius 1260, and time. Parameter xCenter 110 is a location coordinate. Parameter time is a video frame index. Parameter radius 1260 is determines the size of an object. These parameters measure three different types of units. Those embodiments allow relationships among these three parameters.
  • III. Description of Features of some Possible Alternate Embodiments
  • A. Formulas Active for some Values of Independent Parameters, but not all Values of Independent Parameters
  • Some embodiments may have limitations on the allowable values of the parameters. In the use of some of those embodiments, the user may choose a dependent parameter. The user may set a mathematical formula for the dependent parameter. The user may lock the dependent parameter to the mathematical formula. Then the dependent parameter will remain consistent with the mathematical formula, but with some exceptions.
  • Such an exception might be that the value of the dependent parameter is fixed at some limit. The limit could be a design limitation. For example, the program might not allow the value of a co-ordinate to exceed the maximum or minimum values of the on screen display.
  • The limit could also be an inherent limit of the program. An example of such limit would be where the mathematical formula returns a number larger than the program can handle.
  • In some embodiments, if the value generated by the mathematical formula exceeds one of these limits the parameter will not be equal to the value of the formula. Instead, the value of the parameter will be set by the program as the value of the limit. In some other embodiments, the program will set the parameter at a null value when the value generated by the mathematical formula exceeds the limit.
  • Other embodiments may round or truncate the result of a formula to some number of decimal places or significant figures.
  • These embodiments are still consistent with the invention, so long as the lock-in sets the value of the locked parameter to, or close to, the result of the formula for at least some given values of the parameter or parameters on which it depends.
  • B. Lock-ins of Formulas
  • The toggles in the previously described embodiments are options related to the individual parameters. Other embodiments are also possible. In some other embodiments, there may be a separate area in which to enter mathematical formulas. With the lock-in option being related to the formulas rather than parameters. Whether the lock-in is characterized as locking the parameter or locking the formula, those embodiments are still embodiments of the invention. Locking the formula is equivalent to locking the parameter.
  • C. Multiple Windows
  • The GUI embodiments illustrated above all demonstrate the invention using one window with multiple sub-areas. This is not a requirement of the invention. Some other embodiments may involve multiple windows. Some of those embodiments may have parameters in one window being referred to in another window. Some other embodiments of the invention may involve a full screen. Some other embodiments of the invention may involve a text box. Still further embodiments may use parameters that are not displayed at all. One example of such an embodiment would be where an independent parameter and its values are contained in an object or file that the user refers to, but does not open. Still other embodiments may involve more or fewer sub-areas.
  • D. Computer Generated Formulas
  • The examples provided above involved user determined mathematical relationships, however some embodiments allow the computer program to work out a relationship based on indirect determination of the user's intention. For instance, a user could enter a few points on a hypothetical path and the computer could work out the mathematical relationship necessary to take an object smoothly along that path.
  • E. Inequalitites
  • All of the above examples allow the user to set the value of a parameter equal to a particular mathematical relationship. Other possible embodiments could allow the user to constrain parameters to be greater than a particular mathematical function, less than a particular function, between two or more functions, or outside of a region between two or more functions. Such embodiments would allow the locked parameter to be changed by its controls, but only within the specified limits.
  • F. Disabling Controls
  • The GUI 100 described above manifests deactivated controls by ignoring attempts to use the controls. However, deactivated controls, which can interchangeably described as “inactive”, “deactivated”, “cannot be activated”, or “locked out” controls, may manifest in other ways in other GUIs. Another way of making the controls inoperative would be to remove them from the GUI while the parameter is locked. Still another way of making the parameters inoperative would be to allow the controls to change the value temporarily while the control is being actively manipulated, but revert to the locked in mathematical relationship once the control is no longer being actively manipulated. Yet another way of making the controls inoperative would be to allow the control itself to be moved freely, but not have that move affect the value of its corresponding parameter. All of these ways, along with any other way of deactivating the controls, are within the scope of the present invention.
  • While embodiments of the invention have 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 (26)

1-32. (canceled)
33. A method for locking at least two parameters in a mathematical relationship using a graphical user interface (GUI) of a computer program executing on a computing device, the method comprising:
defining a mathematical relationship between a value of a first parameter controlled by a first user adjustable user interface (UI) control and a value of a second parameter controlled by a second user adjustable UI control;
in response to each adjustment of the first UI control that is before an adjustment of the second UI control, adjusting the first parameter's value, and based on the mathematical relationship between the first and second parameter values, adjusting the second parameter's value; and
in response to an adjustment of the second UI control, adjusting the second parameter's value and discarding the defined mathematical relationship between the values of the first and second parameters.
34. The method of claim 33, wherein the first user adjustable UI control comprises a first slider control for adjusting the first parameter value, wherein the second user adjustable UI control comprises a second slider control for adjusting the second parameter value.
35. The method of claim 33, wherein the first parameter and the second parameter are coordinate parameters.
36. The method of claim 33 further comprising displaying the mathematical relationship in a third UI control, wherein discarding the defined mathematical relationship comprises removing the mathematical relationship from the third UI control so that the mathematical relationship is no longer displayed in the third UI control.
37. The method of claim 33, wherein, after discarding the mathematical relationship, each adjustment to the first UI control adjusts the first parameter's value but does not adjust the second parameter's value.
38. A non-transitory computer readable medium storing a computer program comprising sets of instructions for generating a graphical user interface (GUI), said GUI comprising:
a first GUI tool for adjusting a first value of a first user adjustable parameter;
a second GUI tool for adjusting a second value of a second user adjustable parameter, said second GUI tool adjusting the second value independently of the first value; and
a lock tool that, when activated, prevents the second GUI tool from adjusting the second value but locks the second value to the first value so that adjustments to the first GUI tool adjust the first value and in turn the second value.
39. The non-transitory computer readable medium of claim 38, wherein the lock tool, when activated, prevents the second GUI tool from adjusting the second value by disabling the second GUI tool so that adjustments to the second GUI tool do not adjust the second value of the second user adjustable parameter.
40. The non-transitory computer readable medium of claim 38, wherein the lock tool is a first lock tool, the GUI further comprising:
a third GUI tool for adjusting a third value of a third user adjustable parameter, said third GUI tool adjusting the third value independently of the first and second values; and
a second lock tool that, when activated, prevents the third GUI tool from adjusting the third value but locks the second and third values together so that (i) adjustments to the second GUI tool adjust the second value and in turn the third value, and (ii) when the first lock tool is activated, adjustments to the first GUI tool adjust the first value and in turn the second value and in turn the third value.
41. The non-transitory computer readable medium of claim 38, wherein the first GUI tool comprises a first slider control for adjusting the first value of the first user adjustable parameter, wherein the second GUI tool comprises a second slider control for adjusting the second value of the second user adjustable parameter.
42. The non-transitory computer readable medium of claim 38, wherein said first GUI tool comprises a first textbox tool for receiving values to adjust the first value of the first user adjustable parameter, wherein said second GUI tool comprises a second textbox tool for receiving values to adjust the second value of the second user adjustable parameter.
43. The non-transitory computer readable medium of claim 38, the GUI further comprising a display area for displaying a draggable object that adjusts the first and second values of the first and second user adjustable parameters by dragging the draggable object in the display area, wherein the lock tool, when activated, further prevents the draggable object from adjusting the second value of the second user adjustable parameter except to an extent that dragging the draggable object adjusts the first value of the first user adjustable parameter and in turn adjusts the second value of the second user adjustable parameter.
44. A non-transitory computer readable medium storing a computer program which when executed by at least one processing unit provides a graphical user interface (GUI) for locking at least two parameters in a mathematical relationship, the computer program comprising sets of instructions for:
defining a mathematical relationship between a value of a first parameter controlled by a first user adjustable user interface (UI) control and a value of a second parameter controlled by a second user adjustable UI control;
adjusting, in response to each adjustment of the first UI control that is before an adjustment of the second UI control, the first parameter's value, and based on the mathematical relationship between the first and second parameter values, adjusting the second parameter's value; and
adjusting, in response to an adjustment of the second UI control, the second parameter's value and discarding the defined mathematical relationship between the values of the first and second parameters.
45. The non-transitory computer readable medium of claim 44, wherein the first user adjustable UI control comprises a first slider control for adjusting the first parameter value, wherein the second user adjustable UI control comprises a second slider control for adjusting the second parameter value.
46. The non-transitory computer readable medium of claim 44, wherein the first parameter and the second parameter are coordinate parameters.
47. The non-transitory computer readable medium of claim 44, wherein said computer program further comprises a set of instructions for:
displaying the mathematical relationship in a third UI control, wherein the set of instructions for discarding the defined mathematical relationship comprises a set of instructions for removing the mathematical relationship from the third UI control so that the mathematical relationship is no longer displayed in the third UI control.
48. The non-transitory computer readable medium of claim 44, wherein, after discarding the mathematical relationship, each adjustment to the first UI control adjusts the first parameter's value but does not adjust the second parameter's value.
49. A non-transitory computer readable medium storing a computer program comprising sets of instructions for generating a graphical user interface (GUI), the GUI comprising:
a first user-adjustable GUI control for adjusting a first value of a first parameter;
a second user-adjustable GUI control for adjusting a second value of a second parameter independently of adjustments to the first value;
a third GUI control for defining a mathematical inequality relationship relating the first value to the second value; and
a lock control for locking the second value to the mathematical inequality relationship (i) to prevent adjustments to the second user-adjustable GUI control from adjusting the second value that violate the defined mathematical inequality relationship between the first and second values, but (ii) to allow adjustments to the second user-adjustable GUI control to adjust the second value so long as the second value after the adjustment does not violate the defined mathematical inequality relationship between the first and second values.
50. The non-transitory computer readable medium of claim 49, wherein the first user-adjustable GUI control comprises a first slider control for adjusting the first value of the first parameter, wherein the second user-adjustable GUI control comprises a second slider control for adjusting the second value of the second parameter.
51. The non-transitory computer readable medium of claim 49, wherein the mathematical inequality relationship is selected from a group composed of:
a) greater than;
b) less than;
c) greater than or equal to;
d) less than or equal to; and
e) not equal to.
52. The non-transitory computer readable medium of claim 49, wherein said mathematical inequality relationship comprises multiple mathematical relationships.
53. The non-transitory computer readable medium of claim 49, wherein the first value and the second value are constrained to be in a region between a first mathematical function and a second mathematical function.
54. The non-transitory computer readable medium of claim 49, wherein the first value and the second value are constrained to be outside of a region between a first mathematical function and a second mathematical function.
55. A method of implementing a graphical user interface (GUI) of a video editing program executing on a computing device, said method comprising:
providing a display area for displaying effects of video editing on a video clip, said display area comprising at least one object that is displayed at multiple instances in time in the video clip;
providing a GUI tool for adjusting a value of a first parameter that affects the object; and
providing a lock tool for (i) disabling the GUI tool for adjusting the value of the first parameter and (ii) defining a mathematical relationship relating the value of the first parameter to a value of a second parameter associated with time during playback of the video clip.
56. The method of claim 55, wherein the GUI tool is a slider control.
57. The method of claim 55, wherein the lock tool is further for preventing manipulation of the object in the display area in a manner that adjusts the value of the first parameter.
US12/972,416 2005-11-11 2010-12-17 Locking relationships among parameters in computer programs Abandoned US20110145743A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/972,416 US20110145743A1 (en) 2005-11-11 2010-12-17 Locking relationships among parameters in computer programs

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/271,081 US7873917B2 (en) 2005-11-11 2005-11-11 Locking relationships among parameters in computer programs
US12/972,416 US20110145743A1 (en) 2005-11-11 2010-12-17 Locking relationships among parameters in computer programs

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/271,081 Continuation US7873917B2 (en) 2005-11-11 2005-11-11 Locking relationships among parameters in computer programs

Publications (1)

Publication Number Publication Date
US20110145743A1 true US20110145743A1 (en) 2011-06-16

Family

ID=38042384

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/271,081 Active 2026-10-27 US7873917B2 (en) 2005-11-11 2005-11-11 Locking relationships among parameters in computer programs
US12/972,416 Abandoned US20110145743A1 (en) 2005-11-11 2010-12-17 Locking relationships among parameters in computer programs

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/271,081 Active 2026-10-27 US7873917B2 (en) 2005-11-11 2005-11-11 Locking relationships among parameters in computer programs

Country Status (1)

Country Link
US (2) US7873917B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767970B2 (en) 2011-02-16 2014-07-01 Apple Inc. Audio panning with multi-channel surround sound decoding
US8887074B2 (en) 2011-02-16 2014-11-11 Apple Inc. Rigging parameters to create effects and animation
CN104635925A (en) * 2015-01-05 2015-05-20 徐杨 Method and device for locking target through swipe gesture
WO2015187260A1 (en) * 2014-06-01 2015-12-10 Apple Inc. Controlling multiple photographic adjustments with a single control
CN105607830A (en) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 Terminal screen-capture method and apparatus, and terminal
CN107077837A (en) * 2014-10-17 2017-08-18 雅马哈株式会社 Content control device and content-control program
CN110602562A (en) * 2019-08-30 2019-12-20 杭州影笑科技有限责任公司 Multi-material track display method based on video editing
US10534514B2 (en) * 2006-09-21 2020-01-14 Apple Inc. Variable I/O interface for portable media device

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873917B2 (en) * 2005-11-11 2011-01-18 Apple Inc. Locking relationships among parameters in computer programs
US8627232B2 (en) * 2006-11-22 2014-01-07 Oracle International Corporation Graphical tool for defining a set of ranges
JP5014187B2 (en) * 2008-02-07 2012-08-29 株式会社リコー Device driver and user interface layout customization method
US20090259583A1 (en) * 2008-04-15 2009-10-15 Tradehelm, Inc. Method And Apparatus For Making Markets For An electronically Traded Financial Instrument
US20100031157A1 (en) * 2008-07-30 2010-02-04 Robert Neer System that enables a user to adjust resources allocated to a group
US8296658B2 (en) * 2008-09-19 2012-10-23 Cisco Technology, Inc. Generator for personalization of electronic devices
US8352864B2 (en) * 2008-09-19 2013-01-08 Cisco Technology, Inc. Method of operating a design generator for personalization of electronic devices
US9361008B2 (en) * 2010-05-12 2016-06-07 Moog Inc. Result-oriented configuration of performance parameters
US8884939B2 (en) * 2010-07-26 2014-11-11 Apple Inc. Display brightness control based on ambient light levels
US8818768B1 (en) * 2010-10-12 2014-08-26 Google Inc. Modeling three-dimensional interiors from photographic images, and applications thereof
US8115761B1 (en) * 2010-10-12 2012-02-14 Google Inc. Locking geometric and camera parameters in image-based three-dimensional modeling, and applications thereof
US8902288B1 (en) * 2011-06-16 2014-12-02 Google Inc. Photo-image-based 3D modeling system on a mobile device
US10282055B2 (en) 2012-03-06 2019-05-07 Apple Inc. Ordered processing of edits for a media editing application
US9041727B2 (en) 2012-03-06 2015-05-26 Apple Inc. User interface tools for selectively applying effects to image
US9131192B2 (en) * 2012-03-06 2015-09-08 Apple Inc. Unified slider control for modifying multiple image properties
USD727342S1 (en) * 2012-06-05 2015-04-21 P&W Solutions Co., Ltd. Display screen with graphical user interface
US9471211B2 (en) * 2013-03-18 2016-10-18 International Business Machines Corporation Chaining applications
US10101892B2 (en) * 2014-11-13 2018-10-16 Here Global B.V. Method, apparatus and computer program product for providing interactive settings and dependency adjustments
CN108319490B (en) 2018-03-01 2019-04-05 网易(杭州)网络有限公司 Numerical value determines method, numerical value determining device, electronic equipment and storage medium

Citations (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5054077A (en) * 1989-07-26 1991-10-01 Yamaha Corporation Fader device
US5146557A (en) * 1990-07-27 1992-09-08 General Electric Company User interface for a golf green and a golf putt modelling system
US5491782A (en) * 1993-06-29 1996-02-13 International Business Machines Corporation Method and apparatus for loosely ganging sliders on a user interface of a data processing system
US5511157A (en) * 1993-12-13 1996-04-23 International Business Machines Corporation Connection of sliders to 3D objects to allow easy user manipulation and viewing of objects
US5559301A (en) * 1994-09-15 1996-09-24 Korg, Inc. Touchscreen interface having pop-up variable adjustment displays for controllers and audio processing systems
US5615347A (en) * 1995-05-05 1997-03-25 Apple Computer, Inc. Method and apparatus for linking images of sliders on a computer display
US5710574A (en) * 1995-11-14 1998-01-20 International Business Machines Corporation Method and system for positioning a graphical pointer within a widget of a data processing system graphical user interface
US5732228A (en) * 1995-11-14 1998-03-24 International Business Machines Corporation Method and system for per widget graphical pointer control within a data processing system graphical user interface
US5751285A (en) * 1994-10-18 1998-05-12 Sharp Kabushiki Kaisha Parameter processing device for setting a parameter value using a movable slide operator and including means for fine-adjusting the parameter value
US5842180A (en) * 1996-03-28 1998-11-24 Microsoft Corporation Method and system for detecting and correcting errors in a spreadsheet formula
US5956031A (en) * 1996-08-02 1999-09-21 Autodesk, Inc. Method and apparatus for control of a parameter value using a graphical user interface
US6057837A (en) * 1997-07-15 2000-05-02 Microsoft Corporation On-screen indentification and manipulation of sources that an object depends upon
US20020002898A1 (en) * 2000-07-07 2002-01-10 Jurgen Schmitz Electronic device with multiple sequencers and methods to synchronise them
US6359632B1 (en) * 1997-10-24 2002-03-19 Sony United Kingdom Limited Audio processing system having user-operable controls
US20020109710A1 (en) * 1998-12-18 2002-08-15 Parkervision, Inc. Real time video production system and method
US20020190991A1 (en) * 2001-05-16 2002-12-19 Daniel Efran 3-D instant replay system and method
US6507658B1 (en) * 1999-01-27 2003-01-14 Kind Of Loud Technologies, Llc Surround sound panner
US20030021488A1 (en) * 2001-07-27 2003-01-30 Rodney Shaw General purpose image enhancement algorithm which augments the visual perception of detail in digital images
US20030035555A1 (en) * 2001-08-15 2003-02-20 Apple Computer, Inc. Speaker equalization tool
US20030039408A1 (en) * 2001-07-02 2003-02-27 Smith Joshua Edward Method and apparatus for selective encoding of a textured, three dimensional model to reduce model size
US20030071025A1 (en) * 2001-10-12 2003-04-17 Lincoln Global, Inc. Electric arc welder and method of designing waveforms therefor
US20030083760A1 (en) * 2001-10-25 2003-05-01 Keeley Thomas M. Programming toolkit for use in the development of knowledge enhanced electronic logic programs
US6654031B1 (en) * 1999-10-15 2003-11-25 Hitachi Kokusai Electric Inc. Method of editing a video program with variable view point of picked-up image and computer program product for displaying video program
US6669633B2 (en) * 1999-06-22 2003-12-30 Teratech Corporation Unitary operator control for ultrasonic imaging graphical user interface
US6700097B1 (en) * 2001-09-28 2004-03-02 Lincoln Global, Inc. Electric ARC welder and controller to design the waveform therefor
US20040066396A1 (en) * 2001-04-05 2004-04-08 Fujitsu Limited Information processing system, information processing method, medium and program
US20040071304A1 (en) * 2002-10-11 2004-04-15 Micro Ear Technology, Inc. Programmable interface for fitting hearing devices
US6747678B1 (en) * 1999-06-15 2004-06-08 Yamaha Corporation Audio system, its control method and storage medium
US6850254B1 (en) * 1999-12-02 2005-02-01 International Business Machines Corporation System and method for defining parameter relationship on user interfaces
US20050060659A1 (en) * 2003-09-11 2005-03-17 Dell Products L.P. System, method and software for communicating the effects of user preference settings in an information handling system
US6892249B1 (en) * 2002-05-02 2005-05-10 Western Digital Technologies, Inc. Dependently adjusting at least three operating levels of a disk drive by dependently adjusting a plurality of disk drive parameters
US6922816B1 (en) * 2000-08-24 2005-07-26 International Business Machines Corporation Method and system for adjusting settings with slider controls having variable sensitivity
US20050231512A1 (en) * 2004-04-16 2005-10-20 Niles Gregory E Animation of an object using behaviors
US20050262451A1 (en) * 2003-10-09 2005-11-24 Jesse Remignanti Graphical user interface for changing parameters
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US7039876B2 (en) * 1997-10-06 2006-05-02 Canon Kabushiki Kaisha User interface for image acquisition devices
US20060112046A1 (en) * 2003-10-09 2006-05-25 Keeley Thomas M Programming toolkit for use in the development of knowledge enhanced electronic logic programs
US20060150122A1 (en) * 2004-11-18 2006-07-06 International Business Machines Corporation Changing display of data based on a time-lapse widget
US7080324B1 (en) * 2000-10-11 2006-07-18 Agilent Technologies, Inc. Control for a graphical user interface supporting coupled variables and method of operation thereof
US20060238538A1 (en) * 2005-01-18 2006-10-26 Thomas Kapler System and method for data visualization using a synchronous display of sequential time data and on-map planning
US7149334B2 (en) * 2004-09-10 2006-12-12 Medicsight Plc User interface for computed tomography (CT) scan analysis
US20070022076A1 (en) * 2005-06-08 2007-01-25 Keeley Thomas M Programming toolkit with aligning clipper windows for use in the development of knowledge enhanced electronic programs
US7184056B2 (en) * 2002-11-20 2007-02-27 Apple Computer, Inc. Method and apparatus for user customized shading of a graphical user interface
US20070066628A1 (en) * 2005-09-19 2007-03-22 Wyeth 5-Aryl-indan-1-ol and analogs useful as progesterone receptor modulators
US20070073705A1 (en) * 2005-09-23 2007-03-29 Wolfram Research, Inc. Method of dynamically linking objects operated on by a computational system
US7215813B2 (en) * 2001-12-03 2007-05-08 Apple Computer, Inc. Method and apparatus for color correction
US20070113183A1 (en) * 2005-11-11 2007-05-17 Ron Brinkmann Locking relationships among parameters in computer programs
US7221379B2 (en) * 2003-05-14 2007-05-22 Pixar Integrated object squash and stretch method and apparatus
US20070287490A1 (en) * 2006-05-18 2007-12-13 Peter Green Selection of visually displayed audio data for editing
US7319765B2 (en) * 2002-09-06 2008-01-15 Yamaha Corporation Parameter setting device
US7376469B2 (en) * 2005-04-15 2008-05-20 International Business Machines Corporation Methods and apparatus for implementing manual and hybrid control modes in automated graphical indicators and controls
US7380216B2 (en) * 2000-11-30 2008-05-27 International Business Machines Corporation Zoom-capable scrollbar
US7403626B2 (en) * 2002-07-15 2008-07-22 Yamaha Corporation Level adjustment apparatus
US7441193B1 (en) * 2003-10-07 2008-10-21 Euphonix, Inc. Adaptable and widely applicable control surface
US20090091563A1 (en) * 2006-05-05 2009-04-09 Electronics Arts Inc. Character animation framework
US7548791B1 (en) * 2006-05-18 2009-06-16 Adobe Systems Incorporated Graphically displaying audio pan or phase information
US7554521B1 (en) * 2004-04-15 2009-06-30 Apple Inc. User interface control for changing a parameter
US7562310B2 (en) * 2006-04-04 2009-07-14 International Business Machines Corporation Slider control movable in a two-dimensional region for simultaneously adjusting values of multiple variables
US7698009B2 (en) * 2005-10-27 2010-04-13 Avid Technology, Inc. Control surface with a touchscreen for editing surround sound
US7711619B2 (en) * 2005-09-15 2010-05-04 Integrated Finance Limited Graphical user interface for retirement income planning
US7756281B2 (en) * 2006-05-20 2010-07-13 Personics Holdings Inc. Method of modifying audio content
US20100189266A1 (en) * 2007-03-09 2010-07-29 Lg Electronics Inc. Method and an apparatus for processing an audio signal
US20100199204A1 (en) * 2009-01-28 2010-08-05 Lg Electronics Inc. Method and an apparatus for decoding an audio signal
US20110007915A1 (en) * 2008-03-20 2011-01-13 Seung-Min Park Display device with object-oriented stereo sound coordinate display
US7978925B1 (en) * 2005-04-16 2011-07-12 Apple Inc. Smoothing and/or locking operations in video editing
US8014543B2 (en) * 2005-03-25 2011-09-06 Yamaha Corporation Audio mixer group fader graphical user interface
US8086970B2 (en) * 2007-08-02 2011-12-27 International Business Machines Corporation Address range viewer
US8386951B2 (en) * 2006-09-29 2013-02-26 Fluke Corporation Display adjustment features
US20130087037A1 (en) * 2011-10-10 2013-04-11 Mixermuse, Llp Midi learn mode

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060066628A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation System and method for controlling dynamically interactive parameters for image processing

Patent Citations (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5054077A (en) * 1989-07-26 1991-10-01 Yamaha Corporation Fader device
US5146557A (en) * 1990-07-27 1992-09-08 General Electric Company User interface for a golf green and a golf putt modelling system
US5491782A (en) * 1993-06-29 1996-02-13 International Business Machines Corporation Method and apparatus for loosely ganging sliders on a user interface of a data processing system
US5511157A (en) * 1993-12-13 1996-04-23 International Business Machines Corporation Connection of sliders to 3D objects to allow easy user manipulation and viewing of objects
US5559301A (en) * 1994-09-15 1996-09-24 Korg, Inc. Touchscreen interface having pop-up variable adjustment displays for controllers and audio processing systems
US5751285A (en) * 1994-10-18 1998-05-12 Sharp Kabushiki Kaisha Parameter processing device for setting a parameter value using a movable slide operator and including means for fine-adjusting the parameter value
US5615347A (en) * 1995-05-05 1997-03-25 Apple Computer, Inc. Method and apparatus for linking images of sliders on a computer display
US5710574A (en) * 1995-11-14 1998-01-20 International Business Machines Corporation Method and system for positioning a graphical pointer within a widget of a data processing system graphical user interface
US5732228A (en) * 1995-11-14 1998-03-24 International Business Machines Corporation Method and system for per widget graphical pointer control within a data processing system graphical user interface
US5842180A (en) * 1996-03-28 1998-11-24 Microsoft Corporation Method and system for detecting and correcting errors in a spreadsheet formula
US5956031A (en) * 1996-08-02 1999-09-21 Autodesk, Inc. Method and apparatus for control of a parameter value using a graphical user interface
US6057837A (en) * 1997-07-15 2000-05-02 Microsoft Corporation On-screen indentification and manipulation of sources that an object depends upon
US7039876B2 (en) * 1997-10-06 2006-05-02 Canon Kabushiki Kaisha User interface for image acquisition devices
US6359632B1 (en) * 1997-10-24 2002-03-19 Sony United Kingdom Limited Audio processing system having user-operable controls
US20020109710A1 (en) * 1998-12-18 2002-08-15 Parkervision, Inc. Real time video production system and method
US6507658B1 (en) * 1999-01-27 2003-01-14 Kind Of Loud Technologies, Llc Surround sound panner
US6747678B1 (en) * 1999-06-15 2004-06-08 Yamaha Corporation Audio system, its control method and storage medium
US6669633B2 (en) * 1999-06-22 2003-12-30 Teratech Corporation Unitary operator control for ultrasonic imaging graphical user interface
US6654031B1 (en) * 1999-10-15 2003-11-25 Hitachi Kokusai Electric Inc. Method of editing a video program with variable view point of picked-up image and computer program product for displaying video program
US6850254B1 (en) * 1999-12-02 2005-02-01 International Business Machines Corporation System and method for defining parameter relationship on user interfaces
US20020002898A1 (en) * 2000-07-07 2002-01-10 Jurgen Schmitz Electronic device with multiple sequencers and methods to synchronise them
US6922816B1 (en) * 2000-08-24 2005-07-26 International Business Machines Corporation Method and system for adjusting settings with slider controls having variable sensitivity
US7080324B1 (en) * 2000-10-11 2006-07-18 Agilent Technologies, Inc. Control for a graphical user interface supporting coupled variables and method of operation thereof
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US7380216B2 (en) * 2000-11-30 2008-05-27 International Business Machines Corporation Zoom-capable scrollbar
US20040066396A1 (en) * 2001-04-05 2004-04-08 Fujitsu Limited Information processing system, information processing method, medium and program
US20020190991A1 (en) * 2001-05-16 2002-12-19 Daniel Efran 3-D instant replay system and method
US20030039408A1 (en) * 2001-07-02 2003-02-27 Smith Joshua Edward Method and apparatus for selective encoding of a textured, three dimensional model to reduce model size
US20030021488A1 (en) * 2001-07-27 2003-01-30 Rodney Shaw General purpose image enhancement algorithm which augments the visual perception of detail in digital images
US20030035555A1 (en) * 2001-08-15 2003-02-20 Apple Computer, Inc. Speaker equalization tool
US6700097B1 (en) * 2001-09-28 2004-03-02 Lincoln Global, Inc. Electric ARC welder and controller to design the waveform therefor
US20030071025A1 (en) * 2001-10-12 2003-04-17 Lincoln Global, Inc. Electric arc welder and method of designing waveforms therefor
US20030083760A1 (en) * 2001-10-25 2003-05-01 Keeley Thomas M. Programming toolkit for use in the development of knowledge enhanced electronic logic programs
US7215813B2 (en) * 2001-12-03 2007-05-08 Apple Computer, Inc. Method and apparatus for color correction
US6892249B1 (en) * 2002-05-02 2005-05-10 Western Digital Technologies, Inc. Dependently adjusting at least three operating levels of a disk drive by dependently adjusting a plurality of disk drive parameters
US7403626B2 (en) * 2002-07-15 2008-07-22 Yamaha Corporation Level adjustment apparatus
US7319765B2 (en) * 2002-09-06 2008-01-15 Yamaha Corporation Parameter setting device
US20040071304A1 (en) * 2002-10-11 2004-04-15 Micro Ear Technology, Inc. Programmable interface for fitting hearing devices
US7184056B2 (en) * 2002-11-20 2007-02-27 Apple Computer, Inc. Method and apparatus for user customized shading of a graphical user interface
US7221379B2 (en) * 2003-05-14 2007-05-22 Pixar Integrated object squash and stretch method and apparatus
US20050060659A1 (en) * 2003-09-11 2005-03-17 Dell Products L.P. System, method and software for communicating the effects of user preference settings in an information handling system
US7441193B1 (en) * 2003-10-07 2008-10-21 Euphonix, Inc. Adaptable and widely applicable control surface
US20060112046A1 (en) * 2003-10-09 2006-05-25 Keeley Thomas M Programming toolkit for use in the development of knowledge enhanced electronic logic programs
US20050262451A1 (en) * 2003-10-09 2005-11-24 Jesse Remignanti Graphical user interface for changing parameters
US7554521B1 (en) * 2004-04-15 2009-06-30 Apple Inc. User interface control for changing a parameter
US20050231512A1 (en) * 2004-04-16 2005-10-20 Niles Gregory E Animation of an object using behaviors
US7149334B2 (en) * 2004-09-10 2006-12-12 Medicsight Plc User interface for computed tomography (CT) scan analysis
US7523417B2 (en) * 2004-11-18 2009-04-21 International Business Machines Corporation Changing display of data based on a time-lapse widget
US20060150122A1 (en) * 2004-11-18 2006-07-06 International Business Machines Corporation Changing display of data based on a time-lapse widget
US20060238538A1 (en) * 2005-01-18 2006-10-26 Thomas Kapler System and method for data visualization using a synchronous display of sequential time data and on-map planning
US8014543B2 (en) * 2005-03-25 2011-09-06 Yamaha Corporation Audio mixer group fader graphical user interface
US7376469B2 (en) * 2005-04-15 2008-05-20 International Business Machines Corporation Methods and apparatus for implementing manual and hybrid control modes in automated graphical indicators and controls
US7978925B1 (en) * 2005-04-16 2011-07-12 Apple Inc. Smoothing and/or locking operations in video editing
US20070022076A1 (en) * 2005-06-08 2007-01-25 Keeley Thomas M Programming toolkit with aligning clipper windows for use in the development of knowledge enhanced electronic programs
US7711619B2 (en) * 2005-09-15 2010-05-04 Integrated Finance Limited Graphical user interface for retirement income planning
US20070066628A1 (en) * 2005-09-19 2007-03-22 Wyeth 5-Aryl-indan-1-ol and analogs useful as progesterone receptor modulators
US20070073705A1 (en) * 2005-09-23 2007-03-29 Wolfram Research, Inc. Method of dynamically linking objects operated on by a computational system
US7698009B2 (en) * 2005-10-27 2010-04-13 Avid Technology, Inc. Control surface with a touchscreen for editing surround sound
US20070113183A1 (en) * 2005-11-11 2007-05-17 Ron Brinkmann Locking relationships among parameters in computer programs
US7562310B2 (en) * 2006-04-04 2009-07-14 International Business Machines Corporation Slider control movable in a two-dimensional region for simultaneously adjusting values of multiple variables
US20090091563A1 (en) * 2006-05-05 2009-04-09 Electronics Arts Inc. Character animation framework
US7548791B1 (en) * 2006-05-18 2009-06-16 Adobe Systems Incorporated Graphically displaying audio pan or phase information
US20070287490A1 (en) * 2006-05-18 2007-12-13 Peter Green Selection of visually displayed audio data for editing
US7756281B2 (en) * 2006-05-20 2010-07-13 Personics Holdings Inc. Method of modifying audio content
US8386951B2 (en) * 2006-09-29 2013-02-26 Fluke Corporation Display adjustment features
US20100189266A1 (en) * 2007-03-09 2010-07-29 Lg Electronics Inc. Method and an apparatus for processing an audio signal
US8086970B2 (en) * 2007-08-02 2011-12-27 International Business Machines Corporation Address range viewer
US20110007915A1 (en) * 2008-03-20 2011-01-13 Seung-Min Park Display device with object-oriented stereo sound coordinate display
US20100199204A1 (en) * 2009-01-28 2010-08-05 Lg Electronics Inc. Method and an apparatus for decoding an audio signal
US20130087037A1 (en) * 2011-10-10 2013-04-11 Mixermuse, Llp Midi learn mode

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Bolante. et. al. "Premiere 6.5 for Windows and Macintosh: Visual Quick Start Guide", Sept 20 2002. pp 1-14 *
Rosenburg et. al. " Adobe Premiere Pro 1.5, June 28, 2004 pp. 1-9 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157150B2 (en) 2006-09-21 2021-10-26 Apple Inc. Variable I/O interface for portable media device
US10534514B2 (en) * 2006-09-21 2020-01-14 Apple Inc. Variable I/O interface for portable media device
US8887074B2 (en) 2011-02-16 2014-11-11 Apple Inc. Rigging parameters to create effects and animation
US9420394B2 (en) 2011-02-16 2016-08-16 Apple Inc. Panning presets
US8767970B2 (en) 2011-02-16 2014-07-01 Apple Inc. Audio panning with multi-channel surround sound decoding
EP3457361A1 (en) * 2014-06-01 2019-03-20 Apple Inc. Controlling multiple photographic adjustments with a single control
WO2015187260A1 (en) * 2014-06-01 2015-12-10 Apple Inc. Controlling multiple photographic adjustments with a single control
US9323996B2 (en) 2014-06-01 2016-04-26 Apple Inc. Controlling multiple photographic adjustments with a single control
CN106462334A (en) * 2014-06-01 2017-02-22 苹果公司 Controlling multiple photographic adjustments with a single control
CN107077837A (en) * 2014-10-17 2017-08-18 雅马哈株式会社 Content control device and content-control program
US10186245B2 (en) 2014-10-17 2019-01-22 Yamaha Corporation Content control device and storage medium
EP3208795A4 (en) * 2014-10-17 2018-05-02 Yamaha Corporation Content control device and content control program
US10714066B2 (en) 2014-10-17 2020-07-14 Yamaha Corporation Content control device and storage medium
CN104635925A (en) * 2015-01-05 2015-05-20 徐杨 Method and device for locking target through swipe gesture
CN105607830A (en) * 2015-12-17 2016-05-25 北京奇虎科技有限公司 Terminal screen-capture method and apparatus, and terminal
CN110602562A (en) * 2019-08-30 2019-12-20 杭州影笑科技有限责任公司 Multi-material track display method based on video editing

Also Published As

Publication number Publication date
US20070113183A1 (en) 2007-05-17
US7873917B2 (en) 2011-01-18

Similar Documents

Publication Publication Date Title
US7873917B2 (en) Locking relationships among parameters in computer programs
US11481949B2 (en) Depth of field for a camera in a media-editing application
US9098647B2 (en) Dynamic viewing of a three dimensional space
US9495087B2 (en) Two-dimensional slider control
US7693341B2 (en) Workflows for color correcting images
US9917987B2 (en) Media editing with overlaid color adjustment tools
US9547427B2 (en) User interface with color themes based on input image data
US20070247647A1 (en) 3D lut techniques for color correcting images
US8743139B2 (en) Automatically keying an image
US20020140707A1 (en) Media production system using flowgraph representation of operations
US20070093913A1 (en) Input/output curve editor
US7409248B2 (en) Layer based paint operations
US8619093B2 (en) Keying an image
US8675009B2 (en) Keying an image in three dimensions
JP3041360B2 (en) Generating moving images
JP2004046493A (en) Image adjustment device, program and image adjustment method
US6848082B1 (en) Reactor-based viewport clipping using arbitrary graphical entities
CN115048008B (en) Method and equipment for visualizing objects in HMI (human machine interface) picture

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION