The present disclosure relates in general to music software, and, in particular, to methods and apparatus for creating music melodies.
Musicians generally have to create or write melodies to create a song. To create a melody, musicians need to select a group of music notes or chords and organize them into an arrangement that appeals to the musician or listener. For a writer of music, the difficulty in writing a song lies in the selection of notes and chords and the corresponding arrangement of said notes and chords into a musically appealing arrangement to create a melody that serves as a basis for the song.
Music software presently enables a user to input individual notes and chords, generally in the form of a base melody, into music software. The software generally enables the user to modify the notes and chords and provides playback of the input and modification. The base melody can be manipulated by the software to obtain a manipulated melody most suitable to the user's needs. While such software is valuable for teaching music and writing music, existing music software does not help a musician create an initial melody, or string of music notes and chords, that is a necessary first step in writing a song.
The presently disclosed method and apparatus solves this problem by applying music-related algorithms to inputted words or strings of characters, which are unrelated to musical notes or chords, to produce music melodies. The example method and apparatus described herein uses mathematical probabilities combined with ciphering algorithms to convert the inputted words or strings of characters into musical melodies. The example method and apparatus include a user interface that enables a user to input text or strings of characters and select a type of recipe that corresponds to a unique algorithm for generating a melody. The user interface displays the melody in the form of human readable musical notes. The user interface also enables a user to modify the generated melody to achieve a desired melody, song, etc.
The example method and apparatus described herein may be implemented in a stand-alone software program, a software module integrated with commercially available musical creation and editing software, and/or an application operating on a mobile device such as, for example, a smartphone or a tablet computer. The example method and apparatus described herein may be integrated with social media applications to enable individuals to collaborate on songs or melodies or to generate melodies between individuals. The example method and apparatus described herein may also be used in cryptology applications to protect transferred data using ciphering algorithms based on musical melodies.
It is accordingly an advantage of the present disclosure to provide a method and apparatus to create musical melodies based on text or characters.
It is another advantage of the present disclosure to enable a user to modify musical properties of musical melodies created from text or characters.
It is a further advantage of the present disclosure to enable users to collaborate on the creation of musical melodies based on text or characters.
It is yet another advantage of the present disclosure to encrypt messages, data or files using the method and apparatus to create musical notes or chords based on text or characters.
Additional features and advantages of the system and methods are described herein and will be apparent from the following Detailed Description and figures.
The example method and apparatus are described herein as a device employing a non-web based computer program. One of skill in the art can appreciate that the example method and apparatus are not limited to this implementation. In other embodiments, the example method and apparatus could be implemented as a software module integrated with additional music editing software such as, for example, Sibelius®, Propellerhead Software™, Finale®, Ableton®, Garage Band®, Pro Tools®, or Cubase®. Additionally, the example method and apparatus could be implemented as a mobile application or social media plug-in operable on a smartphone or tablet computer.
A high level block diagram of an exemplary network communications system 100 is illustrated in
For each of the devices 102 employed in the network communications system 100, web server 106 stores a plurality of files, programs, and/or web pages in one or more databases 108 for use by client devices 102 as described in detail below. Database 108 may be connected directly to the web server 106 and/or via one or more network connections. Database 108 stores data as described in detail below.
One web server 106 may interact with a large number of client devices 102. Accordingly, each server 106 is typically a computer with a large storage and processing capacity, one or more fast microprocessors, and/or one or more high speed network connections. Conversely, relative to a typical server 106, each client device 102 typically includes less storage capacity, a single microprocessor, and a single network connection.
A more detailed block diagram of the electrical systems of a computing device (e.g., client device 102 and/or server 106) is illustrated in
Client device 102 may include a personal computer (“PC”), desktop computer, a tablet computer, a music system such as a stereo, an electrically powered musical instrument such as an electronic keyboard, a personal digital assistant (“PDA”), an Internet appliance, a cellular telephone, a smartphone, a digital music player, or any other suitable communication device. Client device 102 may also be a stand alone device capable of docking with one of the above communication devices such as a person computer or electrically powered musical instrument, such that melodies produced from the stand alone device can be uploaded, manipulated and acoustically outputted by the suitable communication device.
Client device 102 includes a main unit 202, which preferably includes one or more processors 204 electrically coupled by an address/data bus 206 to one or more memory devices 208, other computer circuitry 210, and one or more interface circuits 212. Processor 204 may be any suitable processor. Memory 208 preferably includes volatile memory and non-volatile memory. Preferably, memory 208 stores a software program that executes a process such as the example described below and illustrated in the flowcharts of
Interface circuit 212 may be implemented using any suitable interface standard, such as an Ethernet interface and/or a Universal Serial Bus (“USB”) interface. One or more input devices 214 may be connected to interface circuit 212 for entering data and commands into main unit 202. For example, input device 214 may be a keyboard, mouse, touch screen, track pad, track ball, isopoint, and/or a voice recognition system.
One or more displays, printers, speakers, and/or other output devices 216 may also be connected to main unit 202 via interface circuit 212. Display 216 may be a cathode ray tube (CRTs), liquid crystal displays (“LCDs”), or any other type of display. Display 216 generates visual displays of data generated during operation of client device 102. For example, display 216 may be used to display web pages or application data received from server 106 or output data received from processor 204. The visual displays (e.g., user interfaces) may include prompts for user input, calculated values, data, etc.
One or more storage devices 218 may also be connected to main unit 202 via interface circuit 212. For example, a hard drive, CD drive, DVD drive, and/or other storage devices may be connected to main unit 202. Storage devices 218 may store any type of data used by client device 102.
Client device 102 may also exchange data with other network devices 220 via a connection to network 110. The network connection may be any type of network connection, such as an Ethernet connection, digital subscriber line (“DSL”), telephone line, coaxial cable, etc. Alternatively, the network connection may be wireless. Users 114 of the system 100 may be required to register with the server 106. In such an instance, each user 114 may choose a user identifier (e.g., e-mail address) and a password which may be required for the activation of services. The user identifier and password may be passed across the network 110 using encryption built into the user's browser. Alternatively, the user identifier and/or password may be assigned by the server 106.
Program buttons 306 can include any combination of functions necessary to operate the program displayed on screen 312 and which will be described in detail below. Program buttons 306 can be, for example, membrane switches, mechanical switches, or any other type suitable switch or button.
Speakers 308 are configured to sonically and/or acoustically output musical notes produced by pressing piano keys 302. Speakers 308 are also configured to acoustically output melodies produced by the software program displayed on screen 312. Speakers 308 will acoustically output said melodies when instructed by a user.
Microphone 310 is configured to receive voice input from the user in the form of, for example, verbal commands readable by a voice recognition system in keyboard 300, or verbal notes or lyrics readable and recordable by memory 208.
Besides being a display screen, screen 312 can also be a touchscreen, as illustrated in
As further illustrated in
Stand Alone Device Embodiment
Screen 312 can alternatively be separable from keyboard 300 such that screen 312 is a stand alone device 400, illustrated in
Stand alone device 400 can also include an adapter 410 configured to dock device 400 into a docking station, such as a docking station on keyboard 300, personal computer, or any other suitable communication device as discussed above.
A flowchart of an example process 500 for creating music melodies using a software program is illustrated in
In general, the process 500 causes a computing device 102 to execute a program to create music melodies. The process 500 generally begins when the software program displays to the user, via display 312, a user input location and a plurality of recipe options on a first screen, or “Simple” screen (block 502). The “Simple” screen is shown for example in
After receiving the character string input and corresponding user input to “Load” the character string (block 504), device 102 executes a routine that determines whether each inputted character meets the present requirement for “character” (block 506). For example, in
Referring back to
If each inputted character does not meet the present requirement for “character,” then device 102 executes a sub-routine that determines whether every inputted character fails to meet the present requirement for “character” (block 508). If every character fails to meet the present requirement for “character,” then device 102 removes all the characters inputted into the user display location (block 510). The user can either be prompted to once again “Enter a word” or the user will recognize that the initially inputted string has been deleted and can attempt to enter another word, or string of characters and spaces. Device 102 will repeat the loop of blocks 504 to 510 until at least one user inputted character string meets the present requirement for “character.”
If each inputted character does not meet the present requirement for “character” but not every character fails to meet the present requirement for “character” (i.e., user inputs at least one “character”), then device 102 removes the faulty inputted characters (block 512) and executes the specific algorithms for only the properly inputted characters, described below with relation to
For example, if device 102 requires that every “character” be either a space or an English letter, the string “abc defg” will not be revised prior to algorithm execution, the string “ab3de5g” will be revised to “abdeg” prior to algorithm execution, and the string “43%45##” will be completely removed and the user will either be prompted to once again “Enter a word” or the user will recognize that the initially inputted string has been deleted and can attempt to enter another word, or string of characters and spaces.
Referring now to
Each recipe, or “version,” begins as a unique substitution cipher that assigns a note, or empty space (e.g., a pause) to be later filled according the recipe algorithm, for each letter of the alphabet. In other embodiments, recipes may assign different character strings (e.g., words, punctuation, numbers, etc.) to a single note or pause. Example recipes, and corresponding ciphers, are provided in Table 1 below:
The outputted string can then be manipulated manually by the user throughout the levels of the program as will be described in detail below. It should be understood that the software program is not limited to the above described recipes. Additional recipes can be added and existing recipes can be taken removed from the program per user preference. Additional recipes can be downloaded to the software program of device 102, for example, from one or more databases 108 associated with one or more servers 106, from network device 220 via one or more communications channels 110, from user-created manually inputted algorithms, or from memory storage devices in communication with memory 208 of device 102.
Referring again to
Regarding the optional user input for recipes such as the “2×4” and “Big 10,” device 102 can receive a user selection based on any number between 0 and 7. The empty letter spaces, discussed above, are then filled in with following note letter values. For example, for recipe ‘2×4,’ 0=leave blank, 1=“D”, 2=“C”, 3=“B”, 5=“E”, 6=“A” and 7=“B”. For version “Big 10,” 0=leave blank, 1=“E”, 2=“D”, 3=“C”, 4=“B”, 5=“A”, 6=“F” and 7=“A”. This option therefore provides an instant “push button” dramatic change in the outputted string and the corresponding output sound of the chosen recipe.
Once the user enters a proper word and selects a desired recipe, device 102 receives the user input to advance to the “Intermediate” screen (block 608) illustrated by
Referring to
Returning to
Device 102 receives user input to play musical notes from the first and/or second display locations (block 712) and acoustically outputs the selected musical notes according to adjustments to volume, tempo, interval and instrument (block 714). Referring again to
Device 102 receives user input to advance to the “Advanced” screen (block 716). At any time while on the “Intermediate” screen, the user can advance to the “Advanced” screen. Referring to
Referring to
The software program of device 102 executes the key selection (block 806) and displays a key-adjusted output string, triads based from the selected key, and three individual musical note strings for the triad chord (block 808). Referring to
Referring again to
The “play mode” user selection can also include a mode selection that includes, for example, a “parallel” play mode and a “voice led” play mode.
When choosing “parallel mode” the playback of the output string described above would graphically resemble the chart shown in
The two-note chords represented in both graphs are identical. However, chords are rarely performed in parallel fashion, so listening in “voice led” mode sounds much more realistic. Therefore, if a user cannot quite hear the chord during acoustic output, a switch to the “parallel mode” can identify the root, third and fifth cords more easily. The “voice led” mode approximates the rules for music arranging by choosing the nearest note in each consecutive chord for the same voice. In the two example charts of
Device 102 receives input to play the “In Key” key-adjusted output string (block 812) and/or the selected single tone, dyad or triad chord (block 814). The device 102 then acoustically outputs the selected musical notes or chord (block 816). Referring again to
Note that
While the present disclosure does not attempt to explain music theory, the following is a short illustrative explanation of Key. The keys of C-Major and C-minor do not use the same notes. This is illustrated by the concept of “relative key.” The “relative minor key” of any Major key is made up the same notes used in that Major key scale. The relative minor begins on the 6th degree (‘vi’) of its relative Major scale. For example, the relative minor of C-Major is A-minor:
Following the same process, the relative Major of C-minor would be Eb-Major:
The entire set of key-relationships is shown in
Additionally, the chords of a Major Key are denoted by roman numerals. Specifically, upper case letters denote major chords and lower case letters denote minor chords. The pattern of chords for a Major key is: I, ii, iii, IV, V, vi, vii′. Hence, C Major consists of the following chords: C-Major (I), d-minor (ii), e-minor (iii), F-Major (IV), G-Major (V), a-minor (vi) and b-diminished (vii′) (which may be thought of for this explanation as a “doubly minor” chord). Thus, the example above consists of A-minor, B-diminished and C-Major chords.
By contrast, selecting a C-minor key for that same output string only uses the notes of the C-minor scale, which are C, D, Eb, F, G, Ab and Bb. The pattern for chords in a minor key is: i, ii′, III, iv, v, VI, VII. Hence, C-minor consists of the following chords: c-minor (i), d-diminished (ii′), Eb-Major (III), f-minor (iv), g-minor (v), Ab-Major (VI) and Bb-Major (VII). The resultant chords for the example are: Ab-Major, Bb-Major and C-minor.
The Example provided below provides one example of a user-inputted word and the musical output of that string using an algorithm of the present disclosure.
“Rhodes Piano” as the playback instrument
Referring now to the flowchart of
Referring back to
A user may download or otherwise install the software program described in conjunction with
For example, a user may use the user interface 2002 to enter a character string and select a recipe. The device 102 transmits the characters of the string and recipe to a remote central server. The central server applies the appropriate algorithms based on the selected recipe and transmits the resulting notes or chords to the device 102. The device 102 may then play the notes or chords as a melody.
Alternatively, the software program described in conjunction with
Additionally, a user may create libraries of melodies stored locally on device 102 or remotely on a computer or server. A user may access these libraries to play one or more melodies. A user may also combine melodies from libraries to form new melodies.
In the illustrated embodiment, the web browser 2100 includes a first section that enables users to enter text, select a recipe, view notes of a melody corresponding to the text, and play back the melody. Here, USER 1 entered, “ONE DOES NOT SIMPLY” text and selected the “MIRRORS” recipe. In response, the software program generated the “DCA GDAA CDB AEBEAD” notes. USER 2 then revised the text by adding, “CHEER FOR THE CUBS” and selected the “FM” recipe. In response, the software program generated the “DFA CDAG FDB GEGEDC FAAAB BDB BAA FEFG” notes. USER 2 also commented on USER 1's melody.
The web browser 2100 also includes a second section that enables users to provide comments and make suggestions to modify the newly created melody. The web browser 2100 may also include functions (volume, tempo, instrument, interval adjustment) that enable users to change the melody. In other examples, the web browser 2100 may enable additional users to view, listen, and edit the melody or enable a community of users to rate or rank the melody.
In other embodiments, the software program described in conjunction with
In another embodiment, a text messaging service may use the software program described in conjunction with
In the illustrated example, a user types a character or message of text on a device. The message may include punctuation, numbers, symbols, emoticons, etc. The user then instructs the device to encrypt the message using one of the recipes, thereby converting the message into notes or chords that comprise a melody. Alternatively, the device converts the message into letters representative of notes or chords. The device then transmits the notes or chords and the recipe type to device 102 displayed in
In an example, a user types a message on a smartphone: “Meet me at the corner of Wacker and Adams at 7:00.” The message may be typed into a text messaging application or an e-mail program. The user then selects to encrypt the message using the “Ceasar” recipe of the software program described in conjunction with
The software program may also facilitate wireless acoustic transmission of encrypted data. This may be beneficial for transmitting musically encrypted data via sound waves in instances when wireless frequencies normally available for data transfer are not available or not desirable for use. For instance, the software program may be used when wireless transmission hardware (such as cell towers and routers) is unavailable or congested. In these instances, a microphone of device 102 may record the melody of the encrypted data. The device may also record the type of recipe being applied as an acoustical code. The software program converts recorded melody into a digital string of chords and references the acoustic code to the appropriate recipe type. The software program then uses the process described in conjunction with
In other instances, the software program described in conjunction with
In summary, persons of ordinary skill in the art will readily appreciate that methods and apparatus for producing music melodies have been provided. The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the exemplary embodiments disclosed. Many modifications and variations are possible in light of the above teachings. It is intended that the scope of the invention be limited not by this detailed description of examples, but rather by the claims appended hereto.
This application claims priority to and the benefit of U.S. Provisional Patent Application Ser. No. 61/478,771, filed Apr. 25, 2011, entitled “Methods and Apparatus for Creating Music Melodies”, the entire contents of which are hereby incorporated by reference and relied upon.
Number | Name | Date | Kind |
---|---|---|---|
4655117 | Roose | Apr 1987 | A |
6444888 | VanDruff | Sep 2002 | B1 |
6740802 | Browne, Jr. | May 2004 | B1 |
8487173 | Emmerson | Jul 2013 | B2 |
Number | Date | Country | |
---|---|---|---|
20120269344 A1 | Oct 2012 | US |
Number | Date | Country | |
---|---|---|---|
61478771 | Apr 2011 | US |