Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   http://anggtwu.net/SUBTITLES/2024-piano-roll-macros.lua.html
--   http://anggtwu.net/SUBTITLES/2024-piano-roll-macros.lua
--          (find-angg "SUBTITLES/2024-piano-roll-macros.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun l () (interactive) (find-angg "SUBTITLES/2024-piano-roll-macros.lua"))
-- (defun l () (interactive) (find-SUBS "2024-piano-roll-macros.lua"))
-- (defun b () (interactive) (find-TH   "2024-piano-roll-macros"))
-- (defun p () (interactive) (find-TH   "{ee-subs-pagestem}"))
-- (defun R () (interactive) (ee-recompile-SUBTITLES-0))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-3))
-- (defun r () (interactive) (ee-recompile-SUBTITLES-1))
--  (define-key eev-mode-map (kbd "M-r") 'r)
--
-- Skel: (find-subs-links "2024pianoroll")
-- Old:  (find-editeevsubtitles-links-1 "2024pianoroll")
--       (find-efunction 'find-editeevsubtitles-links-1)
-- Yttr: (find-yttranscript-links       "2024pianoroll" "8vhynSPXJos")
-- Info: (find-1stclassvideo-links      "2024pianoroll")
-- Play: (find-2024pianorollvideo "0:00")
--
-- I use the code below to generate the subtitles in .vtt.
--

ee_dofile "~/LUA/Subtitles.lua" -- (find-angg "LUA/Subtitles.lua")

--[[
-- (find-angg "LUA/Subtitles.lua")

** Run the .lua and tell it to
** write the .vtt - by default in /tmp/
*
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "2024-piano-roll-macros.lua"
sts = Subtitles.fromsexps(subs_bigstr):addtime("17:05")
-- sts.lang = "pt-BR"
= sts
outfname = "$S/http/anggtwu.net/eev-videos/2024-piano-roll-macros.vtt"
outfname =                           "/tmp/2024-piano-roll-macros.vtt"
out = sts:vtt().."\n\n"
ee_writefile(outfname, out)
-- (find-fline                       "/tmp/2024-piano-roll-macros.vtt")

** Test the .vtt
** (find-2024pianorollvideo "0:00")

** Select /tmp/ or ee-eevvideosdir
** (find-eevvideosfile "")
** (find-eevvideosfile ""   "2024-piano-roll-macros.mp4")
** (find-eevvideossh0 "cp -v 2024-piano-roll-macros.mp4 /tmp/")
** (code-video "2024pianorollvideo"                           "/tmp/2024-piano-roll-macros.mp4")
** (code-video "2024pianorollvideo" "$S/http/anggtwu.net/eev-videos/2024-piano-roll-macros.mp4")
** (find-2024pianorollvideo "0:00")

** Upload the 2024-piano-roll-macros.vtt
** to http://anggtwu.net/eev-videos/
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
scp    2024-piano-roll-macros.vtt $LINP/eev-videos/
scp    2024-piano-roll-macros.vtt $LINS/eev-videos/
Scp-np 2024-piano-roll-macros.vtt $TWUP/eev-videos/
Scp-np 2024-piano-roll-macros.vtt $TWUS/eev-videos/

** Upload the subtitles to youtube
** http://www.youtube.com/watch?v=8vhynSPXJos

** Check that the "psne subtitles" thing works
** (find-1stclassvideo-links "2024pianoroll")

--]]

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "2024-piano-roll-macros.lua"
for li in subs_bigstr:gmatch("([^\n]+)") do
  local time,text = li:match('^.-"(.-)".-"(.*)"%)$')
  text = text:gsub("\\(.)", "%1")
  if time then print("  "..time.."  "..text) end
end

--]]


