Day 92 – Throwing Around Lists Of Objects

Firstly I’ll be continuing with my little series on Bursting Software Business Bubbles over the coming weeks.  But for this post I’m going to to do an update on the development of MixAction and what I’ve been sinking my teeth into lately…

Taking Bytes Out Of Code

OK.  Apart from having an enormous amount of fun coding it the “audio as objects” stuff is panning out nicely.  Basically it works like this.

  1. You add an object of a certain kind, it has certain mixing properties preset, some which can be changed and some that are “private”.  “Private” means only the object knows about them, the person working with MixAction is only aware that they exist but can not change them as they are fundamental to the operation of the object.  Sounds familiar to most dev’s I should expect – kind of like inheriting from, say a button object as opposed to a checkbox object, but nowhere near as complex of course.
  2. You then add audio files to those objects.
  3. Each of those audio files have their own properties that can be set and once again some of those will be “private”.

They do all this via a “property sheet” which I believe to be a little more intuitive than the more usual configuration of buttons and sliders only, though those tools are certainly still available and advanced settings can still be made in this manner for those who prefer to do so.  At first offering both seemed a little bit like double handling, but with some care I’ve been able to write the code once – only the interface changing to reflect the preference of the person operating the program.

This probably sounds a bit trivial, but it’s actually quite involved and it includes a good deal of message handling and underlying threads, and it’s where most of the major re-writing of MixAction has taken place.

Fundamentally the program appears fairly much the same as before.  But underneath a heck of a lot more takes place, and as I’ve mentioned earlier it’s more extensible as I can add more “objects” later as I expand the product.

To give a clue as to what this would mean to the user.  The use selects an iconic representation of, say, a “Standard” object (in MixAction it has it’s own name as the word “object” confused some of the people I tested on).  `

They drag and drop it onto the playlist (or double click, or right click and use the pop-up menu) and from there they can add audio files to that object and in the process select how they want that audio file to sound.

For example special effects like reverb etc, playing backwards, looping a certain number of times, fading, volume and so on.

MixAction then plays each object in the playlist much the same was as it did before, stopping at the end of the object playing – or moving and playing the next object as needed.  Plus of course it increments through the Acts and Scenes just like the original prototype from June.  Except now it supports multiple “players” (invisibly) all doing their playing thing.

Now the thing is the actual audio part is done.  It’s the object stuff that taking most of my time presently.  Mainly because it’s fiddly.  A lot of iterating of lists, a lot of checking for options for each item in the list and so on.

Needless to say it requires a heck of a lot of testing to make sure I’ve got it right before moving to the next one – and I don’t mind admitting on several occasions some code rewrites in places.  Thank goodness for Tortoise SVN!

I have, now, two direct software Windows competitors.  One being the original competitor who to his credit was first on the scene before myself.  The other being the lame goat who’s attempting to clone me by reading this blog.

Cloning A Live Blogger Is So Lame Even Your Mother Would Disown You!

The point is that the goat (see above) is set to release (so he’s telling his buddies) and has been expressing his discontent about all my corralling here and talk of objects.

The genuine competitor finally noticed his Version 2.0 download was broken and fixed it and I was able to see that he’s added scripting support – via a quasi programming language.  Which is pretty cool except it’s going to be pretty hard for his target to understand and memorize the scripting language I suspect.  Which is why I think the USP of objects in MixAction is so nice, though it’s not the primary USP – which, with some help from Bob Walsh and his book which I highly recommend.

When the website goes online finally (any day now) I’ll post a link.  It’s past time Google got some real food from me in respect of the MixAction website.

More coding tomorrow, thanks for dropping by!  :-)

Scott Kane

Quote of the day:
Lawyers spend a great deal of their time shoveling smoke. – Oliver Wendell Holmes Jr.

Feel Recursive? Tweet it!

Tags: , , , , , , ,

Post Author

This post was written by Scott Kane who has written 189 posts on The Recursive ISV.

No comments yet.

Leave a Reply