A method and system of using Artificial Intelligence to automatically create and generate an interactive play-along song from a selected audio file/song imported from either a music streaming service, a personal music library and the like, that can later be played on an interactive music engine.
|
9. A system, comprising:
a processor configured to:
receive an audio file from a remote source;
directly analyze the audio file to map and create a virtual song definition configured for interactive playback;
perform chromatic analysis across a length of the audio file to create song section objects in the virtual song definition, where each song section contains a regional key offset that is configured to transpose seed notes from a detected root key to regional specific seed notes for the song section in real-time; and
perform tempo analysis on the length of the audio file to create tempo region objects in the virtual song definition, where each tempo region contains a tempo value that establishes a playback tempo for the region.
1. A non-transitory computer readable medium including instructions operable by an electronic processor, comprising instructions for:
receiving an audio file from a remote source;
directly analyzing the audio file to map in audio form and create a virtual song definition configured for interactive playback;
performing chromatic analysis across a length of the audio file to create a song section in the virtual song definition, where each song section contains a regional key offset that is configured to transpose seed notes from a detected root key to regional specific seed notes for the song section in real-time; and
performing tempo analysis on the length of the audio file to create a tempo region in the virtual song definition, where each tempo region contains a tempo value that establishes a playback tempo for the region.
2. The non-transitory computer readable medium as specified in
3. The non-transitory computer readable medium as specified in
4. The non-transitory computer readable medium as specified in
5. The non-transitory computer readable medium as specified in
6. The non-transitory computer readable medium as specified in
7. The non-transitory computer readable medium as specified in
8. The non-transitory computer readable medium as specified in
10. The system as specified in
11. The system as specified in
12. The system as specified in
13. The system as specified in
14. The system as specified in
15. The system as specified in
|
The present disclosure relates to the use of Artificial Intelligence to automatically create and generate a multi instrument/sound/note interactive play-along song from a selected audio file/song imported from either a music streaming service, a personal music library and the like.
Interactive play-along songs can be played by a multi-media platform, such as available from Beamz Interactive, Inc. of Scottsdale Ariz. Such a platform is described in commonly assigned U.S. Pat. Nos. 7,504,577, 7,858,870, 9,542,919 and 9,646,588, the teachings of each which are incorporated herein by reference in their entirety.
The Beamz Cross Platform (i.e. IOS, Android, PC, MAC, AR, MR, VR, etc.) Interactive Music Engine is an award winning rich multi-media technology and platform configured to allow a user to selectively trigger various triggers each associated with a subset of a musical composition, to both compose and play sympathetic music. Different subsets/Midi files of a musical composition can be selectively assigned to the triggers. The platform includes triggers, and an electronic processor generating a control signal as a function of the triggers selected by a user. The electronic processor also generates the control signal as a function of a plurality of music programs. Each music program comprises sound elements comprising a subset of a musical composition, and the music programs are correlated to each other. The electronic processor generates audio signals indicative of audible musical sounds as a function of the control signal.
There is a need to use Artificial Intelligence to automatically create and generate a multi instrument/sound/note interactive play-along song from a selected audio file/song imported from either a music streaming service, a personal music library and the like, that can later be played on an interactive music engine.
This disclosure comprises a method and system of using Artificial Intelligence to automatically create and generate an interactive play-along song from a selected audio file/song imported from either a music streaming service, a personal music library and the like, that can later be played on an interactive music engine.
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the disclosure and together with the description serve to explain the principles of the disclosure.
This disclosure is directed to using Artificial Intelligence to automatically create and generate an interactive play-along song from a selected audio file/song imported from either a music streaming service, a personal music library and the like. The generated interactive play-along song can be played by a multi-media platform, such as available from Beamz Interactive, Inc. of Scottsdale Ariz. Such a platform is described in commonly assigned U.S. Pat. Nos. 7,504,577, 7,858,870, 9,542,919 and 9,646,588, the teachings of which are incorporated herein by reference in their entirety. These methods and illustrations show interactive music content being generated for direct use with the Beams Interactive Music Engine. However, all song properties and generated note pools can be used by other music engines as long as they can accommodate Tempo and Key changes throughout a song; and they can use pools of sympathetic notes that are appropriate to the key changes as the song plays.
The Beamz Interactive Music Engine includes an electronic processor generating a control signal as a function of trigger objects selected by a user, the electronic processor also generating the control signal as a function of a plurality of music programs, wherein each said music program comprises sound elements comprising a subset of a musical composition, and the music programs are correlated to each other, the electronic processor generating an audio signals indicative of audible musical sounds as a function of the control signal.
The system 1000 can be implemented in electronic device 1001, and embodied as one of a computer, a smart phone, a tablet, a touchscreen computer, and the like having a display 1004.
Application engine 1007 is operable on an electronic processor 1006 and receives one or more inputs 1005 from the multiple trigger objects 1003 within the application environment 1001.
Application engine 1007 controls playback of media files 1011 that are combined to form a multilayered media file based on one or more of trigger inputs 1005, and definition file 1010 via sound engine 1008. The media files 1011 can be one or more MIDI files, samples such as .wav and .mp3 files, video files in a plurality of formats, and/or any other audio or video file format.
With a short trigger break, the trigger 1003 is held broken for a substantially short period of time, such as with a threshold for the short period of time of 0.5 seconds or less. The application engine 1007 can use the short break to trigger a one-shot, play a single note in a streamed sequence, or start and stop a loop.
With a long trigger break, the trigger 1003 is held broken for a longer period of time, such as with a threshold for the longer period of time of 0.5 seconds or more. Additional thresholds may be used for long trigger breaks with each threshold associated with a different action to be taken by the application engine 1007.
The application engine 1007 can use a long trigger break to Pulse (stream) notes.
Processor 1006 is configured such that visual outputs from application engine 1007 are displayed on display 1004 and output from sound engine 1008 is played on speaker 1009.
The combination of application engine 1007 and sound engine 1008 form an application on the processor 1006. The processor 1006 is configured to selectively associate a music programs with each of the plurality of trigger objects. The processor 1006 is configured such that when one of the trigger objects 1003 is in a first state for a prolonged period of time successive said audible musical sounds are generated, such that, for instance, the musical program associated with the trigger object continues to play uninterrupted, along with any other music programs that are playing in response the associated trigger object being triggered.
Display 1004 displays the application environment 1002.
When a trigger object 1003 is triggered by a user, trigger-specific visual output from application engine 1007 can be shown to alter the display properties or attributes of any element in the display 1004.
Midi is based on a chromatic music scale that breaks an octave into 12 notes (semitones) shown at 11. There are 128 possible Midi notes 11 spanning 10 octaves, shown at 12.
The lowest possible Midi note 11 is “C” in Octave #0 shown at 101, the highest Midi note 11 is “G” in Octave #10 shown at 102.
As illustrated in
All Midi notes 11 are numbered at 13 sequentially from the lowest to the highest (0-127)
By using a combination of generic Offset Templates, this standard Midi note numbering scheme is used as a foundation for numerically generating play-along musical notes that will always be sympathetic or compatible with the analyzed audio file/song in real time.
When the song is played by application engine 1007 and song engine 1008, it follows this Virtual Song map 20, responding to the markers as they are encountered.
This example shows the data derived by application engine 1007 from performing Tempo & Chromatic analysis on a sample 10 bar (audio) audio file/song that was recorded in the key of C major at an approximate tempo of 120 BPM.
The application engine 1007 performs Tempo Analysis on the audio file/song to place Tempo value markers 21 in the Virtual Song map 20 to establish or change the tempo at that point in the audio file/song. When a Tempo value marker 21 is encountered during playback, the current Tempo is set to the value contained in the Tempo value marker 21.
The application engine 1007 performs Chromatic Analysis to add Regional Key markers 22 to the Virtual Song map 20 to indicate chromatic changes and their location within the audio file/song.
Each Regional Key marker 22 contains the chromatic global Region Key Offset 23 needed to transpose Seed Notes 42 from the detected Root Key 26 to Region specific Seed Notes 52 in the new key.
For example, if the audio file/song is detected to be in C, and the scan detects that, during play, the key changes to F, a Regional Key marker 22 is placed at that location in the Virtual Song map 20 with an offset value 23 of +5.
When a Regional Key marker 22 is encountered during playback of the audio file/song, the global Region Key Offset 23 is set to the value contained in the marker 22.
The application engine 1007 creates Song Sections (Chromatic Regions) shown at 28. Each chromatic region 28 becomes a Song Section (subset of song) in the song's definition as a whole and it marks a key change in the audio file/song.
In this example, there are 6 Song Sections 28—each having their own properties: Key 22, Regional (key) offset 23, and Length 25.
The combined lengths 25 of all the Song Sections 28 constitute the song's main loop length 29.
Use of Transposition Offsets
The following methods for generating sympathetic note pools are based on the use and application of multiple “Offsets”.
All generated play-along notes begin from preprogrammed scale notes which are generated from standard templates, in a standard key, within a standard octave.
The offsets described herein are used to transpose these notes to a different key as required by the audio file/song.
Offsets are expressed as semitone values—the number of semitones a given (root) note needs to be transposed into the target note.
For the sake of simplicity, all illustrations and methods described herein use the standard MIDI note numbering scheme to easily show how notes can be transposed by semitones.
However, these transposition offset methods apply to both MIDI notes and note samples as well.
With root notes in MIDI format, the offset amount is added to the MIDI note number for the root note to obtain the MIDI note number of the target note.
With sampled notes, audio transposition software is used to apply an offset value to transpose a sampled root note to a sample in the frequency of the target key.
After chromatic scanning is completed by application engine 1007, the scanned key data is used to select an appropriate seed note template 31 for the scanned audio file/song. A Global Root Key Offset 24 (
All Note Templates are based on the standard Midi note numbering scheme (
Scale note templates supply the preliminary note, pool 32 that is musically sympathetic to the overall scanned audio file/song. Their associated Midi note numbers 33 are used to mathematically transpose them to the proper key and octave as needed.
After chromatic scanning is complete, the scanned key data is used to determine a Global Root Key Offset 24 which is applied to transpose the preliminary sympathetic note pool 32 from the key of C to the detected key for the audio file/song.
In this illustration, the chromatic scanning determined the audio file/song to be in the key of G Major and the Global Root Key Offset 24 is set to +7. Adding this offset to the Midi note numbers from the C Major template 33 transposes the seed note pool to the key of G Major 42, 43.
For the Sake of Simplicity, all Other Figures are Illustrated with an Example Song in the Key of C. (Global Key Offset=0)
As the audio file/song plays, and (chromatic) Song. Section markers are encountered, the current Regional Offset 23 is set to the offset value contained in the marker 23 in real time. This ensures that all triggered notes will be in the proper key for what the song is currently playing.
In this example, Region #1 plays in the key of C major while Region #2 is transposed to the key of F major.
All predefined instrument choices contain information necessary to use that instrument in a musical composition. If the notes to be played are MIDI, each instrument 61 must be assigned to a Midi Synthesizer Patch 63 within a downloadable sound set 62. The ideal Octave Range for each instrument is determined from the Low 64 & High 65 Octave values. In
For each Instrument selected by the user:
The Octave Range 66 is calculated from the Low Octave 64 and High Octave 65 values.
Octave Range Offsets 67 are established for each Octave contained in the Octave Range 66.
For example, all Seed Note Pools 42 are always generated for Octave #0.
If an instrument sounds best in octave #5, the offset value (in chromatic semi-tones) would be +60 (5×12 semis).
Using the Octave Range Offsets 67, one set of preliminary Seed Notes 71 is generated for each octave contained in the Octave Range 66.
All of an Instrument's play-notes start out as standard Scale Notes contained in a Scale Note Template 31. The appropriate template is indicated by chromatic analysis of the imported song. Chromatic analysis also sets the Global Key Offset 24 (See
The Global Key Offset 24 is added to the Midi Note numbers 33 of the appropriate Scale Note template 31 which transposes them into Seed Notes 42 in the Detected Root Key 26 of the scanned song. (See
Instrument Octave Offsets 67 are added to the Midi Note numbers 72 of the Preliminary Seed Notes 70. This transposes them to be within the Instrument's specified Octave Ranges 64-65.
Octave Offsets 67 are used to generate Preliminary Seed Notes 71 for all octaves that fall within the range specified by the Low Octave 64 and High Octave 65 properties from the Instrument definition 61.
As the application engine 1007 plays the audio file/song in real time, and (chromatic) Song Section markers are encountered, the Global Region Offset 84 is set to the offset value contained in the marker 23. This ensures that all triggered notes will be in the proper key for what the song is currently playing.
Each note in the note pool 86 has its own Index ID, 87 which is not affected by any of the Offset values. This index establishes a way to retrieve and play the same melodic pattern across all Regions of the song. See
Melody patterns are predefined within software executing in the application engine 1007. They are required for playback and can be either selected or established as defaults for an Instrument.
Melody Patterns can have an unlimited number of steps.
The same Melody Pattern can be used across all chromatic regions in a song by dynamically adjusting the Regional Offset 84.
Any Melody Pattern can be used with any Instrument.
To provide flexibility across all keys, Melody Patterns do not directly reference the pattern notes by their. Key designation 86. Instead, the notes are referenced by their Index ID 87 within the Instrument's Sympathetic Note Pool (
At step 1101 the application engine 1007 receives a user selection of an audio file/song to import the audio file/song from either a music streaming service or from a personal music library, and the like.
The imported audio file/song must be in a standard audio format such as .wav or .mp3, or the like. A preliminary Virtual Song map 20 is established showing the length of the overall song, its measure alignment grid, tempo setting markers, and where they occur in the audio file/song as it is played. A link to the imported file 27 is saved as part of the song definitions in definition file 1010. The length of the imported song 28 is saved as part of the song definitions.
At step 1102 the imported audio file/song is software scanned by application engine 1007 to determine its beat points (tempo), and its beat/measure alignments (time signature). The results of the scan are used by application engine 1007 to prepare a Virtual Song map 20 for the entire song by placing Tempo markers into the map at the appropriate locations along its length, as previously discussed, as shown in
At step 1103 the imported audio file is software analyzed by application engine 1007 to determine its overall key 26.
The audio file is also scanned along its length to determine key changes and mark where they occur.
Regional Key indicator markers 22 are placed in the virtual Song Map 20 at the appropriate locations along its length.
All predesigned Key/Scale templates 31 contain a generic Scale Note pool 32 in the key of C in Octave #0.
Based on the detected key for the audio file/song, a Global Key Offset 24 is established. This Global offset transposes all generic Scale Notes 32 from the generic key of C to Seed Notes 42 in the detected key. For example, if the detected key is F, the Global Key Offset 24 would be +5.
At step 1104 a basic pool of Sympathetic Seed Notes for the song is established by the application engine 1007 applying the Global Key offset to the scale notes contained in the Generic Key/Scale template. (Template Note) 32+(Global Key Offset) 24=Seed Note Pool 42.
At step 1105 the user interface/display 1004 presents the user with a menu of possible play-along instruments 61 or instrument combinations. The menu is organized in ways to simplify selections such as organizing the instrument choices by Genre.
At step 1106 an Instrument-specific Base Pool of notes 71 is established by application engine 1007 for each selected instrument.
At step 1107 each Instrument selection comes with a predetermined (default) method to, trigger it (Trigger Type Pulse; One-shot etc). Upon user selection of an Instrument, the user may accept or change the triggering characteristics.
At step 1108 each Instrument selection comes with a default selection of playback templates shown in
At step 1109, upon completion, all song selections & properties are saved by the application engine 1007 in an XML format that can be read, edited, and played, such as by Beamz Interactive software offered by Beam Interactive, Inc. of Scottsdale Ariz.
The appended claims set forth novel and inventive aspects of the subject matter described above, but the claims may also encompass additional subject matter not specifically recited in detail. For example, certain features, elements, or aspects may be omitted from the claims if not necessary to distinguish the novel and inventive features from what is already known to a person having ordinary skill in the art. Features, elements, and aspects described herein may also be combined or replaced by alternative features serving the same, equivalent, or similar purpose without departing from the scope of the invention defined by the appended claims.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
7667125, | Feb 01 2007 | MUSEAMI, INC | Music transcription |
7956276, | Dec 04 2006 | Sony Corporation | Method of distributing mashup data, mashup method, server apparatus for mashup data, and mashup apparatus |
8115090, | Nov 28 2006 | Sony Corporation | Mashup data file, mashup apparatus, and content creation method |
9111519, | Oct 26 2011 | Mixwolf LLC | System and method for generating cuepoints for mixing song data |
20010039872, | |||
20030094093, | |||
20080271592, | |||
20090048694, | |||
20140018947, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 14 2018 | BENCAR, GARY | BEAMZ INTERACTIVE, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 046359 | /0200 | |
Jul 14 2018 | NYSTROM, TODD | BEAMZ INTERACTIVE, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 046359 | /0200 | |
Jul 16 2018 | BEAMZ IP, LLC | (assignment on the face of the patent) | / | |||
May 23 2019 | BEAMZ INTERACTIVE, INC | BEAMZ IP, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 049330 | /0114 | |
May 23 2019 | BEAMZ IP, LLC | BEAMZ INTERACTIVE, INC | LICENSE SEE DOCUMENT FOR DETAILS | 049330 | /0259 | |
May 28 2020 | BEAMZ IP, LLC | TOPDOWN LICENSING LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 053029 | /0492 |
Date | Maintenance Fee Events |
Jul 16 2018 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Jul 31 2018 | SMAL: Entity status set to Small. |
Sep 04 2023 | REM: Maintenance Fee Reminder Mailed. |
Feb 19 2024 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jan 14 2023 | 4 years fee payment window open |
Jul 14 2023 | 6 months grace period start (w surcharge) |
Jan 14 2024 | patent expiry (for year 4) |
Jan 14 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 14 2027 | 8 years fee payment window open |
Jul 14 2027 | 6 months grace period start (w surcharge) |
Jan 14 2028 | patent expiry (for year 8) |
Jan 14 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 14 2031 | 12 years fee payment window open |
Jul 14 2031 | 6 months grace period start (w surcharge) |
Jan 14 2032 | patent expiry (for year 12) |
Jan 14 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |