Ubuntu in state of DVD denial

One of the things I have had trouble with ever since I installed Ubuntu was playing DVDs. I need to use DVDs as source material for the graphics I do for both work and pleasure, and not being able to play all the DVDs I am sent was becoming increasingly frustrating. Although a large number of DVDs wouldn’t even mount in Ubuntu, the DVD player under my telly played them fine.

I tried the normally excellent Ubuntu UK IRC channel to no avail, so I was on my own. Eventually I discovered the mount -l command, and saw the letters UDF. That turned out to be a vital clue.

And today, by a stroke of luck, I found this page. Not only was the problem explained, but a (partial) solution was given. I can now play any DVD, provided I open it from a session of Nautilus running as the root user.

dave@dave-desktop:~ sudo /usr/bin/nautilus

Being careful to save the files on my Desktop, and not root’s Desktop, I could take screen shots that frustratingly I couldn’t delete or move.

That’s because the screen shots I took from Nautilus running as root also had root privilges, so a bit more command line lurve was needed – the “chown” (or change owner) command:

dave@dave-desktop:~/Desktop cd dave Screenshot1.png

Now I’m happy and can do lots of delightfully rainbow coloured Granada “Giro” Gs to accompany Derek Hilton and his band…

Creating A Font with Inkscape and FontForge

One of the things I wanted to do on Ubuntu was to create a TrueType font. I have done this in the past using Fontographer and Macromedia Flash on Windows, but I wanted to have a go using Free Software to see how the process compared.

I had the font I wanted to digitise as a high quality scan. I imported that into Inkscape and created all the characters, or glyphs:

Glyphs created over the scanned original

As it was my first time doing this in Inkscape, I made a number of mistakes. Firstly, I created the fonts as filled shapes. If you are going to create a TrueType font then outlines are enough. The biggest problem with using fills instead of outlines in Inkscape is that you can never see if a path is “closed” properly – this will cause problems for the font editing software later on.

Another mistake was that I had forgotten I could not overlap paths – if you do, the overlapping area becomes transparent. Each path has to be made of continuous oulines so, in the case of the capital letter Q I could not draw the circle as one path and the square tail stroke as another.

The next thing I needed to do was to create an .svg file for each letter.

.svg files created for each glyph

Again, I made mistakes doing this. I created a 1000 x 1000 pixel file for each glyph with a 200 pixel base line that the letters would sit on. I should have realised that for .ttf files your glyph size needs to be a power of 2, so I should have used 1024 pixel files.

The next thing was to import the glyphs into FontForge 2. FontForge is an excellent program, if you can get past the fact that the interface looks like it decided 1990 was so lovely it would stay there. It looks a bit daunting but in fact, skimming three pages of the online manual, including this one, was enough to create a truetype font with metrics and kerning.

The most valuable thing in FontForge is the Ctrl+Shift+D to correct the direction of your paths (whether your paths are clockwise or anticlockwise is something very important for font creation).

My corrected Q in FontForge

Once you have got your glyphs imported into FontForge, what you have in essence is a monospaced font – all the letters are the same width. The next job is the metrics – in other words changing the widths of each letter so that the I is thinner than the Q. FontForge makes this very easy, with a drag and drop interface.

After that you have to correct the Kerning – in other words coping with the fact that with two letter combinations such as AV the V is should be moved a little closer to the A. This was a little complicated to get started but again it’s drag and drop. It took me about three hours to do the metrics and kern all the letter combinations for my font by hand.

Once that was done I just needed to generate my .ttf – something very satisfying.

The end result – B12JP.ttf

And the software didn’t cost a penny. And indeed, neither does the font. I’ve released the font under CC-BY-SA and it is available to download from here.

Converting .ai files from Flash 8 to .svg

This morning I wanted to use a number of the graphics I have done in Flash in Inkscape.

