Friday, September 16, 2022

USPS MIDI DJ Mixer

 

USPS MIDI DJ Mixer




Judging from the box, this was made in 2004. I used the boards from an Oxygen8, a real replacement fader for a DJ mixer, and some other spare parts. 



The faders on MIDI controllers were not good for quick cutting. Workarounds such as using a momentary-on mute button allowed for some techniques, but I wanted that light fluid feeling in a horizontal fader when using GDAM. Did a few shows with this, but that was around the time that band activity overtook DJ gigs.

Friday, July 29, 2022

Why I never update OSX / macOS

 Updating OSX is generally good practice. There are improvements and security fixes.

But for someone who performs using their mac, and especially someone who uses a variety of software and hardware on a variety of projects, it is an untenable risk. Every update could break something you rely on. And, it could break something in a project you are not actively working on, in a way that you might not notice until you go to perform.

An abbreviated list of actual things that have bitten me (or that I have dodged by not upgrading OSX):

  • Quicktime library changes the way it calculates frame index, causing a bunch of Modul8 projects using clip start- and stop- features, or accessing specific frames via a time value to be off by one. Imagine that instead of "4 3 2 1!" your New Years countdown ends with "5, 4, 3, 2 .....".
  • Audio routing software stops working until you boot into recovery mode and execute cryptic terminal commands.
  • Full-screen output used onstage gets an orange dot in the upper corner. You can't hide it, then someone finds a kludge to hide it, then on the next OSX update that kludge stops working.
It sometimes takes time for people to discover workarounds to changes in OSX. Sometimes you are at the mercy of Apple to decide to change something.

My routine is that when I get a new macbook, I update it to the latest version of OSX. Then I start installing software and migrating my projects to it, referring to the notes from when I set up the previous macbook, as well as notes for each project. I keep the prior macbook to run projects that won't run on the new one for some reason. Sometimes I have to rebuild projects using different technology to get them to run on the new macbook. On rare occasions I might risk a point-release upgrade of OSX (12.1 to 12.2) if I expect it to fix a specific problem. I will often update artist software as long as I can, until they stop supporting my older version of OSX. In 5-7 years when new software no longer supports my old version of OSX, and the macbook is starting to have hardware problems, I buy a new one and repeat.

Friday, June 3, 2022

MadMapper - Separate composition from projector correction

MadMapper lets you create layers and distort them. This can be used for creative layouts, and to fit projected content to real irregular surfaces.

The problem comes when you need to use MadMapper to do projector correction, e.g. because you are projecting from an angle onto an irregular surface, but you also want to do a creative layout, e.g. have a bunch of circular images in different places on that surface. In this case you have to correct every layer based on the projector angle and the surface it hits. But circles don't have mesh warping. And even if you distort a circle to look good in one place, that could fall apart if you move it to a different place on an irregular surface, e.g. across a bend in the wall.

What you really want to do is to correct once for the relationship between your projector and your surface, and then have all your layers run through that correction. Then a perfect circle layer would be a perfect circle on the wall, no matter where you drag it.

MadMapper does not let you do perspective correction or mesh warping on the projector output, but there is a workaround.

In the projectors tab, rename your projector output to "loopback for correction" and send it to syphon. Now make a new projector called "projector", select your projector as output, and place it far away in the workspace so you don't have to worry about spill. You probably want to make the loopback the same dimensions as the real projector. In the layers tab, make a new layer "projector correction" and select as its input "Syphon: MadMapper - loopback for correction". Make sure that the input is capturing the full area of the loopback, and set the output to snap to the four corners of the faraway "projector" output.

Now, you can use perspective and mesh warping on the "projector correction" layer to correct for the relationship between your projector and projection surface. And all your other layers on the primary output (which is now named "loopback for correction") don't have to care about those details. A perfect circle layer will be a perfect circle on the wall, and as you drag it around it will run through the mesh warping so that it is distorted correctly to appear perfect wherever it goes.

Thursday, May 26, 2022

Accurately preview projector throw and placement on your phone with "Magic Universal Viewfinder"

Magic Universal Viewfinder is a smartphone app which lets you shoot with simulated lenses on your phone. It is useful for location scouting and previewing framing for shots.

It is also useful for simulating projector throw; with the right settings in the app, it can simulate a specific projector model, and you can use it decide on projector model and placement to get the coverage you need.

The tricky bit is to convert a projector's throw angle into a full-frame equivalent lens focal length for use in the app. The focal length of a lens and the throw ratio of a projector are conveying the same information; how wide an area in front of the lens will be in the frame. But the focal length and throw ratio are described in completely different ways, so you have to correctly convert between them.

Know your projectors

You can look up projector throw ratio on the web, e.g. projectorcentral.com - the site's calculator is useful for situations when you know the exact measurements of the space you are working in, but the app is more useful when visiting a site to decide what is possible, or exploring unconventional projection.

