diff --git a/PlayWall/pom.xml b/PlayWall/pom.xml
index 1986a291c3a2e6e9e915da9222130557ca230f5b..3c602909a640a8ca4db07aaf1f7e0b6da3ffe53f 100644
--- a/PlayWall/pom.xml
+++ b/PlayWall/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallDesktop</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWall</artifactId>
@@ -42,7 +42,7 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-expression</artifactId>
-            <version>5.1.2.RELEASE</version>
+            <version>5.3.37</version>
         </dependency>
 
         <!--Testing-->
@@ -55,13 +55,13 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.13.1</version>
+            <version>${junit.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.assertj</groupId>
             <artifactId>assertj-core</artifactId>
-            <version>3.11.1</version>
+            <version>3.26.3</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
index 2f3410e6c6596dfcd5d9e0166054c124c8a2f14a..0bf06c92286c6d0ebeefd1bdbc277fad9cb60ed2 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
@@ -342,7 +342,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 	@Override
 	public void initPageButtons() {
 		currentSelectedPageButton = -1;
-		pageHBox.getChildren().clear();
+		pageButtonPage.getChildren().clear();
 
 		if (openProject == null) {
 			return;
@@ -353,7 +353,7 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 
 			Button button = createPageButton(page, i);
 			button.setOnDragOver(new PageButtonDragHandler(mainViewController, i));
-			pageHBox.getChildren().add(button);
+			pageButtonPage.getChildren().add(button);
 		}
 	}
 
@@ -469,8 +469,8 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 	@Override
 	public void highlightPageButton(int index) {
 		if (index >= 0) {
-			if (pageHBox.getChildren().size() > currentSelectedPageButton && currentSelectedPageButton >= 0) {
-				Node removeNode = pageHBox.getChildren().get(currentSelectedPageButton);
+			if (pageButtonPage.getChildren().size() > currentSelectedPageButton && currentSelectedPageButton >= 0) {
+				Node removeNode = pageButtonPage.getChildren().get(currentSelectedPageButton);
 				removeNode.getStyleClass().remove(CURRENT_PAGE_BUTTON);
 
 				if (removeNode instanceof Button) {
@@ -478,8 +478,8 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 				}
 			}
 
-			if (index < pageHBox.getChildren().size()) {
-				Node newNode = pageHBox.getChildren().get(index);
+			if (index < pageButtonPage.getChildren().size()) {
+				Node newNode = pageButtonPage.getChildren().get(index);
 				newNode.getStyleClass().add(CURRENT_PAGE_BUTTON);
 				currentSelectedPageButton = index;
 
@@ -501,7 +501,8 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 			dialog.showAndWait().ifPresent(projectReference -> {
 				try {
 					PlayPadMain.getProgramInstance().openProject(projectReference, null);
-				} catch (DocumentException | IOException | ProjectNotFoundException | ProfileNotFoundException | ProfileAbortException e) {
+				} catch (DocumentException | IOException | ProjectNotFoundException | ProfileNotFoundException |
+						 ProfileAbortException e) {
 					Logger.error(e);
 				}
 			});
diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java b/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
index 3fb75001df01637862485a3527bba1ff909218f0..ee25525a9a8875b46321a11890319edcf7abe3cc 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
@@ -53,7 +53,7 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 
 	@Override
 	public void initPageButtons() {
-		pageHBox.getChildren().clear();
+		pageButtonPage.getChildren().clear();
 
 		if (openProject == null) {
 			return;
@@ -63,7 +63,7 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 			Page page = openProject.getPage(i);
 
 			Button button = createPageButton(page, i);
-			pageHBox.getChildren().add(button);
+			pageButtonPage.getChildren().add(button);
 		}
 	}
 
@@ -120,13 +120,13 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 	@Override
 	public void highlightPageButton(int index) {
 		if (index >= 0) {
-			if (pageHBox.getChildren().size() > currentPage) {
-				Node removeNode = pageHBox.getChildren().get(currentPage);
+			if (pageButtonPage.getChildren().size() > currentPage) {
+				Node removeNode = pageButtonPage.getChildren().get(currentPage);
 				removeNode.getStyleClass().remove(CURRENT_PAGE_BUTTON);
 			}
 
-			if (pageHBox.getChildren().size() > index) {
-				Node newNode = pageHBox.getChildren().get(index);
+			if (pageButtonPage.getChildren().size() > index) {
+				Node newNode = pageButtonPage.getChildren().get(index);
 				newNode.getStyleClass().add(CURRENT_PAGE_BUTTON);
 				currentPage = index;
 			}
diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/BasicMenuToolbarViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/BasicMenuToolbarViewController.java
index 83735e21ac0f46412f97377344554a679c6faa03..1a9a06e9c0e8d9ec28771f88ac47c5a29c459222 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/BasicMenuToolbarViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/main/BasicMenuToolbarViewController.java
@@ -19,6 +19,7 @@ import javafx.scene.control.Button;
 import javafx.scene.control.Label;
 import javafx.scene.control.Menu;
 import javafx.scene.control.Slider;
+import javafx.scene.layout.FlowPane;
 import javafx.scene.layout.HBox;
 
 import java.util.ResourceBundle;
@@ -32,7 +33,7 @@ public abstract class BasicMenuToolbarViewController extends MenuToolbarViewCont
 	protected HBox iconHbox;
 
 	@FXML
-	protected HBox pageHBox;
+	protected FlowPane pageButtonPage;
 	@FXML
 	protected HBox toolbarHBox;
 	@FXML
@@ -50,7 +51,7 @@ public abstract class BasicMenuToolbarViewController extends MenuToolbarViewCont
 
 	protected Project openProject; // REFERENCE zu MainViewController
 
-	public BasicMenuToolbarViewController(String name, String path, ResourceBundle localization) {
+	protected BasicMenuToolbarViewController(String name, String path, ResourceBundle localization) {
 		super(name, path, localization);
 	}
 
diff --git a/PlayWall/src/main/resources/view/main/desktop/Header.fxml b/PlayWall/src/main/resources/view/main/desktop/Header.fxml
index 8383f694f9a847157ff36e78fd1a0264919ff3f3..10862fb1a201dd5ce401ce6735b150032cc30f9a 100644
--- a/PlayWall/src/main/resources/view/main/desktop/Header.fxml
+++ b/PlayWall/src/main/resources/view/main/desktop/Header.fxml
@@ -150,8 +150,7 @@
         <HBox fx:id="toolbarHBox" alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" spacing="14.0"
               styleClass="tool-bar">
             <children>
-                <HBox fx:id="pageHBox" alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" spacing="14.0"
-                      HBox.hgrow="ALWAYS"/>
+                <FlowPane fx:id="pageButtonPage" alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" hgap="14.0" vgap="14.0" HBox.hgrow="ALWAYS" />
                 <HBox fx:id="notFoundContainer" alignment="CENTER" spacing="14.0">
                     <children>
                         <Label fx:id="notFoundLabel"/>
diff --git a/PlayWall/src/main/resources/view/main/touch/Header.fxml b/PlayWall/src/main/resources/view/main/touch/Header.fxml
index 2c9b346a42af0a85b71dfc8ae1ea7a8ca78c6fcd..e8a2ccea5422a8e0fb145ce18144998c71536fa0 100644
--- a/PlayWall/src/main/resources/view/main/touch/Header.fxml
+++ b/PlayWall/src/main/resources/view/main/touch/Header.fxml
@@ -5,7 +5,7 @@
 <?import javafx.scene.text.Font?>
 <HBox fx:id="toolbarHBox" alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" prefHeight="28.0" prefWidth="586.0" spacing="14.0" styleClass="tool-bar" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
     <children>
-        <HBox fx:id="pageHBox" alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" spacing="14.0" HBox.hgrow="ALWAYS" />
+        <FlowPane fx:id="pageButtonPage" alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308" hgap="14.0" vgap="14.0" HBox.hgrow="ALWAYS" />
         <HBox fx:id="notFoundContainer" alignment="CENTER" spacing="7.0">
             <children>
                 <Label fx:id="notFoundLabel" />
diff --git a/PlayWallComponents/pom.xml b/PlayWallComponents/pom.xml
index 294c91b4e93d28cb1a77a0cf9135c618ed9e0abc..4a26fa2de0dc8b71f9f986352d911fa70fbd445f 100644
--- a/PlayWallComponents/pom.xml
+++ b/PlayWallComponents/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallDesktop</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWallComponents</artifactId>
diff --git a/PlayWallCore/pom.xml b/PlayWallCore/pom.xml
index eb5dbc6e6e2a1679abac09b8ca6f43693f5233db..6d24de97f561511a9023b75f2951c2805337108c 100644
--- a/PlayWallCore/pom.xml
+++ b/PlayWallCore/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallDesktop</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWallCore</artifactId>
diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/project/ProjectSettings.java b/PlayWallCore/src/main/java/de/tobias/playpad/project/ProjectSettings.java
index 3752ac7216f80a8d5177323af98b2e88617285fb..c47070e76912ac40090b6df97c12624c864bf722 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/project/ProjectSettings.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/project/ProjectSettings.java
@@ -9,7 +9,7 @@ import java.nio.file.Path;
 
 public class ProjectSettings implements IProjectSettings {
 
-	public static int MAX_PAGES = 10;
+	public static int MAX_PAGES = 50;
 
 	static {
 		final UserDefaults userDefaults = ApplicationUtils.getApplication().getUserDefaults();
diff --git a/PlayWallPlugins/PlayWallPluginAwake/pom.xml b/PlayWallPlugins/PlayWallPluginAwake/pom.xml
index 4adbb1fe997eb1c95e4d63c22fd5a576443fbd3f..cd7ad7f3bb3a4eb96bb748320ee93a5186d25999 100644
--- a/PlayWallPlugins/PlayWallPluginAwake/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginAwake/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWallPluginAwake</artifactId>
diff --git a/PlayWallPlugins/PlayWallPluginAwake/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginAwake/src/main/resources/plugin.yml
index 1bea69c3d21b2f3bb8d9d3c0fe37a2b1a4289bff..9876e5371c5735776b116d527c88f28bd7af3357 100644
--- a/PlayWallPlugins/PlayWallPluginAwake/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginAwake/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "AwakePlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 6
+build: 7
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/pom.xml b/PlayWallPlugins/PlayWallPluginContentPlayer/pom.xml
index 79ef01a0dd458ffb5393d6b4e46d04dd8f5528c5..2b1ea31ae47f8614f7d592d7f74c73146a34292a 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/plugin.yml
index ab799a2ebc8b70a0738d245c287c2a2dce96e1cc..5c3cc969f14f29f2f44576fec83163e4f117dc7b 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "ContentPlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 2
+build: 3
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala
index febbe097823de5f48a1b9f98abf4e950ad9ddd4f..9d335b7ef87852f99ce567576b0e9471daabf361 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerPluginConfiguration.scala
@@ -60,12 +60,8 @@ class Zone extends Displayable {
 
 	override def toString: String = name
 
-	def canEqual(other: Any): Boolean = other.isInstanceOf[Zone]
-
 	override def equals(other: Any): Boolean = other match {
-		case that: Zone =>
-			(that canEqual this) &&
-			  name == that.name
+		case that: Zone => id == that.id
 		case _ => false
 	}
 
diff --git a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerSettingsViewController.scala b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerSettingsViewController.scala
index 232afcb4edf0fa98c5b8bbdd3a7236d8b2efa6dc..f76e44fbf37d6595df7a57bbea8bb2104b0c795a 100644
--- a/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerSettingsViewController.scala
+++ b/PlayWallPlugins/PlayWallPluginContentPlayer/src/main/scala/de/tobias/playpad/plugin/content/settings/ContentPlayerSettingsViewController.scala
@@ -157,15 +157,15 @@ class ContentPlayerSettingsViewController extends ProfileSettingsTabViewControll
 	override def loadSettings(settings: Profile): Unit = {
 		val configuration = ContentPlayerSettingsViewController.getZoneConfiguration
 		startZoneHash = configuration.zones.hashCode
-		startScreenHash = configuration.screen.hashCode
+		startScreenHash = if (configuration.screen != null) configuration.screen.hashCode else 0
 
 		listView.getItems.setAll(configuration.zones)
 
 		val screens = ContentPlayerWindow.GetScreens
 		val selectedScreen = configuration.screen
 		screenComboBox.getSelectionModel.select(new SelectableContentScreen(screens
-		  .find(screen => screen.getName == selectedScreen)
-		  .getOrElse(screens.head)))
+			.find(screen => screen.getName == selectedScreen)
+			.getOrElse(screens.head)))
 
 		ffmpegTextField.setText(configuration.ffmpegExecutable)
 		ffprobeTextField.setText(configuration.ffprobeExecutable)
@@ -188,8 +188,8 @@ class ContentPlayerSettingsViewController extends ProfileSettingsTabViewControll
 	}
 
 	override def needReload(): Boolean = startZoneHash != ContentPlayerSettingsViewController.getZoneConfiguration.zones.hashCode ||
-	  startScreenHash != ContentPlayerSettingsViewController.getZoneConfiguration.screen.hashCode ||
-	  !listView.getSelectionModel.isEmpty
+		startScreenHash != ContentPlayerSettingsViewController.getZoneConfiguration.screen.hashCode ||
+		!listView.getSelectionModel.isEmpty
 
 	override def validSettings(): Boolean = {
 		true
diff --git a/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml b/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml
index 8097ef2cead6f6da5ba2eac0b15064decef70653..26aeeceea0ae70d17d2326dfce9372c5d7fc5034 100644
--- a/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginEqualizer/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWallPluginEqualizer</artifactId>
diff --git a/PlayWallPlugins/PlayWallPluginEqualizer/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginEqualizer/src/main/resources/plugin.yml
index e38303219263f8b911b9b2a20654b58ff118d9f9..ea6ec91b63faf02a3049c8891f86b3df712d9168 100644
--- a/PlayWallPlugins/PlayWallPluginEqualizer/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginEqualizer/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "EqualizerPlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 7
+build: 8
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml b/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml
index fd2be163795c167fb1e426c7e41b3d8972d62e9c..f0eb498873599900052fa2b64a0ec30067a24b58 100644
--- a/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWallPluginLaunchpad</artifactId>
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
index 971674a1105103c029cf319691fe08f2c9a6331c..8f85c706314a1e57850c02b07e6342f8468408b7 100644
--- a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
@@ -6,6 +6,7 @@ import de.thecodelabs.plugins.PluginDescriptor;
 import de.thecodelabs.plugins.versionizer.PluginArtifact;
 import de.thecodelabs.utils.util.Localization;
 import de.tobias.playpad.launchpadplugin.midi.mk2.LaunchPadMK2;
+import de.tobias.playpad.launchpadplugin.midi.mk3mini.LaunchPadMK3Mini;
 import de.tobias.playpad.launchpadplugin.midi.s.LaunchPadS;
 import de.tobias.playpad.plugin.Module;
 import de.tobias.playpad.plugin.PlayPadPluginStub;
@@ -23,6 +24,8 @@ public class LaunchpadPluginImpl implements PlayPadPluginStub, PluginArtifact {
 		final MidiFeedbackTranscriptionRegistry registry = MidiFeedbackTranscriptionRegistry.getInstance();
 		registry.register(LaunchPadMK2.NAME, new LaunchPadMK2());
 		registry.register(LaunchPadMK2.NATIVE_NAME, new LaunchPadMK2());
+		registry.register(LaunchPadMK3Mini.NAME, new LaunchPadMK3Mini());
+		registry.register(LaunchPadMK3Mini.NATIVE_NAME, new LaunchPadMK3Mini());
 		registry.register(LaunchPadS.NAME, new LaunchPadS());
 		registry.register(LaunchPadS.NATIVE_NAME, new LaunchPadS());
 
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/midi/mk3mini/LaunchPadMK3Color.java b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/midi/mk3mini/LaunchPadMK3Color.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef5eff591f4ec4e3fd76c7e9e9a536f3e8d7ef09
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/midi/mk3mini/LaunchPadMK3Color.java
@@ -0,0 +1,121 @@
+package de.tobias.playpad.launchpadplugin.midi.mk3mini;
+
+import de.thecodelabs.midi.feedback.FeedbackColor;
+import javafx.scene.paint.Color;
+import javafx.scene.paint.Paint;
+
+public enum LaunchPadMK3Color implements FeedbackColor {
+
+	/*
+	High
+	Normal
+	Low
+	 */
+
+	// White
+	C0_3(3, Color.rgb(255, 255, 255)),
+	C0_2(2, Color.rgb(255, 255, 255).darker()),
+	C0_1(1, Color.rgb(255, 255, 255).darker().darker()),
+
+	// RED
+	C1_1(5, Color.rgb(255, 0, 0)),
+	C1_2(6, Color.rgb(255, 0, 0).darker()),
+	C1_3(7, Color.rgb(255, 0, 0).darker().darker()),
+
+	// Orange
+	C2_1(9, Color.rgb(255, 127, 0)),
+	C2_2(10, Color.rgb(255, 127, 0).darker()),
+	C2_3(11, Color.rgb(255, 127, 0).darker().darker()),
+
+	// LIME
+	C3_1(13, Color.rgb(235, 255, 39)),
+	C3_2(14, Color.rgb(235, 255, 39).darker()),
+	C3_3(15, Color.rgb(235, 255, 39).darker().darker()),
+
+	// LIGHT GREEN
+	C4_1(17, Color.rgb(123, 255, 66)),
+	C4_2(18, Color.rgb(123, 255, 66).darker()),
+	C4_3(19, Color.rgb(123, 255, 66).darker().darker()),
+
+	// GREEN
+	C5_1(21, Color.rgb(0, 255, 0)),
+	C5_2(22, Color.rgb(0, 255, 0).darker()),
+	C5_3(23, Color.rgb(0, 255, 0).darker().darker()),
+
+	// GREEN
+	C6_1(25, Color.rgb(62, 255, 112)),
+	C6_2(26, Color.rgb(62, 255, 112).darker()),
+	C6_3(27, Color.rgb(62, 255, 112).darker().darker()),
+
+	// TURKEY
+	C7_1(29, Color.rgb(62, 255, 112)),
+	C7_2(30, Color.rgb(62, 255, 112).darker()),
+	C7_3(31, Color.rgb(62, 255, 112).darker().darker()),
+
+	// TURKEY
+	C8_1(33, Color.rgb(101, 255, 196)),
+	C8_2(34, Color.rgb(101, 255, 196).darker()),
+	C8_3(35, Color.rgb(101, 255, 196).darker().darker()),
+
+	// LIGHT BLUE
+	C9_1(37, Color.rgb(91, 255, 253)),
+	C9_2(38, Color.rgb(91, 255, 253).darker()),
+	C9_3(39, Color.rgb(91, 255, 253).darker().darker()),
+
+	// BLUE
+	C10_1(41, Color.rgb(69, 169, 255)),
+	C10_2(42, Color.rgb(69, 169, 255).darker()),
+	C10_3(43, Color.rgb(69, 169, 255).darker().darker()),
+
+	// DARK BLUE
+	C11_1(45, Color.rgb(30, 67, 255)),
+	C11_2(46, Color.rgb(30, 67, 255).darker()),
+	C11_3(47, Color.rgb(30, 67, 255).darker().darker()),
+
+	// PURPLE
+	C12_1(49, Color.rgb(125, 73, 255)),
+	C12_2(50, Color.rgb(125, 73, 255).darker()),
+	C12_3(51, Color.rgb(125, 73, 255).darker().darker()),
+
+	// VIOLET
+	C13_1(53, Color.rgb(254, 85, 255)),
+	C13_2(54, Color.rgb(254, 85, 255).darker()),
+	C13_3(55, Color.rgb(254, 85, 255).darker().darker()),
+
+	// VIOLET
+	C14_1(57, Color.rgb(255, 75, 191)),
+	C14_2(58, Color.rgb(255, 75, 191).darker()),
+	C14_3(59, Color.rgb(255, 75, 191).darker().darker()),
+
+	// BROWN
+	C15_1(61, Color.rgb(255, 100, 69)),
+	C15_2(62, Color.rgb(255, 100, 69).darker()),
+	C15_3(63, Color.rgb(255, 100, 69).darker().darker());
+
+	private final int midi;
+	private final Color color;
+
+	LaunchPadMK3Color(int midi, Color color) {
+		this.midi = midi;
+		this.color = color;
+	}
+
+	@Override
+	public Paint getColor() {
+		return color;
+	}
+
+	@Override
+	public byte getValue() {
+		return (byte) midi;
+	}
+
+	public static FeedbackColor valueOf(int id) {
+		for (LaunchPadMK3Color color : values()) {
+			if (color.getValue() == id) {
+				return color;
+			}
+		}
+		return null;
+	}
+}
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/midi/mk3mini/LaunchPadMK3Mini.java b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/midi/mk3mini/LaunchPadMK3Mini.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ddbcf434f1c843c0994623edbe8c5f2d4ef77fc
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/midi/mk3mini/LaunchPadMK3Mini.java
@@ -0,0 +1,138 @@
+package de.tobias.playpad.launchpadplugin.midi.mk3mini;
+
+import de.thecodelabs.logger.Logger;
+import de.thecodelabs.midi.feedback.Feedback;
+import de.thecodelabs.midi.feedback.FeedbackColor;
+import de.thecodelabs.midi.feedback.FeedbackType;
+import de.thecodelabs.midi.feedback.FeedbackValue;
+import de.thecodelabs.midi.mapping.MidiKey;
+import de.thecodelabs.midi.midi.Midi;
+import de.thecodelabs.midi.midi.MidiCommand;
+import de.thecodelabs.midi.midi.MidiCommandType;
+import de.thecodelabs.midi.midi.MidiDeviceListener;
+import de.thecodelabs.midi.midi.feedback.MidiFeedbackTranscript;
+import de.tobias.playpad.action.feedback.FeedbackColorSuggester;
+import de.tobias.playpad.launchpadplugin.impl.MapParser;
+import de.tobias.playpad.profile.Profile;
+import javafx.scene.paint.Color;
+
+import java.net.URL;
+import java.util.*;
+
+public class LaunchPadMK3Mini implements MidiFeedbackTranscript, FeedbackColorSuggester, MidiDeviceListener {
+
+	public static final String NAME = "LPMiniMK3 MIDI";
+	public static final String NATIVE_NAME = "CoreMIDI4J - Launchpad Mini MK3 LPMiniMK3 MIDI";
+
+	// Modern Colors mapped to the colors of the launchpad
+	private static final String[] COLOR_MAPPING_FILES = {
+			"launchpad_mk3_mini_colorful.map",
+			"launchpad_mk3_mini_high.map",
+			"launchpad_mk3_mini_normal.map",
+			"launchpad_mk3_mini_low.map"
+	};
+	private static final String DEFAULT_COLOR_MAPPING = COLOR_MAPPING_FILES[0];
+	private static final Map<String, Map<String, FeedbackColor>> midiColorMappings;
+
+	static {
+		midiColorMappings = new HashMap<>();
+		try {
+			for (String mappingFile : COLOR_MAPPING_FILES) {
+				URL resource = LaunchPadMK3Mini.class.getClassLoader().getResource(mappingFile);
+				midiColorMappings.put(mappingFile, MapParser.load(resource, LaunchPadMK3Color.class));
+			}
+		} catch (Exception e) {
+			Logger.error(e);
+		}
+	}
+
+	@Override
+	public void clearFeedback() {
+		final int maxMainKeyNumber = 89;
+
+		for (byte i = 11; i <= maxMainKeyNumber; i++) {
+			Midi.getInstance().sendMessage(new MidiCommand(MidiCommandType.NOTE_ON, i, (byte) 0));
+		}
+
+		// Obere Reihe an Tasten
+		final int liveKeyMin = 104;
+		final int liveKeyMax = 111;
+
+		for (byte i = liveKeyMin; i <= liveKeyMax; i++) {
+			Midi.getInstance().sendMessage(new MidiCommand(MidiCommandType.CONTROL_CHANGE, i, (byte) 0));
+		}
+	}
+
+	@Override
+	public void sendFeedback(MidiKey midiKey, FeedbackType feedbackType) {
+		final byte key = midiKey.getValue();
+
+		if (feedbackType == FeedbackType.NONE) {
+			if (key >= 104 && key <= 111) {
+				Midi.getInstance().sendMessage(new MidiCommand(MidiCommandType.CONTROL_CHANGE, key, (byte) 0));
+			} else {
+				Midi.getInstance().sendMessage(new MidiCommand(MidiCommandType.NOTE_ON, key, (byte) 0));
+			}
+		}
+
+		Feedback feedback = midiKey.getFeedbackForType(feedbackType);
+
+		if (feedback == null) {
+			return;
+		}
+
+		final byte value = feedback.getValue();
+
+		if (key >= 104 && key <= 111) {
+			Midi.getInstance().sendMessage(new MidiCommand(MidiCommandType.CONTROL_CHANGE, key, value));
+		} else {
+			if (feedbackType == FeedbackType.WARNING) {
+				sendFeedback(midiKey, FeedbackType.DEFAULT);
+			}
+			Midi.getInstance().sendMessage(new MidiCommand(MidiCommandType.NOTE_ON, feedback.getChannel(), key, value));
+		}
+	}
+
+	@Override
+	public FeedbackValue[] getFeedbackValues() {
+		String midiColorMapping = Profile.currentProfile().getProfileSettings().getMidiColorMapping();
+		if (midiColorMapping == null || midiColorMapping.isEmpty()) {
+			midiColorMapping = DEFAULT_COLOR_MAPPING;
+		}
+		final Map<String, FeedbackColor> colorMap = midiColorMappings.get(midiColorMapping);
+		return colorMap.values().stream().sorted().distinct().toArray(FeedbackColor[]::new);
+	}
+
+	@Override
+	public Optional<FeedbackValue> getFeedbackValueOfByte(byte b) {
+		return Optional.ofNullable(LaunchPadMK3Color.valueOf(b));
+	}
+
+	/*
+	FeedbackColorSuggester
+	 */
+
+	@Override
+	public List<String> getMidiColorMappings() {
+		return Arrays.asList(COLOR_MAPPING_FILES);
+	}
+
+	@Override
+	public FeedbackColor suggest(Color color) {
+		final String midiColorMapping = Optional.ofNullable(Profile.currentProfile().getProfileSettings().getMidiColorMapping())
+				.orElse(DEFAULT_COLOR_MAPPING);
+		final Map<String, FeedbackColor> colorMap = midiColorMappings.get(midiColorMapping);
+
+		if (colorMap.containsKey(color.toString())) {
+			return colorMap.get(color.toString());
+		}
+		return null;
+	}
+
+	@Override
+	public void onConnectionOpen() {
+		Midi.getInstance().sendMessage(new MidiCommand(new byte[]{(byte) 240, 126, 127, 6, 1, (byte) 247}));
+		Midi.getInstance().sendMessage(new MidiCommand(new byte[]{(byte) 240, 0, 32, 41, 2, 13, 0, 127, (byte) 247}));
+		Midi.getInstance().sendMessage(new MidiCommand(new byte[]{(byte) 240, 0, 32, 41, 2, 13, 14, 1, (byte) 247}));
+	}
+}
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/lang/l10n.properties b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/lang/l10n.properties
index c0cbfcf89b21f43273678ef74426a9257d53e83e..5d95fd8bddd8a37084ceca637be8b9a1781ddecc 100644
--- a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/lang/l10n.properties
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/lang/l10n.properties
@@ -2,3 +2,8 @@ MidiColorMapping.launchpad_mk2_colorful.map=Farbenfroh
 MidiColorMapping.launchpad_mk2_high.map=Hell
 MidiColorMapping.launchpad_mk2_normal.map=Normal
 MidiColorMapping.launchpad_mk2_low.map=Dunkel
+
+MidiColorMapping.launchpad_mk3_mini_colorful.map=Farbenfroh
+MidiColorMapping.launchpad_mk3_mini_high.map=Hell
+MidiColorMapping.launchpad_mk3_mini_low.map=Normal
+MidiColorMapping.launchpad_mk3_mini_normal.map=Dunkel
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_colorful.map b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_colorful.map
new file mode 100644
index 0000000000000000000000000000000000000000..e7c0ea99f1f837cfe84282fcbb9c707d5d4d64cc
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_colorful.map
@@ -0,0 +1,57 @@
+% RED
+0xef9a9aff=C1_3
+0xef5350ff=C1_2
+0xe53935ff=C1_1
+
+% DARK_RED
+0xd92349ff=C1_3
+0xc92349ff=C1_2
+0xa90329ff=C1_1
+
+% PINK
+0xf48fb1ff=C14_3
+0xec407aff=C14_2
+0xd81b60ff=C14_1
+
+% PURPLE
+0xce93d8ff=C12_3
+0xab47bcff=C12_2
+0x8e24aaff=C12_1
+
+% LIGHT_BLUE
+0x80deeaff=C10_3
+0x26c6daff=C10_2
+0x00acc1ff=C10_1
+
+% BLUE
+0x90caf9ff=C11_3
+0x42a5f5ff=C11_2
+0x1e88e5ff=C11_1
+
+% LIGHT_GREEN
+0xc5e1a5ff=C5_3
+0x9ccc65ff=C5_2
+0x7cb342ff=C5_1
+
+% LIME
+0xe6ee9cff=C4_3
+0xd4e157ff=C4_2
+0xc0ca33ff=C4_1
+
+% YELLOW
+0xfff59dff=C3_3
+0xffee58ff=C3_2
+0xfdd835ff=C3_1
+
+% ORANGE
+0xffcc80ff=C2_3
+0xffa726ff=C2_2
+0xfb8c00ff=C2_1
+
+% GRAY
+0xeeeeeeff=C0_3
+0xccccccff=C0_3
+0xaaaaaaff=C0_3
+0x888888ff=C0_2
+0x666666ff=C0_2
+0x444444ff=C0_1
\ No newline at end of file
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_high.map b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_high.map
new file mode 100644
index 0000000000000000000000000000000000000000..4f6532323fd9c3767adaa9936c7b28dd4d5c4cd6
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_high.map
@@ -0,0 +1,57 @@
+% RED
+0xef9a9aff=C1_1
+0xef5350ff=C1_1
+0xe53935ff=C1_1
+
+% DARK_RED
+0xd92349ff=C1_1
+0xc92349ff=C1_1
+0xa90329ff=C1_1
+
+% PINK
+0xf48fb1ff=C14_1
+0xec407aff=C14_1
+0xd81b60ff=C14_1
+
+% PURPLE
+0xce93d8ff=C12_1
+0xab47bcff=C12_1
+0x8e24aaff=C12_1
+
+% LIGHT_BLUE
+0x80deeaff=C10_1
+0x26c6daff=C10_1
+0x00acc1ff=C10_1
+
+% BLUE
+0x90caf9ff=C11_1
+0x42a5f5ff=C11_1
+0x1e88e5ff=C11_1
+
+% LIGHT_GREEN
+0xc5e1a5ff=C5_1
+0x9ccc65ff=C5_1
+0x7cb342ff=C5_1
+
+% LIME
+0xe6ee9cff=C4_1
+0xd4e157ff=C4_1
+0xc0ca33ff=C4_1
+
+% YELLOW
+0xfff59dff=C3_1
+0xffee58ff=C3_1
+0xfdd835ff=C3_1
+
+% ORANGE
+0xffcc80ff=C2_1
+0xffa726ff=C2_1
+0xfb8c00ff=C2_1
+
+% GRAY
+0xeeeeeeff=C0_3
+0xccccccff=C0_3
+0xaaaaaaff=C0_3
+0x888888ff=C0_2
+0x666666ff=C0_2
+0x444444ff=C0_1
\ No newline at end of file
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_low.map b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_low.map
new file mode 100644
index 0000000000000000000000000000000000000000..34053852f3be518718bf5f982b255aa695b131b6
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_low.map
@@ -0,0 +1,57 @@
+% RED
+0xef9a9aff=C1_3
+0xef5350ff=C1_3
+0xe53935ff=C1_3
+
+% DARK_RED
+0xd92349ff=C1_3
+0xc92349ff=C1_3
+0xa90329ff=C1_3
+
+% PINK
+0xf48fb1ff=C14_3
+0xec407aff=C14_3
+0xd81b60ff=C14_3
+
+% PURPLE
+0xce93d8ff=C12_3
+0xab47bcff=C12_3
+0x8e24aaff=C12_3
+
+% LIGHT_BLUE
+0x80deeaff=C10_3
+0x26c6daff=C10_3
+0x00acc1ff=C10_3
+
+% BLUE
+0x90caf9ff=C11_3
+0x42a5f5ff=C11_3
+0x1e88e5ff=C11_3
+
+% LIGHT_GREEN
+0xc5e1a5ff=C5_3
+0x9ccc65ff=C5_3
+0x7cb342ff=C5_3
+
+% LIME
+0xe6ee9cff=C4_3
+0xd4e157ff=C4_3
+0xc0ca33ff=C4_3
+
+% YELLOW
+0xfff59dff=C3_3
+0xffee58ff=C3_3
+0xfdd835ff=C3_3
+
+% ORANGE
+0xffcc80ff=C2_3
+0xffa726ff=C2_3
+0xfb8c00ff=C2_3
+
+% GRAY
+0xeeeeeeff=C0_3
+0xccccccff=C0_3
+0xaaaaaaff=C0_3
+0x888888ff=C0_2
+0x666666ff=C0_2
+0x444444ff=C0_1
\ No newline at end of file
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_normal.map b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_normal.map
new file mode 100644
index 0000000000000000000000000000000000000000..8ab039471cdd4999aa4a59cd591c75b5138221d9
--- /dev/null
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/launchpad_mk3_mini_normal.map
@@ -0,0 +1,57 @@
+% RED
+0xef9a9aff=C1_2
+0xef5350ff=C1_2
+0xe53935ff=C1_2
+
+% DARK_RED
+0xd92349ff=C1_2
+0xc92349ff=C1_2
+0xa90329ff=C1_2
+
+% PINK
+0xf48fb1ff=C14_2
+0xec407aff=C14_2
+0xd81b60ff=C14_2
+
+% PURPLE
+0xce93d8ff=C12_2
+0xab47bcff=C12_2
+0x8e24aaff=C12_2
+
+% LIGHT_BLUE
+0x80deeaff=C10_2
+0x26c6daff=C10_2
+0x00acc1ff=C10_2
+
+% BLUE
+0x90caf9ff=C11_2
+0x42a5f5ff=C11_2
+0x1e88e5ff=C11_2
+
+% LIGHT_GREEN
+0xc5e1a5ff=C5_2
+0x9ccc65ff=C5_2
+0x7cb342ff=C5_2
+
+% LIME
+0xe6ee9cff=C4_2
+0xd4e157ff=C4_2
+0xc0ca33ff=C4_2
+
+% YELLOW
+0xfff59dff=C3_2
+0xffee58ff=C3_2
+0xfdd835ff=C3_2
+
+% ORANGE
+0xffcc80ff=C2_2
+0xffa726ff=C2_2
+0xfb8c00ff=C2_2
+
+% GRAY
+0xeeeeeeff=C0_3
+0xccccccff=C0_3
+0xaaaaaaff=C0_3
+0x888888ff=C0_2
+0x666666ff=C0_2
+0x444444ff=C0_1
\ No newline at end of file
diff --git a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/plugin.yml
index 79d46638339528325b57baf3609a0ccddb703a01..bcc856ee116df9274598c6e3524cc2205b52ba12 100644
--- a/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginLaunchpad/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "LaunchpadPlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 6
+build: 7
diff --git a/PlayWallPlugins/PlayWallPluginMedia/pom.xml b/PlayWallPlugins/PlayWallPluginMedia/pom.xml
index 0acf49680487153afc8cd77b3c4cca2d1844cfeb..08c827cd23aacd701885f90971f0e8a560faad83 100644
--- a/PlayWallPlugins/PlayWallPluginMedia/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginMedia/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
 
     <artifactId>PlayWallPluginMedia</artifactId>
diff --git a/PlayWallPlugins/PlayWallPluginMedia/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginMedia/src/main/resources/plugin.yml
index 8a072ecb5ae2a1cb084761fee1d34c21f779c44f..e977df03fd2fcec4918c3709cf859df06c1ed9fe 100644
--- a/PlayWallPlugins/PlayWallPluginMedia/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginMedia/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "MediaPlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 10
+build: 11
diff --git a/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml b/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml
index 8063a7c57ad420c319ea3ba7a142d783e6448e13..8b19610965934a083d6059eaf52fa9ec7e27b4f2 100644
--- a/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginNativeAudio/pom.xml
@@ -7,7 +7,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/resources/plugin.yml
index 943f266735fa147db3a63c3dfe64be356264a9ad..92fe39b02904431496fb5b04e574a6d1162f2bee 100644
--- a/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginNativeAudio/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "NativeAudio"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 3
+build: 4
diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml b/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml
index d0f13b17074e82c3b1a47528b62bb90d364ef079..30ae1c788257d4ee11662bfd9614d22ed9593fb4 100644
--- a/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/resources/plugin.yml
index 73a7743e3f90beea69e567240245236e10a403bd..0759fbcc718ec46f4b52f5a04524cae5b34b2599 100644
--- a/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginPlayoutLog/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "PlayoutLogPlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 10
+build: 11
diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml b/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml
index b905d9187c28c41e8cd3ff3433f960cd412bda46..4c3195e97cd7fbeceefd1d154d3743c4a5dcef93 100644
--- a/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallPlugins</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/resources/plugin.yml b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/resources/plugin.yml
index 98733bb6fe0d64b0837bcfbf0de96454b81a45e9..41db604e007dea4d6a5ed44b42a94240059ca767 100644
--- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/resources/plugin.yml
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/resources/plugin.yml
@@ -3,4 +3,4 @@ name: "WebApiPlugin"
 artifactId: "${pom.artifactId}"
 groupId: "${pom.groupId}"
 version: "${pom.version}"
-build: 3
+build: 4
diff --git a/PlayWallPlugins/pom.xml b/PlayWallPlugins/pom.xml
index 8f43305aa69b95f3be3ed3a318e659d169b5e896..b85b954bebd7457617d6725602304a19929ef0c8 100644
--- a/PlayWallPlugins/pom.xml
+++ b/PlayWallPlugins/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>de.tobias.playpad</groupId>
         <artifactId>PlayWallDesktop</artifactId>
-        <version>7.2.0</version>
+        <version>7.3.0</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/pom.xml b/pom.xml
index 7f9b26a0f12eac5e16004304ee450e35f0e5de3c..9ff8a6bd7cb39fbbd483e6bdf35d73e4bbe531b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,11 +6,11 @@
 
     <groupId>de.tobias.playpad</groupId>
     <artifactId>PlayWallDesktop</artifactId>
-    <version>7.2.0</version>
+    <version>7.3.0</version>
     <packaging>pom</packaging>
 
     <properties>
-        <project.build.code>45</project.build.code>
+        <project.build.code>46</project.build.code>
         <project.versionDate>${maven.build.timestamp}</project.versionDate>
         <maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
 
@@ -27,20 +27,20 @@
 
         <jlayer.version>1.0.1</jlayer.version>
 
-        <itextpdf.version>5.5.13</itextpdf.version>
+        <itextpdf.version>5.5.13.4</itextpdf.version>
         <jackson-dataformat-csv.version>2.11.3</jackson-dataformat-csv.version>
 
-        <spark-core.version>[2.9.3,)</spark-core.version>
+        <spark-core.version>[2.9.4,)</spark-core.version>
         <PlayWallWebApiClient.version>1.2.2</PlayWallWebApiClient.version>
 
-        <jna.version>5.6.0</jna.version>
+        <jna.version>5.14.0</jna.version>
 
         <scala-library.version>2.13.3</scala-library.version>
-        <junit.version>4.13.1</junit.version>
+        <junit.version>4.13.2</junit.version>
 
         <jni4net.j.version>0.8.8.0</jni4net.j.version>
 
-        <gson.version>2.8.6</gson.version>
+        <gson.version>2.11.0</gson.version>
         <json-smart.version>1.3.1</json-smart.version>
         <sqlite-jdbc.version>3.32.3.2</sqlite-jdbc.version>