WO2008016649A2 - System and method for consistent power balance of notes played on sampled or synthesized sounds - Google Patents

System and method for consistent power balance of notes played on sampled or synthesized sounds Download PDF

Info

Publication number
WO2008016649A2
WO2008016649A2 PCT/US2007/017192 US2007017192W WO2008016649A2 WO 2008016649 A2 WO2008016649 A2 WO 2008016649A2 US 2007017192 W US2007017192 W US 2007017192W WO 2008016649 A2 WO2008016649 A2 WO 2008016649A2
Authority
WO
WIPO (PCT)
Prior art keywords
note
notes
volume
register
generator
Prior art date
Application number
PCT/US2007/017192
Other languages
French (fr)
Other versions
WO2008016649A3 (en
Inventor
Christopher L. Stone
Gary D. Davis
Original Assignee
The Stone Family Trust Of 1992
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by The Stone Family Trust Of 1992 filed Critical The Stone Family Trust Of 1992
Publication of WO2008016649A2 publication Critical patent/WO2008016649A2/en
Publication of WO2008016649A3 publication Critical patent/WO2008016649A3/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/46Volume control

Definitions

  • This system and method relate to the playing of musical material on one or more sample-based or synthesizer-based virtual instruments in a way that preserves a given power output level regardless of how many notes are being played at the same time and regardless of how many virtual instruments may be in a grouping of instruments that is playing each note.
  • Musical synthesizers may be divided into two broad categories: (a) samplers, also known as sampling synthesizers, in which stored digitized recordings (the samples) of actual instruments are reproduced when notes are played on a keyboard or other note- instruction generator connected to the sampler, and (b) non-sampling synthesizers in which sounds are created at the time they are played on a keyboard or other note-instruction generator, sounded by analog or digital electronic circuitry which creates the sound without reliance upon previously recorded actual instruments.
  • Today's synthesizers are predominantly polyphonic, meaning they can play more than one note at a time. While the nature of the present system and method is perhaps more applicable to samplers, it will function in connection with non-sampling synthesizers as well; for simplicity the discussion herein will focus primarily on sampling applications.
  • samplers or sampling synthesizers became popular; for these, actual recordings of sounds are specially processed into files that are stored on digital media for later playback that emulates the original recorded acoustic instruments (or other sound sources). In fact some samplers now play samples that are recordings of earlier synthesizer-generated sounds. [0004] Sampled sounds are sold in collections, or libraries, and the individual sounds in a given sample library may be created from recordings of one or several instruments.
  • An exemplary prior-art sample library of the first violin section of the XYZ symphony orchestra may consist of a collection of samples (sample sets) made by recording sixteen violins all playing the one note in unison; these same sixteen violins would play a sequential set of notes to create a series of recorded notes, the collection of which individual note recordings would be prepared as distinct sample sets for each note, packaged together for playback on a defined sample playing software or hardware system, and identified, for example, as the "XYZ first violin sample library.”
  • sample set there may be a discrete, individual source recording (a sample set) in the library for each note in the sample library, although it is more common for a single note sample set to be provided as a source of sound for a small group of adjacent notes, which sample set is electronically shifted in pitch as may be necessary upon playback in the sample playing system to sound at its own or at higher and lower pitches over a limited range corresponding to the pitches of notes played, this method being used to reduce the demands for memory and other system resources necessary to store and play the sample library.
  • samples When samples are initially recorded, there may be one or many instruments actually playing the sound recorded for a single note's sample set. Typically with orchestral or large band sounds, entire sections of instruments play at once and are recorded to create each note which is sampled.
  • a given note's sample set from an orchestra section of eight cellos would be created from a recording of eight cello players playing the same note.
  • this sample of one note is played back on a sampler, all eight instruments are heard playing the same note.
  • a sample library of an orchestra section of sixteen violins would be made from a recording of sixteen individual violin players all concurrently playing the same note, and when such samples are played back the sound of all sixteen violins will be heard playing each note concurrently.
  • the first chair (leading) player of the particular section of instruments typically decide who plays which notes; divisi is not an exact science or protocol in music, but it is a well- established and essential principle guiding live performances wherein more than one player of a particular type of instrument are playing at once.
  • chord 130 possible to make precise volume adjustments after playing a sampled or a synthesized performance if one records that performance using a form of note automation such as a sequencer and then edits the volume of each chord later, although this is a very time consuming process.
  • a form of note automation such as a sequencer
  • MIDI is an acronym for Musical Instrument 165 Digital Interface
  • any equivalent means to define and convey musical notes and their related performance parameters may be substituted for MIDI.
  • the system includes a note generator (such as a MIDI keyboard or a sequencer), a note volume processor (which may be a dedicated analog hardware based implementation or a computer-and-software based implementation), and a sound generator (such as a typical sample player or a synthesizer).
  • a note generator such as a MIDI keyboard or a sequencer
  • a note volume processor which may be a dedicated analog hardware based implementation or a computer-and-software based implementation
  • a sound generator such as a typical sample player or a synthesizer
  • the note volume processor evaluates the number of notes being played and calculates a scalar value by which each individual note's volume can be reduced whenever more than a single note is sounding at once. In this way, the overall
  • volume (sound power) is kept relatively constant; instead of continuing to increase as more and more notes are played, the volume is kept level insofar as it does not increase as more and more sampled or synthesized instruments are added to the chord, nor does it decrease as sampled or synthesized instruments are released from the chord.
  • the method of maintaining constant volume can be accomplished via calculated values, as is the exemplary method in
  • volume is adjusted using a scalar which modifies the incoming volume level, expressed here as a MIDI Volume CC value but equally applicable to MIDI key velocity or after-touch values which may control the volume, of each note as input from the keyboard or other note generator, any intentionally played volume adjustments as might be accomplished with for example key
  • a system for controlling audio signal comprising: an input for receiving audio signal from a note generator; at least one
  • the audio signal may comprise a sequence of a plurality of notes and wherein the constant overall sound power is output regardless of how many notes are being played at one time.
  • a central processor unit identifies the number of notes being played at any given time, creates a scalar value based on the this total number of notes, alters the original volume value of each such note as created by the note generator, and saves both the original and the modified volume values of each note in a separate memory registers so that the altered volume values may be passed on to the note generator while the original volume values may
  • a method for controlling audio signal of a plurality of notes, whereby the volume for each note conveyed to a sound generator from a note generator can be inversely scaled according to the total number
  • the note generator may be a sequencer which stores and recalls a previously established series of one or more notes, a MIDI, a synthesizer, a sampler, etc.
  • a note volume processor comprising: a central processing unit; a note index register; a number of notes register; original note volume register; modified note volume register; volume scalar register; and note added register.
  • the note volume processor may further include an original note list register; and a modified note list register.
  • a system for maintaining constant power in chords comprising: a note generator; and, a note volume processor, the a note volume processor comprising: a central processing unit; a note index register; a number of notes register; original note volume register; modified note volume register; volume scalar register; and note added register.
  • the note volume processor may
  • 235 further include an original note list register; and a modified note list register.
  • the system may further include a sound generator.
  • FIG. 1 depicts one embodiment of a system with which the method of sound power balancing may be advantageously realized
  • Fig. 2 depicts a block diagram for a method of balancing the sound power for any number of notes played for a simultaneously played chord of one or more notes;
  • Fig. 3 depicts a block diagram for a method of maintaining the sound power
  • Fig. 4 depicts a block diagram for a method of maintaining the sound power balance when notes are removed from a held chord.
  • Notes may be instructed to be played by any conventional means such as with a MIDI keyboard, a sequencer, or some other form of note generation.
  • a MIDI keyboard for the purpose of practical application in the current state of the musical trade, the MIDI (musical instrument
  • a note generator such as a MIDI Keyboard 105 would normally convey notes directly to a sound generator such as a
  • the Note Volume Processor includes a central processing unit 115 which refers to various memory registers, including a: Note Index Register 125, Number of Notes Register 130, Original Note Register 135, Modified Note Register 140, Original Note
  • Register 155 The various registers are used for storage of values pertaining to the note data passing through the Note Volume Processor.
  • the CPU performs a number of operations, as further described in the methods discussed in conjunction with Figs. 2, 3 and 4, whereby the volume for each note being played can be altered as may be necessary to maintain a relatively
  • Fig. 2 depicts the basic method by which notes and chords are analyzed
  • note instructions flow from the note generator 205, which instructions typically identify the note value by a note number, the volume of the note by a volume CC value, and various other parameters of the note; parameters other than note value and note volume are simply passed on with each note and are not modified by the present system or methods.
  • a test is made 210 to determine if the note value by a note number, the volume of the note by a volume CC value, and various other parameters of the note; parameters other than note value and note volume are simply passed on with each note and are not modified by the present system or methods.
  • a test is made 210 to determine if the
  • an array Chord is built, and is comprised of the MIDI note value (e.g., C3), the MIDI volume CC value for the note (e.g., 127 for maximum volume), and a flag which may be set to indicate that a given note is newly played, but in this instance the flag is not set; the array Chord will be comprised of one or more notes depending upon what passed through the timing implicit in 225.
  • the MIDI note value e.g., C3
  • the MIDI volume CC value for the note e.g., 127 for maximum volume
  • a flag which may be set to indicate that a given note is newly played, but in this instance the flag is not set; the array Chord will be comprised of one or more notes depending upon what passed through the timing implicit in 225.
  • a copy of the array Chord is made, which copy is designated ModChord, and at this time the Volume CC value of each note in ModChord is altered through multiplication by the value of Scalar. For example if the incoming chord were comprised of two notes, respectively having initial Volume CC values of 100 and 80, then NotesInChord will have a value of 2, Scalar
  • 325 Scalar would be equal to one, in which case no change in Volume CC would occur.
  • the process returns to 210 to await any subsequent note events such as adding or releasing notes.
  • FIG. 3 depicts Process 2 starting at 300 which defines what occurs if one or more notes is already being held; i.e., if a chord is already being played. At 305 a test is made
  • 335 to the array Chord, including the note number, its Volume CC value, and in this case the NewNote flag is set.
  • 315 may be a timed test with perhaps a 10 millisecond window so that multiple new notes added to a chord can be dealt with at once, in which case the multiple new notes are added to Chord with NewNote flags set.
  • the number of notes in Chord is counted and is set as the variable NotesInChord.
  • the number of notes in Chord is counted and is set as the variable NotesInChord.
  • variable Scalar is established by dividing 1 by NotesInChord.
  • a copy of the array Chord is made, which copy is designated M odChord, thereby replacing the previous ModChord array established in Process 1.
  • the Volume CC value of each note in ModChord is altered through multiplication by the value of Scalar 335, and then any notes with a NewNote flag set are passed from ModChord to the Sound Generator in 340, along
  • Process 2 ends at 355, and the process then returns to 305 to await a further note event.
  • Fig. 4 depicts Process 3 starting at 400 which defines what occurs if one or more notes is already being held; i.e., if a chord is already being played, and an event other than a note-on is sent by the Note Generator.
  • a test is made to determine whether the 360 note event is a released note, which with MIDI commands is indicated by detection of a note- off command. If the test returns No, then a further test is made in 460 to determine if the event was a forcing of all notes to end such as with an all notes off command. If such a command has been received, 460 returns a Yes, and in 470 the command is passed on to the Sound Generator in order to terminate the playing of any and all held notes. Following that in
  • 365 475 the arrays Chord and ModChord are initialized, which is to say cleared of all data, and the process flows to 430 which returns to the start of Process 1 per Fig. 2, waiting for the next note event. If 460 returns a No, then it is assumed that some other note event other than a note-on, note-off or all notes off command has been received, and such note data passes to the Sound Generator at 465.
  • This data may, for example, be a pitch bend, a tremolo, or
  • test 405 returns a Yes then there is a note off command indicating a released note, and in 410 this note-off command is sent directly to the Sound Generator so it ceases playing the note. Following 410, the note is removed from the array Chord in 415.
  • 415 may be a timed test with perhaps a 10 millisecond window so that multiple released notes dropped from a held chord can be dealt with at once, in which case the multiple released notes are removed from Chord at once.
  • the number of notes in Chord is counted and is set as the variable NotesInChord.
  • a test is made to see if NotesInChord is less than one, indicating no more notes are being held. If 425 returns a Yes,

Abstract

A system and method (100) for playing of musical material on one or more sample-based or synthesizer-based virtual instruments in a way that preserves a given power output level regardless of how many notes are being played at the same time and regardless of how many virtual instruments may be in a grouping of instruments that is playing each note.

Description

SYSTEM AND METHOD FOR CONSISTENT POWER BALANCE OF NOTES PLAYED ON SAMPLED OR SYNTHESIZED SOUNDS
PRIOR PATENT APPLICATION REFERENCE
This application claims priority from a provisional patent Application 60/820,937, e- filed by the authors of the present patent on July 31, 2006, per EFIS K) 1134992, Confirmation Number 3542, the entire disclosure of which is incorporated herein by reference.
TECHNICAL FIELD
[0001] This system and method relate to the playing of musical material on one or more sample-based or synthesizer-based virtual instruments in a way that preserves a given power output level regardless of how many notes are being played at the same time and regardless of how many virtual instruments may be in a grouping of instruments that is playing each note.
BACKGROUND
[0002] Musical synthesizers may be divided into two broad categories: (a) samplers, also known as sampling synthesizers, in which stored digitized recordings (the samples) of actual instruments are reproduced when notes are played on a keyboard or other note- instruction generator connected to the sampler, and (b) non-sampling synthesizers in which sounds are created at the time they are played on a keyboard or other note-instruction generator, sounded by analog or digital electronic circuitry which creates the sound without reliance upon previously recorded actual instruments. Today's synthesizers are predominantly polyphonic, meaning they can play more than one note at a time. While the nature of the present system and method is perhaps more applicable to samplers, it will function in connection with non-sampling synthesizers as well; for simplicity the discussion herein will focus primarily on sampling applications.
[0003] Current electronic musical instruments, also called virtual instruments, are predominantly sample-players that play specially processed digital recordings of sounds in response to some sort of control input, typically a musical keyboard or a sequencer. In simple terms a sequencer is like a digital version of a player piano giving instructions to the sample player (or other electronic instrument) on which notes to play and how to play them. For the purpose of the current discussion, it doesn't matter whether a real time keyboard, some other musical note generator/controller, or a sequencer is used to play notes on the synthesizer. Rather than using perforated paper rolls to convey note information, virtual instruments typically utilize a digital standard first adopted in 1983, the Musical Instrument Digital Interface, or MIDI, in which notes, their pitches volume and other characteristics all may be specified, and ample provision is made for other characteristics to be specified as well. There are synthesizers in which waveforms are generated and/or manipulated to create sounds without any reference to actual recorded sounds (such as additive waveform synthesizers, frequency-modulating synthesizers, and wave table lookup synthesizers, among others); these types of synthesizers were developed early in the history of electronic music technology. Later, as digital audio technology developed and became increasingly affordable, samplers or sampling synthesizers became popular; for these, actual recordings of sounds are specially processed into files that are stored on digital media for later playback that emulates the original recorded acoustic instruments (or other sound sources). In fact some samplers now play samples that are recordings of earlier synthesizer-generated sounds. [0004] Sampled sounds are sold in collections, or libraries, and the individual sounds in a given sample library may be created from recordings of one or several instruments. With ensemble instruments such as bands and orchestras, it is common for a group of similar instruments to be recorded together with the multi-instrument sound being saved as a single sample, or more precisely stated as a single sample set which term is more precise because a single sampled note may be comprised of two or three actual samples such as the attack, sustain and release or an attack and release. An exemplary prior-art sample library of the first violin section of the XYZ symphony orchestra may consist of a collection of samples (sample sets) made by recording sixteen violins all playing the one note in unison; these same sixteen violins would play a sequential set of notes to create a series of recorded notes, the collection of which individual note recordings would be prepared as distinct sample sets for each note, packaged together for playback on a defined sample playing software or hardware system, and identified, for example, as the "XYZ first violin sample library."
[0005] Depending upon the nature of the technology used in a prior art sample player
(sampler), there may be a discrete, individual source recording (a sample set) in the library for each note in the sample library, although it is more common for a single note sample set to be provided as a source of sound for a small group of adjacent notes, which sample set is electronically shifted in pitch as may be necessary upon playback in the sample playing system to sound at its own or at higher and lower pitches over a limited range corresponding to the pitches of notes played, this method being used to reduce the demands for memory and other system resources necessary to store and play the sample library. [0005] When samples are initially recorded, there may be one or many instruments actually playing the sound recorded for a single note's sample set. Typically with orchestral or large band sounds, entire sections of instruments play at once and are recorded to create each note which is sampled. Thus, in a prior art sample library a given note's sample set from an orchestra section of eight cellos would be created from a recording of eight cello players playing the same note. Thus when this sample of one note is played back on a sampler, all eight instruments are heard playing the same note. Similarly, a sample library of an orchestra section of sixteen violins would be made from a recording of sixteen individual violin players all concurrently playing the same note, and when such samples are played back the sound of all sixteen violins will be heard playing each note concurrently. [0007] When prior art samples of sixteen first violins are played back in a sampler, if the person playing presses one key on the keyboard, or otherwise causes one note to be played, the sound that comes out of the sampler is the sound of all sixteen violins playing that note and the sound will be very close to what would be heard in an actual symphony hall where, if the conductor (or musical score) instructs the first violins to play that same note, all sixteen will play that note.
[0008] However, if the person playing the sampler with this prior art violin sample presses two notes on the keyboard, or otherwise causes two notes to be played, the sound that comes out of the sampler is the sound of all sixteen violins playing each of the two notes; i.e., one hears 32 violins playing; this is what is called additive polyphony. Additive polyphony is not what would be heard with an actual symphony because in that case with this example there are only 16 violinists present, not 32. In fact, when a conductor or musical score instructs such a first violin section to play two notes, about half of the musicians will play the one note and the remaining musicians will play the second note, which process is known as divisi and may also be technically described as subtractive polyphony.
[0009] When a prior art sample player sounding two notes produces the additive polyphonic sound of 32 violins playing where the library itself is comprised of 16-violin samples, the sound power is doubled, whereas with the subtractive polyphony of a live group of 16 musicians playing two notes the sound power remains about the same when adding the 95 second note because there are the same total number of strings making sound. An exception would be if the string players are performing what is known as a double-stop where the bow is drawn across two strings at once, but this is an exception and not pertinent to the current discussion. The reason we say the total sound power is about the same, rather than exactly the same, when the 16 violinists divide up so half play each note is simply that the natural sound
100 output of almost any instrument is not constant from note to note, so two non-identical notes on the same instrument will tend to output slightly different sound power; for the purpose of this discussion such note-to-note natural sound power deviations may be disregarded. [0010] If there are three notes to be played at once, the available musicians are split up into three groups, each group playing one of the three notes on their instruments; given
105 sixteen total instruments and three notes, obviously the division is not equal, so it would typically be done with one note assigned to 6 instruments, and the remaining notes each assigned to 5 instruments. This is what is called "subtractive polyphony." [0011] When the number of instruments available cannot be evenly distributed among the number of notes being played, a choice must be made as to where the extra instrument or
110 instruments are assigned. This choice can be considered to be top weighted if the extra instrument(s) play the highest note(s) or bottom weighted if the extra instrument(s) play the lowest notes(s). With live musicians, the divisi (i.e., the note allocation decisions affecting which notes are given to available players), is implemented by any of several parties involved with the music creation. Any combination of the composer, a musical arranger, the conductor
115 and the first chair (leading) player of the particular section of instruments typically decide who plays which notes; divisi is not an exact science or protocol in music, but it is a well- established and essential principle guiding live performances wherein more than one player of a particular type of instrument are playing at once.
[0012] As noted above, the prior art, when multiple notes are concurrently played on
120 a polyphonic sampler, multiple instances of the multi-instrument samples are sounded and as more notes are added to a chord the sound power increases, and as notes are released from a chord sound power decreases, so it is difficult to maintain a natural orchestral balance. For this reason prior art sample libraries and the software/hardware systems that enable them to be played require that the person playing must either use a high degree of expressivity
125 through playing with less or more speed on a velocity-responsive keyboard as more and notes are added or released from a chord, or the player must constantly pump a volume pedal or similar controller to achieve real-time orchestral balance. These types of repeated adjustments, made in order to keep the volume relatively constant as it would be with an actual live group of players, are not only tedious, they are difficult to control accurately. It is
130 possible to make precise volume adjustments after playing a sampled or a synthesized performance if one records that performance using a form of note automation such as a sequencer and then edits the volume of each chord later, although this is a very time consuming process. In this context we use the term chord to describe any number of notes being played at one time, even a single note.
135 [0013] In order to overcome the power build up, as well as a related problem with harmonic structure overlap that occurs when chords are played with multi-instrument sampled notes, the authors' developed a system and method that work in conjunction with specially recorded sample libraries that have one or two instruments per individual sampled note, whereby such specially implemented libraries are then controlled to sound a constant
140 number of instruments regardless of the number of notes being played; this system and method are set forth in U.S. Patent 7,109,406 B2 granted September 19, 2006. The essence of that system and method involves emulation of an actual orchestrational process known as divisi, an Italian musical term which indicates that available musicians are divided amongst notes being played such that a fixed number of musicians plays regardless of the number of
145 notes being played. However, the benefits of such a system and method for divisi cannot be directly extended to prior art samples (or to synthesized libraries) wherein a multiplicity of instruments are incorporated in a single sample (e.g., the entire first violin section playing one note within a single sample). [0014] What is needed is a way to prevent unintended build up or decrease in sound
150 power as more and more multi-note samples are added to or subtracted from a held chord which is intended to be played by a fixed number of instruments among which the notes of the chord are dynamically allocated. While it is possible to level the volume or sound power of any performance through the use of a prior art device known as a compressor, or a variation of the compressor called a limiter which may be built into the same system as the
155 compressor, all such devices affect the audio signal in a manner that creates audible artifacts and distortions. Such compressor/limiters do not necessarily establish a constant sound power; they simply prevent the sound power from exceeding a specified range or level. The present approach to preserving consistent sound power as notes are added to or subtracted from a chord does not create any artifacts or distortions because it acts upon the notes before
160 they are expressed as audio signals by means of controlling the data sent to the note generator, typically a sample player or synthesizer, which data causes the audio signals comprising the notes to be generated at the correct levels, which levels are scaled to the number of notes being played simultaneously. This note data is presently discussed in the form of industry-standard MIDI instructions (MIDI is an acronym for Musical Instrument 165 Digital Interface), although any equivalent means to define and convey musical notes and their related performance parameters may be substituted for MIDI.
SUMMARY
170 [0015] The system includes a note generator (such as a MIDI keyboard or a sequencer), a note volume processor (which may be a dedicated analog hardware based implementation or a computer-and-software based implementation), and a sound generator (such as a typical sample player or a synthesizer). With actual musical performances, two possibilities exist when adding notes to or removing notes from a held chord: (a) one wishes
175 to progressively add more instruments with each added note or remove instruments with each released note, or (b) one wishes to have a fixed number of instruments play whatever number of notes are being played, using divisi to allocate the instruments to the notes played. For the first case, (a), there is no need for the present system and method, in which case it would be bypassed or shut off, whereas for (b) in the absence of some method of applying divisi to the
180 multiple instruments that are part of a single sampled or synthesized sound, there is a benefit from using the present system and method, in which case it would be utilized. When notes are played, whether individually or in chords, the note volume processor evaluates the number of notes being played and calculates a scalar value by which each individual note's volume can be reduced whenever more than a single note is sounding at once. In this way, the overall
185 volume (sound power) is kept relatively constant; instead of continuing to increase as more and more notes are played, the volume is kept level insofar as it does not increase as more and more sampled or synthesized instruments are added to the chord, nor does it decrease as sampled or synthesized instruments are released from the chord. The method of maintaining constant volume can be accomplished via calculated values, as is the exemplary method in
190 this document, or it can be accomplished using lookup tables. Because volume is adjusted using a scalar which modifies the incoming volume level, expressed here as a MIDI Volume CC value but equally applicable to MIDI key velocity or after-touch values which may control the volume, of each note as input from the keyboard or other note generator, any intentionally played volume adjustments as might be accomplished with for example key
195 velocity or volume pedal adjustments are conveyed in the final system output to the sound generator where they do affect the sound level; such intentional individual note and overall volume adjustments are thus not leveled by the present system and method, which is a benefit not provided by compression or limiting of an audio output; instead sound volume is scaled to prevent increasing numbers of notes played from elevating the overall output volume (we
200 use the term common term volume to describe the sound power) by as great an increase as would otherwise occur, and conversely to prevent decreasing numbers of notes played from decreasing the overall output volume.
[0016] According to aspects of the invention, a system for controlling audio signal is provided, comprising: an input for receiving audio signal from a note generator; at least one
205 sound generator; a note volume processor receiving the audio signal and operating on the audio signal to generate an output signal to the sound generator, the note volume processor controlling the output signal to have a constant overall sound power. The audio signal may comprise a sequence of a plurality of notes and wherein the constant overall sound power is output regardless of how many notes are being played at one time. In embodiments of the
210 invention, a central processor unit identifies the number of notes being played at any given time, creates a scalar value based on the this total number of notes, alters the original volume value of each such note as created by the note generator, and saves both the original and the modified volume values of each note in a separate memory registers so that the altered volume values may be passed on to the note generator while the original volume values may
215 be subsequently used to calculate adjusted note volume values for held notes of a chord when notes are added to or released from a held chord.
[0017] According to further aspects of the invention, a method is provided for controlling audio signal of a plurality of notes, whereby the volume for each note conveyed to a sound generator from a note generator can be inversely scaled according to the total number
220 of notes being played such that the overall output power of the sound generator does not change regardless of the number of notes being played.
[0018] In various embodiments of the invention, the note generator may be a sequencer which stores and recalls a previously established series of one or more notes, a MIDI, a synthesizer, a sampler, etc.
225 [0019] According to further aspects of the invention, a note volume processor is provided, comprising: a central processing unit; a note index register; a number of notes register; original note volume register; modified note volume register; volume scalar register; and note added register. The note volume processor may further include an original note list register; and a modified note list register.
230 [0020] According to further aspects of the invention, a system for maintaining constant power in chords is provided, comprising: a note generator; and, a note volume processor, the a note volume processor comprising: a central processing unit; a note index register; a number of notes register; original note volume register; modified note volume register; volume scalar register; and note added register. The note volume processor may
235 further include an original note list register; and a modified note list register. The system may further include a sound generator. BRIEF DESCRIPTIONS OF THE DRAWINGS
240 [0021] Fig. 1 depicts one embodiment of a system with which the method of sound power balancing may be advantageously realized;
[0022] Fig. 2 depicts a block diagram for a method of balancing the sound power for any number of notes played for a simultaneously played chord of one or more notes;
[0023] Fig. 3 depicts a block diagram for a method of maintaining the sound power
245 balance when notes are added to a held chord;
[0024] Fig. 4 depicts a block diagram for a method of maintaining the sound power balance when notes are removed from a held chord.
250 DETAILED DESCRIPTION
[0025] Notes may be instructed to be played by any conventional means such as with a MIDI keyboard, a sequencer, or some other form of note generation. For the purpose of practical application in the current state of the musical trade, the MIDI (musical instrument
255 digital interface) specification for note identification and playing is most common and is therefore the system discussed herein; however the system can be readily adapted to any means of note generation and identification. In Fig. 1, the overall system that might be used for playing MIDI samples is shown by 100. With prior art systems, a note generator such as a MIDI Keyboard 105 would normally convey notes directly to a sound generator such as a
260 synthesizer or sample Player 120 but here we have inserted a Note Volume Processor 110 into the path between the Note Generator and the Sound Generator. [0026] The Note Volume Processor includes a central processing unit 115 which refers to various memory registers, including a: Note Index Register 125, Number of Notes Register 130, Original Note Register 135, Modified Note Register 140, Original Note
265 Volume CC Register 145, Modified Note Volume CC Register 150, and Volume Scalar
Register 155. The various registers are used for storage of values pertaining to the note data passing through the Note Volume Processor. The CPU performs a number of operations, as further described in the methods discussed in conjunction with Figs. 2, 3 and 4, whereby the volume for each note being played can be altered as may be necessary to maintain a relatively
270 constant power level regardless of the number of notes being played. We use the phrase relatively constant power level, rather than constant power level, since individual notes may still vary from one another in volume according to the original volume at which each note was generated by the note generator. [0027] Fig. 2 depicts the basic method by which notes and chords are analyzed, and
275 volume adjustments are implemented. As the process begins at 200, note instructions flow from the note generator 205, which instructions typically identify the note value by a note number, the volume of the note by a volume CC value, and various other parameters of the note; parameters other than note value and note volume are simply passed on with each note and are not modified by the present system or methods. A test is made 210 to determine if the
280 user has set the system to balance the power of notes in a chord, and if the No is returned, this indicates there is no need for power balancing so the note generator data is passed directly to the sound generator 215. If a Yes is returned, this indicates there is a need for power balancing so another test is made to determine if any notes are already being held at 220; if one or more notes is already being played, then the method moves to 260 where it jumps to
285 Process 2 per Fig. 3. If notes are not already being played, then a No is returned and the incoming note data is assumed to be a new chord. Because MIDI data is serial, even a simultaneously struck multi-note chord on a MIDI keyboard will be presented to the system as a rapid serial sequence of individual notes so in 225 a test Ts made to see if there are any new notes; this is actually a timed test which looks at a specified short time interval such a 10
290 milliseconds, and treats any incoming note data within that period as a simultaneously played chord; the actual interval, or even a successive interval such as 5 milliseconds and then another 5 milliseconds after any incoming note is received, may be adjusted to suit the nature of the musical performance. If a No is returned at 225, then no incoming note or notes has been detected, and the process returns to 210 to await further incoming note data. If a Yes is
295 returned, then the detected note or notes are passed to 230 where an array Chord is built, and is comprised of the MIDI note value (e.g., C3), the MIDI volume CC value for the note (e.g., 127 for maximum volume), and a flag which may be set to indicate that a given note is newly played, but in this instance the flag is not set; the array Chord will be comprised of one or more notes depending upon what passed through the timing implicit in 225. In 235 the
300 number of notes in Chord is counted and is set as the variable NotesInChord. In 240 the variable Scalar is established by dividing 1 by NotesInChord, which can be understood to indicate that as the number of notes being played increases, the value of Scalar will proportionately decrease. In actual implementations it well may be necessary to further apply a secondary scaling to the value of Scalar such as a logarithmic or exponential characteristic
305 if such scaling is determined to produce a more natural sounding end result. In 245 a copy of the array Chord is made, which copy is designated ModChord, and at this time the Volume CC value of each note in ModChord is altered through multiplication by the value of Scalar. For example if the incoming chord were comprised of two notes, respectively having initial Volume CC values of 100 and 80, then NotesInChord will have a value of 2, Scalar
310 will have a value of 0.5, and therefore multiplying 0.5 times the initial Volume CC values, the Volume CC of the notes in ModChord will be, respectively 50 and 40. This example illustrates that this method does not ensure that all notes are played at exactly the same volume, merely that the relative volume of notes being played is scaled, as necessary, to ensure that the relative volume or sound power is more-or-less constant compared to what
315 would be present if one note were played. In fact, if multiple notes in a chord all were initially played with the same volume then each such note sent to the sound generator would be played with the same volume as every other note, albeit a lower volume than was dictated by the note generator. However, when the various notes are played with different intended volumes, then it is not actually possible to say that the sound volume is constant because
320 there's no clear reference as to which of the various note volumes would be the reference value, and so this is why we refer to relatively constant power in this specification. [0028] In 250 the notes in M odChord are passed on to the Sound Generator where they are played with the modified volumes based on the scaling applied. It should be clear that if the chord were comprised of a single note, then NotesInChord would be equal to 1, so
325 Scalar would be equal to one, in which case no change in Volume CC would occur.
Following the passing of notes to the Sound Generator, the process returns to 210 to await any subsequent note events such as adding or releasing notes.
[0029] Fig. 3 depicts Process 2 starting at 300 which defines what occurs if one or more notes is already being held; i.e., if a chord is already being played. At 305 a test is made
330 to determine whether the note event is a new note, which with MIDI commands is indicated by detection of a note-on command. If the test returns No, then there is no new note, and it assumed that the event is perhaps a note-off designated a released note or some other note event and so the note data passes to Process 3 in step 310, as depicted in Fig. 4. [0030] If test 305 returns a Yes then there is a new note, and in 315 this note is added
335 to the array Chord, including the note number, its Volume CC value, and in this case the NewNote flag is set. In practical application, 315 may be a timed test with perhaps a 10 millisecond window so that multiple new notes added to a chord can be dealt with at once, in which case the multiple new notes are added to Chord with NewNote flags set. In 320 the number of notes in Chord is counted and is set as the variable NotesInChord. In 325 the
340 variable Scalar is established by dividing 1 by NotesInChord. In 330 a copy of the array Chord is made, which copy is designated M odChord, thereby replacing the previous ModChord array established in Process 1. Now the Volume CC value of each note in ModChord is altered through multiplication by the value of Scalar 335, and then any notes with a NewNote flag set are passed from ModChord to the Sound Generator in 340, along
345 with their scaled Volume CC. Notes already being played by the sound generator must have their Volume CC adjusted as well, since with the addition of one or more new notes these will be too loud, and so in 345 the Volume CC values of all notes in ModChord which do not have NewNote flags set are sent to the Note Generator. This must be done in a way that does not actually retrigger the playing of a note, and in conventional MIDI based systems
350 such a command can be handled using a key pressure or polyphonic after touch message. Because the processing of the modified held note volume in 345 occurs very rapidly, the actual arrival of the new note(s) from 340 and the alteration of held notes after 345 should be perceptually simultaneous; if not, then a suitable delay between 340 and the sound generator will need to be inserted. In 350 any NewNote flags in Chord are unset so that subsequently
355 arriving new notes can be properly flagged and processed. Process 2 ends at 355, and the process then returns to 305 to await a further note event.
[0031] Fig. 4 depicts Process 3 starting at 400 which defines what occurs if one or more notes is already being held; i.e., if a chord is already being played, and an event other than a note-on is sent by the Note Generator. At 405 a test is made to determine whether the 360 note event is a released note, which with MIDI commands is indicated by detection of a note- off command. If the test returns No, then a further test is made in 460 to determine if the event was a forcing of all notes to end such as with an all notes off command. If such a command has been received, 460 returns a Yes, and in 470 the command is passed on to the Sound Generator in order to terminate the playing of any and all held notes. Following that in
365 475 the arrays Chord and ModChord are initialized, which is to say cleared of all data, and the process flows to 430 which returns to the start of Process 1 per Fig. 2, waiting for the next note event. If 460 returns a No, then it is assumed that some other note event other than a note-on, note-off or all notes off command has been received, and such note data passes to the Sound Generator at 465. This data may, for example, be a pitch bend, a tremolo, or
370 anything that modifies the sounding notes rather than adding or subtracting notes. Following 465 the process is returned to the Start of Process 1 per 430.
[0032] If test 405 returns a Yes then there is a note off command indicating a released note, and in 410 this note-off command is sent directly to the Sound Generator so it ceases playing the note. Following 410, the note is removed from the array Chord in 415. In
375 practical application, 415 may be a timed test with perhaps a 10 millisecond window so that multiple released notes dropped from a held chord can be dealt with at once, in which case the multiple released notes are removed from Chord at once. In 420 the number of notes in Chord is counted and is set as the variable NotesInChord. In 425 a test is made to see if NotesInChord is less than one, indicating no more notes are being held. If 425 returns a Yes,
380 then in 430 the process goes to the Start of Process 1 per Fig. 2 to await a new note event. If 425 returns a No, then at least one note is still playing, and any such held notes' volumes must be scaled to suit the new note count. So in 435 the variable Scalar is again established by dividing 1 by NotesInChord. In 440 a copy of the array Chord is made, which copy is designated ModChord, thereby replacing any previously established ModChord array. Now 385 the Volume CC value of each note in ModChord is altered through multiplication by the value of Scalar 445. At 450 the Volume CC values of all notes in ModChord are passed to the Note Generator. This must be done in a way that does not actually retrigger the playing of a note, and in conventional MIDI based systems such a command can be handled using a key pressure or polyphonic after touch message. Because the processing of the modified held note 390 volume data from steps 415 through 450 occurs very rapidly, the actual release of note(s) from 410 and the alteration of held notes after 450 should be perceptually simultaneous; if not, then a suitable delay between 410 and the sound generator will need to be inserted. Since at least one notes is still being held at this point, process 3 ends at 455 and the process then returns to the start of Process 1 at 430 to await a further note event.

Claims

We Claim:
1. A system for controlling audio signal, comprising: an input for receiving audio signal from a note generator; at least one sound generator; a note volume processor receiving the audio signal and operating on the audio signal to generate an output signal to the sound generator, the note volume processor controlling the output signal to have a constant overall sound power.
2. The note volume processor of the system of claim 1 in which a central processor unit identifies the number of notes being played at any given time, creates a scalar value based on the this total number of notes, alters the original volume value of each such note as created by the note generator, and saves both the original and the modified volume values of each note in a separate memory registers so that the altered volume values may be passed on to the note generator while the original volume values may be subsequently used to calculate adjusted note volume values for held notes of a chord when notes are added to or released from a held chord.
3. A method for controlling audio signal of a plurality of notes, whereby the volume for each note conveyed to a sound generator from a note generator can be inversely scaled according to the total number of notes being played such that the overall output power of the sound generator does not change regardless of the number of notes being played.
4. The system of claim 1 whereby the note generator is a MIDI keyboard or other MIDI note generating device.
5. The system of claim 1 whereby the note generator is a sequencer which stores and recalls a previously established series of one or more notes.
6. The system of claim 1 whereby the sound generator is a sample player.
7. The system of claim 1 whereby the sound generator is a synthesizer.
8. The system of claim 1, wherein the audio signal comprises a sequence of a plurality of notes and wherein the constant overall sound power is output regardless of how many notes are being played at one time.
9. A note volume processor, comprising: a central processing unit; a note index register; a number of notes register; original note volume register; modified note volume register; volume scalar register; and note added register.
10. The processor of claim 9, further comprising an original note list register; and a modified note list register.
11. A system for maintaining constant power in chords, comprising: a note generator; and, a note volume processor, comprising: a central processing unit; a note index register; a number of notes register; original note^ volume register; modified note volume register; volume scalar register; and note added register.
12. The system of claim 11, wherein the note volume processor further comprises: an original note list register; and a modified note list register.
13. The system of claim 11 or 12, further comprising a sound generator.
PCT/US2007/017192 2006-07-31 2007-07-31 System and method for consistent power balance of notes played on sampled or synthesized sounds WO2008016649A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US82093706P 2006-07-31 2006-07-31
US60/820,937 2006-07-31

Publications (2)

Publication Number Publication Date
WO2008016649A2 true WO2008016649A2 (en) 2008-02-07
WO2008016649A3 WO2008016649A3 (en) 2008-11-13

Family

ID=38997701

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2007/017192 WO2008016649A2 (en) 2006-07-31 2007-07-31 System and method for consistent power balance of notes played on sampled or synthesized sounds

Country Status (1)

Country Link
WO (1) WO2008016649A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418641B2 (en) 2013-07-26 2016-08-16 Audio Impressions Swap Divisi process

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6703549B1 (en) * 1999-08-09 2004-03-09 Yamaha Corporation Performance data generating apparatus and method and storage medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6703549B1 (en) * 1999-08-09 2004-03-09 Yamaha Corporation Performance data generating apparatus and method and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418641B2 (en) 2013-07-26 2016-08-16 Audio Impressions Swap Divisi process

Also Published As

Publication number Publication date
WO2008016649A3 (en) 2008-11-13

Similar Documents

Publication Publication Date Title
EP1646035B1 (en) Mapped meta-data sound-playback device and audio-sampling/sample processing system useable therewith
US7728213B2 (en) System and method for dynamic note assignment for musical synthesizers
US6316710B1 (en) Musical synthesizer capable of expressive phrasing
US7915514B1 (en) Advanced MIDI and audio processing system and method
US8198525B2 (en) Collectively adjusting tracks using a digital audio workstation
US6584442B1 (en) Method and apparatus for compressing and generating waveform
EA002990B1 (en) Method of modifying harmonic content of a complex waveform
US20110015766A1 (en) Transient detection using a digital audio workstation
US10319353B2 (en) Method for audio sample playback using mapped impulse responses
WO2008016649A2 (en) System and method for consistent power balance of notes played on sampled or synthesized sounds
EP2015855B1 (en) System and method for dynamic note assignment for musical synthesizers
US7109406B2 (en) System and method for dynamic note assignment for musical synthesizers
Pertusa et al. Recognition of note onsets in digital music using semitone bands
Freire et al. Real-Time Symbolic Transcription and Interactive Transformation Using a Hexaphonic Nylon-String Guitar
WO2007123549A1 (en) System and method for dynamic note assignment for musical synthesizers
JP3812510B2 (en) Performance data processing method and tone signal synthesis method
JPH06149242A (en) Automatic playing device
JP3530600B2 (en) Frequency characteristic control apparatus and frequency characteristic control method for musical tone signal
Vuolevi Replicant orchestra: creating virtual instruments with software samplers
Keesecker Into the Bends of Time and Musical Forces in Jazz: Group Interaction and Double-time in “My Foolish Heart” as performed by the Bill Evans Trio with Scott LaFaro and Paul Motian.
Wu SuperSampler: A new polyphonic concatenative sampler synthesizer in supercollider for sound motive creating, live coding, and improvisation
JP3744247B2 (en) Waveform compression method and waveform generation method
JPH0822282A (en) Automatic accompaniment device for guitar
Brandtsegg et al. Investigation of a Drum Controlled Cross-Adaptive Audio Effect for Live Performance
US9418641B2 (en) Swap Divisi process

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07836406

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

NENP Non-entry into the national phase in:

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 07836406

Country of ref document: EP

Kind code of ref document: A2