TR Coffey speaking on skinning, styling at Boston FUG

July 3, 2008 on 10:34 am | In Flex, Programming | No Comments

This is just to give a quick heads up to my local readership: TR Coffey of Allurent will be speaking at this month’s Boston Flex User Group meeting on Tuesday July 8th at Adobe’s Newton office. TR is a really smart designer and information architect, one of the best people I ever worked with, and here’s why you should come hear TR talk about Flex styling and skinning:

  • TR has invented some really creative and powerful ways of using CSS to control the look of Flex apps, going well beyond the textbook approaches that you can read about yourself.
  • TR doesn’t just solve the problem in front of him, he’s someone who always looks at the larger context of other similar problems. So the stuff he came up with might help you in your job.
  • TR is a really articulate and well-spoken person, and you’ll enjoy hearing him talk, no matter what he says.

Surely those are reasons enough to come! Hope to see you there.

No Comments

Audio-enabled Physics Engine Example

June 9, 2008 on 4:16 am | In Flex, Music, Programming | No Comments

I thought I’d put up a fun demo SWF from my “Flash Bang” talk of a couple of weeks ago. This is an example of what can be done with the new FlashPlayer 10 (”Astro”) Sound API; it synthesizes sounds on the fly that are synchronized with colliding objects in a simple physical simulation. The volume and pitch of the sounds are controlled by the collision force and the nature of the colliding objects.

To run this demo, get hold of the FP10 standalone player, then use it to open this URL:

http://www.joeberkovitz.com/projects/StandingWave/physicalSound/physicalSound.swf

(If you try this with FP9, you’ll get a runtime error dialog, or the app won’t open. And at some point soon the FP10 API will probably change, invalidating this app and obliging me to rebuild it, so in the near future YMMV.)

The sync between the sounds and the visuals is quite delicate and if it is off by even a little bit, the results look terrible. On my MacBook Pro, the auto-calculation of the audio latency is near perfect, but on Windows the player API’s Sound.position property seems to be off by about 150 msec, enough to ruin everything. You can play around with the latency in this example by moving the slider.

I didn’t post source because I am using a proprietary library, but the sound code in the example is not very interesting or complex actually. The trickiness in this app is all in the audio/visual synchronization. I am actually running two identical physical simulations, one of which runs ahead of the other, generating each collision sound exactly the right time interval before the other simulation displays the same collision. You can see both simulations by clicking the checkbox in the upper left of the example.

I used an open source physics engine called APE (Actionscript Physics Engine) available, at http://www.cove.org/ape/index.htm. I picked it because it was very easy to modify the collision detection mechanism to add audio hooks, but I haven’t done enough research to compare it to other engines for this purpose.

Here’s a screenshot (without sound of course!):

screenshot

No Comments

“Flash Bang”: upcoming talk on Flash audio synthesis

May 25, 2008 on 6:01 am | In Flex, Music | 2 Comments

This Wednesday evening (5/28), I am giving a talk on bleeding-edge Flash audio and music synthesis at the Boston Flash Platform Users Group . Jeez Louise, I must be about the worst self-publicist ever… I’ve been so busy that I forgot to blog my own speaking event. Anyway, the meeting is at the NEIA Annex building, 303 Boylston Street, Brookline MA at 7 pm.

I think this will be a fun one — my computer will be making a lot of noise and playing some tunes. Some of the highlights include:

  • The strange and scary things you have to do to synthesize audio in Flash 9
  • The big audio improvements in Flash 10 (code and demos will be shown!)
  • Architectural approaches to dealing with latency and synchronization
  • Adding simulated sound to a physics engine
  • The brave new world of Flash applications for creating music, not just playing it back

Hope you can make it!

2 Comments

Flexcover 0.50 released on Google Code

May 22, 2008 on 6:21 pm | In Flex, Programming | 5 Comments

Flexcover 0.50 is now available on Google Code. This version is a lot better than the previous release, which we called “experimental” for a reason!

There are two really enormous improvements in Flexcover 0.50:

Branch (or path) coverage: the new Flexcover compiler tracks all the conditions in your code that affect control flow, and counts how many times each condition has evaluated true or false. This is an extremely powerful feature, because it looks not only at what parts of your code run, but at why and how they run. It’s fair to say that without it, we wouldn’t have considered Flexcover to be a worthy coverage tool.

Simpler build process: Flexcover 0.11’s Ant-based build/launch process gave a lot of people a hard time. It’s been scrapped and the new approach is very simple: whenever you use the Flexcover modified SDK instead of a standard one, you automatically get coverage instrumentation and metadata. No Ant needed, and no special compiler options needed either. Finally, the Coverage Viewer is an installable AIR application that launches whenever you open a coverage metadata or report file.

Check out the release notes on Google code for all the gory details.

5 Comments

Flexcover Branches Out

May 10, 2008 on 4:26 am | In Flex, Travel | 1 Comment

Just dropping a quick note to followers of Flexcover and the ongoing AS3 code coverage adventure. It’s been a super busy time at work for me, but I’ve found enough spare cycles to put together a working branch coverage feature. It’s pretty cool: instead of toting up the number of lines that were executed (and highlighting lines that didn’t run in the source view), it counts “branches” that were executed: every conditional that affects program flow is tracked to count whether it has evaluated false or true, and how many times. In other words, if (a == 1) {…} else {…} counts as two different branches, one for the if clause and one for the else clause. Even better, if (a == 1) {…} also counts as two branches: you will be able to tell if the if clause ever got skipped because a was equal to 1. Try doing that with line coverage! [Continued…]

1 Comment

David Coletta at Boston Flex Users Group 5/13

May 10, 2008 on 4:11 am | In Flex, Programming | No Comments

The informative, articulate and personable David Coletta will be speaking about Buzzword’s testing approach at the upcoming Boston Flex Users Group meeting on Tuesday, 5/13 at Adobe Newton’s offices. If you haven’t checked out David’s blog, The Joy Of Flex, well, you really should! He is a great developer and also a great speaker, and this meeting will be one worth attending for sure. You should let the users group know you’re coming by registering at http://bostonfug.eventbrite.com/, so that there will be a slice of hot pizza waiting for you.

No Comments

Flexcover: A Code Coverage Tool for Flex, AIR and AS3

April 12, 2008 on 8:41 am | In Flex, Programming | 10 Comments

I am very pleased to announce the initial experimental release of Flexcover, an open-source code coverage tool suite for Flex, AIR and AS3. The project lives on Google Code at http://code.google.com/p/flexcover/.

Here’s a screenshot:

screen shot of Flexcover

There is so much work left to do on this project, but this release is a start. Rather than wait longer and try to polish it, I felt it was best to get it out there and get some feedback coming in. We’re going to be using it immediately in-house, to be sure — it’s already delivered some valuable news for us on the coverage achieved by our unit test suites!

10 Comments

Next Page »

Entries and comments feeds. Valid XHTML and CSS.
All content copyright (c) 2006-2007 Joseph Berkovitz. All Rights Reserved.