Customizable software-based digital wavetable synthesizer
First Claim
1. A music synthesizer, comprising:
- an input device to accept musical sounds corresponding to a single musical note from a selected musical source and to generate digital samples thereof, the digital samples containing at least one complete cycle of the single musical note;
a data buffer to temporarily store at least a portion of the digital sample containing at least one complete cycle of the single musical note;
a sample processor software module to analyze data in the data buffer and to extract therefrom one complete cycle of the single musical note, the sample processor software module further processing the extracted data to determine the frequency of the one complete cycle and to normalize the extracted data such that a first data sample in the extracted data has an amplitude of zero;
a first data structure to store the normalized data in association with a data identifier;
a second data structure to store a set of rules associated with the generation of musical notes;
a user interface operable by a user to select a sequence of musical notes;
a music file generation processor software module coupled to the user interface and receiving data indicative of the user-selected sequence of musical notes, the generation processor software module accessing the second data structure and applying rules to the user-selected sequence of musical notes to thereby generate a musical output file; and
a sound board to play the musical output file.
1 Assignment
0 Petitions
Accused Products
Abstract
A software based digital wavetable synthesizer receives musical data from an external source and generates a plurality of digital sample values corresponding to the musical source. The musical source may be a synthesized music source or an actual instrument. In an exemplary embodiment, a sample for each semi-tone for the musical instrument is sampled and stored. A subsequent process analyzes the sampled and selects a single cycle representing that musical instrument at each of the semi-tones. The data is subsequently normalized such that each cycle begins with a zero value and the normalized data is stored in a data structure along with labels indicative of the musical instrument and the musical note. In subsequent use, the user can create synthesized music by selecting the desired instrument and notes. Additional musical rules, such as rules associated with Indian classical music, may be applied to specify the synthesis process. The musical notes, generated in accordance with the associated musical rules are provided to a music output file, which may be converted into a conventional waveform format and played on a conventional sound card. The invention is totally software based and does not rely on synthesized data stored in firmware or hardware on a special musical synthesizer card. Instead, any conventional sound card may be readily used thus allowing portability of the music synthesizer between computing platforms.
70 Citations
26 Claims
-
1. A music synthesizer, comprising:
-
an input device to accept musical sounds corresponding to a single musical note from a selected musical source and to generate digital samples thereof, the digital samples containing at least one complete cycle of the single musical note;
a data buffer to temporarily store at least a portion of the digital sample containing at least one complete cycle of the single musical note;
a sample processor software module to analyze data in the data buffer and to extract therefrom one complete cycle of the single musical note, the sample processor software module further processing the extracted data to determine the frequency of the one complete cycle and to normalize the extracted data such that a first data sample in the extracted data has an amplitude of zero;
a first data structure to store the normalized data in association with a data identifier;
a second data structure to store a set of rules associated with the generation of musical notes;
a user interface operable by a user to select a sequence of musical notes;
a music file generation processor software module coupled to the user interface and receiving data indicative of the user-selected sequence of musical notes, the generation processor software module accessing the second data structure and applying rules to the user-selected sequence of musical notes to thereby generate a musical output file; and
a sound board to play the musical output file. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A music synthesizer, comprising:
-
an input device to sequentially accept musical sounds corresponding to a plurality of single musical notes at intervals from a selected musical source and to generate measured digital samples thereof, the measured digital samples containing at least one complete cycle of each of the plurality of single musical notes;
a processor software module to analyze the measured digital samples for each of the plurality of single musical notes and to extract therefrom one complete cycle of each of the plurality of single musical notes, the processor software module further processing the extracted data to determine the frequency of one complete cycle of each of the plurality of single musical notes and to normalize the extracted data such that a first data sample in the extracted data for the one complete cycle of each of the plurality of single musical notes at semi-tone intervals has an amplitude of zero, the processor software module further calculating a fractional value indicative of timing relationship between the normalized first data sample and a last data sample of the one complete cycle; and
a data structure to store the normalized data for the one complete cycle of each of the plurality of single musical notes in association with a data identifier, wherein the data structure contains at least one complete cycle of each of the plurality of single musical notes over a selected range of musical notes for the selected musical source. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
a rules data structure to store a set of rules associated with the generation of musical notes;
a user interface operable by a user to select a sequence of musical notes;
a music file generation processor coupled to the user interface and receiving data indicative of the user-selected sequence of musical notes, the generation processor accessing the rules data structure and applying the set of rules to the user-selected sequence of musical notes to thereby generate a musical output file; and
a sound board to play the musical output file.
-
-
17. The synthesizer of claim 16 wherein the music file generation processor generates a plurality of cycles of a selected one of the sequence of musical notes based on the fractional value associated with the selected one of the sequence of musical notes, with at least a portion of the plurality of cycles being offset in time with respect to the normalized data.
-
18. A method for creating a software-based music synthesizer, comprising:
-
sequentially sampling musical sounds corresponding to a single musical note from a selected musical instrument to generate measured digital samples thereof, the measured digital samples containing at least one complete cycle of the single musical note;
analyzing the measured digital samples for the single musical note to extract therefrom one complete cycle of the single musical note;
processing the extracted data to determine the frequency of the one complete cycle of the single musical note to normalize the extracted data such that a first data sample in the extracted data for the one complete cycle of the single musical note has an amplitude of zero;
storing the normalized data for the one complete cycle of the musical note in association with a data identifier; and
calculating a fractional value indicative of a timing relationship between the first normalized data sample and a last normalized data sample in the extracted data for the one complete cycle. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
determining a starting point of the one complete cycle of the single musical by calculating a shift time between first and second measured sample data points of the plurality of measured sample data points where the one complete cycle of the single musical note begins; and
applying the time shift to the first measured sample data point such that the first sample data point has an amplitude of zero.
-
-
21. The method of claim 20, further comprising:
adjusting the data values for successive ones of the plurality of measured data sample points of the one complete cycle of the single musical note to generate adjusted data values that are calculated by interpolating between measured sample data points to determine an adjusted data value at the shift time between the successive measured sample data points wherein the stored normalized data uses the adjusted data values.
-
22. The method of claim 21, further comprising determining a normalized amplitude by:
-
determining an actual range between a greatest positive data value and a greatest negative data value for the measured sample data points calculating a ratio of a desired range to the actual range; and
further adjusting the determined data values at the shift time between the successive measured sample data points by applying the calculated ratio thereto wherein the stored normalized data values are adjusted in amplitude by the calculated ratio.
-
-
23. The method of claim 18 wherein the stored data includes note specification data comprising an instrument name data field to identify the selected musical instrument, a note identification data field to identify the single musical note, and a fractional value data field indicative of the fractional value for the one complete cycle of the single musical note.
-
24. The method of claim 18 wherein the stored data includes sample data value data comprising an instrument name data field to identify the selected musical instrument, a note identification data field to identify the single musical note, and a sample data field containing sample data values for the one complete cycle of the single musical note.
-
25. The method of claim 18, further comprising:
-
storing a set of rules associated with the generation of musical notes;
sensing operation of a user interface operable by a user to select a sequence of musical notes;
applying the set of rules to the user-selected sequence of musical notes to thereby generate a musical output file; and
playing the musical output file.
-
-
26. The method of claim 25, further comprising generating a plurality of cycles of the single musical note based on the fractional value associated therewith, the first cycle of the plurality of cycles corresponding to the normalized data and subsequent ones of the plurality of cycles being offset in time with respect to the normalized data.
Specification