diff --git a/PlayWall/assets/de/tobias/playpad/assets/view/audio/tinySoundSettings.fxml b/PlayWall/assets/de/tobias/playpad/assets/view/audio/tinySoundSettings.fxml
index dec8adcf9d311f4a8d8c9ab7b27f9fe00a685994..3bc628651c3be6d86bd71a62dc915fa7b1d6f0fd 100644
--- a/PlayWall/assets/de/tobias/playpad/assets/view/audio/tinySoundSettings.fxml
+++ b/PlayWall/assets/de/tobias/playpad/assets/view/audio/tinySoundSettings.fxml
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<?import javafx.scene.control.*?>
 <?import java.lang.*?>
+<?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
 
-
 <HBox spacing="14.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
    <children>
-      <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="19.0" maxHeight="1.7976931348623157E308" prefWidth="150.0" text="%tinysound.label.soundcard" />
       <ComboBox fx:id="soundCardComboBox" layoutX="118.0" layoutY="14.0" prefHeight="26.0" prefWidth="241.0" />
       <Button fx:id="testButton" layoutX="372.0" layoutY="14.0" mnemonicParsing="false" onAction="#testButtonHandler" />
    </children>
diff --git a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerConnect.java b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerConnect.java
index 55faa68979db2e06bc6785f179baf2e25b2cdc4d..24e5ee44d90437d47c5a133b015ace6cb4f23757 100644
--- a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerConnect.java
+++ b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerConnect.java
@@ -34,4 +34,9 @@ public class ClipAudioHandlerConnect extends AudioHandlerConnect implements Auto
 		}
 		return false;
 	}
+
+	@Override
+	public AudioHandlerViewController getAudioFeatureSettings(AudioCapability audioCapablility) {
+		return null;
+	}
 }
diff --git a/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerConnect.java b/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerConnect.java
index 85cbfc728b19d6443165680d0be11caa0c08f28f..fb63c182d18ddb891dc3b55d9892f46954c49aa0 100644
--- a/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerConnect.java
+++ b/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerConnect.java
@@ -28,4 +28,9 @@ public class JavaFXHandlerConnect extends AudioHandlerConnect {
 		}
 		return false;
 	}
+	
+	@Override
+	public AudioHandlerViewController getAudioFeatureSettings(AudioCapability audioCapablility) {
+		return null;
+	}
 }
diff --git a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
index af2517a0048ecf80ced4686990eb09bd8edf477e..8e8e8d163388f59d0c83e044316b52fddb7eb3d6 100644
--- a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
@@ -38,7 +38,7 @@ import javazoom.jl.decoder.JavaLayerException;
 import kuusisto.tinysound.Music;
 import kuusisto.tinysound.TinySound;
 
