[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Date Index][Thread Index][Author Index]

re: Jeff's scratching - a pseudo VHDL code

please restate your response in the form of a question .......

yes ...... drop ten 5 - ditto hp ....... reunion tour cancelled on account of food poisoning .... stop ....... gem lexington overnight ..... stop ......... will call when paris is taken .... stop

or did I miss something ?

Actually ..... thats pretty similar to the algorythm we were talking about .... which is implemented by flyloops ..... and could be reworked to do the same (loop scratching) in Mobius it sounds like.  You seem to have forgotten that when released .... you dont want to return immediately to normal playback speed though, you need to ramp up.
that is all, ciao

I havent actually been reading this thread until this last post though ...... so lemme know if there was an actual question somewhere .... hooahh ... tonight we will shave the mountain!

From: "Rainer Thelonius Balthasar Straschill" <rs@moinlabs.de>
Sent: Sunday, August 31, 2008 11:30 AM
To: Loopers-Delight@loopers-delight.com
Subject: Jeff's scratching - a pseudo VHDL code

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
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
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
ctrl_delta = controller - ctrl_last
if ctrl_delta > 0 then -- check for playing
if direction_s = forward then
end if
if direction_s = forward then
end if
end if
pbspeed = ctrl_delta/clk_delta -- playback speed
scale factor is the controller delta since last clk'event divided by
rate = ln(pbspeed)*17,3123404906676 -- ugly scale
factor to convert from pbspeed to rate
end if
if not finger then
exit scratching -- exit from
end if
end scratching loop
-- if in the loop the finger is lifted, we resume here
direction <= direction_s
rate <= rate_s
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.