Skip to content

MyAmpSwitcher is a Python application that allows you to control your amplifier, amp-cab-switcher or any device through MIDI messages. You can switch between different profiles, each containing customizable buttons that send MIDI Program Change and Control Change messages. This software is released under the MIT license.

License

Notifications You must be signed in to change notification settings

PaoloFrigo/my-amp-switcher

Repository files navigation

License: MIT CI codecov

MY AMP SWITCHER

MyAmpSwitcher is a Python application that allows you to control your amplifier, amp-cab-switcher or any device through MIDI messages. You can switch between different profiles, each containing customizable buttons that send MIDI Program Change and Control Change messages.

This software is released under the MIT license.

Overview

This application provides a graphical user interface written using QT libraries for managing your amplifier or amp and cab switcher profiles and MIDI settings. It allows you to create, edit, load, import, and export profiles. You can easily switch between profiles and send MIDI messages to control your amplifier settings.

Preview of the MacOS version: preview

With colors: preview

Please note that MyAmpSwitcher can run on MacOS/Windows/Linux considering that is built with Python and QT and Midi libraries are ported across these platforms.

icon.jpeg

Settings

The application uses a settings file (settings.json) to store MIDI output port, channel, default profile, and other configuration details. You can edit these settings within the application to customize the behaviour according to your setup.

This is a sample of the settings.json:

{
    "port_name": "USB MIDI CABLE",
    "profile": "n-audio-8X7.json",
    "icon": "icon.ico",
    "font": "Arial",
    "size": 14,
    "buttons_per_row": 3
}

Profiles

Profiles are JSON files stored in the "profiles" folder. Each profile contains information about the channel, button configurations, and other settings. You can create new profiles, edit existing ones, and switch between them seamlessly. Profiles can be edited within the app or via any text editor.

This is a profile for a Brunetti XL" R-EVO:

{
    "name": "Brunetti XL\" R-EVO",
    "channel": 0,
    "buttons": [
        {
            "order": 0,
            "program_change": 2,
            "name": "clean"
        },
        {
            "order": 1,
            "program_change": 1,
            "name": "boost"
        },
        {
            "order": 2,
            "program_change": 3,
            "name": "xlead"
        }
    ]
}

Profile Notes

Each profile should be saved with a meaningful "name" field, when loaded the name will appear as the window's title. Each button should have "name" have a "program_change" and/or "cc_number" and "cc_value".

You can also assign a different "color" for each button e.g. "color": "green". The color name is not case-sentive.

This is the list of available colours: AliceBlue, AntiqueWhite, Aqua, Aquamarine, Azure, Beige, Bisque, Black, BlanchedAlmond, Blue, BlueViolet, Brown, BurlyWood, CadetBlue, Chartreuse, Chocolate, Coral, CornflowerBlue, Cornsilk, Crimson, Cyan, DarkBlue, DarkCyan, DarkGoldenrod, DarkGray, DarkGreen, DarkKhaki, DarkMagenta, DarkOliveGreen, DarkOrange, DarkOrchid, DarkRed, DarkSalmon, DarkSeaGreen, DarkSlateBlue, DarkSlateGray, DarkTurquoise, DarkViolet, DeepPink, DeepSkyBlue, DimGray, DodgerBlue, Firebrick, FloralWhite, ForestGreen, Fuchsia, Gainsboro, GhostWhite, Gold, Goldenrod, Gray, Green, GreenYellow, Honeydew, HotPink, IndianRed, Indigo, Ivory, Khaki, Lavender, LavenderBlush, LawnGreen, LemonChiffon, LightBlue, LightCoral, LightCyan, LightGoldenrodYellow, LightGray, LightGreen, LightPink, LightSalmon, LightSeaGreen, LightSkyBlue, LightSlateGray, LightSteelBlue, LightYellow, Lime, LimeGreen, Linen, Magenta, Maroon, MediumAquamarine, MediumBlue, MediumOrchid, MediumPurple, MediumSeaGreen, MediumSlateBlue, MediumSpringGreen, MediumTurquoise, MediumVioletRed, MidnightBlue, MintCream, MistyRose, Moccasin, NavajoWhite, Navy, OldLace, Olive, OliveDrab, Orange, OrangeRed, Orchid, PaleGoldenrod, PaleGreen, PaleTurquoise, PaleVioletRed, PapayaWhip, PeachPuff, Peru, Pink, Plum, PowderBlue, Purple, Red, RosyBrown, RoyalBlue, SaddleBrown, Salmon, SandyBrown, SeaGreen, SeaShell, Sienna, Silver, SkyBlue, SlateBlue, SlateGray, Snow, SpringGreen, SteelBlue, Tan, Teal, Thistle, Tomato, Turquoise, Violet, Wheat, White, WhiteSmoke, Yellow, YellowGreen

