IP Library Granted Patent US 8,093,481
Granted Patent B2
US 8,093,481 · App. 12/623,480 · Granted Jan 10, 2012

Systems and methods for automatic collision avoidance, grouping and alignment of musical symbols

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,093,481
App. No.
12/623,480
Granted
Jan 10, 2012
Kind
B2
Abstract

Systems and methods for editing a computer-base musical score include detecting a collision between objects placed in the score and automatically moving one of the colliding objects out of the way to eliminate the collision. Selection of the object to be moved is based on a comparison of the priority levels of the colliding objects. To enhance clarity and legibility of the score, objects are organized into groups of similar type objects. Groups are treated as a single object for the purposes of avoiding collisions. Certain object types are transformed, including scaled, rotated, or sheared, to avoid collisions.

Claims (48)

1. A computer-implemented method of editing a musical score, the method comprising:

inserting an object of a first type into the musical score at an inserted location, the first type having a predetermined first priority level;

detecting whether the inserted object overlaps with a pre-existing object of a second type, the second type having a predetermined second priority level;

if an overlap is detected with the pre-existing object, selecting one of the inserted object and the pre-existing object, wherein the selection is based on a comparison of the first priority level with the second priority level, and displacing the selected one of the inserted object and the pre-existing object by a displacement sufficient to eliminate the detected overlap.

2. The method of claim 1 wherein the first priority level is equal to the second priority level, the first type having a first predetermined handicap, the second type having a second predetermined handicap; the method further comprising basing the selection on a comparison of the first predetermined handicap and the second predetermined handicap.

3. The method of claim 1 , wherein the predetermined first and second priority levels are determined in part on an analysis of observed proximities of objects of the first type and second type respectively to a stave to which the objects refer in a corpus of musical scores.

4. The method of claim 1 , wherein a boundary of the inserted object comprises a first set of one or more polygons that enclose the inserted object and a boundary of the pre-existing object comprises a second set of one or more polygons that enclose the pre-existing object, and wherein the detecting step comprises detecting an overlap between the first set of one or more polygons and the second set of one or more polygons when the inserted object is at the inserted location.

5. The method of claim 1 , wherein the pre-existing object is a member of a group of objects, the group of objects comprising one or more members of the second type in addition to the first-mentioned pre-existing object, the method further comprising displacing all of the members of the group by the displacement sufficient to eliminate the detected overlap.

6. The method of claim 1 , wherein the pre-existing object is a member of a horizontal group comprising a horizontal set of members, the set of members of the horizontal group being substantially horizontally aligned in the score, and wherein the pre-existing object is a member of a vertical group comprising a vertical set of members, the vertical members being substantially vertically aligned in the score, the method further comprising displacing a selected one of the horizontal set of members and the vertical set of members by the displacement sufficient to eliminate the detected overlap.

7. The method of claim 1 further comprising:

detecting whether one or more objects of the first type other than the inserted object are present in the score within a region of the musical score defined by the inserted location; and

if one or more objects of the first type are detected in the score within the region, grouping the inserted object with the detected one or more objects.

8. The method of claim 7 , wherein the region of the score comprises a rectangular region having a width and a length and an axis parallel to the length, the axis bisecting the rectangular region, wherein the axis intersects the inserted location.

9. The method of claim 1 further comprising:

detecting whether an object of the first type other than the inserted object is present within the score within a predetermined distance; and

if an object of the first type is detected within the predetermined distance, grouping the inserted object with the detected object.

10. The method of claim 9 , wherein the predetermined distance is specific to the objects of the first type.

11. The method of claim 1 , further comprising constraining the displacement sufficient to eliminate the overlap to be less than a predetermined maximum allowable range of motion.

12. The method of claim 11 , wherein the predetermined maximum allowable range of motion is specific to the type of the selected one of the inserted object and the pre-existing object.

13. The method of claim 11 , wherein the selected object has a musical meaning within the score, and constraining the displacement to be less than a predetermined maximum allowable range of motion preserves the musical meaning of the selected object.

14. A computer-implemented method of editing a musical score, the method comprising:

inserting an object of a first type into the musical score at an inserted location, the first type having a predetermined first priority level;

detecting whether the inserted object overlaps with a pre-existing object of a second type, the second type having a predetermined second priority level;

if an overlap is detected with the pre-existing object, selecting one of the inserted object and the pre-existing object, wherein the selection is based on a comparison of the first priority level with the second priority level, and transforming the selected one of the inserted object and the pre-existing object by an amount sufficient to eliminate the detected overlap.

15. The method of claim 14 , wherein the selected one of the inserted object and the pre-existing object comprises a hairpin dynamic object, and the transforming step includes scaling the hairpin dynamic object in a horizontal direction.

16. The method of claim 14 , wherein the selected one of the inserted object and the pre-existing object is a slur object, and the transforming step includes transforming the slur object from a first Bezier curve having a first set of parameters to a second Bezier curve having a second set of parameters, the second set of parameters being different from the first set of parameters.

17. The method of claim 14 , wherein the selected one of the inserted object and the pre-existing object is a slur object, and wherein the transforming step includes a combination of a. transforming the slur object from a first Bezier curve to a second Bezier curve, b. translating the slur object, and c. increasing a distance between a slur endpoint and a note corresponding to the slur endpoint.

