diff --git a/PlayWall/assets/de/tobias/playpad/assets/view/main/mainViewV2.fxml b/PlayWall/assets/de/tobias/playpad/assets/view/main/mainViewV2.fxml
index 37c5902fa8d157f440bc0b97d720b35cc2249012..dbb3ca375d05f004c8b2d2ee7fa5e56651d5c719 100644
--- a/PlayWall/assets/de/tobias/playpad/assets/view/main/mainViewV2.fxml
+++ b/PlayWall/assets/de/tobias/playpad/assets/view/main/mainViewV2.fxml
@@ -13,7 +13,7 @@
             <VBox fx:id="headerBox" />
             <AnchorPane fx:id="gridContainer" VBox.vgrow="ALWAYS">
                <children>
-                  <GridPane fx:id="padGridPane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" VBox.vgrow="ALWAYS">
+                  <GridPane fx:id="padGridPane" gridLinesVisible="true" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" VBox.vgrow="ALWAYS">
       </GridPane>
                </children>
             </AnchorPane>
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/BasicMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/BasicMenuToolbarViewController.java
index 428eb6400ff7ad3bcb3ee63295defcf5fd38df75..40506594ff84fae081f337b7821715e11b5a5cc4 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/BasicMenuToolbarViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/BasicMenuToolbarViewController.java
@@ -120,6 +120,11 @@ public abstract class BasicMenuToolbarViewController extends MenuToolbarViewCont
 			volumeSlider.setValue(volumeSlider.getValue() - ev.getDeltaY() * 0.001);
 			volumeSlider.setValue(volumeSlider.getValue() + ev.getDeltaX() * 0.001);
 		});
+		
+		volumeSlider.valueProperty().addListener((a, b, c) ->
+		{
+			mainViewController.setPadVolume(c.doubleValue());
+		});
 	}
 
 	// Profile Listener
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
index 20026f81c2079b458fe153ec1ee2e0d108227149..2b9352380dd3ca2addf045b8381dfbdf91283275 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
@@ -16,6 +16,7 @@ import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.scene.control.Button;
 import javafx.scene.control.MenuItem;
+import javafx.scene.control.Slider;
 import javafx.scene.image.Image;
 
 public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewController implements EventHandler<ActionEvent> {
@@ -39,6 +40,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 		for (int i = 0; i < settings.getPageCount(); i++) {
 			Button button = new Button(Localization.getString(Strings.UI_Window_Main_PageButton, (i + 1)));
 			button.setUserData(i);
+			button.setFocusTraversable(false);
 			button.setOnAction(this);
 			pageHBox.getChildren().add(button);
 		}
@@ -85,6 +87,11 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 	public void deinit() {
 		// TODO Implement
 	}
+	
+	@Override
+	public Slider getVolumeSlider() {
+		return volumeSlider;
+	}
 
 	@Override
 	public void handle(ActionEvent event) {
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
index a34ba1a0fa3febd6f83086fd2e9af7569fda39c5..ed5995a8e00b133464174fc9c3968efe8d99e726 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
@@ -6,6 +6,7 @@ import de.tobias.playpad.view.main.MenuType;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
 import javafx.event.ActionEvent;
 import javafx.scene.control.MenuItem;
+import javafx.scene.control.Slider;
 import javafx.scene.image.Image;
 
 public class TouchMenuToolbarViewController extends BasicMenuToolbarViewController {
@@ -59,10 +60,14 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 
 	}
 
+	@Override
+	public Slider getVolumeSlider() {
+		return null;
+	}
+
 	@Override
 	public void handle(ActionEvent event) {
-		// TODO Auto-generated method stub
-		
+
 	}
 
 }
\ No newline at end of file
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
index eb5df8819fa89e747083d812f22ae8bf78307af7..9b2537d7a4460e35280f456428a888cd46e7e7e6 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
@@ -185,7 +185,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 		});
 	}
 
