Musical instrument digital interface with voice note identifications
09997147 ยท 2018-06-12
Inventors
Cpc classification
G10H2240/145
PHYSICS
International classification
A63H5/00
HUMAN NECESSITIES
Abstract
A method for generating voice identifications for MIDI (Musical Instrument Digital Interface) note signals. The method provides voice identification for every note in MIDI signals, which makes music learning intuitive and easier. The method can be used with any MIDI instruments as a separate unit, or a part of such instruments. Solfege is used as voice identification system since it is widely used in music education. However, any such system can be used or newly devised by preparing a different set of patches.
Claims
1. A method for electronic generation of sounds, based on notes in a musical scale, comprising: assigning respective sounds to said notes, such that each sound is perceived by a listener as qualitatively distinct from a sound assigned to an adjoining note in said musical scale; preparing an additional multiple of logical channels of a MIDI synthesizer with patches which generate qualitatively distinct sounds; preparing a set of logics in front of said logical channels, which finds Channel_Number by subtracting a variable from a MIDI note number of a MIDI note signal in said input, then taking a modulo by 12 while using 0 for C, 1 for C#/D flat, 2 for D, 3 for D#/E flat, 4 for E, 5 for F, 6 for F#/G flat, 7 for G, 8 for G#/A flat, 9 for A, 10 for A#/B flat and 11 for B as said variable; sending said MIDI note signal to a logical channel indicated by said Channel_Number while 0 for a channel loaded with C Patch Set, 1 with C#/D flat Patch Set, 2 with D Patch Set, 3 with D#/E flat Patch Set, 4 with E Patch Set, 5 with F Patch Set, 6 with F#/G flat Patch Set, 7 with G Patch Set, 8 with G#/A flat Patch Set, 9 with A Patch Set, 10 with A#/B flat Patch Set and 11 with B Patch Set; whereby utilizing Solfege for the patches, a position of Do is changeable to support a Movable Do System in use today; receiving an input indicative of a sequence of said notes, chosen from among said notes in said musical scale; and generating an output responsive to said sequence of received said notes, in which said qualitatively distinct sounds are produced responsive to respective notes in said sequence at respective musical pitches associated with said respective notes by feeding said input to said set of logics.
2. A method according to claim 1, wherein at least one of said qualitatively distinct sounds comprises a representation of a human voice.
3. A method according to claim 2, wherein said qualitatively distinct sounds comprise solfege syllables respectively associated with said notes, or newly created syllables respectively associated with said notes.
4. A method according to claim 1, wherein said creating of said patches comprise: generating a digital representation of said sounds by digitally sampling said qualitatively distinct sounds; and saving said digital representation in said patches.
5. A method according to claim 1, wherein said receiving said input comprises playing said sequence of notes on a musical instrument.
6. A method according to claim 1, wherein said receiving said input comprises retrieving said sequence of notes from a file.
7. A method according to claim 6, wherein said retrieving comprises accessing a network and downloading said file from a remote computer.
8. A method according to claim 1 wherein said qualitatively distinct sounds comprise sounds which differ from each other based on a characteristic that is not inherent in a pitch of each of said sounds.
9. A method according to claim 1, wherein said set of logics can have a through output, which can be connected to a separate synthesizer to produce instrumental sound, which can be turned on or off.
Description
BRIEF DESCRIPTION OF THE DRAWING
(1)
(2)
DETAILED DESCRIPTION OF THE INVENTION
(3) The preferred embodiment is probably the easiest way to implement the invention with the current wavetable based synthesizer system. It consists of two components as in
(4) The back end is a regular MIDI synthesizer, which contains the special set of patches used with the additional MIDI signals generated at the front end logic. The special set of patches occupies a part of the standard patch area where other instrumental patches normally reside as in
(5) The front end can be bypassed, when not needed, so that the back end can function as a regular MIDI synthesizer. When the front end is turned on, it will make the whole system into one instrument synthesizer with voice note identifications. Users can change the instrument at any moment. This is useful for daily practice routines. Strictly speaking, there are two more channels for instruments and one for percussion available during this operation.
(6) It is also possible to integrate the functionality of the front end into the back end, a synthesizer itself. This is especially an attractive option for software based synthesizers where such integrations can be done easily. This embodiment is functionally equivalent to the preferred embodiment. As such, it will be treated as the preferred embodiment.
(7) There is yet another embodiment where the front end logic is implemented into any of the channels available in a target synthesizer with additional supporting synthesizers for voice note identifications. For example, MIDI specifies 16 logical channels. In this embodiment, every channel except for the percussion channel can be equipped with the invention. It is also possible to set up a separate set of patches used for the logic apart from the regular patch area. This way, it is possible to add the functionality of the invention onto any available MIDI channels without changing the original specifications of the target synthesizer.
(8) In short, the preferred embodiment is created to implement the invention without any changes to the present wavetable synthesizer except for the changes to the original patch set, which is configurable in general. On the other hand, this embodiment requires fairly large modifications to the synthesizer itself including additional patch area. Each logical channel will look like the combination of the front end and the backend of the preferred embodiment with the special set of patches occupying a new area. In fact, it should work that way.
(9) Usually, the available CPU power for the target synthesizer dictates how many channels can be equipped with the invention. For example, users can select up to 5 channels with it and the remaining channels without it. Please note that the voice identifications have a limit as to how many channels can be used simultaneously with voice identifications on. This limitation comes from our auditory ability.
(10) Practically, 5 (channel) is a good number since there is a genre of music called 5 Part Fugue where each part is assigned to a channel. 4 is another good number because there is a genre of music called 4 Part Choir or 4 Part Fugue. If you add proper panning for each channel, it will be usable up to 4 or 5. Beyond that number, it is debatable, but the concept remains exactly the same. In short, this embodiment is a comprehensive use of the invention for more challenging music settings. It should be useful for choir/ensemble practices.
(11) The preferred embodiment is the conceptual basis for more complex applications of the invention.
(12) The role of the front end is to generate one additional MIDI note signal which provides voice note identification for a given MIDI note signal. The original signal is sent to the back end unchanged to produce simulated sound of a subject instrument for a selected patch number. At the same time, the additional MIDI note signal is sent to the back end to produce a proper pitch name in voice at the pitch frequency of the given MIDI note signal.
(13) To understand this correctly, the structure of the specially prepared set of patches needs to be understood. Every one of the specially prepared set of patches looks exactly like a patch known in the art. For example, when Solfege is used as voice identification system, Do patch for C generates Do sound at a specified MIDI note frequency just like any instrument patch known in the art. However, Do or C appears once in every 12 notes. That is the reason we need a set of 12 patches to cover all the 12 notes in an octave.
(14) Here is how to achieve the front end (a set of logics) in programming. Since we have a set of 12 patches, we need 12 logical channels. For the sake of brevity, we use the following terms: p1 (Channel p1 for Pitch_Name_1), p2, . . . , p12 We also need to use a modulo operator: %. In computing, the modulo operation finds the remainder after division of one number by another.
modulo=MIDI_note_number % 12(Eq. 1)
(15) Let us take the middle C note, for example. It corresponds to MIDI_note_number: 60. In the equation 1 (Eq. 1), the modulo is 0 since the reminder after division of 60 by 12 is 0. The following is a list of all the cases: If the modulo is 0, send an additional signal to p1. If the modulo is 1, send an additional signal to p2. If the modulo is 2, send an additional signal to p3. If the modulo is 3, send an additional signal to p4. If the modulo is 4, send an additional signal to p5. If the modulo is 5, send an additional signal to p6. If the modulo is 6, send an additional signal to p7. If the modulo is 7, send an additional signal to p8. If the modulo is 8, send an additional signal to p9. If the modulo is 9, send an additional signal to p10. If the modulo is 10, send an additional signal to p11. If the modulo is 11, send an additional signal to p12.
(16) The difference between the original signal and the generated signal is the channel number only. The front end checks every incoming MIDI signal. If it is a MIDI note signal, find out the corresponding channel number by the method above, modify the channel number accordingly and send that signal along with the original signal. The process continues indefinitely while the front end logic is turned on.
(17) There is a start-up sequence at the beginning, which sets up p1, . . . , p12 to actual logic channels with a proper patch number. The front end should generate a sequence of MIDI program change signals to configure the back end (synthesizer) as follows: Set Pitch_Name_1 Patch for Channel p1. Set Pitch_Name_2 Patch for Channel p2. Set Pitch_Name_3 Patch for Channel p3. Set Pitch_Name_4 Patch for Channel p4. Set Pitch_Name_5 Patch for Channel p5. Set Pitch_Name_6 Patch for Channel p6. Set Pitch_Name_7 Patch for Channel p7. Set Pitch_Name_8 Patch for Channel p8. Set Pitch_Name_9 Patch for Channel p9. Set Pitch_Name_10 Patch for Channel p10. Set Pitch_Name_11 Patch for Channel p11. Set Pitch_Name_12 Patch for Channel p12.
(18) For example, Pitch_Name_1 is Do when Solfege is used as voice identification system. However, Solfege is not the only option for voice identifications. It is a widely used convention in music education. Any such system can be used with the invention, or even new system can be devised by preparing a different set of patches.
(19) Please note that you need to use actual logical numbers for p1, p2, . . . , p12. Typically, logical number 1 is a default channel for a user selected instrument, as mentioned earlier, and logical number 10 is used as a percussion channel. The remaining 14 channels are available for your selections. Generally, it is easier to use continuous numbers for your programming.
(20) Here are some minor details: The front end should pass a program change command unchanged for the logical channel 1 (used for the user selected instrument) when such a command is detected. This allows users to change the current instrument to a new instrument. Program change commands for the logical channels used for the special patch set should be ignored to preserve the configuration performed at the start-up sequence while the front end is turned on.
(21) The system described up to this point only works with Fixed (Do) System. In order to make the system capable of Movable (Do) System, a new integer variable, key, is introduced. By simply replacing the original equation (Eq. 1) with the following equation (Eq. 2), it is possible to shift the root note.
modulo=(MIDI_note_numberkey) %12(Eq. 2)
(22) The value of key should be between 0 and 11. The root note can be chosen among any one of 12 keys. For example, using 0 for key, the root note is C, which is the same as Fixed (Do) System. Using 1 makes it C#/D flat. You can shift the key all the way to 11, which is B, by the way. The value of key can be changed through the user interface or special MIDI commands created for this operation.