For the longest time I have had my floor-standing loudspeakers too close together. The single best test to check your speaker placement/stereo imaging is to play some live music, preferably music captured in a room with echoes. If your speakers are out of alignment you will know it and all you have to do is keep on moving them around until you get it (remember to turn off all equalization/room correction and distance settings). It will sound as if the echoes in the recording are arriving too early and clashing all over the place. You should be able to close your eyes and imagine all 4 walls of the room without any issues.
One thing to look for is when higher pitched sound comes primarily from one of the two channels then appears on the other in a delayed fashion.(this can also appear as the in-phase audio breaking imaging by ‘bleeding’ towards one of the speakers when it gets loud however this is harder to determine because the artist may just be moving around.) The Imaging should never be broken like this, if you consciously aware of the delayed reflection then your speakers are too close together and it would be a good idea to use that sample to play over and over while you make adjustments.
I have two CDs you can try out: 1994 Patrica Barber ‘Cafe Blue’ PREM-737-2, Piano Collections Final Fantasy VII (IMPORT) KO-99030, and Yo-Yo-Ma ‘Songs of Joy & Peace’ B001BN1V8U. All speakers are different and your speakers will define any toe-in. Mine are minimal toe-in and at the summits of an equilateral triangle +- 3″ and about 130″ apart(this is staggering if your not used to it because the center seating position doesn’t even feel like your in front of them anymore). Some day I will explain how toe in changes how your music is perceived.
UPDATE: Placement for Music is different than TV/Movies. MultiChannel music and TV/Movies is designed for toe-in. Music, on the other hand, works best with little or no toe-in.
I am a big fan of Signals/Slots and the Messaging Paradigm used by Cocoa. Since neither can really be implemented flawlessly in AS3(without some major potential performance issues down the road). I came up with a Hybrid Event Pattern solution I call the “Juki Event Pattern(JEP)”. Here is a PDF document outlining the pattern.
The major difference between JEP and the one adopted by Java/Flash is the fact that the events are exposed as public getter functions. This leads to whole new worlds of interface-required events. However, the pattern maintains full backwards compatibility with the built-in event pattern. JEP is an extension of the basic event pattern and requires a IEventDispatcher for the purpose of carrying out the actual dispatching.
A simple interface is used to “connect” a listener function or event to another event. Yes, I said you can connect one event to another. Also because the events are exposed as a public getter you could essentially wrap another event from a asset class and expose it as your own.(think about that for a moment). I have provided three connection options: “connect”, “connectAsSilent”, and “connectAsPassThrough”. Respectfully the operations are basic connect: where the event object is passed to the listener, where nothing is passed to the listener, where all arguments of the dispatch() method are passed to the listener.
Full disconnect. As requested, I have provided the ability to disconnect from all listeners. I also maintain a list of the listeners in a soft-linked Dictionary object. This was also another request that I ended up finding useful for internal uses.
Dispatch log. I made a decision early on that my primary problem with the default event pattern is that there is no way to tell if any specific event has already dispatched. The problem here is sometimes a event only fires once. Say, If it represents a “download complete”. It fires once, if you fail to catch it, your screwed. Normally, I’d say, check your code try to catch it earlier. What if that wasn’t possible tho. I maintain a array of the last arguments passed to the event and if it has dispatched yet. Sadly, for memory purposes I have chosen not to capture dispatches outside of the JEP. I may implement this as a “use as your own performance risk” feature later.
I just wanted to make a quick point. If you ever find yourself requiring the ability to add a NON UIComponent/IUIComponent DisplayObject on the stage in Flex. You can simply use a SWFLoader instance because it does not force UIComponent/IUIComponent type checking.
Below is a example I setup to load Image data as a Image as Class but this could be anything, Sprite, MovieClip, etc.
1 2 3 4 5 | [Embed(source="images/myimage.jpg", mimeType="image/jpeg")] public var tileExample:Class; var loader3:SWFLoader = new SWFLoader(); loader3.addChild( new tileExample() ); loader3.y = 550; this.addChild( loader3 ); |
Note: This post is simply a set of observations I’ve made since I purchased my new Denon AVR, they are no way Denon-backed facts. I’ve tried to verify some of these things with them but no luck so far.
It seems by default, my Denon Integrated(Amplifier) seems to think that correct default settings for “Stereo” is, “Large”(for the Speakers, this is correct), “Yes”(for Subwoofer), “LFE+Main”(for Subwoofer Playback), and “40Hz”(for Crossover).
The problem here is that LFE+Main freakin sucks. Why do I want double-bass? Not to mention its coming from 3 directions in 2 different phases( the Subwoofer is usually set to phase 90) and 3 different distances/delays. All good quality subwoofers will provide High Level and Low Level input for Left/Right to use with the internal crossover. This works great, however the sub is creating audio based on the distance information for the Left/Right channels(if your Integrated AMP has distance delays)… thus creating a somewhat delayed/shifted bass stereo image because regardless of where the subwoofer is it cannot be in two places at once.
So we need the crossover inside of the Denon Integrated. Well, I don’t want “double-bass” so we’ll change “LFE+Main” to “LFE”. Thats it right? Well, you won’t get anything out of your subwoofer. The trick here is setting your “Large” speakers to “Small” with the crossover still at 40Hz.(I don’t know why that is the lowest it will go since I know many people who have Floor-standing speakers that are very able to hit 40Hz, as mine are. This 40Hz wall seems to be in place even when set to “Large” unless you do not have a subwoofer installed or are running in Direct/Pure Direct mode where all Bass Management goes out of the window.
So if you want to take advantage of your Subwoofer for L/R @ <40Hz, you will have to set your “Large”/FullRange/Wide Front Left/Rights to “Small”. My speakers will hit 40Hz at -3db so using Direct/PureDirect will not help me much unless I don’t want to use the subwoofer. Denon’s manual defines Direct/Pure Direct mode as “This is the mode that recreates the original sound most faithfully, providing extremely high quality sound”. That may be true! Somewhere else they also say that it disables “Tone controls”(Bass/Treble). What they neglect to mention that there is NO Bass Management(Large/Small is Bass Management along with Crossovers) at all in these modes. So your/my crappy surrounds will try to play 20Hz if your movie calls for it.
If you want similar results during normal movie playback, you will have to set your Fronts to Small in the main speaker config menu with a crossover set to 40Hz( or whatever the lowest your speakers can hit, my crossover should be at about 30Hz, and your amplifier will allow you to choose — a Small with a 40Hz crossover is the EXACT same thing as a Large but the AMP seems to completely ignore <40Hz when set to Large … go figure.) The default Bass Management rolls off the Low Level by -12db and the High Level by -24db. So a Large speaker will be -12db @ 40Hz when not in Direct/PureDirect and a Small will be -12db @ user set crossover. The High Level crossover is only used if you have Bi-Amp able Front speakers.
I currently have my default config/stereo set to Small @ 40Hz crossover, however I normally listen to 2ch audio in Direct/PureDirect in order to get the most out of my floorstanding speakers. I also have the “distance” of my L/R manually increased by 0.4m(UPDATE: +0.6m seems to make the speakers disappear) — seems to widen the ‘sweet spot’.
UPDATE: Lfe+Main works fine if the system is calibrated and distances are measured correctly. You also have to make sure the sub is set to 0 degrees phase. ( otherwise you will notice a huge problem in SQ )

The new Styling Mechanism allows for a better control of shared Style Definition bases versus sharing the Proxy directly. The Style Definition will also signal all connected proxys of any changes. Style Proxies contain the local-only definition, including overrides and cache information for extended lookups. Changes can be “pushed” to the definition. The Proxies inherit automatically as parent/children in the DisplayList and can be turned off. The Master Style Dictionary can also load multiple CSS files. Expect tighter integration with the Theme Server for use with “groups” to define a fully inheritable solution for any desired use. There is also a new mechanism for “impact decisions” for the state of the DisplayObject. More later.
I found this link from a HOW-TO I made a long time ago that used to be linked from the old blog.
This tutorial is mainly for OSX users.
Build and Install rsync
Create an empty file some where (I put mine in /usr/local/ )
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash # Start Script LOGFILE="/var/log/backup.log" SRC='/Users' DEST='/Volumes/backup' echo "" >> $LOGFILE echo "" >> $LOGFILE echo "***************** New Log *****************" >> $LOGFILE echo "Running Users Backup" >> $LOGFILE date >> $LOGFILE /usr/local/bin/rsync -a -v --stats --delete $SRC $DEST >> $LOGFILE exit 0 |
Now create a .plist in /Library/LaunchDaemons/
Terminal:
1 | sudo pico /Library/LaunchDaemons/myplist.plist |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>users-backup-daily</string> <key>LowPriorityIO</key> <true/> <key>Nice</key> <integer>1</integer> <key>ProgramArguments</key> <array> <string>/bin/sh</string> <string>/usr/local/backupUsers</string> </array> <key>RunAtLoad</key> <false/> <key>ServiceDescription</key> <string>Backing up /Users to /Volumes/backup</string> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>6</integer> <key>Minute</key> <integer>0</integer> </dict> </dict> </plist> |
the LABEL is very important, because this will be what launchd calls this process.
Replace ‘/usr/local/backupUsers’ with the path to your Bash Script.
Now, we need to load our plist into launchctl
Terminal:
1 | %> sudo launchctl load /Library/LaunchDaemons/myplist.plist |
To test it
Terminal:
1 | %> sudo launchctl start LABEL (set above in the plist) |