The .swf and .fla files are stuck at the moment until I have access to a copy of Flash, but I also have a large stock of .ai files. I exported them from Flash 8 to use in Fireworks, which allowed me to use various raster effects on my vector artwork.

Inkscape would only import Adobe Illustrator 9 files, but Flash 8 exported .ai files in Adobe Illustrator 6 format. However, the solution was already available and installed on my computer with Inkscape. It just needed a bit of “command line love” (as they say on the Ubuntu UK podcast). The program in question is a command line tool called Uniconvertor, and it’s very easy to use.

Open a terminal, put the .ai files in your Home folder, and type:

dave@dave-desktop:~$ uniconvertor source.ai destination.svg

Very, very useful.

Inkscape – an example

Here’s an example of a picture I created from scratch in Inkscape using an image I found in the excellent TV Ark. In fact it’s the first thing I ever did in Inkscape, and I didn’t really know what I was doing! If you click on the image you’ll see it at the size I actually drew it.

Simon Luxton’s Westward Television section on TV Ark is a particular favourite of mine and I recommend a visit.

The image is a .png exported from Inkscape. The .svg file that creates this image is 28K, which is not bad going.

Starting Science credits

Here are the finished filmised “Starting Science” credits, which I discussed in my previous post here.

After animation was created in Macromedia Flash 8:
  • the .swf was loaded into Premiere Elements 4.0,
  • gate weave was added using the Active Camera filter,
  • the video was exported from Premiere Elements as an .avi using the HuffyUV codec
  • then imported into VirtualDub
  • the VirtualDub blur filter was added
  • the MSU Noise Generator filter was added
  • the MSU Old Cinema filter was added
  • the video was exported from VirtualDub as an .avi using the HuffyUV codec
  • the video was turned into a .flv using the Flash Video Encoder (OnVP6 codec)
  • the video was uploaded to YouTube.

The credits are silent, as I don’t want to upset Ron Geesin, but with music it’s fantastic!

Film on a budget

I have done a lot of Adobe Flash animations of television graphics from the 50s, 60s, 70s and 80s. I have also just bought a copy of Adobe Premiere Elements 4.0, so I can experiment with video editing. I am really happy with Premiere Elements. In fact, there is only one thing I cannot do with it: make my graphics look like they are on film.

Stuart Kettle’s Starting Science robot, which I created from scratch in Flash, then filmised in VirtualDub. Click on it for a better look.

Television graphics in the 70s were often broadcast from 16mm colour film. Graphics on film have a special “look”:

  • colours change
  • edges become softer
  • you may see dust or scratches
  • the picture may bob up and down or look grainy

Input video from Flash (encoded with Huffyuv) on the left, VirtualDub output on the right. Using VirtualDub filters means I can work with colours which are not “video safe” or sharp edges in Flash and not worry about how they will look.

If you want to make video look like old film, there are expensive plug-ins available that do a fantastic job. I can’t afford them, and I don’t like using cracked software. Most video editing programs come with a free old film plug in. I tried Adobe Premiere Elements’ free “Old Film” plug-in. It was rubbish! So I needed to find another way – one that was cheap.

Before you start, you need some video. To get animations out of Flash and into a video format I use a codec called “HuffyUV” – it’s a free lossless video compression codec. After you install it, you can export an avi from Flash using the “Export Movie” option in the File menu and select HuffyUV as the codec.

Don’t forget to make sure the Flash Files are 720 x 576 at 25fps for PAL. I do my animations in a symbol that is 788 x 576 for PAL 4:3 or 1050 x 576 for PAL 16:9. I then squash the animations on the main stage for export horizontally to 720 x 576.

To get video out of Premiere Elements 4.0 to filmise it I also use HuffYUV. The DV format that Adobe suggests you use to export video you want to put back into Premiere Elements is no good for this job. It is very compact, but it will cause all sorts of nasty colour bleeding and make your end result look like a nasty VHS recording done somewhere with poor reception. To export a video as an .avi with HuffYUV from Premiere Elements you need to use “Export” from the File menu. Don’t forget to tweak the settings to export “Progressive” – you don’t need fields for film stuff!