For instance, my Optoma EH465 has maximum (distance:width) throw ratio of 2.09 - this means that if the projector is 2.09m away from the projection surface, the image will be 1m wide. The zoom lens allows a wide range of throw ratio, but this maximum value is what you get when you "zoom out" to get the smallest possible image, which is appropriate if the projector is going to be placed far away from your projection surface.

Convert throw ratio to focal length

You can find the full-frame equivalent focal length of your projector lens by multiplying the throw ratio by 36mm.

2.09 * 36mm gives me a focal length of 75.2mm

In the app

In the Magic Universal Viewfinder app, click the upper right hand corner, select "camera", and select "Custom sensor 36x24" at the bottom - this is a generic full frame sensor, it is important to match the "full frame" we used in the calculation above otherwise you won't get the right results.

Now I scroll the wheel on the right side until I find 75mm, then long-press to lock the wheel.

Now the orange frame in the viewfinder shows exactly the coverage my projector would have, if it was placed where the phone is.


If I repeat the calculation for the "zoomed in" end of this projector's zoom range, I find that it has a range of 50-75mm. Now I can fully explore all possible uses of this projector in the app.

Confirm it

Set up your projector, place your phone right next to the lens, and verify that the orange frame in the app matches the projected image frame. If it is off, you might need to calibrate the app to work with the camera in your android phone (all iPhone models, and major Android models, should work out of the box).


Testing my Acer H6510BD, the fit was perfect... I actually moved the phone back a few inches to get both top corners into the frame for demonstration purposes.

Use it

Now you can scout sites with just your phone. Calculate and note the full-frame focal length equivalents of your projectors, and you can preview exactly what coverage you get from different placement of different projectors.


For short-throw projectors like this 0.5 throw ratio, your phone's camera lens might not be wide enough to capture the entire projected frame... but the app helpfully shrinks down the live camera preview to give you a sense of how much larger the projected frame will be.

And of course you can use it the other way too... from your desired projector location, use the zoom in the app to set the orange frame to match your desired projection coverage, then take the focal length mm shown onscreen and use the table below to look up what throw ratio you'd need.

Cheat sheet

Look up your projector's throw ratio, then use these numbers in the app to quickly approximate it.

This is simply a table showing throw ratios multiplied by 36mm, so you can do the math yourself - but in the real world you can't expect more than 2 significant digits of precision.

Throw ratio (distance:width) - Full frame equivalent focal length (rounded to nearest mm)
0.5 - 18mm
0.6 - 21mm
0.7 - 25mm
0.8 - 29mm
0.9 - 32mm
1.0 - 36mm
1.1 - 40mm
1.2 - 43mm
1.3 - 47mm
1.4 - 50mm
1.5 - 54mm
1.6 - 58mm
1.7 - 61mm
1.8 - 65mm
1.9 - 68mm
2.0 - 72mm
2.1 - 76mm
2.2 - 79mm
2.3 - 83mm
2.4 - 86mm
2.5 - 90mm

Friday, March 25, 2022

Piano scales: use the same fingerings for single- and multiple-octave major scales.

Notes on piano scales

Don't learn a single-octave scale fingering and a different multi-octave fingering. Learn a fingering which repeats elegantly across as many octaves as necessary. As much as practical, the octave naturally starts and ends on the same finger so that there is no difference between repeating octaves vs changing directions at the top/bottom of your keyboard. A few fingerings do not start and end on the same finger; in that case the mental model is the fingering you use to repeat the octave, but when changing direction you can 'shortcut' and skip an unnecessary final finger crossing, using e.g. pinky instead (as in a single-octave fingering).

Practice scales up and down as many octaves as your keyboard allows, so you get used to the octave crossings and build muscle memory with your hands at all positions on the instrument. The brain can get tripped up when your hand crosses your center line to the opposite side of your body, practicing the full length of the keyboard helps you overcome that problem.

