Looper's Delight Archive Top (Search)
Date Index
Thread Index
Author Index
Looper's Delight Home
Mailing List Info

[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.
>