-public class TinyAudioHandler extends AudioHandler {
+public class TinyAudioHandler extends AudioHandler implements Soundcardable {
 
 	public static final String SOUND_CARD = "SoundCard";
 
@@ -212,7 +212,8 @@ public class TinyAudioHandler extends AudioHandler {
 
 	@Override
 	public void loadMedia(Path[] paths) {
-		initTinySound();
+		String audioCardName = (String) Profile.currentProfile().getProfileSettings().getAudioUserInfo().get(SOUND_CARD);
+		initTinySound(audioCardName);
 
 		unloadMedia();
 		Platform.runLater(() ->
@@ -296,9 +297,7 @@ public class TinyAudioHandler extends AudioHandler {
 
 	private static String audioCardName;
 
-	private void initTinySound() {
-		String audioCardName = (String) Profile.currentProfile().getProfileSettings().getAudioUserInfo().get(SOUND_CARD);
-
+	private void initTinySound(String audioCardName) {
 		if (TinyAudioHandler.audioCardName != null) {
 			if (!TinyAudioHandler.audioCardName.equals(audioCardName)) {
 				TinySound.shutdown();
@@ -332,4 +331,9 @@ public class TinyAudioHandler extends AudioHandler {
 		executorService.shutdown();
 		positionThread.interrupt();
 	}
+
+	@Override
+	public void setOutputDevice(String name) {
+		initTinySound(name);
+	}
 }
diff --git a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerConnect.java b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerConnect.java
index 2a30f26096cc1903350e41949affaf715100c79c..af7bc01e9e2ffdd0281f2649c737d44fc323033f 100644
--- a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerConnect.java
+++ b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerConnect.java
@@ -34,4 +34,12 @@ public class TinyAudioHandlerConnect extends AudioHandlerConnect implements Auto
 		}
 		return false;
 	}
+	
+	@Override
+	public AudioHandlerViewController getAudioFeatureSettings(AudioCapability audioCapablility) {
+		if (audioCapablility == AudioCapability.SOUNDCARD) {
+			return new TinySoundSettingsViewController();
+		}
+		return null;
+	}
 }
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java
index b70770965d34c42106290a5b5a3c8196fc6e0b7e..d577a3a3313f4ecf2c82e5cddd2fb56fb7543e9b 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java
@@ -1,5 +1,8 @@
 package de.tobias.playpad.viewcontroller.option.profile;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.Strings;
@@ -32,7 +35,7 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 	@FXML private ComboBox<String> audioTypeComboBox;
 	@FXML private VBox options;
 
-	private AudioHandlerViewController audioViewController;
+	private List<AudioHandlerViewController> audioViewController;
 	private boolean changeAudioSettings;
 
 	public AudioTabViewController(boolean playerActive) {
@@ -46,6 +49,8 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 
 	@Override
 	public void init() {
+		audioViewController = new ArrayList<>();
+
 		ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings();
 
 		// Audio Classes
@@ -53,8 +58,7 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 		audioTypeComboBox.getItems().addAll(audioHandlerRegistry.getTypes());
 
 		// Listener for selection
-		audioTypeComboBox.getSelectionModel().selectedItemProperty().addListener((a, b, c) ->
-		{
+		audioTypeComboBox.getSelectionModel().selectedItemProperty().addListener((a, b, c) -> {
 			if (b != null && c != null)
 				changeAudioSettings = true;
 			showAudioSettings(c);
@@ -64,7 +68,8 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 
 	private void showAudioSettings(String classID) {
 		if (audioViewController != null) {
-			if (audioViewController.isChanged()) {
+			// Es gibt ein Settings View Controller der isChanged true ist
+			if (audioViewController.stream().filter(c -> c.isChanged()).count() > 0) {
 				changeAudioSettings = true;
 			}
 		}
@@ -84,20 +89,32 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 	}
 
 	private Parent createCapabilityView(AudioHandlerConnect audio, AudioCapability audioCapability) {
-		HBox hbox = new HBox(14);
+		HBox masterView = new HBox(14);
+		VBox detailView = new VBox(14);
+
 		Label nameLabel = new Label(Localization.getString(audioCapability.getName()));
 		nameLabel.setAlignment(Pos.CENTER_RIGHT);
 		nameLabel.setMinWidth(150);
 
+		AudioHandlerViewController settingsViewController = null;
+
 		Label availableLabel;
 		if (audio.isFeatureAvaiable(audioCapability)) {
 			availableLabel = new FontIcon(FontAwesomeType.CHECK);
+
+			settingsViewController = audio.getAudioFeatureSettings(audioCapability);
 		} else {
 			availableLabel = new FontIcon(FontAwesomeType.TIMES);
 		}
 
-		hbox.getChildren().addAll(nameLabel, availableLabel);
-		return hbox;
+		detailView.getChildren().add(availableLabel);
+		if (settingsViewController != null) {
+			detailView.getChildren().add(settingsViewController.getParent());
+			audioViewController.add(settingsViewController);
+		}
+
+		masterView.getChildren().addAll(nameLabel, detailView);
+		return masterView;
 	}
 
 	@Override
@@ -118,10 +135,8 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 
 	@Override
 	public boolean needReload() {
-		if (audioViewController != null) {
-			if (audioViewController.isChanged()) {
-				changeAudioSettings = true;
-			}
+		if (audioViewController.stream().filter(c -> c.isChanged()).count() > 0) {
+			changeAudioSettings = true;
 		}
 		return changeAudioSettings;
 	}
@@ -129,6 +144,7 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 	@Override
 	public Task<Void> getTask(ProfileSettings settings, Project project, IMainViewController controller) {
 		return new Task<Void>() {
+
 			@Override
 			protected Void call() throws Exception {
 				updateTitle(name());
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerConnect.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerConnect.java
index 15ee28d8a532a3cea64778328c4f595f316c82b3..122976a4f70e57b0802c04646ec55a9e6c9a3eb3 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerConnect.java
+++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerConnect.java
@@ -4,7 +4,8 @@ import de.tobias.playpad.pad.conntent.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
 
 /**
- * Audio Handler Interface zur Verwaltung einer AudioHandler Implementierung. Für Aktionen beim schließen des Programmes, muss der AudioHandler
+ * Audio Handler Interface zur Verwaltung einer AudioHandler Implementierung.
+ * Für Aktionen beim schließen des Programmes, muss der AudioHandler
  * AutoClosable implementieren.
  * 
  * @author tobias
@@ -44,4 +45,14 @@ public abstract class AudioHandlerConnect {
 	 * @return <code>true</code> Verfügbar
 	 */
 	public abstract boolean isFeatureAvaiable(AudioCapability audioCapability);
+
+	/**
+	 * Gibt wenn vorhanden einen ViewController für die entsprechenden
+	 * Einstellungen zurück.
+	 * 
+	 * @param audioCapablility
+	 *            Audio Feature
+	 * @return ViewController
+	 */
+	public abstract AudioHandlerViewController getAudioFeatureSettings(AudioCapability audioCapablility);
 }
diff --git a/PlayWallNativeWin/MANIFEST.MF b/PlayWallNativeWin/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..eeb2a06cb316a736ee9a6705b198d6a0156eed29
--- /dev/null
+++ b/PlayWallNativeWin/MANIFEST.MF
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+Class-Path: . nawin/jni4net.j-0.8.8.0.jar nawin/NativeAudio.j4n.jar
diff --git a/PlayWallNativeWin/j4n/NativeAudio.dll b/PlayWallNativeWin/j4n/NativeAudio.dll
index fff208682998191bb5fd58c8100cada3dd37e35d..66fd392f1b50cfdbf9d1e538c930a588e829ed79 100644
Binary files a/PlayWallNativeWin/j4n/NativeAudio.dll and b/PlayWallNativeWin/j4n/NativeAudio.dll differ
diff --git a/PlayWallNativeWin/j4n/NativeAudio.j4n.dll b/PlayWallNativeWin/j4n/NativeAudio.j4n.dll
index 7b2db090abeaaf57e7cd652f28caf10bfbfa1d56..027e55fe7f081795f015ee94eebc9343253ce83f 100644
Binary files a/PlayWallNativeWin/j4n/NativeAudio.j4n.dll and b/PlayWallNativeWin/j4n/NativeAudio.j4n.dll differ
diff --git a/PlayWallNativeWin/j4n/NativeAudio.j4n.jar b/PlayWallNativeWin/j4n/NativeAudio.j4n.jar
index c88e638822beb9a0d9f267ea0f963a89b43a4175..7c16f4dcfe164f54f971cea054c321b18743aafa 100644
Binary files a/PlayWallNativeWin/j4n/NativeAudio.j4n.jar and b/PlayWallNativeWin/j4n/NativeAudio.j4n.jar differ
diff --git a/PlayWallNativeWin/j4n/build.cmd b/PlayWallNativeWin/j4n/build.cmd
index 5f40ca806ce1871dbf5428e570ddfc5cce4cc3a7..93c3e641600b8a6f4a57703ad63cb7c157bcdc3d 100644
--- a/PlayWallNativeWin/j4n/build.cmd
+++ b/PlayWallNativeWin/j4n/build.cmd
@@ -14,7 +14,7 @@ IF %ERRORLEVEL% NEQ 0 goto end
 
 
 echo NativeAudio.j4n.dll 
-csc /nologo /warn:0 /t:library /out:NativeAudio.j4n.dll /recurse:clr\*.cs  /reference:"D:\Programmieren\Git-Java\PlayWall\PlayWallNativeWin\j4n\NativeAudio.dll" /reference:"D:\Programmieren\Git-Java\PlayWall\PlayWallNativeWin\j4n\jni4net.n-0.8.8.0.dll"
+csc /nologo /warn:0 /t:library /out:NativeAudio.j4n.dll /recurse:clr\*.cs  /reference:"D:\Programmieren\Git-Java\PlayWall\PlayWallNativeWin\j4n\NativeAudio.dll" /reference:"D:\Programmieren\Git-Java\PlayWall\PlayWallNativeWin\j4n\NAudio.dll" /reference:"D:\Programmieren\Git-Java\PlayWall\PlayWallNativeWin\j4n\jni4net.n-0.8.8.0.dll"
 IF %ERRORLEVEL% NEQ 0 goto end
 
 
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinPlugin.java b/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPlugin.java
similarity index 71%
rename from PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinPlugin.java
rename to PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPlugin.java
index 21d877b6fa47a505c92f23c78f155144da560257..15c41b1901399365f4dd11536445f9b73fd73355 100644
--- a/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinPlugin.java
+++ b/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPlugin.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.nawin.audio;
+package de.tobias.playpad.nawin;
 
 import de.tobias.playpad.plugin.AdvancedPlugin;
 
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPluginImpl.java b/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPluginImpl.java
index b20dd30b48f06fd0d05c2e580e41de3b859f2d94..afd3fdf74e0faf6e1cfecfd7c212b30f3363c107 100644
--- a/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPluginImpl.java
+++ b/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinPluginImpl.java
@@ -7,7 +7,6 @@ import java.nio.file.Path;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.audio.AudioRegistry;
 import de.tobias.playpad.nawin.audio.NativeAudioWinHandlerConnect;
-import de.tobias.playpad.nawin.audio.NativeAudioWinPlugin;
 import de.tobias.playpad.plugin.Module;
 import de.tobias.updater.client.Updatable;
 import de.tobias.utils.application.App;
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.dll b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.dll
index e85f118b0af0c8c9a03777d25938e76a635adcb1..66fd392f1b50cfdbf9d1e538c930a588e829ed79 100644
Binary files a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.dll and b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.dll differ
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.dll b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.dll
index 7b2db090abeaaf57e7cd652f28caf10bfbfa1d56..027e55fe7f081795f015ee94eebc9343253ce83f 100644
Binary files a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.dll and b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.dll differ
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.jar b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.jar
index 8f888bc0ebad18acd661a0d0ea694791d69778a4..7c16f4dcfe164f54f971cea054c321b18743aafa 100644
Binary files a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.jar and b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/NativeAudio.j4n.jar differ
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/Test-Sound.wav b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/Test-Sound.wav
new file mode 100644
index 0000000000000000000000000000000000000000..1a627d7c84165c6131c47134b1ca1f4fcb0bf3be
Binary files /dev/null and b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/Test-Sound.wav differ
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/nawinSettings.fxml b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/nawinSettings.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..3bc628651c3be6d86bd71a62dc915fa7b1d6f0fd
--- /dev/null
+++ b/PlayWallNativeWin/src/de/tobias/playpad/nawin/assets/nawinSettings.fxml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import java.lang.*?>
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<HBox spacing="14.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
+   <children>
+      <ComboBox fx:id="soundCardComboBox" layoutX="118.0" layoutY="14.0" prefHeight="26.0" prefWidth="241.0" />
+      <Button fx:id="testButton" layoutX="372.0" layoutY="14.0" mnemonicParsing="false" onAction="#testButtonHandler" />
+   </children>
+</HBox>
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioSettingsViewController.java b/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioSettingsViewController.java
new file mode 100644
index 0000000000000000000000000000000000000000..21665a0bf7d79d134bded2f8755dfb411c68a9cf
--- /dev/null
+++ b/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioSettingsViewController.java
@@ -0,0 +1,112 @@
+package de.tobias.playpad.nawin.audio;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import de.tobias.playpad.settings.Profile;
+import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
+import de.tobias.utils.application.ApplicationUtils;
+import de.tobias.utils.application.container.PathType;
+import de.tobias.utils.ui.icon.FontAwesomeType;
+import de.tobias.utils.ui.icon.FontIcon;
+import de.tobias.utils.util.IOUtils;
+import de.tobias.utils.util.Worker;
+import javafx.application.Platform;
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.scene.control.Button;
+import javafx.scene.control.ComboBox;
+import nativeaudio.NativeAudio;
+
+public class NativeAudioSettingsViewController extends AudioHandlerViewController {
+
+	@FXML private ComboBox<String> soundCardComboBox;
+	@FXML private Button testButton;
+
+	private boolean isChanged;
+
+	private NativeAudio audioPlayer;
+
+	public NativeAudioSettingsViewController() {
+		super("nawinSettings", "de/tobias/playpad/nawin/assets/", null);
+
+		testButton.setGraphic(new FontIcon(FontAwesomeType.PLAY));
+
+		soundCardComboBox.getItems().setAll(NativeAudio.getDevices());
+
+		String name = (String) Profile.currentProfile().getProfileSettings().getAudioUserInfo()
+				.get(NativeAudioWinHandler.SOUND_CARD);
+		for (String info : NativeAudio.getDevices()) {
+			if (info.equals(name)) {
+				soundCardComboBox.getSelectionModel().select(info);
+				break;
+			}
+		}
+
+		// ersten Auswählen wenn keiner ausgewählt ist, damit keine Probleme
+		// auftreten da keiene Soundkarte ausgewäht ist
+		if (soundCardComboBox.getSelectionModel().getSelectedItem() == null) {
+			soundCardComboBox.getSelectionModel().selectFirst();
+		}
+
+		soundCardComboBox.getSelectionModel().selectedItemProperty().addListener((a, b, c) -> {
+			if (audioPlayer != null) {
+				audioPlayer.stop();
+				audioPlayer = null;
+				testButton.setGraphic(new FontIcon(FontAwesomeType.PLAY));
+			}
+
+			isChanged = true;
+			Profile.currentProfile().getProfileSettings().getAudioUserInfo().put(NativeAudioWinHandler.SOUND_CARD, c);
+		});
+	}
+
+	@FXML
+	private void testButtonHandler(ActionEvent event) {
+		Path file = ApplicationUtils.getApplication().getPath(PathType.RESOURCES, "Test-Sound.wav");
+		if (Files.notExists(file)) {
+			InputStream iStr = getClass().getClassLoader()
+					.getResourceAsStream("de/tobias/playpad/nawin/assets/Test-Sound.wav");
+			try {
+				Files.createDirectories(file.getParent());
+				IOUtils.copy(iStr, file);
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+
+		if (audioPlayer == null) {
+			audioPlayer = new NativeAudio();
+			audioPlayer.load(file.toString());
+			audioPlayer.setDevice(soundCardComboBox.getValue());
+		}
+		if (audioPlayer.isPlaying()) {
+			audioPlayer.stop();
+			audioPlayer = null;
+			testButton.setGraphic(new FontIcon(FontAwesomeType.PLAY));
+		} else {
+			audioPlayer.play();
+			Worker.runLater(() -> {
+				while (audioPlayer != null && audioPlayer.isPlaying()) {
+					try {
+						Thread.sleep(50);
+					} catch (InterruptedException e) {
+						e.printStackTrace();
+					}
+				}
+				if (audioPlayer != null)
+					audioPlayer.stop();
+				Platform.runLater(() -> testButton.setGraphic(new FontIcon(FontAwesomeType.PLAY)));
+			});
+			testButton.setGraphic(new FontIcon(FontAwesomeType.STOP));
+		}
+	}
+
+	@Override
+	public boolean isChanged() {
+		return isChanged;
+	}
+}
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinHandler.java b/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java
similarity index 79%
rename from PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinHandler.java
rename to PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java
index 0851ed0333c6f317dc2908ee04d865b4d717ab1c..48c0508bcda7f0318cb90b64976c4725881eb146 100644
--- a/PlayWallNativeWin/src/de/tobias/playpad/nawin/NativeAudioWinHandler.java
+++ b/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.nawin;
+package de.tobias.playpad.nawin.audio;
 
 import java.nio.file.Path;
 import java.util.ArrayList;
@@ -7,9 +7,11 @@ import java.util.Iterator;
 import java.util.List;
 
 import de.tobias.playpad.audio.AudioHandler;
+import de.tobias.playpad.audio.Soundcardable;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.settings.Profile;
 import javafx.application.Platform;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ReadOnlyObjectProperty;
@@ -17,7 +19,9 @@ import javafx.beans.property.SimpleObjectProperty;
 import javafx.util.Duration;
 import nativeaudio.NativeAudio;
 
-public class NativeAudioWinHandler extends AudioHandler {
+public class NativeAudioWinHandler extends AudioHandler implements Soundcardable {
+
+	public static final String SOUND_CARD = "SoundCard";
 
 	private NativeAudio audioHandler;
 	private ObjectProperty<Duration> durationProperty;
@@ -79,6 +83,7 @@ public class NativeAudioWinHandler extends AudioHandler {
 	@Override
 	public void play() {
 		audioHandler.setLoop(getContent().getPad().getPadSettings().isLoop());
+
 		audioHandler.play();
 
 		boolean start = false;
@@ -141,12 +146,25 @@ public class NativeAudioWinHandler extends AudioHandler {
 
 	@Override
 	public void loadMedia(Path[] paths) {
+		Platform.runLater(() -> {
+			if (getContent().getPad().isPadVisible()) {
+				getContent().getPad().getController().getView().showBusyView(true);
+			}
+		});
 		if (audioHandler == null)
 			audioHandler = new NativeAudio();
 		audioHandler.load(paths[0].toString());
+
+		String name = (String) Profile.currentProfile().getProfileSettings().getAudioUserInfo()
+				.get(NativeAudioWinHandler.SOUND_CARD);
+		audioHandler.setDevice(name);
+
 		Platform.runLater(() -> {
 			durationProperty.set(Duration.millis(audioHandler.getDuration()));
 			getContent().getPad().setStatus(PadStatus.READY);
+			if (getContent().getPad().isPadVisible()) {
+				getContent().getPad().getController().getView().showBusyView(false);
+			}
 		});
 	}
 
@@ -156,4 +174,9 @@ public class NativeAudioWinHandler extends AudioHandler {
 		audioHandler = null;
 	}
 
+	@Override
+	public void setOutputDevice(String name) {
+		audioHandler.setDevice(name);
+	}
+
 }
diff --git a/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerConnect.java b/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerConnect.java
index c4f7f393ed6df87c33df3f4d2ef516734359e0c6..57239777045fb95a608f912e6719ea4fde6eb935 100644
--- a/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerConnect.java
+++ b/PlayWallNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerConnect.java
@@ -3,7 +3,6 @@ package de.tobias.playpad.nawin.audio;
 import de.tobias.playpad.audio.AudioCapability;
 import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.AudioHandlerConnect;
-import de.tobias.playpad.nawin.NativeAudioWinHandler;
 import de.tobias.playpad.pad.conntent.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
 
@@ -33,4 +32,11 @@ public class NativeAudioWinHandlerConnect extends AudioHandlerConnect {
 		return false;
 	}
 
+	@Override
+	public AudioHandlerViewController getAudioFeatureSettings(AudioCapability audioCapablility) {
+		if (audioCapablility == AudioCapability.SOUNDCARD) {
+			return new NativeAudioSettingsViewController();
+		}
+		return null;
+	}
 }