WO1987007747A1 - Digital sampling instrument - Google Patents

Digital sampling instrument Download PDF

Info

Publication number
WO1987007747A1
WO1987007747A1 PCT/US1987/001343 US8701343W WO8707747A1 WO 1987007747 A1 WO1987007747 A1 WO 1987007747A1 US 8701343 W US8701343 W US 8701343W WO 8707747 A1 WO8707747 A1 WO 8707747A1
Authority
WO
WIPO (PCT)
Prior art keywords
sound
data
digital
sound data
storing
Prior art date
Application number
PCT/US1987/001343
Other languages
French (fr)
Inventor
David P. Rossum
Original Assignee
E-Mu Systems, Inc.
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 E-Mu Systems, Inc. filed Critical E-Mu Systems, Inc.
Publication of WO1987007747A1 publication Critical patent/WO1987007747A1/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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • 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/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/131Mathematical functions for musical analysis, processing, synthesis or composition
    • G10H2250/161Logarithmic functions, scaling or conversion, e.g. to reflect human auditory perception of loudness or frequency
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/645Waveform scaling, i.e. amplitude value normalisation

Definitions

  • the present invention relates to a digital sampling instru ⁇ ment and more particularly to a digital sampling keyboard instrument.
  • Digital sampling keyboard instruments are known in the prior art to provide accurate generation of virtually any sound, such as piano, (violin or any other type of sound, for that matter) .
  • an analog audio sound is digitized and stored in a sound memory and then played out by a user, as desired.
  • the prior art in order to change the pitch of a particular sound (such as increasing the pitch of a violin sound) the prior art has, in some approaches, changed the spacing interval between digital samples. For example, in order to increase the pitch of a particular sound, the sampling rate is changed from, for example, 50 microseconds to 40 microseconds. This approach, while generally adequate, requires expensive asynchronous hard ⁇ ware.
  • Another approach is to effectively "skip” or" "duplicate” particular digital samples, which effectively increases the pitch, but also generates unwanted distortion.
  • Another approach is to oversa ple the digital samples, which in effect divides up a pitch period (such as a pitch period of 50 microseconds) into a smaller number of subperiods. For example, a pitch period of, say, 20 subperiods can be sampled within 19 periods, thus effectively increasing the pitch of a particular sound, while reducing or limiting the distortion (which can still be present) .
  • the digital samples stored in a sound memory are generally stored as PCM data.
  • prior art approaches can introduce an unwanted or undesirable "clicking" sound. This is because of what can happen when PCM encoding an audio sound (for example, an audio sine wave) . When there is a sudden change of the volume (such as by a step function) , this can intro ⁇ Jerusalem an undesired clicking noise into the volume scaling, which again affects the fidelity of the sound generation.
  • the present invention provides a digital sampling instrument operating in successive clock cycles and includes memory means for storing digital sound data in a plurality of accessible locations in the memory means.
  • The- instrument also includes means for accessing the digital sound data within a single clock cycle which is one-fourth as long as a memory cycle, and means for outputting the accessed digital data to, for example, a digital to analog converter means for generating an audio sound within the single clock cycle. This provides a fast and accurate generation of the desired audio sound.
  • the instrument includes means for logarithmically encoding successive differences of digital data samples representa ⁇ tive of a particular sound and means for accumulating differences between successive ones of the digital data samples to form PCM data.
  • the instrument also includes means for adding the logarithmically encoded differential data to create a volume scaled data sample, which can be suitably decoded and converted to an audio format for accurate generation of a desired sound.
  • the instrument includes a first non-volatile memory means for storing a plurality of identification numbers where each of the numbers is unique to one another.
  • the instrument also includes second memory means for storing a plurality of different digital sound data samples where each of the different sound data samples is representative of a parti ⁇ cular sound.
  • the instrument further includes control means for assigning one of the unique identification numbers with a particular one of the different sound data samples (to form "tagged" data samples) and means for storing the tagged sound data samples in the second memory means.
  • the instru ⁇ ment further includes means for comparing the tagged sound data with additional sound data to determine-whether the additional sound data should be stored in the second memory means. This aspect of the present invention eliminates the requirement of storing redundant data in the second memory means, which avoids long processing time.
  • Fig. 1 depicts a block diagram of a digital sampling instru ⁇ ment according to the present invention.
  • Fig. 2 depicts a block diagram of an address generator/data decode (AG/D) circuit, which forms a portion of the inven ⁇ tion depicted in Fig. 1.
  • AG/D address generator/data decode
  • Fig. 3 depicts a block diagram of a microprocessor inter ⁇ face, which forms a portion of Fig. 2.
  • Fig. 4 depicts a block diagram of an address generator, which forms a portion of Fig. 2.
  • Figs. 5 and 6 depict block diagrams of the data decoder, which forms a portion of Fig. 2.
  • instrument 10 includes a keyboard 12 connected to a microcomputer or microprocessor 16. A user of the instrument 10 will depress a key on keyboard 12 to generated desired sounds such as piano, violin (or any other sound) .
  • Microcomputer 16 is also connected to a control logic circuit 18 which provides necessary operation control signals in a known fashion.
  • the instrument 10 also includes a non-volatile memory 20 and a floppy disk 26 connected to microcomputer 16.
  • an audio input bus 30 connected to an analog to digital (A/D) converter 28,- which in turn is connected to microcomputer 16.
  • A/D converter 28 An audio input is converted to a digital format by A/D converter 28 for input to microcomputer 16 for storage, as necessary, on a floppy disk 26.
  • AG/D circuit 50 Also connected to microcomputer 16 is an Address Generator and Decode Circuit (AG/D) 50 via bus 14.
  • AG/D circuit 50 incorporates aspects of the present invention which will be described in more detail below.
  • AG/D circuit 50 is connected to a sound RAM 60 which contains any desired digital sound data.
  • AG/D circuit 50 controls accessing or addressing of the sound RAM 60 via, in a preferred embodiment, 19-bit bus 52.
  • AG/D circuit 50 communicates bidirectionally with sound RAM 60 to transmit and receive sound data via bidirectional 8-bit bus 54.
  • Outputs from AG/D circuit 50 include a 3-bit control bus 22, which provides appropriate channel identification for up to eight channels (in a preferred embodiment) .
  • 8-bit bus 22 communicates with a series of decoder circuits such as decoder 25, to provide appropriate enabling signals of a desired analog audio output to a latch 32, digital to analog converter (DAC) 34 and an analog output device- -36 (which typically could be a filter) .
  • AG/D circuit 50 also provides an output on 12-bit linear data bus 24 which is input to a desired latch 32. The linear digital data is converted to an analog format via DAC 34 for connection to the suitable analog device 36, as previously described.
  • the microcomputer accesses desired sound data (if stored in floppy disk 26) for storage in sound RAM 60.
  • desired sound data if stored in floppy disk 26
  • Microcomputer 16 communicates with the non-volatile memory 20 to keep track of which sounds should be stored in sound RAM 60.
  • the instrument 10 depicted in Fig. 1 can determine if a sound must be loaded from floppy disk 26 to sound RAM 60 or, in the alternative, whether it is redundant to do so. This aspect will now be described with a general overview with respect to the operation of the instrument 10.
  • the present invention provides a capability which avoids this undesirable limitation.
  • a unique data sample representa ⁇ tive of a particular sound is "tagged" with a unique identi- fication number or code.
  • a sound is loaded into floppy disk 26 by microcom ⁇ puter 16.
  • the desired sound stored in floppy disk 26 then is compared with any potential corresponding sound in sound RAM 60. If the identifications codes are identical, it is determined by microcomputer 16 that it is unnecessary to load data from floppy disk 26 into sound RAM 60. This avoids the loading of redundant data.
  • microcomputer 16 stores the piano sound in floppy disk 26. Assume that the user is #100 and the non-volatile memory indicates that this is the tenth new sound this machine has ever stored to floppy disk. Then the sample sound of the piano is #10.
  • the microcomputer will, for purposes of explanation, tag that sound as 100/10 to floppy disk 26 and increment the non-volatile memory to show the next floppy storage will be #11.
  • the user might want to record a violin sound (through audio input bus 30 to analog to digital converter 28 to microcomputer 16).
  • the identification tag from non-volatile memory 20 is #11, and microcomputer tags the violin sound as 100/11 into floppy disk 26.
  • the desired sounds are tagged with the appropriate identification code, as indicated above, and microcomputer 16 controls the accessing of the desired sounds from floppy disk 26 to sound RAM 60.
  • the user wants to change the desired sounds from piano and strings to piano and flute. If the user has a second floppy disk with the original piano sound, together with the desired flute sound, traditionally the prior art approach would be to reload the piano sound together with the new flute sound. However, according to the present invention, the desired piano sound is already stored in sound RAM 60 and hence need not be loaded again.
  • the unique identification code for the particular sound will be pro ⁇ vided by non-volatile memory 20 and will be tagged with each particular sound.
  • Microcomputer 16 will perform a comparison of the identification codes for sound stored in floppy disk 26.
  • the piano sound appearing on the second floppy disk 26 will be identified as the same sound already stored in sound RAM 60.
  • the particular piano sound need not be redundantly loaded into sound RAM 60. This saves considerable time in operation.
  • FIG. 2 a block diagram of the address generator/data decoder logic circuit 50 according to the present invention is depicted.
  • the logic circuit 50 includes a microprocessor interface 80 which receives 8-bit data and 3-bit control data- from the microprocessor 16 of Fig. 1.
  • the purpose of microprocessor interface 80 is essentially to convert (multiplex) the 8-bit data to 24-bit data, depending upon system or specification requirements. In a preferred embodiment, the present invention utilizes an 8-bit microcomputer for control purposes. Therefore, the microprocessor interface 80 provides the necessary conversion of the 8-bit to 24-bit data.
  • the 24-bit data bus is bidirectional for connection to the address generator 90 of Fig. 2.
  • the address generator 90 receives the sound data information on bus 82.
  • Address generator 90 for purposes of describing the operation of the present invention, provides address generation signals according the improved aspects of the present invention.
  • the particular type of sound data information such as the particular sound to be generated whether a piano sound, violin sound or any other type of sound, is not critical to the understanding to the aspects of the present invention.
  • Address generator 90 generates a large address signal (e.g., 19 bits) on bus 52.
  • the signal on bus 52 at any incident in time represents the address of a particular data sample in sound memory 60, which is to be fetched or accessed.
  • Address generator 90 also outputs a series of carry bits on bus 96, for the reason that the present invention is access ⁇ ing differential data on bus 54 from sound memory 60. The present invention therefore must "know" when the differen ⁇ tial data needs to be added into the data stream. Hence, a serial data stream on bus 96 is input to a data decoder 100.
  • Data decoder 100 also is connected to sound- memory 60 via 8-bit bus 54 to receive accessed data from sound memory 60.
  • Data decoder decodes the accessed data in a logarithmic format to a 16-bit linear format on bus 104.
  • the multi- channel output on bus 104 could be utilized in various approaches, such as eight channels of two particular sounds.
  • the output on bus 104 could be one combined 16-channel output or could be eight dual outputs.
  • the microcomputer interface 80 of Fig. 2 is depicted in which the 8-bit data is input to latch 33.
  • the purpose of the interface circuit 80 depicted in Fig. 3 is to convert the 8-bit data input to latch 33 to a 24-bit data bus 82 for input to the address generator 90 of Fig. 2.
  • interface 80 provides an 8-bit command or control bus 81 for connection to the components depicted in Fig. 2.
  • the interface 80 of Fig. 13 includes a multiplexer 35 connected to latch 33.
  • the output of multiplexer 35 is connected to latches 41, 43, 45 which can be sequentially written or read by appropriate control signals.
  • the output of latches 41, 43, 45 are then successively enabled through gate 47 to 24-bit bus 92.
  • FIG. 4 the address generation circuit 90 of Fig. 2 is shown in more detail.
  • the address generation circuit 90 includes four memories, which are identified as address memory 120, fraction memory 130, increment memory 140 and last memory 150.
  • the address memory 120 contains pointers to both the current and a reload or original address. This is for looping situations for a sound such that the current addresss points to where one currently is in the particular sound and the loop pointer points to where the sound would begin for looping or beginning the desired sound again. - - -
  • the fraction memory 130 refers to the non-integer or over- sampled part of the address.
  • the increment memory 140 determines the pitch of the parti ⁇ cular sound.
  • the increment address data is to be added to the old address for each oversampled cycle.
  • the increment memory thus is a small fraction of the overall address. The greater fraction of address that the increment address forms, the faster one steps through the sound and the higher the pitch, as previously described.
  • the last memory 150 corresponds to the last portion of the address. When the current address matches the last address, it means that the initial address should be loaded again.
  • the address generator circuit 90 includes pipeline architec ⁇ ture means for doubly incrementing the contents of the address and fraction memories 120, 130 to enable a single cycle of operation for incrementing the addresses.
  • a fetch and store operation was required which could not be done in a single memory clock cycle, except for utilizing a simultaneous read/write memory, which is quite expensive.
  • the address generator 90 includes double incre entable means and temporary latches to hold the data for looping back to the memories 120, 130.
  • the fetches and stores can be completely overlapped by the incrementing so that an incre ⁇ ment and a fetch store can be achieved in a single memory clock cycle.
  • the address generator includes a 32-bit shift register 156 to exit from the pipeline architecture in conjunction with a 32:1 multiplexer 158.
  • the 16-bit equal shift register 170 of the address generator 90 is provided to indicate when the next channel is occur ⁇ ring in a multichannel format.
  • the present invention is in effect oversampling at a 4:1 ratio, or a 4 to 1 interleaving effect.
  • the address for a particular channel is changed every fourth cycle. Hence, for example, channel 0's address will be output for four cycles.
  • the data decoder 100 of Fig. 2 includes a sound data RAM 200 and a volume data RAM 210.
  • the sound data RAM 200 is a cache RAM memory which takes the data accessed from the sound memory 60 of Fig. 2 and stores that accessed data on a single cycle basis, as indicated by the series of carries coming from the address generator of Fig. 2.
  • the volume memory 210 of Fig. 5 contains the logarithmic number data to be added to the logarithmically coded data in the sample or sound RAM 200 in order to volume scale the sound data for any particular channel.
  • memories 200, 210 are added in a summing logic circuit, generally indicated by numeral 216, to generate a combined logarithmic signal. Th s -signal is latched to latch 220 to be used as a lookup in memories 222, 224 (which could also be characterized as a single read only memory) .
  • the output of memories 222, 224 are complemented in order to re ⁇ ombine the sign bit to provide AC information.
  • the data from memories 222, 224 is now in a linear format and output from latch 230 on bus 232 (the output is the linear differ- en ⁇ e, as previously described) .
  • the linear difference signal on bus 232 is input through a selector 234 to a summer/accumulator, generally indicated by numeral 240.
  • Accumulator 240 combines the linear difference signal on bus 232 with existing information. If operating in a single channel mode, accumulator 224 is simply used to accumulate the data in a looping fashion.
  • a multiplication is performed generally to provide an exponen- tial feedback back to zero. Because the operation of the present invention is oversampled, a given channel never has a valid difference immediately followed by another valid difference. Hence, the second cycle can be used to add in the feedback term to decay back to zero.
  • a mix RAM 236 is in ⁇ cluded which remembers the individual channels (which, in a preferred embodiment, is eight channels) .
  • Multiplexer 250 provides an indication of which audio channel is being output" at a particular time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