-	private void setPadVolume(double volume) {
+	public void setPadVolume(double volume) {
 		for (Pad pad : project.getPads().values()) {
 			if (pad != null)
 				pad.setMasterVolume(volume);
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java
index 044444c2adde47d016450ac2f7930c7ad3474037..752fb052d3b21c0d3132a31394179b02cc11d0aa 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java
@@ -9,6 +9,7 @@ import javax.sound.midi.MidiUnavailableException;
 
 import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.Strings;
+import de.tobias.playpad.action.Mapping;
 import de.tobias.playpad.action.mapper.listener.KeyboardHandler;
 import de.tobias.playpad.action.mapper.listener.MidiHandler;
 import de.tobias.playpad.design.GlobalDesign;
@@ -31,7 +32,9 @@ import de.tobias.utils.ui.scene.NotificationPane;
 import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.OS;
 import de.tobias.utils.util.OS.OSType;
+import de.tobias.utils.util.Worker;
 import javafx.application.Platform;
+import javafx.beans.property.DoubleProperty;
 import javafx.event.EventHandler;
 import javafx.event.EventType;
 import javafx.fxml.FXML;
@@ -88,6 +91,7 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 		setMainLayout(new DesktopMainLayoutConnect()); // DEBUG
 
 		Profile.registerListener(this);
+		reloadSettings(null, Profile.currentProfile());
 
 		/*
 		 * Gridline Color
@@ -297,9 +301,11 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 	 *            neues Project
 	 */
 	public void openProject(Project project) {
+		removePadsFromView();
+
 		if (project != null)
 			removePadsFromView();
-		createPadViews(); // TODO Weg hier, nur wenn sich profile ändert
+		// createPadViews(); // TODO Weg hier, nur wenn sich profile ändert
 
 		openProject = project;
 
@@ -409,10 +415,60 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 		return currentPageShowing;
 	}
 
+	@Override
+	public void setPadVolume(double volume) {
+		if (openProject != null) {
+			for (Pad pad : openProject.getPads().values()) {
+				if (pad != null)
+					pad.setMasterVolume(volume);
+			}
+		}
+	}
+
 	// Settings
 	@Override
-	public void reloadSettings(Profile oldProfile, Profile currentProfile) {
+	public void reloadSettings(Profile old, Profile currentProfile) {
 		createPadViews();
+
+		final DoubleProperty valueProperty = menuToolbarViewController.getVolumeSlider().valueProperty();
+
+		if (old != null) {
+			// Unbind Volume Slider
+			valueProperty.unbindBidirectional(old.getProfileSettings().volumeProperty());
+			// Clear Feedback on Devie (LaunchPad Light off)
+			old.getMappings().getActiveMapping().getActions().forEach(action -> action.clearFeedback());
+		}
+
+		// Volume
+		valueProperty.bindBidirectional(currentProfile.getProfileSettings().volumeProperty());
+
+		final ProfileSettings profilSettings = currentProfile.getProfileSettings();
+		final Mapping activeMapping = currentProfile.getMappings().getActiveMapping();
+
+		// MIDI
+		if (profilSettings.isMidiActive() && profilSettings.getMidiDevice() != null) {
+			// Load known MIDI Device
+			Worker.runLater(() ->
+			{
+				loadMidiDevice(profilSettings.getMidiDevice());
+
+				applyColorsToMappers();
+
+				Platform.runLater(() ->
+				{
+					// Handle Mapper
+					if (Profile.currentProfile() != null) {
+						activeMapping.initFeedback();
+						activeMapping.showFeedback(openProject);
+					}
+				});
+			});
+		}
+		
+		loadUserCss();
+		if (old != null && currentProfile != null) {
+			showPage(currentPageShowing);
+		}
 	}
 
 	@Override
@@ -484,6 +540,26 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 		applyColorsToMappers();
 	}
 
+	/**
+	 * Init MIDI Device by using the Midi Class and show some feedback the user.
+	 * 
+	 * @param name
+	 *            Device Name
+	 * 
+	 * @see Midi#lookupMidiDevice(String)
+	 */
+	private void loadMidiDevice(String name) {
+		try {
+			midi.lookupMidiDevice(name);
+			notificationPane.showAndHide(Localization.getString(Strings.Info_Midi_Device_Connected, name), PlayPadMain.displayTimeMillis);
+		} catch (NullPointerException e) {
+			showError(Localization.getString(Strings.Error_Midi_Device_Unavailible, name));
+		} catch (IllegalArgumentException | MidiUnavailableException e) {
+			showError(Localization.getString(Strings.Error_Midi_Device_Busy, e.getLocalizedMessage()));
+			e.printStackTrace();
+		}
+	}
+
 	@Override
 	public void applyColorsToMappers() {
 
@@ -507,7 +583,7 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 	public MidiListener getMidiHandler() {
 		return midiHandler;
 	}
-	
+
 	@Override
 	public MenuToolbarViewController getMenuToolbarController() {
 		return menuToolbarViewController;
diff --git a/PlayWallCore/src/de/tobias/playpad/action/MappingList.java b/PlayWallCore/src/de/tobias/playpad/action/MappingList.java
index 542f990dd43b94f82651f87c102881f3ff40cd0c..bd9774d15abb108db63b4c1063fd9060894c77a9 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/MappingList.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/MappingList.java
@@ -93,6 +93,12 @@ public class MappingList extends ArrayList<Mapping> {
 
 		XMLHandler<Mapping> handler = new XMLHandler<>(rootElement);
 		handler.saveElements(MAPPING, this, new MappingSerializer());
+		
+		if (Files.notExists(path)) {
+			Files.createDirectories(path.getParent());
+			Files.createFile(path);
+		}
+		
 		XMLHandler.save(path, document);
 	}
 
diff --git a/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java b/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java
index c294f988e95d9cb20e92bad25c88f7a4070ad403..8727d7b22a7c2121f96ed64972dd42986b05751c 100644
--- a/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java
+++ b/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/IMainViewController.java
@@ -71,4 +71,6 @@ public interface IMainViewController extends NotificationHandler {
 	public MidiListener getMidiHandler();
 	
 	public MenuToolbarViewController getMenuToolbarController();
+
+	public void setPadVolume(double doubleValue);
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java b/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java
index 4eaedb401f6f12fd4d3a2b296155f8d92bd5da54..b28e343d23d923315f125c2ac7e88d1db25788a9 100644
--- a/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java
+++ b/PlayWallCore/src/de/tobias/playpad/viewcontroller/main/MenuToolbarViewController.java
@@ -6,6 +6,7 @@ import de.tobias.playpad.settings.ProfileSettings;
 import de.tobias.playpad.view.main.MenuType;
 import de.tobias.utils.ui.ContentViewController;
 import javafx.scene.control.MenuItem;
+import javafx.scene.control.Slider;
 import javafx.scene.image.Image;
 
 /**
@@ -122,4 +123,6 @@ public abstract class MenuToolbarViewController extends ContentViewController {
 	 * Deinitialisiert den Controller.
 	 */
 	public abstract void deinit();
+
+	public abstract Slider getVolumeSlider();
 }