Archive for the ‘scripting’ Category

Scripting: Python or Ruby? (& iOS Apps for Text/Script Editing)

Wednesday, January 23rd, 2013

I recently came across a handy script for recording streams.  It was in the scripting language python.  So I went to obtain it.  So far no problem.

But that got me thinking: I’d read somewhere a long time ago of python, or was it ruby (on rails or otherwise), being used to support broadcast or film digital production workflows. So first I wanted to confirm that, through web-search.  Then second I wanted to compare the languages, to see which one I felt best about.

Google:[python ruby workflow video production adobe avid]

    • This is a really good article, I can see that for me, python is the obvious choice – more readable to me.  Furthermore:
      • Ruby’s greatest strength is its amazing flexibility. There is a lot of “magic” in ruby and sometimes it is dark magic. Python intentionally has minimal magic. It’s greatest strengths are the best practices it enforces across its community. These practices make Python very readable across different projects; they ensure high quality documentation; they make the standard library kick ass.
      • (For a particulat given simple example, <<The python example is far more readable and maintainable. >>
    • On the other hand (in favour of ruby):
      • If ruby reminds of perl, your eyes do not deceive you. In many ways it is the love child of perl and smalltalk.
        • In the past have had a very good experience of using smalltalk
      • every large program should have its own internal DSL suited to the problem space … it seems much easier to create DSL’s (Domain Specific Languages). Ruby certainly spawns DSLs with much greater frequency than python. No single pythonic build tool dominates the problem space like rake does in the ruby community. Most python projects seems to use for administrative tasks even though that is not its explicit purpose.
    • Lists Implementations, Development Environments, Applications etc.
    • DIY BROADCAST: How to build your own TV Channel with Open Source & other goodies
    • Loads of great links eg for screenwriting (Celtx), multicam recording (Ingex Studio), editing (EditShare LightWorks), archive (BackBlaze) and playout (OpenPlayout, MLT).  Also 3D modelling (Blender), color correction (DaVinci Resolve Lite), Live Graphics (CasparCG), Digital Asset Management (EnterMedia).  And more … but you get the drift…
    • Example scripting and, serendipitously, some recommended iOS (iPhone/iPad) apps for note-taking and html script production, namely Nebulous Notes and TextExpander (which can work together).

Gimp Plugin: MathMap

Saturday, January 19th, 2013

The MathMap plugin for Gimp provides:

  • A sophisticated scripting GUI+Language, specialised for graphics in Gimp+MathMap.
    • e.g. One can peek individual pixels, run Mandelbrot algorithms, in very concise code.
  • An assortment of processing functions written in that language
  • A Graphical Nodal filter-application editor

Example Scripts and Visual Results:

Video (Screencast) Presentations:

  • Demo of the MathMap Composer
    • Inaccessible (as of 2013-01-19) since it is a Private video (on YouTube).
    • Alternative demo.
    • And another demo.
  • Introduction to the MathMap Language
    •  Inaccessible (as of 2013-01-19) since it is a Private video (on YouTube).
  • MathMap Cocoa Introduction
    • Inaccessible (as of 2013-01-19) since it is a Private video (on YouTube).
  • New features in MathMap 1.3.4
    • This one is accessible.

Explanatory Websites (BUT see further below for special required installation procedure instructions for Gimp v2.8):

Download & Installation instructions


Mac OS: File Stocktaking: Equivalent of TREE (as in DOS)

Saturday, August 11th, 2012

How, on a Mac OS system, to do the equivalent of TREE in DOS:

  • find . -print | sed -e ‘s;[^/]*/;|____;g;s;____|; |;g’
    • And there is much more on ths in the article, including how to add this “command” to user profile.

My crude adaption of it, to list only the main directories in my [Media] area:

  • find . -type d \! -name “BPAV” \! -name “CLPR” \! -name “TAKR” \! -name “929*” -print | sed -e ‘s;[^/]*/;|____;g;s;____|; |;g’
    • Crude but delivered what I wanted.

Adobe Production Premium CS5.5 – Orientation

Saturday, January 28th, 2012


  • What should and does it consist of?
    • Including anything non-obvious e.g. “tucked away”, “additional Downloads”, “obscure” etc.
  • ???

Answers (as far as I can tell…):

  •  _Support & Communities
    • Looks at first sight like any application’s Help dialog, but on deeper inspection is also connected web-wise and answers to questions are not restricted to Adobe products.
  • After Effects
    • In contrast to Premiere, which is for conventional light-touch editing, this is for heavier effects and compositing etc.
      • …AE is a “2.5d” application. The worldspace is 3d, but any imagery you have (discounting 3rd party applications such as Invigorator and such) is “flat”.
        • (As opposed to 3D Modelling apps such as 3dsMax, Blender)
  • After Effects Render Engine
    • Render farm: Network rendering with watch folders and render engines.
    • Previously, it was possible to install render engines on as many machines as wished, but not so under CS5.5, where a separate serial number must be obtained for each machine.  For small guys like me that makes it pretty useless.   It seems likely that a more flexible option will exist in future versions.
  • Audition
    • Audio editor, derived (many years ago) from CoolEdit.
  • Bridge
    • A combination of media file manager, media manager, metadata editor, also does some kinds of media processing.
    • Can be run standalone or from within apps e.g. Premiere: [File > Browse in Bridge…]
  • Color Finesse
    • A multi-host (including Premiere & AE) plugin that goes above and beyond typical NLE color correction.
    • On my system it only appears to be available under AE.
  • Device Central
    • Simulates media appearance etc. on a range of devices such as cellphones.
  • DigiEffects FreeForm
    • Manipulate a flat object into almost any shape using displacement maps and meshes in 3D space.
    • Examples: flowing cloth, animated loose filmstrips, rippling fluids, terrain flyovers, welded metal, morphs, reveals.
  • Encore
    • DVD authoring.  Menus can be created in Photoshop (using special layering techniques).
  • Extension Manager
    • Manage extensions (broadly like plugins) associated with various Adobe programs.
  • ExtendScript Toolkit:
    • Adobe workflow command-script editor
    • An IDE (along the lines of Visual Studio) for scripts in Adobe Bridge, itself serving to automate workflows involving multiple Adobe applications.
  • Flash Professional
    • A multimedia authoring program to create content for Flash-enabled platforms/devices.
  • Flash Catalyst
    • A designers’ tool for creating the user interface for Rich Internet Applications.  Primary function of being a GUI composer for Adobe Flex components.
    • Can import Photoshop, Illustrator, Fireworks, or Flash XML Graphics (FXG) files.
  • Help
    • A help resource not only with local help-documentation but also capable of searching beyond, even beyond Adobe, to find solutions.
  • Illustrator
    • Vector graphics editor e.g. useful for typesetting and logo graphics design. It is the companion product of Photoshop.
  • KeyLight
    • An advanced chroma-keyer, tackling reflections, semi-transparent areas and hair.
  • Media Encoder
    • Encodes audio and video media content.
  • Mocha
    • <<Stand-alone tracking and roto tool to help solve problematic shots challenging the built in tools of After Effects and Final Cut by bringing advanced planar tracking and matte creation tools>>
      • Planar tracking
        • Track a plane(-ish) surface in 3D space e.g. as it translates, rotates, perspective changes.
          • Typically more robust and capable than points-tracking.
          • Great for moving subject or tracking camera.
          • Overkill when the only (relative) motion is due to camera pan/tilt.
    • e.g. select an area then it uses any detail there including texture to get a fix, and follows changes in translation, rotation, perspective etc.
  • OnLocation
    • Direct to disk recorder / logger also acting as monitor with waveform monitor and vectorscope.  And no doubt much else.
  • PhotoShop
    • Such a big noun that it became a verb…
  • Premiere Pro
    • Primary editing app, with emphasis on productive cutting and smooth playback etc., minimising the need to render, leaving heavy effects and compositing etc. to AE.
  • Story
    • A collaborative script development tool/service. There is an application for working alone on an offline version and a web-based service where you can sync up with an online version.
  • Ultra
    • Vector-keyer (simple-to-use effective chroma-keying) that was once a standalone app by Serious Magic, now available as a plugin within Premiere (but not AE).  I get the impression it is regarded (or at least branded) as simple to use but ultimately less sophisticated/capable than KeyLight (???).
    • Serious Magic used to highlight its capabilities regarding reflections, semi-transparent areas and hair…
  • Utilities
    • ExtendScript
      • An integrated development environment (IDE) for the creation and debugging of JavaScript code for Adobe Bridge, to facilitate workflow-enhancing automation of tasks between elements of Creative Suite.
    • PixelBlender
      • A simplifying basis for implementing image processing algorithms (filters or effects) in a hardware-independent manner, taking advantage of parallel processing / GPU etc.
      • Downside to commercial developers is that code using it may be more visible / understandable.

rvideo: Ruby video transcoding library

Sunday, January 8th, 2012


    • <<Ruby is…A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.>>
    • Ruby is also totally free. Not only free of charge, but also free to use, copy, modify, and distribute.
    • My MacBook has a copy of it, at [/usr/bin/ruby].  No idea if it came with Mac OS or an application, but it’s there.
    • rvideo
      • Ruby video transcoding library
      • RVideo is a Ruby library inspects and processes video and audio files by providing an interface to free Unix tools like ffmpeg.
    • Demonstration of usage
      • A few examples:
        • file = => “#{APP_ROOT}/files/input.mp4”)
        • file = => @existing_response)
        • file = => “#{APP_ROOT}/files/input.mp4”,
        •   :ffmpeg_binary => “#{APP_ROOT}/bin/ffmpeg”)
        • file.fps        # => “29.97”
        • file.duration   # => “00:05:23.4”
    • To transcode a video, initialize a Transcoder object.
      • transcoder =
    • Then pass a command and valid options to the execute method.
      • recipe = “ffmpeg -i $input_file$ -ar 22050 -ab 64 -f flv -r 29.97 -s”
      • recipe += ” $resolution$ -y $output_file$”
      • recipe += “\nflvtool2 -U $output_file$”
      • begin
      •   transcoder.execute(recipe, {:input_file => “/path/to/input.mp4”,
      •     :output_file => “/path/to/output.flv”, :resolution => “640×360”})
      •   rescue TranscoderError => e
      •   puts “Unable to transcode file: #{e.class} – #{e.message}”
      • end
    • If the job succeeds, you can access the metadata of the input and output files with:
      • transcoder.original     # RVideo::Inspector object
      • transcoder.processed    # RVideo::Inspector object
    • Even if the file is processed, it may still have problems. RVideo will populate an errors array if the duration of the processed video differs from the duration of the original video, or if the processed file is unreadable.

CeltX and Avid (e.g. Script Sync)

Monday, September 26th, 2011

Avid’s Script Sync tool sounds great.  But it appears the script has to be in a certain format.  Can CeltX-exported scripts be imported?

IMSDB – The Internet Movie Script Database

Saturday, August 13th, 2011

You can see and comment on a number of scripts, some pre-production.

Windows 7 System Restore

Saturday, July 24th, 2010

Windows 7’s System Restore utility (GUI): The .exe file and how to run it from commandline/script:

DVD Scripting

Monday, February 22nd, 2010

The DVD Spec defines a scripting capability, allowing such things as:

  • Variable play order
    • Random – e.g. for public display – though”random” does not guarantee “different track each time”.
    • Inferred from user-input – e.g. questionnaire
  • Simple quiz games.
  • Passcode-protected content (not secure but at least some kind of disuasive barrier).

Some useful tutorials, doesn’t matter that they are for a specific DVD authoring product: