Instantly share code, notes, and snippets.
Created
May 24, 2023 09:39
-
Star
0
(0)
You must be signed in to star a gist -
Fork
0
(0)
You must be signed in to fork a gist
-
Save costa/5103b611d27e16abeb72fee9fda1e28d to your computer and use it in GitHub Desktop.
A FFmpRb script for the DEMO of the solo screen-based-presentation format
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|o| | |
# NOTE Run me like this: | <ffmprb> <OUT-PATH> | |
# NOTE A bit of a boilerplate for more independence: | |
video_output_options = {resolution: Ffmprb::HD_4K, fps: 30, encoder: 'libx264'} | |
Ffmprb::Process.input_video_auto_rotate = true # NOTE surprisingly, for the sake of oiPad media...' | |
class FfmprbUnzipper | |
def initialize | |
@tmp_files = [] | |
@tmp_threads = [] | |
at_exit do | |
@tmp_threads.each &:join rescue warn "WARN #{$!}" | |
@tmp_files.each &:unlink | |
end | |
end | |
def concat_to_fifo(zip_path, video: :landscape) | |
video_opt = video && | |
{resolution: Ffmprb::HD_4K, fps: 60, encoder: 'huffyuv'}.tap do |opt| | |
w, h = opt[:resolution].split('x') | |
opt[:resolution] = "#{h}x#{w}" if | |
video == :portrait | |
end | |
Ffmprb::File.temp_fifo("-#{File.basename zip_path}.#{video ? 'avi' : 'wav'}").tap do |concat_tmp| | |
@tmp_files << concat_tmp | |
@tmp_threads << ( | |
Ffmprb::Util::Thread.new do | |
Dir.mktmpdir do |tmp_dir| | |
Ffmprb.process do | |
output concat_tmp, video: video_opt do | |
Dir.chdir tmp_dir do | |
`unzip '#{zip_path}'`.lines.sort.map { |l| $1 if l =~ /extracting:\s*\b(.*\.m\w*)\b/i }.compact | |
end.map{ |c| File.expand_path c, tmp_dir }.each do |path| | |
roll input path, video: video | |
end | |
end | |
end | |
end | |
end | |
) | |
end | |
end | |
end | |
fuzr = FfmprbUnzipper.new | |
# NOTE the boilerplate ends here, change at will below: | |
inp_logo = | |
input('/media/2023/05/05/media_ 2023_05_05 log_ 2023_04_30_stackshare-2y-old-listing-review.pub.logo+title - Page 1.png', loop: true) | |
inp_title = | |
input('/media/2023/05/05/media_ 2023_05_05 log_ 2023_04_30_stackshare-2y-old-listing-review.pub.logo+title - Page 2.png', loop: true) | |
inp_mus = | |
input('/media/tillvonsein.bandcamp.com/Till Von Sein - Shit Show 3 Podcast #10.mp3') | |
.volume(0.15) | |
inv = [ | |
input('/media/2023/04/30/Screen Recording 2023-04-30 at 15.29.24.mov', audio: false), | |
input('/media/2023/04/30/IMG_0755.MOV', audio: false), | |
input(fuzr.concat_to_fifo('/media/2023/04/30/GX010303.zip'), audio: false), | |
input('/media/2023/04/30/Movie Recording 2023-04-30 at 15.29.24.mov', audio: false) | |
] | |
int = [ 5.60, 8.70, 9.05, 3.19] | |
ina = [ | |
# input('/media/2023/04/30/Screen Recording 2023-04-30 at 15.29.24.mov', video: false), | |
nil, | |
# input('/media/2023/04/30/IMG_0755.MOV', video: false), | |
nil, | |
input(fuzr.concat_to_fifo('/media/2023/04/30/GX010303.zip', video: false)), | |
# input('/media/2023/04/30/Movie Recording 2023-04-30 at 15.29.24.mov', video: false) | |
] | |
output o, video: video_output_options do # 45:39 =2470 | |
a_cuts = [] | |
# NOTE i == nil means out of the sequence insert | |
def a_cuts.inp_cut_int(inv, int, i, from, to) # NOTE! receives times of first [0] input | |
if last && from == last[1] | |
last[1] += to - from | |
else | |
self << [from, to, (@last_time ||= 0)] | |
end if | |
i | |
@last_time += to - from | |
inv[i].cut from: int[i] + from - int[0], to: int[i] + to - int[0] if | |
i | |
end | |
# Intro... (costashapiro) | |
lay a_cuts.inp_cut_int inv, int, 1, 98.50, 105.00 | |
lay a_cuts.inp_cut_int inv, int, 2, 105.00, 106.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 106.25, 107.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 107.95, 113.00 | |
lay a_cuts.inp_cut_int inv, int, 0, 113.00, 142.65 | |
lay a_cuts.inp_cut_int inv, int, 2, 142.65, 143.75 | |
lay a_cuts.inp_cut_int inv, int, 1, 143.75, 146.60 | |
lay a_cuts.inp_cut_int inv, int, 2, 146.60, 147.35 | |
lay a_cuts.inp_cut_int inv, int, 0, 147.35, 154.00 | |
lay a_cuts.inp_cut_int inv, int, 2, 154.00, 155.55 | |
lay a_cuts.inp_cut_int inv, int, 1, 155.55, 159.90 | |
lay a_cuts.inp_cut_int inv, int, 0, 159.90, 166.00 | |
# Present... (review of review) | |
lay a_cuts.inp_cut_int inv, int, 0, 200.00, 203.50 | |
lay a_cuts.inp_cut_int inv, int, 1, 203.50, 207.75 | |
lay a_cuts.inp_cut_int inv, int, 0, 207.75, 215.50 | |
lay a_cuts.inp_cut_int inv, int, 1, 215.50, 220.90 | |
lay a_cuts.inp_cut_int inv, int, 0, 220.90, 246.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 246.65, 250.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 250.25, 254.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 254.00, 257.00 | |
# Rome... ( "local" (limited-community-specific) web dev tool set ) | |
lay a_cuts.inp_cut_int inv, int, 0, 257.00, 271.50 | |
lay a_cuts.inp_cut_int inv, int, 3, 271.50, 273.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 273.50, 286.00 | |
# | |
lay a_cuts.inp_cut_int inv, int, 3, 342.00, 345.00 | |
lay a_cuts.inp_cut_int inv, int, 2, 345.00, 346.30 | |
lay a_cuts.inp_cut_int inv, int, 0, 346.30, 358.20 | |
lay a_cuts.inp_cut_int inv, int, 3, 358.20, 359.85 | |
lay a_cuts.inp_cut_int inv, int, 0, 359.85, 363.50 | |
lay a_cuts.inp_cut_int inv, int, 2, 363.50, 365.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 365.50, 371.55 | |
lay a_cuts.inp_cut_int inv, int, 1, 371.55, 373.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 373.25, 388.90 | |
lay a_cuts.inp_cut_int inv, int, 1, 388.90, 392.65 | |
lay a_cuts.inp_cut_int inv, int, 0, 392.65, 408.50 | |
lay a_cuts.inp_cut_int inv, int, 3, 408.50, 410.20 | |
lay a_cuts.inp_cut_int inv, int, 1, 410.20, 413.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 413.50, 429.85 | |
lay a_cuts.inp_cut_int inv, int, 2, 429.85, 430.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 430.95, 433.85 | |
lay a_cuts.inp_cut_int inv, int, 0, 433.85, 442.90 | |
lay a_cuts.inp_cut_int inv, int, 1, 442.90, 445.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 445.20, 459.15 | |
lay a_cuts.inp_cut_int inv, int, 3, 459.15, 461.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 461.40, 464.70 | |
lay a_cuts.inp_cut_int inv, int, 2, 464.70, 469.90 | |
lay a_cuts.inp_cut_int inv, int, 0, 469.90, 472.45 | |
lay a_cuts.inp_cut_int inv, int, 2, 472.45, 474.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 474.05, 483.80 | |
lay a_cuts.inp_cut_int inv, int, 2, 483.80, 485.60 | |
lay a_cuts.inp_cut_int inv, int, 3, 485.60, 487.10 | |
lay a_cuts.inp_cut_int inv, int, 2, 487.10, 489.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 489.25, 527.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 527.00, 533.80 | |
# Smithy... - "local" (limited-community-specific) dev/ops tool set | |
lay a_cuts.inp_cut_int inv, int, 0, 533.80, 541.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 541.65, 549.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 549.40, 561.05 | |
lay a_cuts.inp_cut_int inv, int, 3, 561.05, 564.80 | |
lay a_cuts.inp_cut_int inv, int, 1, 564.80, 567.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 567.50, 573.85 | |
lay a_cuts.inp_cut_int inv, int, 1, 573.85, 579.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 579.25, 599.00 | |
lay a_cuts.inp_cut_int inv, int, 2, 599.00, 601.00 | |
lay a_cuts.inp_cut_int inv, int, 0, 601.00, 617.10 | |
lay a_cuts.inp_cut_int inv, int, 1, 617.10, 622.80 | |
lay a_cuts.inp_cut_int inv, int, 0, 622.80, 643.10 | |
lay a_cuts.inp_cut_int inv, int, 1, 643.10, 645.85 | |
lay a_cuts.inp_cut_int inv, int, 0, 645.85, 656.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 656.00, 663.00 | |
# crossbar.io... another (even more useful) "decenetralised" application messaging protocol - i bet it was fun to develop... and that's it. | |
lay a_cuts.inp_cut_int inv, int, 0, 663.00, 673.90 | |
lay a_cuts.inp_cut_int inv, int, 2, 673.90, 676.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 676.95, 684.85 | |
lay a_cuts.inp_cut_int inv, int, 0, 684.85, 696.05 | |
lay a_cuts.inp_cut_int inv, int, 1, 696.05, 698.35 | |
lay a_cuts.inp_cut_int inv, int, 0, 698.35, 716.45 | |
lay a_cuts.inp_cut_int inv, int, 1, 716.45, 725.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 725.25, 726.95 | |
lay a_cuts.inp_cut_int inv, int, 0, 726.95, 760.80 | |
lay a_cuts.inp_cut_int inv, int, 2, 760.80, 763.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 763.25, 765.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 765.30, 771.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 771.25, 773.75 | |
lay a_cuts.inp_cut_int inv, int, 2, 773.75, 775.95 | |
lay a_cuts.inp_cut_int inv, int, 0, 775.95, 820.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 820.30, 823.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 823.20, 832.75 | |
lay a_cuts.inp_cut_int inv, int, 3, 832.75, 835.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 835.05, 844.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 844.00, 849.00 | |
# Jina... an attempt to automate and sell "ML" services (just AN attempt) | |
lay a_cuts.inp_cut_int inv, int, 0, 849.00, 877.60 | |
lay a_cuts.inp_cut_int inv, int, 1, 877.60, 880.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 880.05, 896.60 | |
lay a_cuts.inp_cut_int inv, int, 2, 896.60, 900.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 900.25, 912.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 912.95, 914.95 | |
lay a_cuts.inp_cut_int inv, int, 0, 914.95, 919.80 | |
lay a_cuts.inp_cut_int inv, int, 2, 919.80, 924.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 924.05, 930.60 | |
lay a_cuts.inp_cut_int inv, int, 2, 930.60, 931.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 931.45, 954.90 | |
lay a_cuts.inp_cut_int inv, int, 1, 954.90, 957.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 957.40, 967.00 | |
lay a_cuts.inp_cut_int inv, int, 2, 967.00, 972.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 972.65, 980.35 | |
lay a_cuts.inp_cut_int inv, int, 0, 980.35, 983.55 | |
lay a_cuts.inp_cut_int inv, int, 2, 983.55, 984.70 | |
lay a_cuts.inp_cut_int inv, int, 1, 984.70, 990.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 990.25, 1020.40 | |
lay a_cuts.inp_cut_int inv, int, 1, 1020.40, 1024.15 | |
lay a_cuts.inp_cut_int inv, int, 0, 1024.15, 1062.80 | |
lay a_cuts.inp_cut_int inv, int, 1, 1062.80, 1067.80 | |
lay a_cuts.inp_cut_int inv, int, 0, 1067.80, 1077.85 | |
lay a_cuts.inp_cut_int inv, int, 2, 1077.85, 1082.30 | |
lay a_cuts.inp_cut_int inv, int, 3, 1082.30, 1083.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 1083.05, 1102.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 1102.95, 1107.10 | |
lay a_cuts.inp_cut_int inv, int, 0, 1107.10, 1120.75 | |
lay a_cuts.inp_cut_int inv, int, 1, 1120.75, 1123.05 | |
# RonDB... (yet another fastest, greatest and cutest DB still) | |
lay a_cuts.inp_cut_int inv, int, 0, 1123.05, 1140.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 1140.25, 1142.15 | |
lay a_cuts.inp_cut_int inv, int, 0, 1142.15, 1165.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 1165.25, 1165.80 | |
lay a_cuts.inp_cut_int inv, int, 2, 1165.80, 1167.60 | |
lay a_cuts.inp_cut_int inv, int, 1, 1167.60, 1171.60 | |
lay a_cuts.inp_cut_int inv, int, 0, 1171.60, 1225.25 | |
lay a_cuts.inp_cut_int inv, int, 2, 1225.25, 1229.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 1229.50, 1249.10 | |
lay a_cuts.inp_cut_int inv, int, 1, 1249.10, 1252.05 | |
lay a_cuts.inp_cut_int inv, int, 2, 1252.05, 1254.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 1254.40, 1260.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 1260.65, 1264.00 | |
# Data Profiler 21:04 22:40 - a proprietary set of data analysis tools | |
lay a_cuts.inp_cut_int inv, int, 0, 1264.00, 1279.60 | |
lay a_cuts.inp_cut_int inv, int, 1, 1279.60, 1284.85 | |
lay a_cuts.inp_cut_int inv, int, 0, 1284.85, 1314.75 | |
lay a_cuts.inp_cut_int inv, int, 1, 1314.75, 1317.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 1317.05, 1327.70 | |
lay a_cuts.inp_cut_int inv, int, 2, 1327.70, 1328.70 | |
lay a_cuts.inp_cut_int inv, int, 1, 1328.70, 1330.05 | |
lay a_cuts.inp_cut_int inv, int, 2, 1330.05, 1331.55 | |
lay a_cuts.inp_cut_int inv, int, 3, 1331.55, 1334.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 1334.25, 1336.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 1336.25, 1337.10 | |
lay a_cuts.inp_cut_int inv, int, 0, 1337.10, 1342.30 | |
lay a_cuts.inp_cut_int inv, int, 2, 1342.30, 1345.95 | |
lay a_cuts.inp_cut_int inv, int, 0, 1345.95, 1355.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 1355.00, 1360.00 | |
# Nacos... chinese something something network communication communism | |
lay a_cuts.inp_cut_int inv, int, 0, 1360.00, 1380.90 | |
lay a_cuts.inp_cut_int inv, int, 3, 1380.90, 1386.90 | |
lay a_cuts.inp_cut_int inv, int, 0, 1386.90, 1405.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 1405.95, 1411.35 | |
lay a_cuts.inp_cut_int inv, int, 0, 1411.35, 1423.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 1423.95, 1429.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 1429.40, 1437.50 | |
lay a_cuts.inp_cut_int inv, int, 1, 1437.50, 1440.10 | |
lay a_cuts.inp_cut_int inv, int, 3, 1440.10, 1442.70 | |
lay a_cuts.inp_cut_int inv, int, 0, 1442.70, 1454.20 | |
lay a_cuts.inp_cut_int inv, int, 1, 1454.20, 1456.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 1456.20, 1478.20 | |
# | |
lay a_cuts.inp_cut_int inv, int, 1, 1489.20, 1491.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 1491.20, 1500.10 | |
lay a_cuts.inp_cut_int inv, int, 2, 1500.10, 1502.15 | |
lay a_cuts.inp_cut_int inv, int, 1, 1502.15, 1508.25 | |
# git-split-diffs 25:09 26:15 - useless with any (I)DE | |
lay a_cuts.inp_cut_int inv, int, 0, 1508.25, 1522.70 | |
lay a_cuts.inp_cut_int inv, int, 3, 1522.70, 1523.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 1523.20, 1531.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 1531.65, 1536.75 | |
lay a_cuts.inp_cut_int inv, int, 0, 1536.75, 1560.40 | |
lay a_cuts.inp_cut_int inv, int, 2, 1560.40, 1561.80 | |
lay a_cuts.inp_cut_int inv, int, 1, 1561.80, 1564.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 1564.20, 1567.60 | |
lay a_cuts.inp_cut_int inv, int, 2, 1567.60, 1571.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 1571.25, 1576.90 | |
# github-elements... github whatever | |
lay a_cuts.inp_cut_int inv, int, 0, 1576.90, 1586.45 | |
lay a_cuts.inp_cut_int inv, int, 1, 1586.45, 1591.60 | |
lay a_cuts.inp_cut_int inv, int, 0, 1591.60, 1610.90 | |
lay a_cuts.inp_cut_int inv, int, 1, 1610.90, 1623.00 | |
# Opyrator... generator generator, no one needs you | |
lay a_cuts.inp_cut_int inv, int, 0, 1623.00, 1647.40 | |
lay a_cuts.inp_cut_int inv, int, 1, 1647.40, 1650.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 1650.40, 1653.00 | |
lay a_cuts.inp_cut_int inv, int, 3, 1653.00, 1654.70 | |
lay a_cuts.inp_cut_int inv, int, 2, 1654.70, 1657.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 1657.05, 1679.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 1679.30, 1686.00 | |
lay a_cuts.inp_cut_int inv, int, 0, 1686.00, 1689.45 | |
lay a_cuts.inp_cut_int inv, int, 1, 1689.45, 1694.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 1694.45, 1719.00 | |
lay a_cuts.inp_cut_int inv, int, 3, 1719.00, 1720.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 1720.25, 1728.10 | |
# Catalyst Components... failed web components | |
lay a_cuts.inp_cut_int inv, int, 0, 1728.10, 1736.05 | |
lay a_cuts.inp_cut_int inv, int, 1, 1736.05, 1742.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 1742.05, 1748.70 | |
lay a_cuts.inp_cut_int inv, int, 3, 1748.70, 1750.95 | |
lay a_cuts.inp_cut_int inv, int, 0, 1750.95, 1775.75 | |
lay a_cuts.inp_cut_int inv, int, 1, 1775.75, 1783.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 1783.45, 1793.20 | |
lay a_cuts.inp_cut_int inv, int, 1, 1793.20, 1797.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 1797.50, 1817.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 1817.25, 1825.80 | |
# Cinder... fork of fork of fork of python - pypypypypython | |
lay a_cuts.inp_cut_int inv, int, 0, 1825.80, 1833.60 | |
lay a_cuts.inp_cut_int inv, int, 3, 1833.60, 1836.75 | |
lay a_cuts.inp_cut_int inv, int, 2, 1836.75, 1840.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 1840.30, 1852.30 | |
lay a_cuts.inp_cut_int inv, int, 0, 1852.30, 1859.70 | |
lay a_cuts.inp_cut_int inv, int, 3, 1859.70, 1861.90 | |
lay a_cuts.inp_cut_int inv, int, 2, 1861.90, 1864.70 | |
lay a_cuts.inp_cut_int inv, int, 0, 1864.70, 1869.90 | |
lay a_cuts.inp_cut_int inv, int, 1, 1869.90, 1880.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 1880.45, 1890.95 | |
lay a_cuts.inp_cut_int inv, int, 1, 1890.95, 1894.25 | |
lay a_cuts.inp_cut_int inv, int, 2, 1894.25, 1895.10 | |
lay a_cuts.inp_cut_int inv, int, 0, 1895.10, 1912.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 1912.00, 1916.00 | |
# observIQ... something something OpenTelemetry all cleear | |
lay a_cuts.inp_cut_int inv, int, 0, 1916.00, 1920.00 | |
lay inv[3] | |
.crop(0.25) | |
.cut(from: int[3] + 1920.00 - int[0], to: int[3] + 1950.00 - int[0]) | |
.pace(5) | |
.video_effect( | |
'colorchannelmixer' => '.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3' # https://ffmpeg.org/ffmpeg-filters.html#toc-Examples-55 | |
) | |
a_cuts.inp_cut_int nil, nil, nil, 1920.00, 1926.00 # NOTE 1926 = 1920 + (1950 - 1920)/5 | |
lay a_cuts.inp_cut_int inv, int, 0, 1950.00, 1956.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 1956.65, 1960.05 | |
lay a_cuts.inp_cut_int inv, int, 3, 1960.05, 1960.80 | |
lay a_cuts.inp_cut_int inv, int, 1, 1960.80, 1962.70 | |
lay a_cuts.inp_cut_int inv, int, 0, 1962.70, 1972.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 1972.25, 1977.35 | |
lay a_cuts.inp_cut_int inv, int, 0, 1977.35, 2003.90 | |
lay a_cuts.inp_cut_int inv, int, 3, 2003.90, 2005.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 2005.25, 2021.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 2021.00, 2028.75 | |
lay a_cuts.inp_cut_int inv, int, 0, 2028.75, 2037.95 | |
lay a_cuts.inp_cut_int inv, int, 2, 2037.95, 2042.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 2042.30, 2045.25 | |
lay a_cuts.inp_cut_int inv, int, 3, 2045.25, 2046.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 2046.00, 2063.70 | |
lay a_cuts.inp_cut_int inv, int, 2, 2063.70, 2064.75 | |
lay a_cuts.inp_cut_int inv, int, 0, 2064.75, 2104.20 | |
lay a_cuts.inp_cut_int inv, int, 1, 2104.20, 2110.55 | |
lay a_cuts.inp_cut_int inv, int, 0, 2110.55, 2114.35 | |
lay a_cuts.inp_cut_int inv, int, 2, 2114.35, 2116.05 | |
lay a_cuts.inp_cut_int inv, int, 1, 2116.05, 2118.15 | |
lay a_cuts.inp_cut_int inv, int, 0, 2118.15, 2125.20 | |
lay a_cuts.inp_cut_int inv, int, 2, 2125.20, 2128.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 2128.30, 2134.20 | |
lay a_cuts.inp_cut_int inv, int, 0, 2134.20, 2144.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 2144.25, 2149.75 | |
lay a_cuts.inp_cut_int inv, int, 0, 2149.75, 2159.45 | |
lay a_cuts.inp_cut_int inv, int, 2, 2159.45, 2161.90 | |
lay a_cuts.inp_cut_int inv, int, 0, 2161.90, 2197.55 | |
lay a_cuts.inp_cut_int inv, int, 0, 2161.90, 2170.00 | |
lay a_cuts.inp_cut_int inv, int, 1, 2170.00, 2175.00 | |
# Graphite Note... another attempt at automating an ML shop services | |
lay a_cuts.inp_cut_int inv, int, 0, 2175.00, 2197.55 | |
lay a_cuts.inp_cut_int inv, int, 2, 2197.55, 2200.00 | |
lay a_cuts.inp_cut_int inv, int, 0, 2200.00, 2213.60 | |
lay a_cuts.inp_cut_int inv, int, 1, 2213.60, 2217.35 | |
lay a_cuts.inp_cut_int inv, int, 3, 2217.35, 2219.05 | |
lay a_cuts.inp_cut_int inv, int, 1, 2219.05, 2221.35 | |
lay a_cuts.inp_cut_int inv, int, 0, 2221.35, 2244.20 | |
lay a_cuts.inp_cut_int inv, int, 2, 2244.20, 2248.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 2248.45, 2307.50 | |
lay a_cuts.inp_cut_int inv, int, 1, 2307.50, 2309.05 | |
lay a_cuts.inp_cut_int inv, int, 0, 2309.05, 2313.05 | |
lay a_cuts.inp_cut_int inv, int, 2, 2313.05, 2314.85 | |
lay a_cuts.inp_cut_int inv, int, 3, 2314.85, 2316.00 | |
lay a_cuts.inp_cut_int inv, int, 0, 2316.00, 2338.15 | |
lay a_cuts.inp_cut_int inv, int, 1, 2338.15, 2343.10 | |
lay a_cuts.inp_cut_int inv, int, 3, 2343.10, 2344.25 | |
lay a_cuts.inp_cut_int inv, int, 1, 2344.25, 2348.60 | |
lay a_cuts.inp_cut_int inv, int, 2, 2348.60, 2349.60 | |
lay a_cuts.inp_cut_int inv, int, 0, 2349.60, 2359.15 | |
lay a_cuts.inp_cut_int inv, int, 3, 2359.15, 2361.30 | |
lay a_cuts.inp_cut_int inv, int, 0, 2361.30, 2366.35 | |
lay a_cuts.inp_cut_int inv, int, 1, 2366.35, 2374.90 | |
lay a_cuts.inp_cut_int inv, int, 0, 2374.90, 2382.45 | |
lay a_cuts.inp_cut_int inv, int, 1, 2382.45, 2386.25 | |
lay a_cuts.inp_cut_int inv, int, 0, 2386.25, 2428.95 | |
lay a_cuts.inp_cut_int inv, int, 2, 2428.95, 2429.75 | |
lay a_cuts.inp_cut_int inv, int, 1, 2429.75, 2435.00 | |
# QA Wolf... selenium rival, wow | |
lay a_cuts.inp_cut_int inv, int, 1, 2435.00, 2450.40 | |
lay a_cuts.inp_cut_int inv, int, 0, 2450.40, 2464.50 | |
lay a_cuts.inp_cut_int inv, int, 3, 2464.50, 2467.35 | |
lay a_cuts.inp_cut_int inv, int, 1, 2467.35, 2470.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 2470.45, 2479.65 | |
lay a_cuts.inp_cut_int inv, int, 1, 2479.65, 2484.20 | |
lay a_cuts.inp_cut_int inv, int, 2, 2484.20, 2488.70 | |
lay a_cuts.inp_cut_int inv, int, 0, 2488.70, 2499.50 | |
lay a_cuts.inp_cut_int inv, int, 1, 2499.50, 2502.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 2502.45, 2519.30 | |
lay a_cuts.inp_cut_int inv, int, 1, 2519.30, 2520.60 | |
lay a_cuts.inp_cut_int inv, int, 2, 2520.60, 2523.15 | |
lay a_cuts.inp_cut_int inv, int, 0, 2523.15, 2551.75 | |
lay a_cuts.inp_cut_int inv, int, 2, 2551.75, 2554.65 | |
lay a_cuts.inp_cut_int inv, int, 3, 2554.65, 2555.80 | |
lay a_cuts.inp_cut_int inv, int, 0, 2555.80, 2564.80 | |
lay a_cuts.inp_cut_int inv, int, 1, 2564.80, 2566.80 | |
lay a_cuts.inp_cut_int inv, int, 0, 2566.80, 2579.65 | |
lay a_cuts.inp_cut_int inv, int, 2, 2579.65, 2581.50 | |
lay a_cuts.inp_cut_int inv, int, 0, 2581.50, 2604.00 | |
# hiring... | |
lay a_cuts.inp_cut_int inv, int, 0, 2604.00, 2616.60 | |
lay a_cuts.inp_cut_int inv, int, 3, 2616.60, 2618.45 | |
lay a_cuts.inp_cut_int inv, int, 0, 2618.45, 2627.65 | |
lay a_cuts.inp_cut_int inv, int, 2, 2627.65, 2628.70 | |
lay a_cuts.inp_cut_int inv, int, 0, 2628.70, 2642.80 | |
lay a_cuts.inp_cut_int inv, int, 1, 2642.80, 2648.00 | |
# | |
lay a_cuts.inp_cut_int inv, int, 1, 2695.00, 2697.75 | |
lay a_cuts.inp_cut_int inv, int, 0, 2697.75, 2705.90 | |
lay a_cuts.inp_cut_int inv, int, 3, 2705.90, 2707.55 | |
lay a_cuts.inp_cut_int inv, int, 1, 2707.55, 2709.30 | |
lay a_cuts.inp_cut_int inv, int, 0, 2709.30, 2713.90 | |
lay a_cuts.inp_cut_int inv, int, 3, 2713.90, 2715.95 | |
lay a_cuts.inp_cut_int inv, int, 0, 2715.95, 2724.50 | |
lay a_cuts.inp_cut_int inv, int, 1, 2724.50, 2745.35 | |
a_cuts.each do |from, to, at| | |
ina.each_with_index do |ia, i| | |
overlay ia.cut(from: int[i] + from - int[0], to: int[i] + to - int[0]), at: at if | |
ia | |
end if # NOTE special from=nil entries | |
from | |
end | |
overlay inp_title.cut(to: 6), at: 6 | |
overlay inp_logo.cut(to: 2370), at: 50 | |
overlay inp_mus.cut(to: 2370), at: 50 | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment