Altera_Forum
Honored Contributor
15 years agoVibrato(FM) effect on DE2
Hi, i'm trying to create effect like vibratto, flanger. Simply frequency modulation. My sampling for audio is 48khz As far as i know it can be done using circular buffer(variable delay to modify phase of signal). Ok, i've got ram megafunction:
pamiec_pamiecFlanger:
entity work.pamiecFlanger port map
(
clock => lrck,
data => input,
address => address,
wren => '1',
q = output_temp);
input is signal from line in, output_temp is TO line out(edited: to register and then to line out i mean), lrck is leftrigh clock of codec. then i do somethin like this:
process(lrck, reset)
begin if reset = '0' then
elsif( lrck'event and lrck = '1' ) then
if (address < wave(13 downto 0)) then
address <= address + 1;
else
address <= (others => '0');
end if;
end if;
end process;
wave is triangle from LUT , 14 bit but only 0 to 720, about 15ms delay i think, 1hz frequency. Just as it should be for simple flanger or easy to hear vibratto. At least i output signal from ram output <= output_temp; outside processes. In background of produced signal i hear varying frequency, on spectrum analyser it can be seen clearly. but in front of signal i've got strange noise, like i don't know how to say it. MI think it can be becouse lrck clock is way to fast, when modulating wave is low , 50, 100 for eg. my input signal is writen many times from 0 to 50 to ram. Ehh... sory, i don't know how to write it. Can you just look at the code and point me what am i doing wrong, and how to repair it ? I want hw approach, i know that nios with for example uclinux would speed it up, but i want HW and only HW.. Thanks in advance, and sorry for chaotic style of writing... Chris