Sunday, May 03, 2015

Music Notation App: StaffPad; music & sound fonts

Presented during Keynote of Microsoft Build conference
Day One Keynote Presentation | Build 2015 | Channel 9

Developing StaffPad, a new class of music notation application with Dr. Matthew Tesch on the Hanselminutes Technology Podcast: Fresh Air for Developers

StaffPad - Write Naturally
"StaffPad is a brand new class of notation app, designed to take advantage of the advanced pen and touch input found on Microsoft Surface* and other compatible Windows 8.1 devices. As you write notation using the pen, StaffPad recognises your handwritten music and converts it into a beautifully typeset score which you can further edit, playback, print and share. StaffPad combines the best of working on paper with the best of working digitally, evolving the same process that's been used for hundreds of years to write countless masterpieces. Natural pen input, detailed orchestral playback and powerful score editing features mean that StaffPad is perfect for professionals, and easy for beginners."


"SoundFont is a brand name that collectively refers to a file format and associated technology designed to bridge the gap between recorded and synthesized audio, especially for the purposes of computer music composition."

"A Web of Apps" (Windows 10)

App-to-App Communication: Building a Web of Apps | Build 2015 | Channel 9
"...Wouldn't it be great if every device contained a web of apps working together rather than just the silos we see today? In this talk we discuss the tools available to developers to build just such a web of apps on Windows 10, including launchers, pickers, app services, and more..."

"Deep Linking" Windows 8 linking of apps:

Launcher.LaunchUriAsync(new Uri(“myapp:?name=value“));

When there are multiple apps with same registered URI, OS or user needs to choose
This can be used to return data (async)

App Services: store apps can provide services to other store apps
Think Web Services…on a device

var conn = new AppServiceConnection();
conn.AppServiceName = “FooAppService”;
conn.PackageFamilyName = “12Me.MyApp“;
var status = await conn.OpenAsync();

Best Practices
  • Wrap your custom scheme or app service in an SDK
  • Use NuGet to distribute SDK
  • Use REST-style versioning. For breaking changes, expose a new endpoint
Microsoft Ignite - Sessions
Building a Web of Apps: Launchers, Pickers, App Services, and Much More

Building a Web of Apps on Windows 10 | aruntalkstech

App Links - Cross-platform, open source, and simple mobile deep-linking

Bing App Linking | MSDN

A Web Of Apps | TechCrunch (2011)
"app discovery remains a challenge. Whether in an app store, on the device itself, or via a third-party service. Whoever cracks the nut of app discovery will have the potential to be the next Google: the search engine of the modern age. The search engine for a web of apps."