Autocompletion is a common feature within text-based computer applications such as email, text messaging, and search engines. The feature provides suggestions to users for the continuation or conclusion of an entered text string. The autocompletion suggestions are based on data models generated from large corpora of text, sometimes compiled in part from a given user's previous text entries.
Although widely deployed within productivity software applications, the provision of autocompletion features has not been extended to other kinds of applications. There is therefore a need to provide the productivity benefits offered by autocompletion, such as efficiency and time-saving, to other software application areas, and, in particular, to the realm of applications for composing creative content, such as musical scorewriting applications and digital audio workstations.
A media composition application includes an autosuggestion feature in which suggestions for creative content are provided while a user is in the process of composing a media composition. The autosuggestion is based on material drawn from the media composition itself, or from one or more other sources.
In general, in one aspect, a method of composing a media composition comprising: providing a media composition application; while a user of the media composition application is entering media content for the media composition into the media composition application, automatically displaying a first suggestion for a continuation of the media composition, wherein the suggestion is displayed: as a continuation of the media composition adjacent and sequential to a preceding portion of the media composition; and using a graphical style that distinguishes it from a graphical style of the preceding portion of the media composition; and enabling the user to accept or reject the first suggestion, wherein: when the user accepts the first suggestion, the first suggestion is incorporated into the composition and the first suggestion is redisplayed using the graphical style of the preceding portion of the media composition; and when the user rejects the first suggestion, a second suggestion for continuation of the media composition is automatically displayed.
Various embodiments include one or more of the following features. The media composition application is a musical scorewriter application. The suggestion is based on a portion of the media composition. The portion is the preceding portion of the media composition. The portion of the media composition is specified by the user. The suggestion is based on all of the media composition that has already been entered into the media composition application. The suggestion is based on a corpus of media compositions of a given genre. The suggestion is based on a corpus of media compositions composed by one or more composers. The suggestion is based on a first data source that comprises a plurality of aspects, and wherein the suggestion preserves a first aspect of the first data source and varies a second aspect of the plurality of aspects. The media composition application is a musical scorewriter, the first data source comprises a fragment of a musical score, and the first aspect is one of a rhythm of the fragment, a melody of the fragment, a harmony of the fragment, a lyric of the fragment, and a bass line of the fragment. The suggestion is further based on a second data source that comprises a plurality of aspects, and wherein the suggestion preserves a first aspect of the second data source and varies a second aspect of the second data source. The first aspect of the first data source is a melody aspect. The first aspect of the second data source is one of a rhythm aspect and a harmonization aspect. The length of the first suggestion matches the length of a portion of the media composition that has been selected to provide a basis from which the suggestion is to be generated. The length of the first suggestion is selectable by the user. The length of the first suggestion is automatically determined by the media composition application to fill a length required to complete the media composition.
In general, in another aspect, a computer program product comprises: a non-transitory computer-readable medium with computer-readable instructions encoded thereon, wherein the computer-readable instructions, when processed by a processing device instruct the processing device to perform a method of composing a media composition, the method comprising: providing a media composition application; while a user of the media composition application is entering media content for the media composition into the media composition application, automatically displaying a first suggestion for a continuation of the media composition, wherein the suggestion is displayed: as a continuation of the media composition adjacent and sequential to a preceding portion of the media composition; and using a graphical style that distinguishes it from a graphical style of the preceding portion of the media composition; and enabling the user to accept or reject the first suggestion, wherein: when the user accepts the first suggestion, the first suggestion is incorporated into the composition and the first suggestion is redisplayed using the graphical style of the preceding portion of the media composition; and when the user rejects the first suggestion, a second suggestion for continuation of the media composition is automatically displayed.
In general, in a further aspect, a system comprises: a memory for storing computer-readable instructions; and a processor connected to the memory, wherein the processor, when executing the computer-readable instructions, causes the system to perform a method of composing a media composition, the method comprising: providing a media composition application; while a user of the media composition application is entering media content for the media composition into the media composition application, automatically displaying a first suggestion for a continuation of the media composition, wherein the suggestion is displayed: as a continuation of the media composition adjacent and sequential to a preceding portion of the media composition; and using a graphical style that distinguishes it from a graphical style of the preceding portion of the media composition; and enabling the user to accept or reject the first suggestion, wherein: when the user accepts the first suggestion, the first suggestion is incorporated into the composition and the first suggestion is redisplayed using the graphical style of the preceding portion of the media composition; and when the user rejects the first suggestion, a second suggestion for continuation of the media composition is automatically displayed.
When users enter text into productivity applications such as word processors, email or text messengers, an autocompletion feature is commonly enabled. With this feature, users are offered one or more suggestions as to how to complete a partially entered word or phrase. The suggestions are chosen as the ones that the user is most likely to enter based on the corpus of text on which the autocompletion was trained. The aim is to offer the most probable continuation of the text entry, assuming that the user continues to generate text using the same paradigms and style used in the training corpus.
Applications for composing creative content may also benefit from such productivity-enhancing suggestions in which a user is provided with a most probable continuation or completion of an idea, referred to herein as a reductive suggestion. In addition, applications for composing creative content may use autocompletion in a second way, referred to herein as autosuggestion, which is a type of autocompletion that facilitates the exploration of creative ideas that may not be the most probable continuation of an idea. The suggestions provided by autosuggestion are referred to herein as exploratory suggestions. We describe reductive and exploratory suggestions below. As used herein, a creative content application or an application for composing creative content refers to media composition tools, such as musical scorewriter applications, digital audio workstations, and video composition applications. An example of a scorewriter application is Sibelius® from Avid Technology, Inc., of Burlington Massachusetts; an example of a digital audio workstation is Pro Tools®, also from Avid Technology, Inc.; and an example of a video composition application is Media Composer®, also from Avid Technology, Inc.
Reductive suggestions represent the most probable continuation of an idea. The probability of a continuation may be assessed from the current context within the composition in combination with previous entries of the user. These probabilities are generated by standard methods, such as those that involve one or more of Bayesian methods, Markoff chains, and n-gram probabilities. Successful reductive suggestions may increase the productivity of the user both by eliminating the need to contrive a continuation as well as by obviating the need to input a continuation since all the user needs to do is accept or reject the suggested autocompletion. The reduction in the number of keystrokes required may significantly accelerate the creative process in the context of content creation applications because certain objects in a composition often require many keystrokes for entry. For example, when composing a musical score with a scorewriter application, composers often make frequent use of musical motifs, riffs, and themes that repeat through the piece. Each of these can require many keystrokes for entry. When a user starts to enter the first few notes of a previously used musical motif, a reductive autocompletion system provides a suggestion consisting of the remainder of the motif.
The value of exploratory suggestions stems from the fact that creative content applications are typically free from many of the restrictions that apply to text entry in language-based applications such as word processing, text messaging, or database entry. Within the aesthetic context of a creative content application, the range of acceptable suggestions is large and there may not be a single “best” solution. Thus, while the goal of text-based autocompletion is usually to help a user complete a phrase or a sentence by reducing the total number of possible continuations to a single suggestion or a very small number of suggestions, autosuggestion within creative content applications may be used as a tool for exploring a large number of possible continuations, including the previewing of less commonly-used continuation ideas for the current creative context. This may set up a creative collaboration between the user and the application in which the application generates as many suggestions as the user needs based on user-specified parameters and prior content within the composition, and the user acts as a curator, choosing from among the exploratory suggestions. For example, when composing a musical score, composers often need to create a variation on an existing idea. Exploratory autosuggestions are able to provide a large variety of suggestions based on the existing idea that the user can preview rapidly, perhaps adopting one that is a novel continuation within that musical context.
The described autosuggestion feature within a creative content application is displayed in situ within the composition. The user experience is illustrated in the high-level flow diagram shown in
The user initiates the process by starting to enter a basic musical idea as shown in the first measure of stave 202. The user then selects the entered music as the basis for the autosuggestions, as indicated by shaded region 204. The selection of a single measure of source material may cause the autosuggestion process to default to generating suggestions of the same length, i.e., of a single measure, though the user may override this to choose another length for the suggestion. In addition, the content of the suggestion, e.g., pitch or rhythm patterns, is based on the user's current selection. Next, during the composition process, the user requests a creative autosuggestion (104) either explicitly or implicitly by continuing to enter material into the creative content application. A single suggestion may be offered as a “one-shot” or new suggestions may be offered continuously as the user continues entering material. The system displays the autosuggestion in situ (106) as shown at 206. The user interface distinguishes the existing material in the composition from the autosuggestion by using a distinctive graphical style or notation, such as by using a distinctive shading, boldness, or color, for the suggestion. The user may expand or contract the size of the autosuggestion (108). Next, the user reviews the autosuggestion (110). For a musical composition, the review enables the user to play back a portion of the composition ending with the suggestion. At this point, the user accepts or rejects the suggestion (110). Ways of rejecting a suggestion include continuing to input compositional material manually or requesting another autosuggestion. If the user rejects the suggestion and requests another suggestion, a different suggestion replaces the rejected suggestion as shown at 208. Rejected suggestions may be saved by the system so that users can return to a previous autocompletion suggestion even after it has been rejected (112). This allows users to preview a number of ideas in situ, while retaining the ability to return to the best generated suggestion. Users may request an unlimited number of suggestions until they find a suitable continuation or completion idea by repeatedly triggering the commands to generate a new suggestion (114). When the user is satisfied with a given suggestion, they accept the suggestion by triggering a command that inputs the suggestion into their score (116). At this point, the suggestion becomes a part of the composition and the display of the autosuggestion changes to match the graphical characteristics (e.g., shading, boldness, color) of the material already present in the composition, as shown at 210. The process then repeats, either automatically or in response to a user request, with another portion of the composition selected as the data source as shown at 212, and a new autosuggestion appears in the subsequent bar as shown at 214.
Autocompletion suggestions may be customized in several ways. A portion of a scorewriter application user interface offering customizable autosuggestion is shown diagrammatically in
Another method of customization of autocomplete suggestions makes use of data filters. Once a data source has been chosen by a user, the data source may be filtered to include or exclude certain aspects of the data, as illustrated with data filter box 304. Filters allow a given data source to be used for creating various types of suggestions in which an aspect of the data source, such as rhythm, melody, harmony, lyrics, and bass line suggestions is preserved while one or more of the other facets are varied in the suggestion. For example, if pitch is selected as shown in data filter box 304, new pitch ideas are generated based on the pitches from the data source, while other information from the data source, such as rhythm is explicitly retained. This corresponds to the example illustrated in
The length of the autocompletion suggestions may be varied, ranging from small-scale suggestions as small as a single note, to large-scale suggestions up to and including material suggested for the remainder of the composition. This contrasts with language-based autocompletion systems in which the length of the suggestion is not customizable. An exemplary user interface for this customization is shown in suggestion length box 306. In the illustrated example, other means of changing the length of the suggestion include drag bar 308, and discrete increase and decrease length selection commands 310, 312. In the example described above, the default suggestion length is set to equal that of the source data (i.e., one bar). Thus, one way to change the suggestion length is to select a longer or shorter source data fragment. However, the system enables the user to override this default and set the suggestion length to a desired value regardless of the source material length. Factors that may inform a user's choice of suggestion length include the quality of the suggestions, and whether they tend to start off well, and then deteriorate. In one implementation, a user may decide on a case by case basis whether to extend the length of a suggestion based on their assessment of an initial suggestion. Another factor may be the need to fit a suggestion into a predefined duration. For example, if a user has been using two-bar suggestions but only a single bar remains in the piece, the user may select a shorter suggestion length.
Other autosuggestion-related customization may be offered, such as whether a portion of the composition in progress that is selected as the data source for the autosuggestion is automatically advanced following acceptance of a suggestion, as shown in options box 314. In the illustrated user interface, material that is already incorporated into the composition 316 is distinguished from autosuggestion material 318 in the user interface by means of its graphical style or notation, for example by having a distinctive shading, color, boldness, font type.
Following the display of each new suggestion, the user may either accept the suggestion or request a new autosuggestion, using user elements such as buttons 320 and 322 respectively.
The various components of the system described herein may be implemented as a computer program using a general-purpose computer system. Such a computer system typically includes a main unit connected to both an output device that displays information to an operator and an input device that receives input from an operator. The main unit generally includes a processor connected to a memory system via an interconnection mechanism. The input device and output device also are connected to the processor and memory system via the interconnection mechanism.
One or more output devices may be connected to the computer system. Example output devices include, but are not limited to, liquid crystal displays (LCD), plasma displays, various stereoscopic displays including displays requiring viewer glasses and glasses-free displays, video projection systems and other video output devices, loudspeakers, headphones and other audio output devices, printers, devices for communicating over a low or high bandwidth network, including network interface devices, cable modems, and storage devices such as disk, tape, or solid state media including flash memory. One or more input devices may be connected to the computer system. Example input devices include, but are not limited to, a text keyboard, musical keyboard, keypad, track ball, mouse, pen and tablet, touchscreen, camera, communication device, and data input devices. The invention is not limited to the particular input or output devices used in combination with the computer system or to those described herein.
The computer system may be a general-purpose computer system, which is programmable using a computer programming language, a scripting language or even assembly language. The computer system may also be specially programmed, special purpose hardware. In a general-purpose computer system, the processor is typically a commercially available processor. The general-purpose computer also typically has an operating system, which controls the execution of other computer programs and provides scheduling, debugging, input/output control, accounting, compilation, storage assignment, data management and memory management, and communication control and related services. The computer system may be connected to a local network and/or to a wide area network, such as the Internet. The connected network may transfer to and from the computer system program instructions for execution on the computer, media data such as video data, still image data, or audio data, metadata, review and approval information for a media composition, media annotations, and other data.
A memory system typically includes a computer readable medium. The medium may be volatile or nonvolatile, writeable or nonwriteable, and/or rewriteable or not rewriteable. A memory system typically stores data in binary form. Such data may define an application program to be executed by the microprocessor, or information stored on the disk to be processed by the application program. The invention is not limited to a particular memory system. Time-based media may be stored on and input from magnetic, optical, or solid-state drives, which may include an array of local or network attached disks.
A system such as described herein may be implemented in software, hardware, firmware, or a combination of the three. The various elements of the system, either individually or in combination may be implemented as one or more computer program products in which computer program instructions are stored on a non-transitory computer readable medium for execution by a computer or transferred to a computer system via a connected local area or wide area network. Various steps of a process may be performed by a computer executing such computer program instructions. The computer system may be a multiprocessor computer system or may include multiple computers connected over a computer network or may be implemented in the cloud. The components described herein may be separate modules of a computer program, or may be separate computer programs, which may be operable on separate computers. The data produced by these components may be stored in a memory system or transmitted between computer systems by means of various communication media such as carrier signals.
Having now described an example embodiment, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. Numerous modifications and other embodiments are within the scope of one of ordinary skill in the art and are contemplated as falling within the scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
6469711 | Foreman | Oct 2002 | B2 |
11264002 | Ackerman | Mar 2022 | B2 |
11768868 | Gonsalves | Sep 2023 | B2 |
20100293455 | Bloch | Nov 2010 | A1 |
20140195026 | Wieder | Jul 2014 | A1 |
20160170948 | Bloch | Jun 2016 | A1 |
20170263228 | Silverstein | Sep 2017 | A1 |
20190378482 | Vorobyev | Dec 2019 | A1 |
20200380940 | Abdallah | Dec 2020 | A1 |
20210295148 | Gonsalves | Sep 2021 | A1 |
20210335334 | Ackerman | Oct 2021 | A1 |
20220310048 | Plazak | Sep 2022 | A1 |
Number | Date | Country |
---|---|---|
11 2013 005 807 | Aug 2015 | DE |
112013005807 | Aug 2015 | DE |
1994525 | Oct 2016 | EP |
4868483 | Feb 2012 | JP |
WO-2010054842 | May 2010 | WO |
Entry |
---|
Hadjeres, Gaetan, et al., DeepBach: a Steerable Model for Bach Chorales Generation, arxiv.org/abs/1612.01010, Jun. 17, 2017, 10 pgs. |
Huang, Cheng-Zhi Anna et al., The Boch Doodle: Approachable Music Composition With Machine Learning at Scale, arxiv.org/abs/1907.06637, Jun. 14, 2019, 8 pgs. |
Number | Date | Country | |
---|---|---|---|
20220310048 A1 | Sep 2022 | US |