Now we have some video we can filmise it. On the internet I found something called the MSU Old Cinema filter for a program called VirtualDub. I had never heard of either before, but I think they are both fantastic. Here’s what I do with them.

In the MSU Old Cinema filter, I always start by selecting the “Modern video with yellow shift” preset, and then clicking on “Advanced”. This lets me play with all the filter’s settings.

In the “Settings” group I always uncheck all the boxes apart from “Show Noise” and “Random Noise On Screen”. This will give you “speckle” and “sparkle”. “Speckle” are bits of dirt on the film, which appear as black dots. In the 1970s film was broadcast that was covered in dirt! If the dirt was on the negative, then it would appear white on screen – this is “sparkle”. I never touch any other filter setting now apart from the Colour Correction.

I have a lot of off-air recordings of television from the 1970s. I have found the 16mm film on them suffered from something called “Yellow Shift”. This means that blue has faded much more than red and green, so you end up with slightly yellowy look with greyish blues. However, I have found the “Yellow Shift” Colour correction in the MSU Old Cinema filter doesn’t get this look quite right. In particular, it gets pinks wrong.

That means I usually use “Manual Linear” colour correction instead, and play with the colour sliders myself. To match the appearance of a 1979 print of the ATV colour zoom ident, I found Strength 60%, Red 186, Green 186, Blue 126 worked fine.

To get the look of a 1980 edition of ATV’s “Starting Science” then I found Strength 60%, Red, 102, Green 114, Blue 30 worked, but I needed the VirtualDub built-in Brightness and Contrast Filter too. I set the Brightness to +7 and left the Contrast at 100%.

For a really faded look, to match a 1975 edition of Granada’s “A Place To Live”, I found Strength 80%, Red 171, Green 107, Blue 42 worked well.

If the yellow cast is too strong or your footage looks too dark with these colour corrections you can reduce the Strength setting.

To make the film look “grainy”, I use another free VirtualDub filter. It’s called the MSU Noise Generator. Normal Distributed Noise with Y strength 3, Cb strength 3 and Cr strength 3 is a good start, but noise varies a lot from film to film.

If you add noise it not only makes your end result look more realistic – it can also hide defects in your source material. It is particularly good for breaking up gradient fills, which often look bad on video.

Film has softer edges than video, so it is important to soften the edges of anything you want to sell as film. To soften the edges I use the VirtualDub built-in “blur”” filter. However, you must make sure this appears before the other filters, so you don’t blur the grain or scratches.

If you are working in PAL 16:9, you can right click on the video input and output panes in VirtualDub to change view them at the correct aspect ratio.

To export the video from VirtualDub, I also use HuffyUV. If you press Ctrl-P you’ll be able to change the video compression method.

So we’ve got the grain, we’ve got the softness, we’ve got the faded colour and the speckle and sparkle and the scratches. All that’s left is the gate weave.

Gate weave is the gentle bobbing up and down that film used to do. The MSU Old Cinema filter and the Elements Old Film plug in both really overdo this effect. However, there is a way of getting a realistic gate weave effect. To do this I use the “Active Camera” plug in that comes with Premiere Elements 4. If you add this effect to a piece of video, changing the settings to Horizontal .33, Vertical 2.0, Crop 5, Rate 50, Jitter 75 is a good starting point.

The MSU Old Cinema filter is not a perfect solution – the number of speckle and sparkle artifacts it has is limited and they look rather small on screen. It cannot do things like “hair” trapped in the gate. And I have to add the marker that shows the film is coming to the end of a reel in Flash. It would also be good if there were adjustable settings for gate weave and flicker.

The MSU Noise Generation filter does not make a totally convincing film grain either – MSU have written a proper Film noise plug but it’s for its paying customers only.

However, this is the best “free” filmising solution I have found, and it can produce some very realistic results. Try it yourself!