A digital sampling instrument having the features of non-redundant data loading, single-cycle-fetch-and-store memory operations, and volume scaling. Sound data stored in a floppy disk (26) is assigned to a unique number associated with a sound stored in a sound RAM (60) to determine if loading the sound from the floppy disk (26) would be redundant. An address generator circuit located within an address generator/data decoder circuit (50) includes pipeline architecture to enable both a fetch and store operation to be performed in a single memory clock cycle. Volume scaling is achieved by storing both sound data and volume data in logarithmic form, adding the two, and converting to a linear format.

Description

DIGITAL SAMPLING INSTRUMENT -
Background of the Invention
The present invention relates to a digital sampling instru¬ ment and more particularly to a digital sampling keyboard instrument. ,
Digital sampling keyboard instruments'are known in the prior art to provide accurate generation of virtually any sound, such as piano, (violin or any other type of sound, for that matter) . Typically, an analog audio sound is digitized and stored in a sound memory and then played out by a user, as desired. With prior art instruments, in order to change the pitch of a particular sound (such as increasing the pitch of a violin sound) the prior art has, in some approaches, changed the spacing interval between digital samples. For example, in order to increase the pitch of a particular sound, the sampling rate is changed from, for example, 50 microseconds to 40 microseconds. This approach, while generally adequate, requires expensive asynchronous hard¬ ware.
Another approach is to effectively "skip" or" "duplicate" particular digital samples, which effectively increases the pitch, but also generates unwanted distortion. Another approach is to oversa ple the digital samples, which in effect divides up a pitch period (such as a pitch period of 50 microseconds) into a smaller number of subperiods. For example, a pitch period of, say, 20 subperiods can be sampled within 19 periods, thus effectively increasing the pitch of a particular sound, while reducing or limiting the distortion (which can still be present) .
As is also known in the prior art, the digital samples stored in a sound memory are generally stored as PCM data. In order to provide suitable fidelity in the actual audio sound generation, prior art approaches can introduce an unwanted or undesirable "clicking" sound. This is because of what can happen when PCM encoding an audio sound (for example, an audio sine wave) . When there is a sudden change of the volume (such as by a step function) , this can intro¬ duce an undesired clicking noise into the volume scaling, which again affects the fidelity of the sound generation.
Summary of the Invention
It is an object of the present invention to provide an improved digital sampling instrument.
It is another object of the present invention to provide a digital sampling instrument which has improved fidelity of the audio sound to be generated.
Briefly, the present invention provides a digital sampling instrument operating in successive clock cycles and includes memory means for storing digital sound data in a plurality of accessible locations in the memory means. The- instrument also includes means for accessing the digital sound data within a single clock cycle which is one-fourth as long as a memory cycle, and means for outputting the accessed digital data to, for example, a digital to analog converter means for generating an audio sound within the single clock cycle. This provides a fast and accurate generation of the desired audio sound.
According to another aspect of the present invention, the instrument includes means for logarithmically encoding successive differences of digital data samples representa¬ tive of a particular sound and means for accumulating differences between successive ones of the digital data samples to form PCM data. The instrument also includes means for adding the logarithmically encoded differential data to create a volume scaled data sample, which can be suitably decoded and converted to an audio format for accurate generation of a desired sound.
According to a further aspect of the present invention, the instrument includes a first non-volatile memory means for storing a plurality of identification numbers where each of the numbers is unique to one another. The instrument also includes second memory means for storing a plurality of different digital sound data samples where each of the different sound data samples is representative of a parti¬ cular sound.
The instrument further includes control means for assigning one of the unique identification numbers with a particular one of the different sound data samples (to form "tagged" data samples) and means for storing the tagged sound data samples in the second memory means. The instru¬ ment further includes means for comparing the tagged sound data with additional sound data to determine-whether the additional sound data should be stored in the second memory means. This aspect of the present invention eliminates the requirement of storing redundant data in the second memory means, which avoids long processing time.
Other objects, features and advantages of the present invention will become apparent from the following detailed description when taken in conjunction with the accompanying drawings.
Brief Description of the Drawings
Fig. 1 depicts a block diagram of a digital sampling instru¬ ment according to the present invention.
Fig. 2 depicts a block diagram of an address generator/data decode (AG/D) circuit, which forms a portion of the inven¬ tion depicted in Fig. 1.
Fig. 3 depicts a block diagram of a microprocessor inter¬ face, which forms a portion of Fig. 2.
Fig. 4 depicts a block diagram of an address generator, which forms a portion of Fig. 2.
Figs. 5 and 6 depict block diagrams of the data decoder, which forms a portion of Fig. 2.
Detailed Description of the Drawings
Referring now to Fig. 1, a digital sampling keyboard instru¬ ment 10 according to the present invention is depicted in block diagram form. In Fig. 1, instrument 10 includes a keyboard 12 connected to a microcomputer or microprocessor 16. A user of the instrument 10 will depress a key on keyboard 12 to generated desired sounds such as piano, violin (or any other sound) . Microcomputer 16 is also connected to a control logic circuit 18 which provides necessary operation control signals in a known fashion. The instrument 10 also includes a non-volatile memory 20 and a floppy disk 26 connected to microcomputer 16.
In order for a user to provide an audio input to the instru¬ ment 10, there is included an audio input bus 30 connected to an analog to digital (A/D) converter 28,- which in turn is connected to microcomputer 16. An audio input is converted to a digital format by A/D converter 28 for input to microcomputer 16 for storage, as necessary, on a floppy disk 26.
Also connected to microcomputer 16 is an Address Generator and Decode Circuit (AG/D) 50 via bus 14. AG/D circuit 50 incorporates aspects of the present invention which will be described in more detail below.
In Fig. 1, AG/D circuit 50 is connected to a sound RAM 60 which contains any desired digital sound data. AG/D circuit 50 controls accessing or addressing of the sound RAM 60 via, in a preferred embodiment, 19-bit bus 52. AG/D circuit 50 communicates bidirectionally with sound RAM 60 to transmit and receive sound data via bidirectional 8-bit bus 54.
Outputs from AG/D circuit 50 include a 3-bit control bus 22, which provides appropriate channel identification for up to eight channels (in a preferred embodiment) . 8-bit bus 22 communicates with a series of decoder circuits such as decoder 25, to provide appropriate enabling signals of a desired analog audio output to a latch 32, digital to analog converter (DAC) 34 and an analog output device- -36 (which typically could be a filter) . AG/D circuit 50 also provides an output on 12-bit linear data bus 24 which is input to a desired latch 32. The linear digital data is converted to an analog format via DAC 34 for connection to the suitable analog device 36, as previously described.
In operation, when a user enters a desired sound to be audibly generated via keyboard 12, the microcomputer accesses desired sound data (if stored in floppy disk 26) for storage in sound RAM 60. Microcomputer 16 communicates with the non-volatile memory 20 to keep track of which sounds should be stored in sound RAM 60.
According to one aspect of the present invention, the instrument 10 depicted in Fig. 1 can determine if a sound must be loaded from floppy disk 26 to sound RAM 60 or, in the alternative, whether it is redundant to do so. This aspect will now be described with a general overview with respect to the operation of the instrument 10.
Because floppy disk access time is substantial, it is desirable to avoid unnecessary access of "the floppy disk 26, if possible. The present invention provides a capability which avoids this undesirable limitation.
In Fig. 1, by using non-volatile memory 20 in conjunction with the microcomputer 16, a unique data sample representa¬ tive of a particular sound is "tagged" with a unique identi- fication number or code. With, the unique identification number, a sound is loaded into floppy disk 26 by microcom¬ puter 16. The desired sound stored in floppy disk 26 then is compared with any potential corresponding sound in sound RAM 60. If the identifications codes are identical, it is determined by microcomputer 16 that it is unnecessary to load data from floppy disk 26 into sound RAM 60. This avoids the loading of redundant data.
In order to clarify this aspect of the present invention, a specific example of this feature will now be described in detail.
Assume a user of the instrument 10 want to.accompany himself with a piano sound and a set of violin strings. The user puts a sample of a piano into the instrument 10 (via audio input bus 30 to analog to digital converter 28 to microcom- puter 16) . In turn, microcomputer 16 stores the piano sound in floppy disk 26. Assume that the user is #100 and the non-volatile memory indicates that this is the tenth new sound this machine has ever stored to floppy disk. Then the sample sound of the piano is #10. The microcomputer will, for purposes of explanation, tag that sound as 100/10 to floppy disk 26 and increment the non-volatile memory to show the next floppy storage will be #11.
Next, the user might want to record a violin sound (through audio input bus 30 to analog to digital converter 28 to microcomputer 16). As indicated above, the identification tag from non-volatile memory 20 is #11, and microcomputer tags the violin sound as 100/11 into floppy disk 26.
Finally, assume further that the user obtains his piano sample from a friend, together with a sample of a flute sound. The friend's identification tag could be, for purposes of description, #101.
The user then turns on the instrument 10 of -Fig. 1 (and assume the memory 60 is empty) . The user inputs the piano and string sounds through microcomputer 16 to floppy disk 26. The desired sounds are tagged with the appropriate identification code, as indicated above, and microcomputer 16 controls the accessing of the desired sounds from floppy disk 26 to sound RAM 60.
Suppose now the user wants to change the desired sounds from piano and strings to piano and flute. If the user has a second floppy disk with the original piano sound, together with the desired flute sound, traditionally the prior art approach would be to reload the piano sound together with the new flute sound. However, according to the present invention, the desired piano sound is already stored in sound RAM 60 and hence need not be loaded again. The unique identification code for the particular sound will be pro¬ vided by non-volatile memory 20 and will be tagged with each particular sound. Microcomputer 16 will perform a comparison of the identification codes for sound stored in floppy disk 26.
In the above example, the piano sound appearing on the second floppy disk 26 will be identified as the same sound already stored in sound RAM 60. Hence, if a user wants to change from piano and violin to piano and flute sounds, by utilizing the foregoing aspect of the present invention, the particular piano sound need not be redundantly loaded into sound RAM 60. This saves considerable time in operation.
Referring now to Fig. 2, a block diagram of the address generator/data decoder logic circuit 50 according to the present invention is depicted.
The logic circuit 50 includes a microprocessor interface 80 which receives 8-bit data and 3-bit control data- from the microprocessor 16 of Fig. 1. The purpose of microprocessor interface 80 is essentially to convert (multiplex) the 8-bit data to 24-bit data, depending upon system or specification requirements. In a preferred embodiment, the present invention utilizes an 8-bit microcomputer for control purposes. Therefore, the microprocessor interface 80 provides the necessary conversion of the 8-bit to 24-bit data. The 24-bit data bus is bidirectional for connection to the address generator 90 of Fig. 2.
In Fig. 2, the address generator 90 receives the sound data information on bus 82. Address generator 90, for purposes of describing the operation of the present invention, provides address generation signals according the improved aspects of the present invention. The particular type of sound data information, such as the particular sound to be generated whether a piano sound, violin sound or any other type of sound, is not critical to the understanding to the aspects of the present invention.
Address generator 90 generates a large address signal (e.g., 19 bits) on bus 52. The signal on bus 52 at any incident in time represents the address of a particular data sample in sound memory 60, which is to be fetched or accessed.
Address generator 90 also outputs a series of carry bits on bus 96, for the reason that the present invention is access¬ ing differential data on bus 54 from sound memory 60. The present invention therefore must "know" when the differen¬ tial data needs to be added into the data stream. Hence, a serial data stream on bus 96 is input to a data decoder 100.
Data decoder 100 also is connected to sound- memory 60 via 8-bit bus 54 to receive accessed data from sound memory 60.
Data decoder decodes the accessed data in a logarithmic format to a 16-bit linear format on bus 104. The multi- channel output on bus 104 could be utilized in various approaches, such as eight channels of two particular sounds. As an example, the output on bus 104 could be one combined 16-channel output or could be eight dual outputs.
Referring to Fig. 3, the microcomputer interface 80 of Fig. 2 is depicted in which the 8-bit data is input to latch 33. The purpose of the interface circuit 80 depicted in Fig. 3 is to convert the 8-bit data input to latch 33 to a 24-bit data bus 82 for input to the address generator 90 of Fig. 2. Also, interface 80 provides an 8-bit command or control bus 81 for connection to the components depicted in Fig. 2.
The interface 80 of Fig. 13 includes a multiplexer 35 connected to latch 33. The output of multiplexer 35 is connected to latches 41, 43, 45 which can be sequentially written or read by appropriate control signals. The output of latches 41, 43, 45 are then successively enabled through gate 47 to 24-bit bus 92.
Referring now to Fig. 4, the address generation circuit 90 of Fig. 2 is shown in more detail.
The address generation circuit 90 includes four memories, which are identified as address memory 120, fraction memory 130, increment memory 140 and last memory 150.
The address memory 120 contains pointers to both the current and a reload or original address. This is for looping situations for a sound such that the current addresss points to where one currently is in the particular sound and the loop pointer points to where the sound would begin for looping or beginning the desired sound again. - - -
The fraction memory 130 refers to the non-integer or over- sampled part of the address. The increment memory 140 determines the pitch of the parti¬ cular sound. The increment address data is to be added to the old address for each oversampled cycle. The increment memory thus is a small fraction of the overall address. The greater fraction of address that the increment address forms, the faster one steps through the sound and the higher the pitch, as previously described.
The last memory 150 corresponds to the last portion of the address. When the current address matches the last address, it means that the initial address should be loaded again.
The address generator circuit 90 includes pipeline architec¬ ture means for doubly incrementing the contents of the address and fraction memories 120, 130 to enable a single cycle of operation for incrementing the addresses. In the prior art, a fetch and store operation was required which could not be done in a single memory clock cycle, except for utilizing a simultaneous read/write memory, which is quite expensive.
The address generator 90 includes double incre entable means and temporary latches to hold the data for looping back to the memories 120, 130. The fetches and stores can be completely overlapped by the incrementing so that an incre¬ ment and a fetch store can be achieved in a single memory clock cycle.
The address generator includes a 32-bit shift register 156 to exit from the pipeline architecture in conjunction with a 32:1 multiplexer 158.
As an example of operation, consider multiple channels where the address of channels 0, 0', 1, l',2, 2' (where the prime indicates the second incrementing) are input to the 32-bit shift register 156. With appropriate controls, the output of the multiplexer 158 is 0, 1, 2...15, 0", 1', 21... It can thus be seen that the pipeline architecture has been exited.
The 16-bit equal shift register 170 of the address generator 90 is provided to indicate when the next channel is occur¬ ring in a multichannel format.
The present invention is in effect oversampling at a 4:1 ratio, or a 4 to 1 interleaving effect. The address for a particular channel is changed every fourth cycle. Hence, for example, channel 0's address will be output for four cycles.
Referring now to Figs. 5 and -6, the data decoder 100 of Fig. 2 is shown in more detail. The data decoder 100 includes a sound data RAM 200 and a volume data RAM 210. The sound data RAM 200 is a cache RAM memory which takes the data accessed from the sound memory 60 of Fig. 2 and stores that accessed data on a single cycle basis, as indicated by the series of carries coming from the address generator of Fig. 2.
The volume memory 210 of Fig. 5 contains the logarithmic number data to be added to the logarithmically coded data in the sample or sound RAM 200 in order to volume scale the sound data for any particular channel.
The respective contents of memories 200, 210 are added in a summing logic circuit, generally indicated by numeral 216, to generate a combined logarithmic signal. Th s -signal is latched to latch 220 to be used as a lookup in memories 222, 224 (which could also be characterized as a single read only memory) . The output of memories 222, 224 are complemented in order to reσombine the sign bit to provide AC information. The data from memories 222, 224 is now in a linear format and output from latch 230 on bus 232 (the output is the linear differ- enσe, as previously described) .
Referring to Fig. 6, the linear difference signal on bus 232 is input through a selector 234 to a summer/accumulator, generally indicated by numeral 240.
Accumulator 240 combines the linear difference signal on bus 232 with existing information. If operating in a single channel mode, accumulator 224 is simply used to accumulate the data in a looping fashion.
Also, in order to get the signal to decay back to zero, a multiplication is performed generally to provide an exponen- tial feedback back to zero. Because the operation of the present invention is oversampled, a given channel never has a valid difference immediately followed by another valid difference. Hence, the second cycle can be used to add in the feedback term to decay back to zero.
For multiple channels of operation, a mix RAM 236 is in¬ cluded which remembers the individual channels (which, in a preferred embodiment, is eight channels) .
Multiplexer 250 provides an indication of which audio channel is being output" at a particular time.

