We have 94 guests and no members online
about the chip
At the heart of the GinSing Arduino shield is the Soungin IC. Although the chip is 100% digital, it produces complex sound as though it were an analog waveform generator. The chip features six independently realtime controllable waveform generators that can be utilized in a variety of ways. The waveform generators can be configured to provide modulation, and are routed to mixers and envelope generators.
Soundgin vs. SpeakJet
Both the Soundgin and SpeakJet chips were forged from the same design, and share some common features. They are not identical. As you can see from this feature comparison, the SpeakJet has additional features that make it easier to produce speech, and the Soundgin has additional features that make it work as a complex sound generator:
|maximum output frequency||16 KHz||8 KHz|
|basic speech synthesis||yes||yes|
|preset speech phrases||no||yes|
|preset sound effects||yes||no|
The SoundGin chip is controlled through a 9600 baud serial connection. On the GinSing design we utilize the Arduino pins 9 (TX), 10 (RX), 11 (OVF) to control the serial communications internally. The communication protocol consists of a header byte followed by a series of data bytes that can be interpreted by the chip as either a register value or a command. The chip has 144 internal registers that can be set or read through the interface and control every function on the chip. The commands are utilized to trigger actions on the chip such as to load a preset sound, trigger a waveform oscillator, and so on. The GinSing software interface provides a low level API to set/get register values and send commands through a few function calls with enumerated arguments, making it conceptually much easier to understand.
In addition to controlling the chip through low level commands and registers, the GinSing software interface provides four logical operating modes (preset, poly, voice, synth) that peform register/command functions internally. The operating modes can be switched instantly to allow to transition from speech to sound effects to musical instrument to waveform synthesis on the fly.This greatly reduces the complexity of the interface and provides for easy access to all the chip functions in a logical manner. For example, each waveform generator can be addressed individually (or all at once) to set waveform type through the same function call; using low level register operations you would need to compose and send the serial data one at a time with different data tags. All parameters for the entire chip can be modified in realtime; the only restriction that you have is that you communicate at a 9600 baud rate. Given the size of the packets, however, this rarely becomes an issue even when controlling dozens of parameters in realtime. The GinSing sofware internally monitors flow control and you can poll the interface to determine how close you are to reaching bandwidth limits.
There are three outputs on the chip; audio output (sound out), busy status (sounding), and user control (Q). The audio output is a 160 kHz pulse width modulated digital signal that is filtered into an analog output through the use of external low pass filter components. The GinSing Arduino shield contains the filter components as well as an analog audio amplifier (LM386) to provide line level (via 3.5mm jack) as well as speaker connections (via speaker screw post). The busy status output can be used to determine if the chip is producing any audible output. the user control line can be set high or low from a register on the serial interface. Both the busy status and Q outputs are of limited value on the Arduino shield and are currently not connected through the shield.
Each of the six waveform oscillators are identical, and can operate indpendently or in combination for modulation (with some restrictions). These digitally controlled oscillators (DCOs) can be mixed directly to the ouput and/or sent to other oscillators based on patch configurations enumerated in the GinSing software interface. In addition to a master mixer, there are two sets of mixers that group three oscillators each that comprise two banks in the interface. Each DCO is capable of generating waveforms via internal lookup tables for sine, triangle, sawtooth, ramp, pulse, and noise. The outputs of the DCOs can be used to amplitude modulate (DCA), frequency modulate (DCF), pulse width modulate (DPW), and ring modulate other oscillators (with some restrictions). Each DCO ( and mixer ) has an envelope generator to control timing of amplitiude using attack, decay, sustain, and release (ADSR) parameters to simulate the characteristic of real (and artificial) instrument characteristics. Each DCO also has built-in functions for frequency distortion, frequency ramp and sweep, and amplitude ramp and sweep.
In voice mode, the chip is capable of synthesizing human speech by configuring all the DCOs, mixers, and envelope generators internally to mimic a resonant vocal tract through the use of a set of 64 phonemes (utterances) and 6 inflection commands. A each phoneme is processed, the chip automatically blends the register values that control the sound generation over time to create smooth transitions between the phonemes. The smooth transitioning of phonemes (allophones) creates a more natural sound voice and allows for more creative uses of the synthesis. In addition to allophone generation, the chip also allows realtime control over pitch (either as frequency or musical note), phrase speed, and allphone blending rate to add dynamics, such as singing, warbling, and so on.