# tuntorius/mightier_amp architecture

> Architecture diagram of the GitHub repository tuntorius/mightier_amp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tuntorius/mightier_amp
- Repository: https://github.com/tuntorius/mightier_amp

## Overview

Mightier Amp is a Flutter app for controlling NUX Mighty amplifiers. The principal workflow is a user controlling an amp through the app’s BLE connection; the README also documents local preset sharing, MIDI/HID control, jam-track editing and playback, and tempo training. The supplied tree contains native plugin and platform-host code but no Dart application sources, so feature-level app components have no supported source path and their internal wiring cannot be verified. The graph shows documented capabilities and the native integrations that are evidenced, without inferring app-side call chains.

Main entry points: [`plugins/mighty_ble/android/src/main/java/com/tuntori/mighty_ble/BLEManager.java`](https://github.com/tuntorius/mightier_amp/blob/main/plugins/mighty_ble/android/src/main/java/com/tuntori/mighty_ble/BLEManager.java) (Mighty BLE plugin), [`plugins/flutter_midi_command/flutter_midi_command-0.3.7/ios/Classes/SwiftFlutterMidiCommandPlugin.swift`](https://github.com/tuntorius/mightier_amp/blob/main/plugins/flutter_midi_command/flutter_midi_command-0.3.7/ios/Classes/SwiftFlutterMidiCommandPlugin.swift) (MIDI command plugin), [`plugins/audio_picker/android/src/main/kotlin/com/audio_picker/audio_picker/AudioPickerPlugin.kt`](https://github.com/tuntorius/mightier_amp/blob/main/plugins/audio_picker/android/src/main/kotlin/com/audio_picker/audio_picker/AudioPickerPlugin.kt) (Audio picker plugin), [`plugins/audio_waveform/android/src/main/java/com/tuntori/audio_waveform/WaveformExtractor.java`](https://github.com/tuntorius/mightier_amp/blob/main/plugins/audio_waveform/android/src/main/java/com/tuntori/audio_waveform/WaveformExtractor.java) (Waveform plugin)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_product["Amp control"]
  node_app["Mightier Amp"]
  node_ampcontrol["Amp control"]
  node_presets["Presets and sharing"]
  node_midi_control["MIDI/HID control"]
end

subgraph group_media["Music tools"]
  node_jamtracks["Jam tracks"]
  node_event_editing["Track events"]
  node_beat["Tempo trainer"]
end

subgraph group_native["Native integrations"]
  node_ble_plugin["Mighty BLE plugin<br/>[BLEManager.java]"]
  node_midi_plugin["MIDI command plugin"]
  node_audio_picker["Audio picker plugin"]
  node_waveform["Waveform plugin"]
  node_file_api["Android file API<br/>[MainActivity.kt]"]
end

node_user(("User"))
node_amp(("NUX Mighty amp"))
node_audio_files["Device audio files"]
node_midi_device(("MIDI controller"))

node_user -->|"uses"| node_app
node_app -->|"offers"| node_ampcontrol
node_app -->|"offers"| node_presets
node_app -->|"offers"| node_midi_control
node_app -->|"offers"| node_jamtracks
node_app -->|"offers"| node_beat
node_ampcontrol -.->|"uses BLE"| node_ble_plugin
node_ble_plugin -->|"connects and writes"| node_amp
node_midi_control -.->|"uses MIDI"| node_midi_plugin
node_midi_device -->|"sends input"| node_midi_plugin
node_jamtracks -->|"adds events"| node_event_editing
node_jamtracks -.->|"selects audio"| node_audio_picker
node_jamtracks -.->|"uses waveform"| node_waveform
node_jamtracks -->|"plays along"| node_audio_files
node_presets -.->|"imports and exports"| node_file_api

click node_ble_plugin "https://github.com/tuntorius/mightier_amp/blob/main/plugins/mighty_ble/android/src/main/java/com/tuntori/mighty_ble/BLEManager.java"
click node_midi_plugin "https://github.com/tuntorius/mightier_amp/blob/main/plugins/flutter_midi_command/flutter_midi_command-0.3.7/ios/Classes/SwiftFlutterMidiCommandPlugin.swift"
click node_audio_picker "https://github.com/tuntorius/mightier_amp/blob/main/plugins/audio_picker/android/src/main/kotlin/com/audio_picker/audio_picker/AudioPickerPlugin.kt"
click node_waveform "https://github.com/tuntorius/mightier_amp/blob/main/plugins/audio_waveform/android/src/main/java/com/tuntori/audio_waveform/WaveformExtractor.java"
click node_file_api "https://github.com/tuntorius/mightier_amp/blob/main/android/app/src/main/kotlin/com/tuntori/mightieramp/MainActivity.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_ampcontrol,node_presets,node_midi_control,node_user toneBlue
class node_jamtracks,node_event_editing,node_beat toneAmber
class node_ble_plugin,node_midi_plugin,node_audio_picker,node_waveform,node_file_api toneMint
class node_amp,node_audio_files,node_midi_device toneIndigo
```

## Components

### Amp control

- **Mightier Amp**
- **Amp control**
- **Presets and sharing**
- **MIDI/HID control**

### Music tools

- **Jam tracks**
- **Track events**
- **Tempo trainer**

### Native integrations

- [Mighty BLE plugin](https://github.com/tuntorius/mightier_amp/blob/main/plugins/mighty_ble/android/src/main/java/com/tuntori/mighty_ble/BLEManager.java): `plugins/mighty_ble/android/src/main/java/com/tuntori/mighty_ble/BLEManager.java`
- [MIDI command plugin](https://github.com/tuntorius/mightier_amp/blob/main/plugins/flutter_midi_command/flutter_midi_command-0.3.7/ios/Classes/SwiftFlutterMidiCommandPlugin.swift): `plugins/flutter_midi_command/flutter_midi_command-0.3.7/ios/Classes/SwiftFlutterMidiCommandPlugin.swift`
- [Audio picker plugin](https://github.com/tuntorius/mightier_amp/blob/main/plugins/audio_picker/android/src/main/kotlin/com/audio_picker/audio_picker/AudioPickerPlugin.kt): `plugins/audio_picker/android/src/main/kotlin/com/audio_picker/audio_picker/AudioPickerPlugin.kt`
- [Waveform plugin](https://github.com/tuntorius/mightier_amp/blob/main/plugins/audio_waveform/android/src/main/java/com/tuntori/audio_waveform/WaveformExtractor.java): `plugins/audio_waveform/android/src/main/java/com/tuntori/audio_waveform/WaveformExtractor.java`
- [Android file API](https://github.com/tuntorius/mightier_amp/blob/main/android/app/src/main/kotlin/com/tuntori/mightieramp/MainActivity.kt): `android/app/src/main/kotlin/com/tuntori/mightieramp/MainActivity.kt`

### Other components

- **User**
- **NUX Mighty amp**
- **Device audio files**
- **MIDI controller**

## Connections

- User → Mightier Amp: uses
- Mightier Amp → Amp control: offers
- Mightier Amp → Presets and sharing: offers
- Mightier Amp → MIDI/HID control: offers
- Mightier Amp → Jam tracks: offers
- Mightier Amp → Tempo trainer: offers
- Amp control → Mighty BLE plugin: uses BLE
- Mighty BLE plugin → NUX Mighty amp: connects and writes
- MIDI/HID control → MIDI command plugin: uses MIDI
- MIDI controller → MIDI command plugin: sends input
- Jam tracks → Track events: adds events
- Jam tracks → Audio picker plugin: selects audio
- Jam tracks → Waveform plugin: uses waveform
- Jam tracks → Device audio files: plays along
- Presets and sharing → Android file API: imports and exports