Claims

What is Claimed is
1. A digital sampling instrument operating in successive clock cycles comprising memory means for storing digital sound data in a plurality of accessible locations, a digital to analog converter, means for accessing said digital sound data at specified ones of said accessible locations within a single clock cycle, and means for outputting the accessed digital sound data to said digital to analog converter means within said single clock cycle.
2. A digital sampling instrument for encoding digital data samples representative of a particular sound comprising means for storing logarithmically encoded differ¬ ences at ones of said digital data samples, means for accumulating differences between succes¬ sive ones of said digital data samples to form PCM-data, and means for adding the logarithmically encoded differential data and the PCM data to create a volume scaled data sample.
3. A digital sampling instrument comprising non-volatile memory means for storing an incre- mentible identification number to produce a sequence where each of said number is unique to one another, second memory means for storing a plurality of different digital sound samples where each of said sound data samples represent a particular sound, control means for assigning one of said unique identification numbers with a particular one of said sound data samples, means for storing said particular sound data samples with said unique identification number, and means for comparing said stored sound data with said particular identification number with additional sound data having a unique identification number to determine whether said additional sound data should be stored in said second memory means.
PCT/US1987/001343 1986-06-13 1987-06-11 Digital sampling instrument WO1987007747A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US87425086A 1986-06-13 1986-06-13
US874,250 1986-06-13

