diff --git a/FModel/Settings/UserSettings.cs b/FModel/Settings/UserSettings.cs
index cdbbaae4..bf82a53a 100644
--- a/FModel/Settings/UserSettings.cs
+++ b/FModel/Settings/UserSettings.cs
@@ -307,6 +307,13 @@ public Hotkey AddAudio
             set => SetProperty(ref _addAudio, value);
         }
 
+        private Hotkey _removeAudio = new(Key.X);
+        public Hotkey RemoveAudio
+        {
+            get => _removeAudio;
+            set => SetProperty(ref _removeAudio, value);
+        }
+
         private Hotkey _playPauseAudio = new(Key.K);
         public Hotkey PlayPauseAudio
         {
diff --git a/FModel/ViewModels/AudioPlayerViewModel.cs b/FModel/ViewModels/AudioPlayerViewModel.cs
index e6c099db..53c4096d 100644
--- a/FModel/ViewModels/AudioPlayerViewModel.cs
+++ b/FModel/ViewModels/AudioPlayerViewModel.cs
@@ -234,6 +234,20 @@ public void Load()
         });
     }
 
+    public void Unload()
+    {
+        Application.Current.Dispatcher.Invoke(() =>
+        {
+            _waveSource = null;
+
+            PlayedFile = new AudioFile(-1, "No audio file");
+            Spectrum = null;
+
+            RaiseSourceEvent(ESourceEventType.Clearing);
+            ClearSoundOut();
+        });
+    }
+
     public void AddToPlaylist(byte[] data, string filePath)
     {
         Application.Current.Dispatcher.Invoke(() =>
@@ -265,11 +279,30 @@ public void Remove()
         if (_audioFiles.Count < 1) return;
         Application.Current.Dispatcher.Invoke(() =>
         {
+            var removedPlaying = false;
+            if (PlayedFile.Id == SelectedAudioFile.Id)
+            {
+                removedPlaying = true;
+                Stop();
+            }
+
             _audioFiles.RemoveAt(SelectedAudioFile.Id);
             for (var i = 0; i < _audioFiles.Count; i++)
             {
                 _audioFiles[i].Id = i;
             }
+
+            if (_audioFiles.Count < 1)
+            {
+                Unload();
+                return;
+            }
+
+            SelectedAudioFile = _audioFiles[SelectedAudioFile.Id];
+
+            if (!removedPlaying) return;
+            Load();
+            Play();
         });
     }
 
@@ -501,6 +534,11 @@ private void LoadSoundOut()
         _soundOut.Volume = UserSettings.Default.AudioPlayerVolume / 100;
     }
 
+    private void ClearSoundOut()
+    {
+        _soundOut = null;
+    }
+
     private IEnumerable<MMDevice> EnumerateDevices()
     {
         using var deviceEnumerator = new MMDeviceEnumerator();
diff --git a/FModel/Views/AudioPlayer.xaml.cs b/FModel/Views/AudioPlayer.xaml.cs
index 6367e35c..e0191c9e 100644
--- a/FModel/Views/AudioPlayer.xaml.cs
+++ b/FModel/Views/AudioPlayer.xaml.cs
@@ -75,6 +75,8 @@ private void OnPreviewKeyDown(object sender, KeyEventArgs e)
             _applicationView.AudioPlayer.Previous();
         else if (UserSettings.Default.NextAudio.IsTriggered(e.Key))
             _applicationView.AudioPlayer.Next();
+        else if (UserSettings.Default.RemoveAudio.IsTriggered(e.Key))
+            _applicationView.AudioPlayer.Remove();
     }
 
     private void OnAudioFileMouseDoubleClick(object sender, MouseButtonEventArgs e)
diff --git a/FModel/Views/Resources/Controls/Aup/SourceEventArgs.cs b/FModel/Views/Resources/Controls/Aup/SourceEventArgs.cs
index aeca57f0..5507d4c7 100644
--- a/FModel/Views/Resources/Controls/Aup/SourceEventArgs.cs
+++ b/FModel/Views/Resources/Controls/Aup/SourceEventArgs.cs
@@ -4,7 +4,8 @@ namespace FModel.Views.Resources.Controls.Aup;
 
 public enum ESourceEventType
 {
-    Loading
+    Loading,
+    Clearing
 }
 
 public class SourceEventArgs : EventArgs
@@ -15,4 +16,4 @@ public SourceEventArgs(ESourceEventType e)
     {
         Event = e;
     }
-}
\ No newline at end of file
+}
diff --git a/FModel/Views/SettingsView.xaml b/FModel/Views/SettingsView.xaml
index f5373a08..2b0fc8a3 100644
--- a/FModel/Views/SettingsView.xaml
+++ b/FModel/Views/SettingsView.xaml
@@ -440,6 +440,7 @@
                         <RowDefinition Height="Auto" />
                         <RowDefinition Height="Auto" />
                         <RowDefinition Height="Auto" />
+                        <RowDefinition Height="Auto" />
                     </Grid.RowDefinitions>
                     <Grid.ColumnDefinitions>
                         <ColumnDefinition Width="Auto" />
@@ -483,6 +484,9 @@
                     <TextBlock Grid.Row="11" Grid.Column="0" Text="Next Audio" VerticalAlignment="Center" Margin="0 0 0 5" />
                     <controls:HotkeyTextBox Grid.Row="11" Grid.Column="2" Style="{StaticResource TextBoxDefaultStyle}" Margin="0 0 0 5"
                                             HotKey="{Binding NextAudio, Source={x:Static local:Settings.UserSettings.Default}, Mode=TwoWay}" />
+                    <TextBlock Grid.Row="12" Grid.Column="0" Text="Remove Selected Audio" VerticalAlignment="Center" Margin="0 0 0 5" />
+                    <controls:HotkeyTextBox Grid.Row="12" Grid.Column="2" Style="{StaticResource TextBoxDefaultStyle}" Margin="0 0 0 5"
+                                            HotKey="{Binding RemoveAudio, Source={x:Static local:Settings.UserSettings.Default}, Mode=TwoWay}" />
                 </Grid>
             </DataTemplate>
         </ResourceDictionary>