Saturday 30 July 2011

Work continues on Patches, Tempo and Tracks

Work continues on the next version of Symphonix Evolution.  Firstly, the patch map editor mentioned in the previous post is now complete and in version 1.85 it will be possible to setup or edit MIDI preset maps for external devices from right inside the app:
The patch maps are stored in XML format and can also be edited in a text editor on your PC by copying the files into or out of iTunes (more on this in future posts!).

We've also redesigned the screens for selecting tracks, presets and channels.  These replace the original "retro" screens, which looked great but were a bit awkward to use.  For example, here's the new Track Selection screen:
It combines two of the previous screens into a single panel, and also makes it easier to access the Mute, Solo and Hide functions.

The new Tempo selection makes it much easier to quickly enter the tempo you need:
We're now focusing on the next major feature, which I'll keep under wraps for now except to say that it adds significant functionality to the app.  More about this in the next post!

Wednesday 20 July 2011

Symphonix Evolution Work in Progress

It's been a while since I've posted about what we're working on with Symphonix Evolution, so here's a quick update.  This is the new track preset selection screen:
You can see that the instruments will be grouped into Families (these correspond to the General MIDI groups).  Select a Family in the left panel and the list of presets in that Family are displayed in the panel on the right.  This makes it much easier to quickly locate the instrument you need.

In the top part of the window you'll also see the ability to control whether the track should output to MIDI or the internal synth, or both (in the current version this is a global setting that can't be set on individual tracks).

There's also a Device Map function, which allows you to use one preset for the internal synth and a completely different preset when outputting to MIDI.  It will be possible to create new Device Maps, meaning that you can set up a mapping for your own MIDI devices and select all of the presets by name.  You can even use different devices on different tracks (provided they are on different MIDI channels).

Of course this is only one screen - there are many other enhancements and we'll keep you updated as we work toward the next release.  Stay tuned over the coming weeks!

Sunday 3 July 2011

Sketchtasy

We've released a different kind of app to our usual fare this week:  Sketchtasy!  This is a very basic drawing app for the iPad that offers pressure-sensitive input so the thickness of the lines you draw depends on how hard you are pressing on the screen.

Sketchtasy was designed to be as simple as possible.  It offers a full screen drawing panel and the ability to select a color from a palette that you can create from a huge selection of colors.  The only other feature is the ability to import a photo from your album and use it as a background so you can trace over it, and then remove the photo to reveal the final sketch...and that's it.  Nothing else stands in the way between you and your drawing so it's quick and easy to use.

Some readers might be interested in the technical aspects.

There are several noteworthy functions that combine to create the overall effect.  Firstly, the pressure sensitivity is based on an algorithm that constantly measures the accelerometer and works out an "average" touch pressure, which is then converted into a line thickness.  This isn't as simple as it sounds because the accelerometer only measures the amount of movement in a time period and not the pressure at any given moment, so we had to work out a way to translate the acceleration.

Secondly, to achieve good performance the new drawing strokes are rendered to an internal bitmap image.  While drawing the screen, this pre-rendered image is displayed first followed by only the latest stroke.  This is fairly standard practice for iOS drawing apps.  However, Sketchtasy also retains the original vectors of each drawing stroke and while at the moment it's only used for the Undo function, it technically makes it possible for us to implement an "infinite zoom" function or print at extremely high resolutions so we'll probably implement these in a future version.

Finally, however, the time it takes to process the accelerometer and translate it into pressure combined with the pre-rendering means that the touch responsiveness isn't as smooth as you'd think (or that we'd like).  We ended up using a quadratic bezier spline to interpolate the movement between adjacent points so that a smooth curve is displayed.

The end result is a drawing app where the thickness of the lines can change throughout the same stroke because of the touch pressure applied.  We think it adds a new element to the existing drawing apps that are out there - it was certainly a lot of fun to develop!

Symphonix Evolution 1.82 has been submitted to iTunes

It shouldn't be long now before you see the next update to Symphonix Evolution, subject to the usual App Store review.  As noted in the previous post, the main change in this update is significant performance and stability enhancements on iPad 2.  But we also couldn't resist adding some new features!
  • Added "lead in" count function when recording
  • Added "punch in/out" function to recording
  • Added "auto sync" function to keep notes aligned across all tracks while editing
  • Added new settings for Metronome to set the percussion channel notes used for beats and measures
  • Minor bug fixes to some editing functions

These address some of the requests made by users to our support mailbox.

The "Lead In" count function tells the app to count in for a number of measures before starting a real-time recording so you have time to prepare.  Punch In/Out allows you to re-record over part of a track without clearing the entire track, so you can correct errors easily.  Finally, Auto-Sync makes it possible to automatically line up the notes in other tracks with new notes as you drag them into the score so that each vertical "column" of notes represents the same time offset regardless of which track you're in.

The iPad 2 enhancements relate to differences in the CPUs used in iPad 1 vs iPad2, which caused the timing of some of the low-level waveform processing to be different depending on the device.  This in turn caused some of the functions to finish earlier or later than expected and that in turn impacted the audio quality.  In some cases it could even cause the app to crash, so we're very happy to report that the problem is now resolved.

We've got one more update coming soon to the MIDI Breakout Box app and then our focus will shift to the next major version of Symphonix Evolution - Big things are coming!