subs_bigstr = [==[
Introduction
% (find-2024pianorollvideo "0:00" "Hi! My name is Eduardo Ochs.")
% (find-2024pianorollvideo "0:02" "I'm the author of an Emacs package")
% (find-2024pianorollvideo "0:04" "called eev - its home page is here...")

% (find-2024pianorollvideo "0:07" "and this video is about this thing here, `eeks',")
% (find-2024pianorollvideo "0:10" "that plays a series of `k'eys \"`s'paced in time\",")
% (find-2024pianorollvideo "0:18" "like a pianola... like here.")

% (find-2024pianorollvideo "0:21" "If I execute this thing here with `M-e'")
% (find-2024pianorollvideo "0:23" "it waits a bit, then it simulates that the user is")
% (find-2024pianorollvideo "0:27" "typing RET, then RET again, then \"Hello\".")

% (find-2024pianorollvideo "0:31" "Let me demonstrate it.")
% (find-2024pianorollvideo "0:37" "That's it. Let me undo this thing.")

% (find-2024pianorollvideo "0:41" "This thing, `eeks', is not very interesting in itself,")
% (find-2024pianorollvideo "0:45" "but the implementation is very interesting,")
% (find-2024pianorollvideo "0:48" "and the video is going to be about it.")

% (find-2024pianorollvideo "0:51" "Now let me make a longer introduction.")
% (find-2024pianorollvideo "0:55" "Eev is a very obscure Emacs package")
% (find-2024pianorollvideo "0:58" "that treats Emacs in a very weird way...")
% (find-2024pianorollvideo "1:00" "I mean, it treats Emacs not as an editor,")
% (find-2024pianorollvideo "1:04" "but as something that started as a Lisp environment,")
% (find-2024pianorollvideo "1:08" "and then became an editor.")

% (find-2024pianorollvideo "1:10" "So, the best way to start learning Emacs is by")
% (find-2024pianorollvideo "1:14" "starting by learning the basics of Lisp.")

% (find-2024pianorollvideo "1:18" "The tutorial of Eev starts by this...")
% (find-2024pianorollvideo "1:21" "It starts by explaining how these Elisp expressions")
% (find-2024pianorollvideo "1:25" "work... and then it shows how to use Elisp")
% (find-2024pianorollvideo "1:28" "expressions as hyperlinks...")

% (find-2024pianorollvideo "1:31" "and then it explains that some things like this one")
% (find-2024pianorollvideo "1:34" "work like hyperlinks, but not really hyperlinks")
% (find-2024pianorollvideo "1:39" "that go to somewhere else... they work like")
% (find-2024pianorollvideo "1:41" "browser buttons that perform an action.")

% (find-2024pianorollvideo "1:44" "For example, if I execute this thing here, `eek',")
% (find-2024pianorollvideo "1:47" "it acts as if the user had pressed a series of keys -")
% (find-2024pianorollvideo "1:52" "like this...")
% (find-2024pianorollvideo "1:55" "I can run it several times...")
% (find-2024pianorollvideo "1:58" "and I can undo its output...")
% (find-2024pianorollvideo "2:03" "anyway, let me go back...")

% (find-2024pianorollvideo "2:05" "So, this, `eek', is one of the first things that")
% (find-2024pianorollvideo "2:09" "appears in the tutorial...")
% (find-2024pianorollvideo "2:11" "and this, `eek2', is a variant that does exactly")
% (find-2024pianorollvideo "2:13" "the same thing, but is implemented in a different way...")
% (find-2024pianorollvideo "2:18" "and this thing here, `eeks', is based on this new implementation.")

1. How `eek' and `eek2' work
% (find-2024pianorollvideo "2:22" "I said that these two expressions here do the same thing...")
% (find-2024pianorollvideo "2:30" "but they do it in different ways.")

% (find-2024pianorollvideo "2:35" "The first thing that this function here, `eek2', does,")
% (find-2024pianorollvideo "2:39" "is that it receives an argument,")
% (find-2024pianorollvideo "2:42" "and if that argument is a string it converts that argument")
% (find-2024pianorollvideo "2:45" "to a list of events.")

% (find-2024pianorollvideo "2:48" "The conversion is done by this function here, `ee-eek2',")
% (find-2024pianorollvideo "2:51" "and when `ee-eek2' receives this string here")
% (find-2024pianorollvideo "2:54" "it returns this series of events here -")
% (find-2024pianorollvideo "2:57" "note that each event is a pair...")
% (find-2024pianorollvideo "2:59" "The `t' is not important now, but the rest of the event is...")
% (find-2024pianorollvideo "3:05" "in this case, the rest of the event is always a number.")

% (find-2024pianorollvideo "3:10" "So, the RET becomes 13, the uppercase H becomes a 72, etc...")

% (find-2024pianorollvideo "3:19" "This function here, `eek2', can receive either a string")
% (find-2024pianorollvideo "3:24" "or a series of events in this internal format...")

% (find-2024pianorollvideo "3:31" "In most of my examples, I am going to use this representation")
% (find-2024pianorollvideo "3:35" "here, in which the events are numbers, instead of this")
% (find-2024pianorollvideo "3:38" "representation here, in which the events are written in a")
% (find-2024pianorollvideo "3:42" "way that is more readable for humans.")

% (find-2024pianorollvideo "3:44" "For example, this thing here is \"sort of clearly\" a RET,")
% (find-2024pianorollvideo "3:50" "this thing here is clearly an uppercase H, and so on....")

% (find-2024pianorollvideo "3:53" "Let's test... this thing here inserts a \"Hello\"...")
% (find-2024pianorollvideo "3:56" "and this thing here also inserts a \"Hello\".")

% (find-2024pianorollvideo "4:02" "And note that I can split this series of events into a series")
% (find-2024pianorollvideo "4:08" "of calls to `eek2'... so this `progn' here is going to do")
% (find-2024pianorollvideo "4:14" "the same thing as this big `eek2' here. Let me try... ta-da.")

2. Spacing the events with timers
% (find-2024pianorollvideo "4:21" "This is a copy of the expression in the previous slide...")
% (find-2024pianorollvideo "4:28" "and let's now change it to something that uses timers.")

% (find-2024pianorollvideo "4:36" "This first `run-at-time' here makes this small `eek2' here")
% (find-2024pianorollvideo "4:42" "be executed at some time in the future...")
% (find-2024pianorollvideo "4:45" "Then this second `run-at-time' does the same thing")
% (find-2024pianorollvideo "4:49" "for this small `eek2' here, and so on...")
% (find-2024pianorollvideo "4:53" "and, so... the first expression, the first (eek2 ...),")
% (find-2024pianorollvideo "4:57" "is run at this position in time, 0.25,")
% (find-2024pianorollvideo "4:59" "the second one is run at this position, 0.75,")
% (find-2024pianorollvideo "5:01" "the other one is run at this position, 1.25, and so on.")
% (find-2024pianorollvideo "5:04" "let's test...")
% (find-2024pianorollvideo "5:06" " ")

% (find-2024pianorollvideo "5:11" "And this last expression here, (eeks ...), does the same thing,")
% (find-2024pianorollvideo "5:17" "but it is written in a much more compact form. Let's test...")

3. How the `run-at-time's are created
% (find-2024pianorollvideo "5:26" "Now let's see how this expression, (eeks ...),")
% (find-2024pianorollvideo "5:28" "generates this (progn ...) here.")

% (find-2024pianorollvideo "5:30" "This (progn ...) here does exactly the same thing as this")
% (find-2024pianorollvideo "5:33" "(eeks ...) - it plays a series of keys spaced in time.")
% (find-2024pianorollvideo "5:37" "Let's test.")

% (find-2024pianorollvideo "5:43" "And, by the way, one of my favorite ways of explaining")
% (find-2024pianorollvideo "5:48" "eev to people is in this page here...")
% (find-2024pianorollvideo "5:52" "it is here, in the section \"Taking apart\",")
% (find-2024pianorollvideo "5:58" "and it is this sentence:")
% (find-2024pianorollvideo "6:02" "eev is more like a toy that is _slightly interesting_")
% (find-2024pianorollvideo "6:06" "if you play with it for a few seconds,")
% (find-2024pianorollvideo "6:08" "and _much more interesting_ if you open it and")
% (find-2024pianorollvideo "6:10" "take its pieces apart to see how everything works.")

% (find-2024pianorollvideo "6:14" "So... this is something that is not very useful yet,")
% (find-2024pianorollvideo "6:19" "but the implementation is very interesting,")
% (find-2024pianorollvideo "6:22" "so let's take everything apart.")
% (find-2024pianorollvideo "6:24" "I will need to shrink the font a bit.")

The source code: `ee-let*-macro-eeks'
% (find-2024pianorollvideo "6:27" "Here is the source code. I'm interested in this part here")
% (find-2024pianorollvideo "6:33" "of the source code, that explains a big macro...")
% (find-2024pianorollvideo "6:37" "Let me scroll it to center it on the screen...")

% (find-2024pianorollvideo "6:46" "These kinds of macros, my `let*-macro's, are")
% (find-2024pianorollvideo "6:51" "explained here - in this section of a tutorial...")
% (find-2024pianorollvideo "6:53" "but the explanation is very technical.")

% (find-2024pianorollvideo "6:56" "Note that it uses `cl-loop' at a few points...")
% (find-2024pianorollvideo "7:00" "Beginners with Lisp probably have never seen `cl-loop',")
% (find-2024pianorollvideo "7:06" "so if they want to learn it...")
% (find-2024pianorollvideo "7:09" "I added a section about `cl-loop' in one of my tutorials...")
% (find-2024pianorollvideo "7:12" "it is here - It has lots of examples...")

% (find-2024pianorollvideo "7:17" "Let me explain what this macro does.")
% (find-2024pianorollvideo "7:23" "It expects three arguments, here, that are usually a number,")
% (find-2024pianorollvideo "7:26" "another number, and a string, and then some \"code\".")

% (find-2024pianorollvideo "7:37" "What it does is that it It generates a big `let*', here...")
% (find-2024pianorollvideo "7:43" "and it runs the \"code\" in the context in which")
% (find-2024pianorollvideo "7:48" "not only these three variables are defined, t0, dt, and str,")
% (find-2024pianorollvideo "7:54" "but also these other things here are defined.")

% (find-2024pianorollvideo "7:58" "Let me show how this works. Let's try this thing here...")
% (find-2024pianorollvideo "8:02" "When I run this, `t0' is going to be 0.25,")
% (find-2024pianorollvideo "8:11" "`dt' is going to be 0.5,")
% (find-2024pianorollvideo "8:13" "and `str' is going to be \"RET Hello\",")
% (find-2024pianorollvideo "8:16" "and the \"code\" is just `tevents'.")

% (find-2024pianorollvideo "8:19" "And `tevents' is this thing here...")
% (find-2024pianorollvideo "8:24" "the \"code\" is going to be `tevents',")
% (find-2024pianorollvideo "8:26" "so the code is going to return the value")
% (find-2024pianorollvideo "8:28" "of the variable `tevents', that is defined here.")
% (find-2024pianorollvideo "8:31" "Let's try...")

% (find-2024pianorollvideo "8:34" "This line here shows that the value of `tevents'")
% (find-2024pianorollvideo "8:38" "is this sequence of pairs")
% (find-2024pianorollvideo "8:41" "made of a `t' and an event...")

% (find-2024pianorollvideo "8:46" "This thing here does something similar, but `ppushs'")
% (find-2024pianorollvideo "8:50" "is something that starts with a `progn'")
% (find-2024pianorollvideo "8:53" "and then it has a series of \"pushes\"... let's see...")
% (find-2024pianorollvideo "8:57" "Well, I think of these things as \"pushes\", but whatever...")

% (find-2024pianorollvideo "9:05" "And this thing here - with `prats' -")
% (find-2024pianorollvideo "9:08" "generates this thing here, that starts with a `progn'")
% (find-2024pianorollvideo "9:11" "and then it's a series of `run-at-time's.")

% (find-2024pianorollvideo "9:15" "I abbreviated run-at-time as R-A-T,")
% (find-2024pianorollvideo "9:20" "so \"rats\" is `run-at-time's.")

% (find-2024pianorollvideo "9:22" "This thing here, with (length tevents)...")
% (find-2024pianorollvideo "9:25" "is going to show the length of the variable `tevents'...")
% (find-2024pianorollvideo "9:27" "`tevents' is a list, and this shows the length of that list.")

% (find-2024pianorollvideo "9:33" "This thing here, with `find-eppp'...")
% (find-2024pianorollvideo "9:36" "is a trick for pretty-printing the value of `ppushs'...")
% (find-2024pianorollvideo "9:43" "if I run this, it creates a temporary buffer")
% (find-2024pianorollvideo "9:45" "with `ppushs' pretty-printed in a certain way.")

% (find-2024pianorollvideo "9:51" "`ppushs' is here, is a program with a series of pushes,")
% (find-2024pianorollvideo "9:55" "and this temporary buffer is read-write...")
% (find-2024pianorollvideo "9:58" "For example, I can test this thing here by typing M-e,")

% (find-2024pianorollvideo "10:05" "and it runs a RET, and then it types \"Hello\" immediately -")
% (find-2024pianorollvideo "10:13" "It doesn't wait.")

% (find-2024pianorollvideo "10:15" "And if I run this - with (find-eppp prats ...) -")
% (find-2024pianorollvideo "10:17" "it also creates a temporary buffer, but now with a")
% (find-2024pianorollvideo "10:19" "`progn' and a series of `run-at-time's.")

% (find-2024pianorollvideo "10:23" "And if I test this `progn', I get this.")
% (find-2024pianorollvideo "10:27" "The program simply creates a series of timers that,")
% (find-2024pianorollvideo "10:34" "well, Emacs stores those timers and run those timers at the")
% (find-2024pianorollvideo "10:39" "right time, so the `progn' returns immediately...")

% (find-2024pianorollvideo "10:45" "you can see the result here...")
% (find-2024pianorollvideo "10:47" "take a look here - at the echo area -")
% (find-2024pianorollvideo "10:49" "it is going to disappear very quickly...")

% (find-2024pianorollvideo "10:52" "and then Emacs executes the little `(eek2 ...)'s")
% (find-2024pianorollvideo "10:57" "that are stored in the timers.")

% (find-2024pianorollvideo "11:01" "So these (ee-let*-macro-eeks ...) give us ways")
% (find-2024pianorollvideo "11:05" "to explore all these temporary variables here,")
% (find-2024pianorollvideo "11:07" "in the `let*'...")

% (find-2024pianorollvideo "11:11" "And remember that the value of `prats'")
% (find-2024pianorollvideo "11:16" "is a list made of a `progn' and a series of `run-at-time's -")
% (find-2024pianorollvideo "11:19" "this one here...")
% (find-2024pianorollvideo "11:21" "And if instead of displaying `prats' with a pretty-printer")
% (find-2024pianorollvideo "11:26" "I eval `prats'...")
% (find-2024pianorollvideo "11:29" "I execute this `progn' here")
% (find-2024pianorollvideo "11:32" "instead of executing the program in the temporary buffer...")
% (find-2024pianorollvideo "11:35" "Let's try... one, two, three, go -")

% (find-2024pianorollvideo "11:45" "And this is a demo of something that I'm going to show later...")
% (find-2024pianorollvideo "11:49" "that is what happens when instead of giving a string to...")
% (find-2024pianorollvideo "11:54" "sorry, instead of sending a string to the variable `str',")
% (find-2024pianorollvideo "11:59" "we send a nil...")

% (find-2024pianorollvideo "12:02" "And, spoiler -")
% (find-2024pianorollvideo "12:04" "when str is nil,")
% (find-2024pianorollvideo "12:09" "then this (if (not str) ...) is executed here...")
% (find-2024pianorollvideo "12:12" "it calculates a certain distance,")
% (find-2024pianorollvideo "12:14" "and then it calculates a number of f8s,")
% (find-2024pianorollvideo "12:18" "and it generates a string made of a series of f8s.")
% (find-2024pianorollvideo "12:24" "Let's see...")

% (find-2024pianorollvideo "12:26" "`dist' is 12, `nf8s' is 11,")
% (find-2024pianorollvideo "12:32" "and `f8s' is this thing here.")

% (find-2024pianorollvideo "12:37" "Now let's go down a bit.")
% (find-2024pianorollvideo "12:39" "No, sorry, let's go up first.")
% (find-2024pianorollvideo "12:41" "This is the beginning of this file.")

% (find-2024pianorollvideo "12:43" "It first defines the \"macro\" here,")
% (find-2024pianorollvideo "12:45" "then it defines the function \"eeks\",")
% (find-2024pianorollvideo "12:49" "that plays a series of keys spaced in time,")
% (find-2024pianorollvideo "12:52" "and then it has some tests here - in \"test-eepitch\".")
% (find-2024pianorollvideo "12:55" "Let me scroll down...")

% (find-2024pianorollvideo "12:58" "Here is the definition of `eeks'...")
% (find-2024pianorollvideo "13:02" "It says that it's like `eek' and `eek2', but it")
% (find-2024pianorollvideo "13:06" "plays the events spaced in time, blablablah...")

% (find-2024pianorollvideo "13:10" "And the definition is just this thing here.")
% (find-2024pianorollvideo "13:14" "It calls the big macro above, `ee-let*-macro-eeks',")
% (find-2024pianorollvideo "13:16" "with a certain value for t0,")
% (find-2024pianorollvideo "13:18" "a certain value for dt,")
% (find-2024pianorollvideo "13:21" "and the str is _usually_ a string holding a series of keys...")

% (find-2024pianorollvideo "13:29" "then it simply runs (eval prats) here,")
% (find-2024pianorollvideo "13:33" "exactly like in this")
% (find-2024pianorollvideo "13:36" "demonstration here...")
% (find-2024pianorollvideo "13:42" "remember that the value of `prats' is here")
% (find-2024pianorollvideo "13:45" "and if we `(eval prats)' we get this...")

% (find-2024pianorollvideo "13:55" "So it has this `(eval prats)' here")
% (find-2024pianorollvideo "13:57" "and it has this `(list (length events) 'events)',")
% (find-2024pianorollvideo "14:01" "that gives a better return value.")
% (find-2024pianorollvideo "14:06" "Let's test it here...")

% (find-2024pianorollvideo "14:11" "Let me make everything start a bit later")
% (find-2024pianorollvideo "14:16" "so that we can see the return value here - in the echo area...")
% (find-2024pianorollvideo "14:21" "let's try...")

% (find-2024pianorollvideo "14:23" "It says \"(6 events)\" and then it runs the events.")
% (find-2024pianorollvideo "14:30" "So that's it.")

The distance and the `f8's
% (find-2024pianorollvideo "14:32" "I mentioned that when we don't give a string to `eeks'")
% (find-2024pianorollvideo "14:37" "it does something special. It calculates a certain distance,")
% (find-2024pianorollvideo "14:41" "distance, it calculates a certain number of f8s, and it")
% (find-2024pianorollvideo "14:45" "plays this series of f8s.")

% (find-2024pianorollvideo "14:50" "This is... anyway, no, sorry, I'm not going to explain")
% (find-2024pianorollvideo "14:54" "why this is useful to me - I'm just going to demonstrate it.")

% (find-2024pianorollvideo "14:58" "Let's create a test block here...")
% (find-2024pianorollvideo "15:02" "sorry, I need a smaller font...")
% (find-2024pianorollvideo "15:05" "sorry, let me use a very small font here...")

% (find-2024pianorollvideo "15:09" "Let me create a target buffer running a shell...")
% (find-2024pianorollvideo "15:13" "this is a comment because it starts with two red stars...")
% (find-2024pianorollvideo "15:17" "and it says \"Type f8 on the line below and wait\".")
% (find-2024pianorollvideo "15:21" "Let's do that - f8 here.")

% (find-2024pianorollvideo "15:25" "It generates a series of f8s spaced in time")
% (find-2024pianorollvideo "15:27" "and it \"presses\", between quotes,")
% (find-2024pianorollvideo "15:32" "these `f8's, and it executes this thing here.")

% (find-2024pianorollvideo "15:36" "So instead of...")
% (find-2024pianorollvideo "15:39" "Usually, I have to press all the `f8's,")
% (find-2024pianorollvideo "15:42" "but in certain occasions, I want to make the computer")
% (find-2024pianorollvideo "15:47" "\"press these `f8's itself\" like a pianola in a certain rhythm,")
% (find-2024pianorollvideo "15:51" "and this is what this `(eeks 0.5 0.5)' does.")
% (find-2024pianorollvideo "15:54" "Let's try it again...")

% (find-2024pianorollvideo "15:58" "Oops - If I execute this with f8...")
% (find-2024pianorollvideo "16:02" "Ah - sorry. Whatever.")

4. Do try this at home
% (find-2024pianorollvideo "16:09" "And that's it!")
% (find-2024pianorollvideo "16:11" "Please do try this at home!...")
% (find-2024pianorollvideo "16:13" "The instructions are in this page here.")
% (find-2024pianorollvideo "16:15" "This page is going to have all the instructions,")
% (find-2024pianorollvideo "16:18" "the subtitles of the video, etc...")

% (find-2024pianorollvideo "16:21" "And the easiest way to try the code")
% (find-2024pianorollvideo "16:23" "without downloading anything...")
% (find-2024pianorollvideo "16:25" "of course I'm supposing that you have eev...")
% (find-2024pianorollvideo "16:27" "but the easiest way is to just execute this exp,")
% (find-2024pianorollvideo "16:31" "that is in that page...")
% (find-2024pianorollvideo "16:33" "it downloads a local copy - no, sorry,")
% (find-2024pianorollvideo "16:36" "it downloads this page here, this elisp file here,")
% (find-2024pianorollvideo "16:42" "to a temporary buffer,")
% (find-2024pianorollvideo "16:44" "and then you can execute it with just `M-x eval-buffer'")
% (find-2024pianorollvideo "16:47" "and then you can try all these tests here.")
% (find-2024pianorollvideo "16:50" "And that's it! Thanks...")

% (find-2024pianorollvideo "16:56" "Actually, a) thanks for your attention")
% (find-2024pianorollvideo "16:58" "and b) thanks to Bruno Macedo, because many things")
% (find-2024pianorollvideo "17:00" "in this video were inspired by our conversations.")
% (find-2024pianorollvideo "17:04" "That's it. Bye!")

]==]

unrevised_bigstr = [==[
(find-2024pianorollvideo "00:00" " ")

]==]

-- Local Variables:
-- coding:  utf-8-unix
-- End: