Nu har projektet gjort lite framsteg värda att nämnas igen.
En digital delay line har implementerats.
Inga märkligheter egentligen, samplingar sparas i ett antal BRAM som sedan spelas upp med en fördröjning.
Den maximala möjliga fördröjningen är antalet samplingar/samplingsfrekvensen.
För tillfället sparar jag 8192 samplingar (8 st. 16-bit x 1K BRAM) och samplar i 27kHz, vilket ger max fördröjning på ca 300 ms.
Helst skulle jag vilja dra upp samplingsfrekvensen till minst ca 44kHz,
men av någon anledning spårar ISE ur när jag försöker lägga in > 8 st BRAM.
Den vill då få det till 16 st BRAM och så många har jag inte ledigt längre.
Om någon har någon idé varför den gör så, hojta gärna till.
Annars kan jag ju dela upp BRAMen själv och muxa addresserna, men jag har inte orkat det än.
Inparametrar till delayen är:
"Delay time" = fördröjningens längd (0 = 2 ms, 127 = 300 ms)
"Dry amount" = hur mycket av originalljudet som skall mixas in (0 = inget, 127 = max)
"Feedback" = hur mycket av delayens utgång skall mixas med ingången (0 = utgång/128, 127 = 1*utgång)
Dessa inparametrarna är kopplade till MIDI interfacet.
Koden till delaymodulen finns här:
http://www.sk-electronics.com/svn/repos ... delay.vhdl
Och så det obligatoriska lyssningsprovet:
http://www.sk-electronics.com/sk-synth/delay_sample.mp3