Publications (1)

Publication Number Publication Date
WO1987007747A1 true WO1987007747A1 (en) 1987-12-17

Family

ID=25363324

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1987/001343 WO1987007747A1 (en) 1986-06-13 1987-06-11 Digital sampling instrument

Country Status (2)

Country Link
AU (1) AU7549487A (en)
WO (1) WO1987007747A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0427447A2 (en) * 1989-11-08 1991-05-15 Tsumura, Mihoji Karaoke music reproduction device
FR2657989A1 (en) * 1990-02-02 1991-08-09 Douchet Francois Rig for composing sound messages from prerecorded sound fragments
DE4190031B4 (en) * 1990-01-18 2005-04-14 E-MU Systems, Inc., Scotts Valley Data compression of decaying musical instrument sounds for a digital scanning system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3982460A (en) * 1974-09-17 1976-09-28 Kabushiki Kaisha Kawai Gakki Seisakusho Musical-tone-waveform forming apparatus for an electronic musical instrument
US4085644A (en) * 1975-08-11 1978-04-25 Deutsch Research Laboratories, Ltd. Polyphonic tone synthesizer
US4244264A (en) * 1977-02-23 1981-01-13 Thomson-Csf System for registering and selecting stops in a musical instrument
US4471681A (en) * 1981-10-01 1984-09-18 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument capable of producing a musical tone by varying tone color with time

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3982460A (en) * 1974-09-17 1976-09-28 Kabushiki Kaisha Kawai Gakki Seisakusho Musical-tone-waveform forming apparatus for an electronic musical instrument
US4085644A (en) * 1975-08-11 1978-04-25 Deutsch Research Laboratories, Ltd. Polyphonic tone synthesizer
US4244264A (en) * 1977-02-23 1981-01-13 Thomson-Csf System for registering and selecting stops in a musical instrument
US4471681A (en) * 1981-10-01 1984-09-18 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument capable of producing a musical tone by varying tone color with time

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0427447A2 (en) * 1989-11-08 1991-05-15 Tsumura, Mihoji Karaoke music reproduction device
EP0427447A3 (en) * 1989-11-08 1992-05-06 Tsumura, Mihoji Karaoke music reproduction device
DE4190031B4 (en) * 1990-01-18 2005-04-14 E-MU Systems, Inc., Scotts Valley Data compression of decaying musical instrument sounds for a digital scanning system
FR2657989A1 (en) * 1990-02-02 1991-08-09 Douchet Francois Rig for composing sound messages from prerecorded sound fragments