18. A computer program product, comprising:

a computer-readable medium with computer program instructions encoded thereon, wherein the computer program instructions, when processed by a computer, instruct the computer to perform a method for editing a musical score, the method comprising:

inserting an object of a first type into the musical score at an inserted location, the first type having a predetermined first priority level;

detecting whether the inserted object overlaps with a pre-existing object of a second type, the second type having a predetermined second priority level;

if an overlap is detected with the pre-existing object, selecting one of the inserted object and the pre-existing object, wherein the selection is based on a comparison of the first priority level with the second priority level, and displacing the selected one of the inserted object and the pre-existing object by a displacement sufficient to eliminate the detected overlap.

19. The computer program product of claim 18 , wherein the predetermined first and second priority levels are determined in part on an analysis of observed proximities of objects of the first type and second type respectively to a stave to which the objects refer in a corpus of musical scores.

20. The computer program product of claim 18 , wherein a boundary of the inserted object comprises a first set of one or more polygons that enclose the inserted object and a boundary of the pre-existing object comprises a second set of one or more polygons that enclose the pre-existing object, and wherein the detecting step comprises detecting an overlap between the first set of one or more polygons and the second set of one or more polygons when the inserted object is at the inserted location.

21. The computer program product of claim 18 , wherein the pre-existing object is a member of a group of objects, the group of objects comprising one or more members of the second type in addition to the first-mentioned pre-existing object, the method further comprising displacing all of the members of the group by the displacement sufficient to eliminate the detected overlap.

22. The computer program product of claim 18 , wherein the method further comprises:

detecting whether one or more objects of the first type other than the inserted object are present in the score within a region of the musical score defined by the inserted location; and

if one or more objects of the first type are detected in the score within the region, grouping the inserted object with the detected one or more objects.

23. The computer program product of claim 22 , wherein the region of the musical score is defined specifically for objects of the first type.

24. The computer program product of claim 18 , wherein the displacement is constrained to be less than a predetermined maximum allowable range of motion, the predetermined maximum allowable range of motion that preserves a musical meaning of the selected object.

25. A computer program product, comprising:

a computer-readable medium with computer program instructions encoded thereon, wherein the computer program instructions, when processed by a computer, instruct the computer to perform a method for editing a musical score, the method comprising:

inserting an object of a first type into the musical score at an inserted location, the first type having a predetermined first priority level;

detecting whether the inserted object overlaps with a pre-existing object of a second type, the second type having a predetermined second priority level;

if an overlap is detected with the pre-existing object, selecting one of the inserted object and the pre-existing object, wherein the selection is based on a comparison of the first priority level with the second priority level, and transforming the selected one of the inserted object and the pre-existing object by an amount sufficient to eliminate the detected overlap.

26. The computer program product of claim 25 , wherein the selected one of the inserted object and the pre-existing object comprises a hairpin dynamic object, and the transforming step includes scaling the hairpin dynamic object in a horizontal direction.

27. The computer program product of claim 25 , wherein the selected one of the inserted object and the pre-existing object is a slur object, and the transforming step includes transforming the slur object from a first Bezier curve having a first set of parameters to a second Bezier curve having a second set of parameters, the second set of parameters being different from the first set of parameters.

28. The computer program product of claim 25 , wherein the selected one of the inserted object and the pre-existing object is a slur object, and wherein the transforming step includes a combination of a. transforming the slur object from a first Bezier curve to a second Bezier curve, b. translating the slur object, and c. increasing a distance between a slur endpoint and a note corresponding to the slur endpoint.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 054900/0716) Recorded Nov 8, 2023
From: JPMORGAN CHASE BANK, N.A.
To: AVID TECHNOLOGY, INC.
Reel/Frame 065523/0146 →
PATENT SECURITY AGREEMENT Recorded Nov 8, 2023
From: AVID TECHNOLOGY, INC.
To: SIXTH STREET LENDING PARTNERS, AS ADMINISTRATIVE AGENT
Reel/Frame 065523/0194 →
SECURITY INTEREST Recorded Jan 5, 2021
From: AVID TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054900/0716 →
RELEASE OF SECURITY INTEREST Recorded Jan 5, 2021
From: CERBERUS BUSINESS FINANCE, LLC
To: AVID TECHNOLOGY, INC.
Reel/Frame 055731/0019 →
RELEASE OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Mar 1, 2016
From: KEYBANK NATIONAL ASSOCIATION
To: AVID TECHNOLOGY, INC.
Reel/Frame 037970/0201 →
ASSIGNMENT FOR SECURITY -- PATENTS Recorded Feb 26, 2016
From: AVID TECHNOLOGY, INC.
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 037939/0958 →
PATENT SECURITY AGREEMENT Recorded Jun 23, 2015
From: AVID TECHNOLOGY, INC.
To: KEYBANK NATIONAL ASSOCIATION, AS THE ADMINISTRATIVE AGENT
Reel/Frame 036008/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2009
From: BIGNELL, DAVID; SPREADBURY, DANIEL
To: AVID TECHNOLOGY, INC.
Reel/Frame 023640/0560 →