Thread-topic: Examples of QC being used for Lobby (Foyer) TV type
User-agent: Microsoft-Entourage/11.2.4.060510
Howdy Adam,
Making kiosks is exactly what I'm doing with QC. To everyone else, including
Adam, who reads this as; "everything AROUND QC but not much to do with QC" I
apologize. As a newbie/guru in various areas, I don't know what people don't
know to leave out. I'm kind of a fan of complete examples and even this is a
huge simplification.
My QC Kiosk adventure started with just having a "background" screen saver
(using an App like Backlight, QCDesktop or Quartz Desktop) and made the
widgets stay permanently on screen (you can set the developer mode for these
and tear them off -- they will stay until removed). I used the "folder"
screensaver from Apple and a bunch of corporate designs I'd made. After I
saw some VJ work and connected this to Quartz, it started me on this new
path.
I'm using a Mac Mini at one site now for over a year without issue.
Reliability is the most important thing in a Kiosk -- so those minis run
cool and can fit in places that keep it convenient. Hopefully Apple won't
drop these headless CPUs -- or if they do, make the iMac come with a
detachable cable to the screen. OK, same difference, right? But that comes
from me, who didn't post here for 3 months because they didn't have a "read
me" on "just reply to the email with a new title." The golden moment was
having my request for some addition to the FAQ on how to post, going to
everyone on the post. New Gene-yuz, available fer good rates.
As I got more adept in Quartz, I found there isn't much you can't do. But I
find it more often true than not; hard is easy in QC and easy is darn Hard.
You group things by having relative math equations -- whereas in Flash, you
just embed them in the same object, and a boundary touches a boundary on
screen because you placed it there -- not because you calculated the value 2
as 100% of the screen (why not 1 = entire screen? Because that would be TOO
easy), and then extrapolated the pixels from the resolution and found the
difference from the offset and calculated it continuously as things move.
Having Read; "Lingo Sorcery" and using objects in code, to make MacroMedia
director do the things Flash does easily, I suppose I can dust it off again
and apply these principles to Quartz. But boy, you can't just place things
on a screen and have them touch, but you can make particles fly around like
they were on fire to a 12-band equalizer with MIDI controls. Go figure. By
the way, my next question on this mail list is to ask; "how do you make two
3D sprites touch edge to edge at different angles?" I know some time back,
they released the early "doom" or some 3D game engine in raw code. I'm sure
we could dust that off and make dancing Poser figures in QC -- just watch
those moments when a straight leg goes right through the head with your
Quaternian calculations -- ZERO is your enemy (note; I'm talking a good
game, I don't program in 3D).
I had built, for instance, a stock ticker in quartz -- but it relied on
grabbing an RSS feed of a web based stock ticker. I didn't want to set up my
own web site or spend the time to build a Python parser -- nor did I want
the exposure for the stock data. So I bought a third party stock ticker and
let it handle it. I pay them, so they deal with the commercial usage issues.
So I will bring up stock tickers, news tickers, and widgets at various times
of the day. If I spent more time with it, I'd figure out a good way to space
the "words" correctly. Kind of a bit of work when each stock quote is an
"string to image" and the sizes can be different. Could I request some sort
of "Pages" plugin to just re-route all the Desktop Publishing to it?
Not being able to have a master composition, to load and unload modules was
a real pain. But I learned to change the desktop myself with AppleScript,
and used the -background flag. The reason for doing the Kiosk content in
background is because it allows me to leverage other applications in the
foreground and make the content more rich. It was sort of tricky, because
you need to change it in the ScreenSaver.framework, but it also needs to be
changed in the property list file for System Preferences to behave well --
and preferences are set for files brought up through Screen Saver pref pane
are entered in preferences/ByHost -- and these are a unique hash on every
computer (so remember to get the native ID hash and copy it over on ss
preference files. To make sure all other instances in a screensaver aren't
running (because the -background flag means it can still be running when
another SS is turned on if that new SS is in background), I have to kill the
process of the old SS. All this is orchestrated by iCal. I was looking at a
launchD editor, but iCal is already a great interface for managing tasks via
scripts.
I built about 10 different modules from there. One of the most difficult was
an analog clock -- because none of them worked just the way I needed them
to, and because it seems that I can't just use something another person
created, I have to figure it out and rebuild it from scratch to "grok" how
it works. Seems I have to make it work for my brain.
The RSS screensaver from Apple is a nice place to start. I modified it to
have the color of foreground and background elements change over time (but
always so they are opposite luminance, with a fast change in the mid tones),
and to use up to ten URLs to cycle through.
I'd say the best improvement I made was an image loader, that grabs
everything in a folder (even sub-folders) -- trickier than it seems because
I had to adapt a an alternating loader from Apple. It was really difficult
to understand, because if you loop through an odd number of items, then even
is odd and odd is even on the next pass-- and again (complicated by the fact
that they used a "transition factor" that can fade something in or out --
based upon it's current alpha), simple is difficult, transposition, particle
effects and calculus -- no problem. I was displaying names of people based
on the file name thrown in the folder -- so I would get it out of faze until
I figured it out (process the names exactly the same way as the images --
duh). The result was that I "cached" images in a multiplexer, and actually
had two instances of each image -- this allowed me then to apply transitions
to the images while they were animated. The reason for two instances is that
you have to process an image coming and going, and it alternates between
loaders (one loader is the new image while on the next pass it's the old
image) and you lose the transition as soon as it is the outgoing image. Two
loader modules like this are in place, so that I can load a transparent
object (if available by the same file name in an overlay folder). So eight
instances to have 1 image transition with two layers (background and
foreground with the front slightly out of faze to give it a more dynamic
effect). Performance is actually stellar, and you don't pay a penalty for
having the extra instances. Though I seem to be the only one who worries
about calculating values over and over again, and I make my stuff more
complicated by trying as much as possible to calculate timing and scaling
iterations in one place -- it just bothers me that these computers have to
recalculate the same answer over and over again. OK, I'm anthropomorphizing
and this math seems to take a nanosecond, probably less time over 5 years
for the computer than it took me to figure it out.
Adding to the Widgets on my Kiosk is a news feed from Dish Network. While
Sony may have a good value in the WEGA -- the larger displays don't allow
for "Picture in Picture" -- I suppose that's because people with more money
"don't do that sort of thing." In order to look like we have more content
and be even more "hip" -- I put a tv channel in a 50% PiP on the screen as
we move images around the office and news in QC. The problem was that that
WEGA at another office doesn't do PiP. Now you can spend more than $4000
trying to solve that problem on a multiviewer with HD capability -- or you
repurpose a device, to the rescue comes the TV One 1TVGADVI Analog to
Digital Converter at $310. Has the HD-15 connector going in and out (but the
out is a high resolution RGB signal -- intended for a computer display
which if you¹ve got that adapter cable, should now work perfectly)
http://www.bhphotovideo.com/c/product/332332-REG/TV_One_1T_VGA_DVI_1TVGADVI_
Analog_to_Digital.html -- but some older HDTVs again, don't have a computer
HD-15 VGA (alias computer video) connector on them. $2 bucks for the
manufacturer, or $300 for you to buy after market.
I wouldn't risk the really cheap devices out there -- and watch out for
"upconverters" -- you will end up with NTSC resolution scaled up to HDTV.
Might as well use a 640x480 setting on the Mac if you do that. If resolution
isn't important; For standard TV quality on the cheap (It seems to be
supporting Hi-rez formats, but only mentions NTSC out) a $38 PC to TV
converter that¹s powered from the computers USB port;
http://sewelldirect.com/pc-to-tv.asp -- but once again, I don't recommend
that route.
If you buy the display for this Kiosk -- look at Dell, they have some really
good deals on Computer-friendly LCD, HDTV sets that can "recondition" which
is a fancy way to say; cleans pixels from burn in. A big issue when using
these prosumer HDTVs. I still don't trust Plasma in this regard. You want a
kiosk that lasts more than 2 years.
To save you some sanity when dealing with HDTV -- just know that most of the
computers are putting out what is called HD-15, which is an analog and RGB
signal-- Apple has nice new DVI outputs on their machines, but you may find
you have to integrate things with good old VGA (there is no inherent quality
difference between Analog or Digital, while theoretically, digital will
always be an approximation of Analog, with real equipment, digital is higher
quality [if not converted] -- but again, not necessarily -- it's about
resolution and bit depth). MOST older HDTV sets that don't have a nice,
civilized computer VGA input port, are wanting Digital and/or a YUV color
space (actually, these inputs are Green, and the other two channels add and
subtract from that value -- simple answer is; it either won't show or
everything will look green, the more complicated answer is that you are
converting to YPbPr color and a digital DVI-I device, that then connects
into a DVI input or an HDMI input on the display). So if you have this
problem, scale the image on the computer screen to EXACTLY what your HDTV
display is supposed to show, then save bucks with the Audio Authority 9A60
Transcoder for $124. Here is a review;
http://www.keohi.com/keohihdtv/interfaces/aa9a60_transcoder.html -- there
is some cheaper dreck out there, but that sounded risky to me.
If you want to use component, try this; AV Tool Box AVT-3400 SXGA Theater
Costs $150 at B&H;
http://www.bhphotovideo.com/c/product/388265-REG/TV_One_AVT3400_AVT_3400_SXG
A_Theater_Scan.html
I can't vouch for everything yet -- except the TV One device. I learned this
trying to support someone in Florida, who had a 4-year-old HDTV and wanted
to do the Picture-in-Picture trick. This person didn't have any AV
background, so it was all a remote solution. I was worried that it was going
to cost more than a new 60" display to solve the dilemma. At another office,
I want to switch inputs -- so that means the computer VGA connectors then
convert to DVI-I because HD switchers are an expensive breed right now.
I've saved you a few days in buying the wrong things. Also, there is DVI-D
and DVI-A and DVI-I (standing for Digital and Analog and a hybrId). You will
always assume wrongly that you can just connect things that fit to the DVI
and HDMI connectors and in an effort to learn from hindsight, the video
industry has about 15 flavors of DVI distinguishable only by looking at
their arcane pattern of pin-outs. If you want to become an expert on the
subject, look at the following;
http://www.ramelectronics.net/html/DVI_info.htmlhttp://www.hdtvsolutions.com/digital_connection.htm
And some displays have DRM, so they handily screw things up because you
aren't licensed to display things that you just created--you are a pirate,
do not pass go. Should not be an issue with newer displays, but that isn't a
guarantee. Calling tech support for these products before hand, will also
not give you reliable information -- they just read the same documents you
can download off the web. You'd think there would be more out there on the
topic of "hooking a computer to an HDTV display" -- and after the 100k ads,
you get 10 references to the same Blog post.
So everything doesn't overheat, make the mac shut off the animations, and
either go to sleep or shut down. If you shut down, you are going to want to
script some housecleaning chores -- here is what I do in AppleScript every
Sunday (without the single-quotes on the outside);
'set tasks to {"sudo rm -r ~/Library/Caches/*;sudo rm -r
/Library/Caches/*;sudo rm -r /System/Library/Caches/;sudo diskutil
repairPermissions /; sudo plutil ~/Library/Preferences/*.plist; sudo plutil
/Library/Preferences/*.plist; sudo periodic daily weekly monthly, sudo
update_prebinding -root"}'
'do shell script tasks password "****" with administrator privileges'
>> You don't need to clean out the caches so much though -- but I went for
stability over boot-up speed because it happens on "down time." And really,
repairing permissions -- is sort of a hand waving gesture these days.
For turning on and off all your peripherals; 7 Day digital scheduling power
timer;
http://www.amazon.com/Intermatic-Heavy-Duty-Programmable-Appliance-DT27C/dp/
B000E8XGA4/ref=pd_sbs_hg_3/002-6212504-7820023?ie=UTF8&qid=1181157563&sr=8-1
or Simple (cheap) powerstrip for 24 hour day;
http://www.amazon.com/Fiskars-TV-8Out24HR-Strip-Timer/dp/B0000X8SH4/ref=pd_b
bs_sr_2/002-6212504-7820023?ie=UTF8&s=hi&qid=1181157563&sr=8-2
>> Disclaimer; I don't make any money on this, nor have I actually used these
power strips.
Before I forget; Sound to the HDTV display ($6 cable);
http://sewelldirect.com/iPod-3.5mm-to-RCA-cable-6-foot.asp -- Quartz can do
a lot of things responding to sound, that can help keep your content fresh
and interactive. I even paid for Cepstral voices to add to my kiosk reading
content (don't know how to use it in QC yet), but nobody wanted sound when
we got it on display. Many HDMI connectors don't carry sound -- you know,
because, that would make too much sense.
In the future, I'd like to incorporate a webcam -- but I don't know the hit
on performance this would have for a Mac Mini. Along with that, I'd like to
try some of the computer vision techniques for turning the camera into a
mouse -- actually detecting a finger pointing at the screen by motion
difference, and letting users interact without having to spend bucks on a
touch screen -- and also being ahead on coolness. No reason such a thing
couldn't also be multi-touch. And NO, I don't have any developer secrets on
Leopard, this would just be a big obvious "duh." Apple leverages important
and cool phone feature for desktop OS -- about as obvious as adding color.
Oh, by the way -- I never found any way to tell if Widgets were on or off.
The processes run regardless but they don't respond to the "kill" command
correctly. I don't understand why Apple didn't foresee this -- or more
likely, I don't know where they documented the "Widget=True" state. I can
toggle widgets by simulating a keypress of F12 -- but if anyone moves a
mouse, or a previous command to show or hide didn't work -- you don't know
the state of the Widgets. You could be turning it on when you think you are
turning it off. So I just scripted the mouse in my AppleScripts to take
advantage of the "Dashboard & Exposé" screen regions to start and stop these
events. Somewhere in Cupertino, they have people who know when the Dashboard
Widgets are "on screen" or not -- and I suppose they want to keep that
knowledge for job security.
As for Aesthetics, I recommend slow dynamic moves. I don't have anything on
hand that doesn't have our logo or a person plastered all over it. Just look
at sites like; http://www.quartzcompositions.com/ for inspiration.
Really looking forward to Leopard -- it should change the game for making
Kiosks this way. I hope Apple fixes/adds a few critical features like
dynamic loading of compositions, QuickTime sync, and Flash support -- hey,
Keynote and PowerPoint in a sprite while I'm dreaming -- perhaps Keynote and
Pages can be the layout module, and you have a plugin in Quartz to pipe
"tagged" data to and from these components -- nobody has anything like that.
To assist with that, have a flag for "processing all event on idle" because
we don't want things to skip, we have time to get the image -- but we don't
want to skip it. The image/text a tagging system could work like CSS. OK,
and that last request would be rendering HTML with the Kerboros engine in
Safari and being able to pass things to and from that -- your NeXT
programmers can do it, just mention "OpenDoc" to get them motivated. And if
Apple gets their iPods/iPhone to show Keynote presentations, I could move a
good chunk of the Financial industry to using the "I" device as a platform
for sales and presentations. Oh, and I almost forgot... Can we have "widget
sets" without having to resort to "spaces"? I think it would be really cool
to have a group of widgets come up, and a menu of these groups that can be
toggled on and off -- with of course, a command-line string that can choose
something like "?widgetgroup=news&weather". Yes Apple, I'm in UR base doin'
yur thinkin' -- and Apple, make AppleScript an ECMA standard language, those
friendly words don't make it easier. But hey, this sounds like another
topic.
Um, but Keynote should be able to pass variables to QC. Like, PLEASE. I want
to use this eye candy in Awards shows I'm doing. I could pass "John Smith"
and have all sorts of glory on screen with the "My Kewl Quartz Person
Display Module.qtz." In the trade show and convention business, there is a
pretty big market for multi-display presentation systems. Keynote with
variables passed to Quartz, and perhaps a control for setting content in
Keynote for 3 screens and a 4th presenter screen would definitely put
"WatchOut" out of business.
I just bring these up, because these are the kinds of things we think about
when we say; "Multimedia." And Quartz Composer needs to live in an
environment as a resource -- not the whole "widget."
And again, I don't know a thing about Leopard. However, Please pay me
royalties for all ideas that are new to you ;-)
Good luck Adam, maybe we can trade notes in the future. I definitely need
someone to tell me about motion activation devices.
>
> Hi,
>
> I'm interested in possibly using QC for a Lobby TV type of scenario.
>
> Are there any examples of it being used like this? I know there was
> some discussion a little while ago here about the Genius Bar screens
> being powered by QC in order to integrate the real-time "next
> customer" display. I guess I'm looking for more examples, not so
> much for validation (I'm pretty sure QC would be excellent in this
> role) but rather more for inspiration to understand what others may
> have done and what's possible.
>
> Cheers, adam.
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/email@hidden
This email sent to email@hidden