Also Published As

Publication number Publication date
AU7549487A (en) 1988-01-11

Similar Documents

Publication Publication Date Title
US5054360A (en) Method and apparatus for simultaneous output of digital audio and midi synthesized music
US4201105A (en) Real time digital sound synthesizer
JP3161561B2 (en) Multimedia system
US4622877A (en) Independently controlled wavetable-modification instrument and method for generating musical sound
JPS62208146A (en) Digital signal processor memory managing unit and method thereof
US4987600A (en) Digital sampling instrument
US3955459A (en) Electronic musical instrument
JPS5865493A (en) Waveform generator
US5144676A (en) Digital sampling instrument
US4429367A (en) Speech synthesizer apparatus
US5303309A (en) Digital sampling instrument
US4114497A (en) Electronic musical instrument having a coupler effect
US5321198A (en) Tone signal generator utilizing ancillary memories for electronic musical instrument
WO1987007747A1 (en) Digital sampling instrument
KR930001363B1 (en) Cross interleave circuit
JPS5895790A (en) Musical sound generator
US4338844A (en) Tone source circuit for electronic musical instruments
JP2707885B2 (en) Bit number converter
Lazzarini et al. Soundfiles
JPS6330638B2 (en)
US4184402A (en) Electronic musical instrument
KR830001222B1 (en) Electrophonic musical instruments
CA1334870C (en) Speech synthesizer using shift register sequence generator
RU2223539C2 (en) Specimen occurrence searching device
JPS5846036B2 (en) electronic musical instruments

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LU NL SE