摘要:
This disclosure describes techniques that make use of a waveform fetch unit that operates to retrieve waveform samples on behalf of each of a plurality of hardware processing elements that operate simultaneously to service various audio synthesis parameters generated from one or more audio files, such as musical instrument digital interface (MIDI) files. In one example, a method comprises receiving a request for a waveform sample from an audio processing element, and servicing the request by calculating a waveform sample number for the requested waveform sample based on a phase increment contained in the request and an audio synthesis parameter control word associated with the requested waveform sample, retrieving the waveform sample from a local cache using the waveform sample number, and sending the retrieved waveform sample to the requesting audio processing element.
摘要:
This disclosure describes techniques that make use of a waveform fetch unit that operates to retrieve waveform samples on behalf of each of a plurality of hardware processing elements that operate simultaneously to service various audio synthesis parameters generated from one or more audio files, such as musical instrument digital interface (MIDI) files. In one example, a method comprises receiving a request for a waveform sample from an audio processing element, and servicing the request by calculating a waveform sample number for the requested waveform sample based on a phase increment contained in the request and an audio synthesis parameter control word associated with the requested waveform sample, retrieving the waveform sample from a local cache using the waveform sample number, and sending the retrieved waveform sample to the requesting audio processing element.
摘要:
This disclosure describes techniques that make use of a summing buffer that receives waveform samples from audio processing elements, and sums and stores the waveform sums for a given frame. In one example, a method comprises summing a waveform sample received from an audio processing element to produce a waveform sum associated with a first audio frame, storing the waveform sum in a memory, wherein the memory is logically partitioned into a plurality of memory blocks, and locking memory blocks containing the waveform sum associated with the first audio frame, transferring contents of locked memory blocks to an external processor, unlocking a memory block after contents of the memory block have been transferred to the external processor, and storing a waveform sum associated with a second audio frame within the unlocked memory block concurrently with transferring contents of remaining locked memory blocks associated with the first audio frame.
摘要:
This disclosure describes techniques that make use of a summing buffer that receives waveform samples from audio processing elements, and sums and stores the waveform sums for a given frame. In one example, a method comprises summing a waveform sample received from an audio processing element to produce a waveform sum associated with a first audio frame, storing the waveform sum in a memory, wherein the memory is logically partitioned into a plurality of memory blocks, and locking memory blocks containing the waveform sum associated with the first audio frame, transferring contents of locked memory blocks to an external processor, unlocking a memory block after contents of the memory block have been transferred to the external processor, and storing a waveform sum associated with a second audio frame within the unlocked memory block concurrently with transferring contents of remaining locked memory blocks associated with the first audio frame.
摘要:
This disclosure describes techniques that make use of a plurality of hardware elements that operate simultaneously to service synthesis parameters generated from one or more audio files, such as musical instrument digital interface (MIDI) files. In one example, a method comprises storing audio synthesis parameters generated for one or more audio files of an audio frame, processing a first audio synthesis parameter using a first audio processing element of a hardware unit to generate first audio information, processing a second audio synthesis parameter using a second audio processing element of the hardware unit to generate second audio information, and generating audio samples for the audio frame based at least in part on a combination of the first and second audio information.
摘要:
This disclosure describes techniques for processing audio files that comply with the musical instrument digital interface (MIDI) format. In particular, various tasks associated with MIDI file processing are delegated between software operating on a general purpose processor, firmware associated with a digital signal processor (DSP), and dedicated hardware that is specifically designed for MIDI file processing. Alternatively, a multi-threaded DSP may be used instead of a general purpose processor and the DSP. In one aspect, this disclosure provides a method comprising parsing MIDI files and scheduling MIDI events associated with the MIDI files using a first process, processing the MIDI events using a second process to generate MIDI synthesis parameters, and generating audio samples using a hardware unit based on the synthesis parameters.
摘要:
A unified filter bank for performing signal conversions may include an interface that receives signal conversion commands in relation to multiple types of compressed audio bitstreams. The unified filter bank may also include a reconfigurable transform component that performs a transform as part of signal conversion for the multiple types of compressed audio bitstreams. The unified filter bank may also include complementary modules that perform complementary processing as part of the signal conversion for the multiple types of compressed audio bitstreams. The unified filter bank may also include an interface command controller that controls the configuration of the reconfigurable transform component and the complementary modules.
摘要:
A unified filter bank for performing signal conversions may include an interface that receives signal conversion commands in relation to multiple types of compressed audio bitstreams. The unified filter bank may also include a reconfigurable transform component that performs a transform as part of signal conversion for the multiple types of compressed audio bitstreams. The unified filter bank may also include complementary modules that perform complementary processing as part of the signal conversion for the multiple types of compressed audio bitstreams. The unified filter bank may also include an interface command controller that controls the configuration of the reconfigurable transform component and the complementary modules.
摘要:
This disclosure describes techniques for processing audio files that comply with the musical instrument digital interface (MIDI) format. In particular, various tasks associated with MIDI file processing are delegated between software operating on a general purpose processor, firmware associated with a digital signal processor (DSP), and dedicated hardware that is specifically designed for MIDI file processing. Alternatively, a multi-threaded DSP may be used instead of a general purpose processor and the DSP. In one aspect, this disclosure provides a method comprising parsing MIDI files and scheduling MIDI events associated with the MIDI files using a first process, processing the MIDI events using a second process to generate MIDI synthesis parameters, and generating audio samples using a hardware unit based on the synthesis parameters.
摘要:
This disclosure describes techniques for generating a set of data points that form a triangular wave having a desired gain and a desired frequency. In one example, the method includes the step of (a) determining an increment value based on the desired frequency and the desired gain of the triangular wave. The method further includes the step of (b) adding the increment value to a current data point to generate a next data point, the current data point and the next data point forming a subset of the set of data points. The method further includes the step of iteratively performing (a) and (b) to generate the set of data points that form the triangular wave.