This is simplified implementation of Karplus-Strong (KS) string synthesis based on papers, Digital Synthesis of Plucked-String and Drum Timbres and Extensions of the Karplus-Strong Plucked-String Algorithm.
A register map controls and configures the KS synthesis module. This register map is accessed through a SPI interface. Synthesized sound samples are sent out through the I2S transmitter interface.
Connect a clock with frequency f_clk = 256 kHz
and apply a reset cycle to initialize the design, this sets the audio sample rate at fs = 16 kHz
. Use the spi register map or the ui_in
to futher configure the design. The synthesized samples are sent continuously through the I2S transmitter interface.
An I2S DAC
The 8-bit signed sound samples are sent out at f_sck = 256 kHz
through this interface.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | ~rst_n_prbs_15, ~rst_n_prbs_7 | sck_i | |
1 | load_prbs_15, load_prbs_7 | sdi_i | |
2 | freeze_prbs_15 | sdo_o | |
3 | freeze_prbs_7 | cs_ni | |
4 | i2s_noise_sel | i2s_sck_o | |
5 | ~rst_n_ks_string | i2s_ws_o | |
6 | pluck | i2s_sd_o | |
7 | prbs_15 |