Practicing around the cycle of fifths/fourths reveals some interesting patterns which might help you remember the fingerings as you build muscle memory. But once you have muscle memory, you should also practice them in chromatic order (C, C#, D, etc) so that your memory isn't overfit to those interesting patterns.

Practice to a metronome, excruciatingly slow while you are first learning, and then at a comfortably slow pace for regular practice.

While learning, play left and right hands separately to build muscle memory, then play both hands together but at half tempo or even slower - your brain has to work at least twice as hard to coordinate both hands at the same time.

When building speed, practice the same scale over and over: L hand, R hand, both hands at half tempo, then bump the tempo up 5 or 10 BPM.

When practicing scales with both hands, it often makes sense to pay attention to the left hand on the way up, because placing the wrong finger after a thumb crossing is a common mistake. On the way down, it is the right hand which needs to choose the correct finger after a thumb crossing. But once you have learned your scales, practice with your eyes on the opposite hands, or elsewhere, or closed, so that your skill does not rely on where your eyes are pointing.

Recommended fingerings

Standard finger numbering: 1 is thumb and 5 is pinky for both hands.

Fingers in light grey are only used on the highest/lowest octave. Bold are the ones you use every time you repeat a multi-octave scale. For instance, C left hand played across 3 octaves would expand to 5432132 1432132 1432132 1

  • C
    • L: 54321321
    • R: 12312345
  • F
    • L: 54321321
    • R: 12341234
  • Bb
    • L: 32143213
    • R: 41231234
    • L hand starts on 3 and after a crossing lands on 4, so that the thumb lands at the right place. This exact fingering is used for the next 3 octaves.
    • R hand placed so black keys get 23 and 234 with thumbs on C and F. You'll know which finger to cross to when descending by paying attention to whether it is the 2- or 3-block of black keys: use finger 3 to hit Eb and 4 to hit Bb. This strategy is used for the next n octaves, although the exact fingering depends on whether the root is in the 2-block or 3-block of black keys.
  • Eb
    • L: 32143213 (same as Bb)
    • R: 31234123 (similar to Bb)
    • L hand ascending, use finger 3 to hit the root and 4 on the next crossing.
    • R hand descending, use finger 3 to hit Eb and 4 to hit Bb.
  • Ab
    • L: 32143213 (same as Bb)
    • R: 34123123 (similar to Bb)
    • L hand ascending, use finger 3 to hit the root and 4 on the next crossing.
    • R hand descending, use finger 3 to hit Eb and 4 to hit Bb.
  • Db
    • L: 32143213 (same as Bb)
    • R: 23123412 (similar to Bb)
    • L hand ascending, use finger 3 to hit the root and 4 on the next crossing.
    • R hand descending, use finger 3 to hit Eb and 4 to hit Bb.
    • First of 3 scales which use all the black keys, with thumbs on which keys. For both hands, black keys are aligned to the strongest fingers, and aligned by 2-block and 3-block. White keys are C and F (the higher of the two side-by-side white keys). Thumbs hit at the same time for both hands.
  • F#
    • L: 43213214
    • R: 23412312
    • Using all black keys with strongest fingers of both hands aligned to the 2- and 3-block. Thumbs on the white keys adjacent to the 3-block (C has been flattened to B as of this scale). Thumbs hit at the same time for both hands.
  • B
    • L: 43214321
    • R: 12312341
    • Using all black keys with strongest fingers of both hands aligned to the 2- and 3-block. Thumbs on the lower of the 2 white keys (F has been flattened to E as of this scale). Thumbs hit at the same time for both hands.
  • E
    • 54321321
    • 12312345
    • All the rest of the scales use the same fingering as C. The crossings make ergonomic sense for the right hand. The left hand sometimes feels a little random for which are white keys and which are black keys. It might help to think of the key signature, and how each scale has one fewer sharp as you approach C.
  • A
    • Same as E
  • D
    • Same as E
  • G
    • Same as E
  • C
    • Same as E

Friday, March 18, 2022

Adobe Illustrator paths as center paths, not outlines, in After Effects

 Illustrator offers the following for stroking a path:



After effects offers the following:


As you can see, these are completely different implementations of the concept of "stroke". AI offers a "variable width profile" but the closest AE comes is "pucker and bloat".

When you do "create shapes from vector layer", since AE doesn't have the same concepts of "variable width profile" or "brush definition", the only way to make an AE shape which matches the appearance of the stroked AI path is by outlining the stroked AI path and giving it a fill.

But an outline with a fill and a linear path with a stroke behave very differently. For instance, "trim path" on a wiggly line which is actually a long skinny outline with fill is a disaster, with negative spaces filling depending on where the path is truncated.



If you want to create paths in AI which import as the same paths in AE:

  • Don't do any Illustrator operation such as "outline shape" which replaces your center path+stroke with a closed loop outline+fill. Once you do this you can't get back to the original path in AI or AE. Make sure your path in AI is a linear path.
  • Use the "path" tool to input as bezier points, or the "brush" tool to draw with mouse or pen tablet, or shape tools such as "ellipse". Make sure "variable width profile" is "uniform" and "brush definition" is "basic". Don't use any fancy stroke or fill features in AI... if you do, AE doesn't have a matching feature and you'll end up with outline+fill shapes in AE.
    • "blob brush" and some other tools are inherently outline+fill even in AI and can't be brought into AE as path+stroke.
  • You can copy the path in AI and use fancy stroke settings on the copy. Label them clearly. If you are going to bring your AI file into AE, then you should probably always keep a copy of all the simple raw paths you create, simply because it is a PITA to try and recreate one later. Once in AE you can use the original raw stroke in parallel with the perfect complex stroke, e.g.
    • Use the original path in AE to animate something along
    • Have different layers of strokes, etc, on top of the complicated AI stroke
    • Make a rough trimmed stroke that you use as a matte to simulate trimming the complicated stroke