diff --git a/DrumKit.sln b/DrumKit.sln
new file mode 100644
index 0000000..b14fa24
--- /dev/null
+++ b/DrumKit.sln
@@ -0,0 +1,46 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DrumKit", "DrumKit\DrumKit.csproj", "{9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|ARM.ActiveCfg = Debug|ARM
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|ARM.Build.0 = Debug|ARM
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|ARM.Deploy.0 = Debug|ARM
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|x64.ActiveCfg = Debug|x64
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|x64.Build.0 = Debug|x64
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|x64.Deploy.0 = Debug|x64
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|x86.ActiveCfg = Debug|x86
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|x86.Build.0 = Debug|x86
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Debug|x86.Deploy.0 = Debug|x86
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|ARM.ActiveCfg = Release|ARM
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|ARM.Build.0 = Release|ARM
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|ARM.Deploy.0 = Release|ARM
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|x64.ActiveCfg = Release|x64
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|x64.Build.0 = Release|x64
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|x64.Deploy.0 = Release|x64
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|x86.ActiveCfg = Release|x86
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|x86.Build.0 = Release|x86
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/DrumKit.v11.suo b/DrumKit.v11.suo
new file mode 100644
index 0000000..973c967
Binary files /dev/null and b/DrumKit.v11.suo differ
diff --git a/DrumKit/App.xaml b/DrumKit/App.xaml
new file mode 100644
index 0000000..47bf33e
--- /dev/null
+++ b/DrumKit/App.xaml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DrumKit/App.xaml.cs b/DrumKit/App.xaml.cs
new file mode 100644
index 0000000..4106c6c
--- /dev/null
+++ b/DrumKit/App.xaml.cs
@@ -0,0 +1,90 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Application template is documented at http://go.microsoft.com/fwlink/?LinkId=234227
+
+namespace DrumKit
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ sealed partial class App : Application
+ {
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ this.Suspending += OnSuspending;
+ }
+
+ ///
+ /// Invoked when the application is launched normally by the end user. Other entry points
+ /// will be used when the application is launched to open a specific file, to display
+ /// search results, and so forth.
+ ///
+ /// Details about the launch request and process.
+ protected override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ Frame rootFrame = Window.Current.Content as Frame;
+
+ // Do not repeat app initialization when the Window already has content,
+ // just ensure that the window is active
+ if (rootFrame == null)
+ {
+ // Create a Frame to act as the navigation context and navigate to the first page
+ rootFrame = new Frame();
+
+ if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
+ {
+ //TODO: Load state from previously suspended application
+ }
+
+ // Place the frame in the current Window
+ Window.Current.Content = rootFrame;
+ }
+
+ if (rootFrame.Content == null)
+ {
+ // When the navigation stack isn't restored navigate to the first page,
+ // configuring the new page by passing required information as a navigation
+ // parameter
+ if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
+ {
+ throw new Exception("Failed to create initial page");
+ }
+ }
+ // Ensure the current window is active
+ Window.Current.Activate();
+ }
+
+ ///
+ /// Invoked when application execution is being suspended. Application state is saved
+ /// without knowing whether the application will be terminated or resumed with the contents
+ /// of memory still intact.
+ ///
+ /// The source of the suspend request.
+ /// Details about the suspend request.
+ private void OnSuspending(object sender, SuspendingEventArgs e)
+ {
+ var deferral = e.SuspendingOperation.GetDeferral();
+ //TODO: Save application state and stop any background activity
+ deferral.Complete();
+ }
+ }
+}
diff --git a/DrumKit/Assets/Drums/big_drum_of.png b/DrumKit/Assets/Drums/big_drum_of.png
new file mode 100644
index 0000000..412a66d
Binary files /dev/null and b/DrumKit/Assets/Drums/big_drum_of.png differ
diff --git a/DrumKit/Assets/Drums/big_drum_on.png b/DrumKit/Assets/Drums/big_drum_on.png
new file mode 100644
index 0000000..2ef7180
Binary files /dev/null and b/DrumKit/Assets/Drums/big_drum_on.png differ
diff --git a/DrumKit/Assets/Drums/drum_of.png b/DrumKit/Assets/Drums/drum_of.png
new file mode 100644
index 0000000..fbf9357
Binary files /dev/null and b/DrumKit/Assets/Drums/drum_of.png differ
diff --git a/DrumKit/Assets/Drums/drum_on.png b/DrumKit/Assets/Drums/drum_on.png
new file mode 100644
index 0000000..36c66cb
Binary files /dev/null and b/DrumKit/Assets/Drums/drum_on.png differ
diff --git a/DrumKit/Assets/Drums/plate_off.png b/DrumKit/Assets/Drums/plate_off.png
new file mode 100644
index 0000000..ea8fe3c
Binary files /dev/null and b/DrumKit/Assets/Drums/plate_off.png differ
diff --git a/DrumKit/Assets/Drums/plate_on.png b/DrumKit/Assets/Drums/plate_on.png
new file mode 100644
index 0000000..88f4865
Binary files /dev/null and b/DrumKit/Assets/Drums/plate_on.png differ
diff --git a/DrumKit/Assets/Logos/Logo.png b/DrumKit/Assets/Logos/Logo.png
new file mode 100644
index 0000000..e26771c
Binary files /dev/null and b/DrumKit/Assets/Logos/Logo.png differ
diff --git a/DrumKit/Assets/Logos/SmallLogo.png b/DrumKit/Assets/Logos/SmallLogo.png
new file mode 100644
index 0000000..1eb0d9d
Binary files /dev/null and b/DrumKit/Assets/Logos/SmallLogo.png differ
diff --git a/DrumKit/Assets/Logos/SplashScreen.png b/DrumKit/Assets/Logos/SplashScreen.png
new file mode 100644
index 0000000..c951e03
Binary files /dev/null and b/DrumKit/Assets/Logos/SplashScreen.png differ
diff --git a/DrumKit/Assets/Logos/StoreLogo.png b/DrumKit/Assets/Logos/StoreLogo.png
new file mode 100644
index 0000000..dcb6727
Binary files /dev/null and b/DrumKit/Assets/Logos/StoreLogo.png differ
diff --git a/DrumKit/Assets/Sounds/Crash05.wav b/DrumKit/Assets/Sounds/Crash05.wav
new file mode 100644
index 0000000..ba3a8d7
Binary files /dev/null and b/DrumKit/Assets/Sounds/Crash05.wav differ
diff --git a/DrumKit/Assets/Sounds/Floor04.wav b/DrumKit/Assets/Sounds/Floor04.wav
new file mode 100644
index 0000000..d69afa6
Binary files /dev/null and b/DrumKit/Assets/Sounds/Floor04.wav differ
diff --git a/DrumKit/Assets/Sounds/Hat04.WAV b/DrumKit/Assets/Sounds/Hat04.WAV
new file mode 100644
index 0000000..34e2c82
Binary files /dev/null and b/DrumKit/Assets/Sounds/Hat04.WAV differ
diff --git a/DrumKit/Assets/Sounds/HiHatOpen04.wav b/DrumKit/Assets/Sounds/HiHatOpen04.wav
new file mode 100644
index 0000000..84ebdcb
Binary files /dev/null and b/DrumKit/Assets/Sounds/HiHatOpen04.wav differ
diff --git a/DrumKit/Assets/Sounds/Kick07.wav b/DrumKit/Assets/Sounds/Kick07.wav
new file mode 100644
index 0000000..0259a09
Binary files /dev/null and b/DrumKit/Assets/Sounds/Kick07.wav differ
diff --git a/DrumKit/Assets/Sounds/Ride04.wav b/DrumKit/Assets/Sounds/Ride04.wav
new file mode 100644
index 0000000..3ea0b0a
Binary files /dev/null and b/DrumKit/Assets/Sounds/Ride04.wav differ
diff --git a/DrumKit/Assets/Sounds/Snare08.wav b/DrumKit/Assets/Sounds/Snare08.wav
new file mode 100644
index 0000000..544e22f
Binary files /dev/null and b/DrumKit/Assets/Sounds/Snare08.wav differ
diff --git a/DrumKit/Assets/Sounds/TomHigh04.wav b/DrumKit/Assets/Sounds/TomHigh04.wav
new file mode 100644
index 0000000..a5f84a9
Binary files /dev/null and b/DrumKit/Assets/Sounds/TomHigh04.wav differ
diff --git a/DrumKit/Assets/Sounds/TomLow04.wav b/DrumKit/Assets/Sounds/TomLow04.wav
new file mode 100644
index 0000000..3d2f960
Binary files /dev/null and b/DrumKit/Assets/Sounds/TomLow04.wav differ
diff --git a/DrumKit/Assets/bg.png b/DrumKit/Assets/bg.png
new file mode 100644
index 0000000..32bc151
Binary files /dev/null and b/DrumKit/Assets/bg.png differ
diff --git a/DrumKit/Assets/default b/DrumKit/Assets/default
new file mode 100644
index 0000000..c0aeb56
--- /dev/null
+++ b/DrumKit/Assets/default
@@ -0,0 +1,40 @@
+[Kick]
+ position=.41,.2
+ size=.3
+ image=ms-appx:///Assets/Drums/big_drum_of.png
+ sound,0=ms-appx:///Assets/Sounds/Kick07.wav
+[Snare]
+ position=.16,.34
+ size=.25
+ image=ms-appx:///Assets/Drums/drum_of.png
+ sound,0=ms-appx:///Assets/Sounds/Snare08.wav
+[High Tom]
+ position=.33,.05
+ size=.22
+ image=ms-appx:///Assets/Drums/drum_of.png
+ sound,0=ms-appx:///Assets/Sounds/TomHigh04.wav
+[Low Tom]
+ position=.55,.05
+ size=.22
+ image=ms-appx:///Assets/Drums/drum_of.png
+ sound,0=ms-appx:///Assets/Sounds/TomLow04.wav
+[Floor Tom]
+ position=.66,.44
+ size=.29
+ image=ms-appx:///Assets/Drums/drum_of.png
+ sound,0=ms-appx:///Assets/Sounds/Floor04.wav
+[HiHat]
+ position=.03,.55
+ size=.21
+ image=ms-appx:///Assets/Drums/plate_off.png
+ sound,0=ms-appx:///Assets/Sounds/HiHatOpen04.wav
+[Crash]
+ position=.1,.02
+ size=.25
+ image=ms-appx:///Assets/Drums/plate_off.png
+ sound,0=ms-appx:///Assets/Sounds/Crash05.wav
+[Ride]
+ position=.72,.04
+ size=.25
+ image=ms-appx:///Assets/Drums/plate_off.png
+ sound,0=ms-appx:///Assets/Sounds/Ride04.wav
diff --git a/DrumKit/Common/StandardStyles.xaml b/DrumKit/Common/StandardStyles.xaml
new file mode 100644
index 0000000..6ad467a
--- /dev/null
+++ b/DrumKit/Common/StandardStyles.xaml
@@ -0,0 +1,1833 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mouse
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DrumKit/Drum.cs b/DrumKit/Drum.cs
new file mode 100644
index 0000000..5d1992c
--- /dev/null
+++ b/DrumKit/Drum.cs
@@ -0,0 +1,107 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Media.Imaging;
+using Windows.UI.Xaml.Navigation;
+
+namespace DrumKit
+{
+ class Drum
+ {
+ #region Attributes
+ private Uri imageSource;
+ private Point position;
+ private double size;
+ #endregion
+
+ #region Public properties
+ ///
+ /// Gets or sets the name of the drum.
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// Gets or sets the image uri. If enabled, the image is loaded.
+ ///
+ public Uri ImageSource {
+ get { return this.imageSource; }
+ set { this.SetImageSource(value); }
+ }
+
+ ///
+ /// Gets or sets the position of the element on the screen.
+ ///
+ public Point Position {
+ get { return this.position; }
+ set { this.SetPosition(value); }
+ }
+
+ ///
+ /// Gets the size of the image displayed on the screen.
+ ///
+ public double Size {
+ get { return this.size; }
+ set { this.size = value; }
+ }
+
+ ///
+ /// Sound sources
+ ///
+ public Dictionary SoundSources
+ {
+ get;
+ private set;
+ }
+ #endregion
+
+ #region Constructor
+ public Drum()
+ {
+ // Initialize sources
+ this.SoundSources = new Dictionary();
+ this.imageSource = null;
+
+ // Set up other vars
+ this.position = new Point(0, 0);
+ this.size = 0;
+ this.Name = "";
+ }
+
+ #endregion
+
+ #region Setters
+ public void SetImageSource(Uri imagesrc)
+ {
+ // Set property
+ this.imageSource = imagesrc;
+ }
+
+ public void SetPosition(Point location)
+ {
+ // Set property
+ this.position = location;
+ }
+
+ public void SetSoundSource(int intensity, Uri source)
+ {
+ // Set up sound source
+ if (this.SoundSources.ContainsKey(intensity))
+ this.SoundSources[intensity] = source;
+
+ else this.SoundSources.Add(intensity, source);
+ }
+
+ #endregion
+
+ }
+}
diff --git a/DrumKit/DrumKit.csproj b/DrumKit/DrumKit.csproj
new file mode 100644
index 0000000..82efd6a
--- /dev/null
+++ b/DrumKit/DrumKit.csproj
@@ -0,0 +1,181 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {9A5D3F55-DFD5-45DB-99FF-C82EFCC3294D}
+ AppContainerExe
+ Properties
+ DrumKit
+ DrumKit
+ en-US
+ 512
+ {BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ DrumKit_TemporaryKey.pfx
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE;NETFX_CORE
+ prompt
+ 4
+
+
+ true
+ bin\ARM\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ ARM
+ false
+ prompt
+ true
+
+
+ bin\ARM\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ ARM
+ false
+ prompt
+ true
+
+
+ true
+ bin\x64\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ x64
+ false
+ prompt
+ true
+
+
+ bin\x64\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ x64
+ false
+ prompt
+ true
+
+
+ true
+ bin\x86\Debug\
+ DEBUG;TRACE;NETFX_CORE
+ ;2008
+ full
+ x86
+ false
+ prompt
+ true
+
+
+ bin\x86\Release\
+ TRACE;NETFX_CORE
+ true
+ ;2008
+ pdbonly
+ x86
+ false
+ prompt
+ true
+
+
+
+ App.xaml
+
+
+
+ MainPage.xaml
+
+
+
+
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
+ C:\Users\Tiberiu\Downloads\SharpDX\Bin\Standard-winrt\SharpDX.dll
+
+
+ C:\Users\Tiberiu\Downloads\SharpDX\Bin\Standard-winrt\SharpDX.XAudio2.dll
+
+
+
+
+ 11.0
+
+
+
+
\ No newline at end of file
diff --git a/DrumKit/DrumKit.csproj.user b/DrumKit/DrumKit.csproj.user
new file mode 100644
index 0000000..e98010e
--- /dev/null
+++ b/DrumKit/DrumKit.csproj.user
@@ -0,0 +1,6 @@
+
+
+
+ False
+
+
\ No newline at end of file
diff --git a/DrumKit/DrumKit_TemporaryKey.pfx b/DrumKit/DrumKit_TemporaryKey.pfx
new file mode 100644
index 0000000..3f836e0
Binary files /dev/null and b/DrumKit/DrumKit_TemporaryKey.pfx differ
diff --git a/DrumKit/MainPage.xaml b/DrumKit/MainPage.xaml
new file mode 100644
index 0000000..f0811a5
--- /dev/null
+++ b/DrumKit/MainPage.xaml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/DrumKit/MainPage.xaml.cs b/DrumKit/MainPage.xaml.cs
new file mode 100644
index 0000000..3f51b9c
--- /dev/null
+++ b/DrumKit/MainPage.xaml.cs
@@ -0,0 +1,201 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using Windows.Foundation;
+using Windows.Foundation.Collections;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+using Windows.UI.Xaml.Controls.Primitives;
+using Windows.UI.Xaml.Data;
+using Windows.UI.Xaml.Input;
+using Windows.UI.Xaml.Media;
+using Windows.UI.Xaml.Navigation;
+
+// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
+
+namespace DrumKit
+{
+ ///
+ /// An empty page that can be used on its own or navigated to within a Frame.
+ ///
+ public sealed partial class MainPage : Page
+ {
+ DrumRepository drumRepo;
+ SoundPlayer player = new SoundPlayer();
+ List uiImages;
+ List