[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Date Index][
Thread Index][
Author Index]
Re: Jeff's scratching - a pseudo VHDL code
I dont know whats going on here and I dont really care either, but
that is hilarious.
On Aug 31, 2008, at 2:30 PM, Rainer Thelonius Balthasar Straschill
wrote:
> As an extension to my last message, here is some pseudo VHDL code
> (that's
> because I'm not at all familiar what scripting language can do
> right now -
> what's the status of the documentation?) to describe what I think
> needs to
> be done:
>
> -- I won't deal with variable declaration here
> -- things we get externally: "controller", which is an integer
> describing
> the finger position, "finger", a boolean stating whether the finger
> is on
> -- the controller or not, finally "clk", a clock for the process.
> There's a
> constant "clk_delta", which is the clock half-period in ms.
> --
>
> process scratching is
> begin
> wait until finger'event and finger -- wait until you put a
> finger on the controller
> pause -- pauses playback
> direction_s <= direction -- used to store playback
> direction (Forward or Backward)
> rate_s <= rate -- and rate
> ctrl_last <= controller -- store current finger
> position
> ctrl_last2 <= controller
> loop: scratching -- inner loop;
> active while finger is on the controller
> wait until clock'event
> if controller = ctrl_last AND controller = ctrl_last2
>then
> pause -- pause playback
>if
> finger hasn't moved for last two clocks
> elsif controller != ctrl_last then
> play
> ctrl_delta = controller - ctrl_last
> if ctrl_delta > 0 then -- check for playing
> direction
> if direction_s = forward then
> forward
> else
> backward
> end if
> elsif
> if direction_s = forward then
> backward
> else
> forward
> end if
> end if
> pbspeed = ctrl_delta/clk_delta -- playback speed
> scale factor is the controller delta since last clk'event divided by
> clk_delta
> rate = ln(pbspeed)*17,3123404906676 -- ugly scale
> factor to convert from pbspeed to rate
> end if
> if not finger then
> exit scratching -- exit
>from
> loop
> end if
> end scratching loop
> -- if in the loop the finger is lifted, we resume here
> direction <= direction_s
> rate <= rate_s
> play
> end process scratching
>
> Hope that helps to explain what I'm after. Aaron, I'd also like to
> hear your
> comments if you'd like.
>