Sequencers, Synthesizers, and Software, Oh My! Building Great Music Creation Apps for Windows Store

Sign in to queue

Description

People love expressing themselves by creating music on their mobile devices. This talk will briefly discuss why creative apps are important and how you can build the best music creation apps on Windows. We will show several of the top music creation apps today using new Windows features, how you can use these new features, and what Microsoft is doing in the future to make the experience even better.

For more information, check out these courses on Microsoft Virtual Academy:

Day:

3

Code:

3-548

Room:

Room 2001

Embed

Download

The Discussion

  • User profile image
    TheOliver

    Awesome cool Session ... Where are the Demos Codes ? :)

  • User profile image
    Psychlist19​72

    Thanks!

    Code for MIDI will be up soon. Jason will also post the link for his sample which is already on GitHub.

    The preview MIDI API itself is now live on NuGet. It requires Windows 8.1 Update 1.

    https://www.nuget.org/packages/Microsoft.WindowsPreview.MidiRT/1.0.0

    API Documentation

    http://msdn.microsoft.com/en-us/library/windows/apps/dn643522.aspx

     

  • User profile image
    Psychlist19​72

    dup

  • User profile image
    Psychlist19​72

    Devices used in this demo:

    • Elektron Analog Four
    • Novation LaunchKeys Mini
    • A couple PCs.

    Pete

  • User profile image
    seane

    Great session.  If there were evaluation links somewhere, I would evaluate...

  • User profile image
    JasonOlson

    Thanks again for everybody that was there in person and for folks watching it online now :). As I mentioned in the talk, my demo code (the Beat Builder) is up on GitHub here: https://github.com/jolson88/BeatBuilder. It's published under the MIT license, so do anything with it that you want. Go nuts :).

  • User profile image
    Matt

    Jason, Is the output port device selector supposed to list software devices like MS GW Wave Synth? It does not appear to list them, and I was wondering how I could use a software device for testing purposes.

    Great session by the way, thanks for posting the code.

  • User profile image
    ComputerLove

    THANK YOU FOR LISTENING!!!

    You guys are now officially back on the path of awesomeness.

  • User profile image
    KateWerner

    @Matt: No, the preview API does not list MS GW Wave Synth as an output device.  We'd love to hear feedback if this is something you'd like to see (sounds like you do :)).

  • User profile image
    delinx32

    @KateWerner:I think access to software devices is needed for two reasons:

    1) If you open up the default software devices then devs can market the app to everyone, not just people willing to buy a 200$+ synth device.

    2) The only reason to have this functionality on a tablet is to use it "on the go".  I don't think users should have to carry a synth device around just to tap out a couple of beats while waiting in line or sitting on the bus.  

    Is there a feedback site/forum yet?  I couldn't find one.

     

  • User profile image
    KateWerner

    @delinx32: Thanks for the feedback!

    Please use the pro-audio discussion forum on MSDN.

  • User profile image
    seane

    re: WinRT MIDI API

    Please make multi-client support a high priority especially if this is going to be the basis of desktop MIDI.  USB-MIDI on the desktop is only useable with custom device drivers in many situations.  Please support multi-client access of class compliant devices.

    http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/95928afe-25d1-465d-9069-4723a3c0dc8c/usb-class-compliant-midi-drivers-what-does-micorsoft-do?forum=wdk

     

    Edit: Actually, it should be high priority for non-desktop since we are even less likely to get custom drivers on Windows RT for class-compliant usb-midi interfaces/devices.

  • User profile image
    ComputerLove

    How about RTP-MIDI built-in?

     

  • User profile image
    Jim Young

    , ComputerLove wrote

    How about RTP-MIDI built-in?

    ^^^^ Agreed.

     

  • User profile image
    ProgramAudio

    Thank you for the presentation on audio and MIDI apps!

    I would be interested in being able to trigger events in an app from a MIDI foot controller, such as the IK Multimedia iRig BlueBoard, or the Behringer FCB1010.
    Would there be any way to communicate to the BlueBoard or a USB-MIDI adapter (for the FCB1010) without custom drivers?
  • User profile image
    seane

    (moved to my original comment)

  • User profile image
    dentaku

    , ComputerLove wrote

    How about RTP-MIDI built-in?

     


    Absolutely... totally agree
    A tablet is fine as a controller but a more powerful PC is always better for the actual sound creation so linking them together wirelessly is the obvious way to do it.

    I'm going to watch the video now, hopefully there's something that least you add virtual MIDI devices in Win8.1 without having to rely on stuff like Midi-Yoke.

  • User profile image
    ibluesun

    @KateWerner I would really love to have a software synthesizer :)   ..  would be more happier if it can support sound fonts also

    there is a library called FluidSynth   I can't make it compile for windows store apps :)

    so any replacement would be marvelous for us :)

     

  • User profile image
    Psychlist19​72

    Asking for feedback here:

    I'm curious about the requests for built-in software synthesizers/midi synth. Is that something that you expect will really be used? Is it worth focusing time on that vs. other features?

    Just not sure the old general MIDI synth is all that useful these days. At least, I haven't used it for probably a good decade and a half. Just checking to see if that's just me, though.

    Pete

  • User profile image
    Mark Smith

    The issue is if anyone makes an app they want to sound like any sort of musical instrument they obviously have to have a way of generating a decent quality output- soundfont or VST in oldspeak.
    These apps will not mainly connect to external midi devices.
    Mark

  • User profile image
    Psychlist19​72

    The issue is if anyone makes an app they want to sound like any sort of musical instrument they obviously have to have a way of generating a decent quality output- soundfont or VST in oldspeak.
    These apps will not mainly connect to external midi devices.
    Mark

    The whole second part of the talk is about using WASAPI to create sound. Most app designers have their own sound synthesis.

    Soundfont or similar support is an interesting request. That came up during the session as well. Luckily, even if not built into the core OS, this should be something that would be relatively easy to build up as a sample (or even a reusable package) using Jason's code.

    VSTs and plug-ins in general would be great to have. Lots of security and UI layer things to consider there, though. Are you looking for VSTs specifically, or something similar, or ...?

    Pete

  • User profile image
    Mark Smith

    Thanks very much for your reply.
    I am particularly interested in being able to use soundfonts.
    I have used the bass midi library on full windows to facilitate their use. If it were possible for some kind person (unveiled hint) to put together a sample that would be ABSOLUTELY SUPER-DOOPER.
    Thanks
    Mark

  • User profile image
    JasonOlson

    Hm, I haven't looked into Sound Fonts much, but I think I may need to :). My current pet project at home is to get LibPd working on top of the demo code shown in this talk so then I can use Pure Data patches as a synthesizer solution that doesn't have to be built from scratch.

  • User profile image
    Javier Perez

    Yes! RTP-MIDI built-in support will be awesome to control devices/desktop app with a surface/tablet.

  • User profile image
    PeteBeech

    Soundfont support would be great - and I think it would be worth supporting the general midi software synth as well, it'd definitely be useful for some situations.

  • User profile image
    Christian Gradl

    LibPD for Windows Phone? would love that, i developed some synths with libpd for ios and Android this framework would be awesome on Windows Phone!!!

  • User profile image
    Christian Gradl

    FYI: i have a simple app in the wp store for sending Midi and OSC Data to your Dj and Music Software: http://freshvanroot.com/metroosc/

    I am also working on a Windows8 version with an interface builder similar to TouchOSC

  • User profile image
    Psychlist19​72

    @Christian

    Cool! Would love to see a few apps like that in the Windows Store.

  • User profile image
    JasonOlson

    LibPD for Windows Phone? would love that, i developed some synths with libpd for ios and Android this framework would be awesome on Windows Phone!!!

     

    Thanks Christian! I'll write up a post when I get it working. My issue right now is that the libPD project isn't compiling on Windows for me to get the library file to use. Some of the included PD source files expect pthread.h which doesn't exist on Windows since it's not POSIX thread compliant. I believe the full-blown Pure Data has a solution for compiling it on Windows that get's around this. So I'm hoping to use that work around to get LibPD compiling on Windows and then will mess around getting it to work on top of WASAPI. 

  • User profile image
    PhilipClark

    This is HUGE. As a musician, I can't wait until apps start rolling in.

    There needs to be a basic music sequencer, i.e. Cubase or Logic, that works with MIDI USB. I would love to be able to interface my Yamaha MX61 with my Surface 2. That would be huge.

  • User profile image
    JeffMc​Clintock

    Thanks for MIDI! Real showstopper for pro audio until now.

    Previously I tried to make a full duplex store app, struggled for a long time before giving up. The idea was to make for example a guitar "stomp-box" effect app that could effect live audio in real-time. After reading other people's attempts I decided the API's either didn't work or were too buggy to work consistently.

    Would love to have a working sample of low-latency full-duplex WASAPI audio ;) even something real simple like a volume control store-app (no I don't want to make a volume control app, more like a chorus unit etc, but a volume control would be enough to illustrate the concept).
     My current apps use C++ audio-rendering with a C# XAML, or HTML GUI.

  • User profile image
    rebb

    I am also developing musical stuff with Pure Data on iOS platform, and would love to see it on windows phone 8! Hope to see it soon.

  • User profile image
    gabegarza10​21

    @Psychlist1972:

    Hey Pete or any other MS person,

    I know this is a Windows Preview API but how long do you think it will be till this becomes an offiical release?

    What you guys have right now is perfect for what I'm doing and I can communicate with Logic and Cubase on my iMac.

    This is awesome. [H]

    Gabe

    Update: Using MIDI with first generation Surface RT to communicate to my iMac.

     

     

  • User profile image
    Psychlist19​72

    @gabe

    The current plan is to have this remain as a preview while we get feedback. We may roll some of that feedback into API updates and release them via NuGet, still as preview. The final version of the API will come in the next version of Windows. There are a number of technical reasons why that's the case. For example, the requirement of having to pick an architecture instead of AnyCPU is not something we'd want in the final API, but it's a necessity on Windows 8.1. Another is that we want this to be the API to use going forward, desktop, WinRT, etc., but cannot make it available for desktop in Windows 8.1.

    That said, we want the preview to be as useful and stable as possible.

    So please, use the API, build and list some cool apps, and be sure to put your feedback in the pro audio forums on MSDN.

    http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/home?forum=windowspro-audiodevelopment

     

  • User profile image
    gabegarza10​21

    list some cool apps

    When you say this, this means showcase what your doing but I can't post in the Windows Store just yet. I just wanted to verify.

     

  • User profile image
    Psychlist19​72

    The WinRT MIDI API Preview has a go-live license. You can list your apps in the Windows Store when you use this API.

    Pete

  • User profile image
    Psychlist19​72

    FYI. The version of FL Studio Groove with MIDI is now in the Windows Store.

    Remember: you must have Windows 8.1 Update 1 to run it. If you run into any issues with MIDI timing, device recognition, or anything else, please let me know directly, rather than rate the app (the MIDI API is preview, recall).

    Huge thanks to Image-Line for getting this app out to the Windows Store!

    http://apps.microsoft.com/windows/en-us/app/fl-studio-groove/45739f6c-beaf-4215-bf87-b64b6f8ad871

  • User profile image
    Noemata

    RTP-Midi support is essential. Keep in mind that MIDI is not just for musical instruments. Light control systems have leveraged MIDI for some time. There are many examples of alternate uses for MIDI.

    Being able to use a tablet as a control surface is a basic must have that requires both MIDI ant RTP-Midi support.

    There should also be a soft-synth like capability built in with MIDI support. Or better yet, implement a DX7 like synth in hardware and build it into the tablet. Could prove to be an advantage for next generation Surface tablets.

  • User profile image
    peted

    "I'm curious about the requests for built-in software synthesizers/midi synth. Is that something that you expect will really be used?"

    Yes. As others have mentioned, not everyone will actually have a synth to hook to.

    Also, while I realize modern games all do their own audio stuff, IMHO this has as much to do with the lack of a useful, uniform, modern MIDI API as anything else.

    Even with advances in storage size, there are still good reasons to prefer MIDI for playback. Mobile devices, which have sent us back a decade and a half or more in terms of storage size, really scream out for a space-efficient way to represent music for apps. Yes, games (for example) carry along a bunch of PCM or MP3 files for music, sfx, etc. but that's as much out of necessity as anything else.

    Also, it is much more compelling as a developer to consider writing a MIDI-capable app if one knows that it will work on any device, due to the presence of a software GM synth, rather than their market being limited only to people who are hooking their device to an external MIDI device.

    Personally, I'd like to see the return of DirectMusic. It never really got the love from Microsoft that it deserved, and I'd love to see it get a second chance.

    But barring that, please at least give us a good self-contained GM synth story.

  • User profile image
    rebb

    JasonOlson:
    About pthread.h, maybe you already found this?

    "I found that pd for windows supplies it's own pthread library: pthreadVC.lib and dll. And includes pthread.h and sched.h."

    taken from here:
    http://createdigitalnoise.com/discussion/116/libpd-and-windows-dll

  • User profile image
    scott

    Only just found out about this API - I thought it would be the answer to all my prayers about MIDI support!!!! Unfortunately, without support for software GM synth it is completely useless to me.

    I'm developing an music tutorial app that relies heavily on MIDI files for musical examples. I need to be able to run it on any platform >Win8.1 (including Phone possibly) but definitely tablet and desktop. I cannot rely on user having hardware synth.

    Is there any other solution?

  • User profile image
    scott

    If API doesn't support built-in software synthesizers/midi synth, how does FL Studio Groove work?

Add Your 2 Cents