Installation from the DMG file

  1. Download the latest release as a dmg file from the GitHub repository for your platform.

  2. After mounting the image the following window will appear. App Install

  3. Select the MyAmpSwitcher icon and drag it over the Application window to complete the installation.

Warnings when a DMG is not signed.

When a dmg is not signed macOS will present this warning message: warning1

  • Open "System Settings" and allow the system to open the app as presented in the picture below: system_pref

  • Will then ask for your password to authorize the exception to the recommended settings.

  • Then the app will run the will prompt a final notification for this Open System Preferences and allow the system to open the app: system_pref

Uninstalling the MyAmpSwitcher App

Open Finder. Select the MyAmpSwitcher App and move it to the bin.

Installation instruction from GitHub

To run the MyAmpSwitcher application, follow these steps:

  1. Clone the repository to your local machine.

    git clone https://github.com/paolofrigo/my-amp-switcher.git
  2. Create a virtual environment and activate it

    on macOS/Linux

    cd my-amp-switcher
    python3 -m venv .venv
    source .venv/bin/activate

    on windows

     cd my-amp-switcher
     python3 -m venv .venv
     .venv\bin\activate
  3. Installing the dependencies

    pip install -r requirements.txt
  4. Running the app.

    python3 MyAmpSwitcher.py
    

User Interface Notes

Main Window

The application has 2 main configuration files. "Settings" (settings.json) for visualization preferences/defaults and profiles (individually saved under the profiles folder) specific to the functions they are designed to perform.

This is the layout of the app: Gui

  1. The window title is set to the profile name loaded.
  2. The file menu allows users to manage profiles under 'Profiles', general 'Settings', and review the current version using the 'About' section.

Toolbar

  1. Dropdown with all available options and showing the MIDI Output currently selected.
  2. Refresh button to reload all available MIDI Outputs (in case they have changed since the app startup)
  3. Dropdown of Midi Channel and showing what is selected in the loaded profile.

The "Save" button will write any change applied to the dropdown in the toolbar to the settings (Midi Output) and profile (Channel) files.

  1. All Button labels and MIDI messages are defined in the profile, instead text size and the number of buttons for each row are defined in the settings.
  2. The status bar displays MIDI Messages and user notifications.

Profile Recorder Window

Under the profile menu, the Profile Recorder feature allows users to "virtualize" any physical or virtual controller into a profile for MyAmpSwitcher. This can be handy even for troubleshooting MIDI Controllers or understanding issues when multiple messages are sent simultaneously.

ProfileRecorder

  1. The "Start" button activates the capturing process of MIDI input messages.
  2. The left pane will display the captured messages after the start button is pressed.
  3. The "Stop and Generate" button will stop the capturing process and generate the profile on the right pane.
  4. The right pane will display the automatically generated profile after the stop and generated button is selected.
  5. The "Save As Profile" will save the generated profile and prompt users with a file dialog to name and save the file.
  6. The "Clear" button will clean the left and right panes.
  7. The bottom label will display status messages acting like a status bar.

Usage

  • Please make sure you connect your MIDI interface before opening My-Amp-Swticher.

  • Please consider that your OS when launching the app may require your authorisation to allow the app to access your microphone. microphone

Show Your Support

Don't forget to give a ⭐️ on GitHub if you find this app useful!

Disclaimer

THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

MyAmpSwitcher is a Python application that allows you to control your amplifier, amp-cab-switcher or any device through MIDI messages. You can switch between different profiles, each containing customizable buttons that send MIDI Program Change and Control Change messages. This software is released under the MIT license.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published