Skip to content

hTuneSys/hexaGenApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🎡 hexaGenApp

Professional Frequency Generator for hexaTune Devices

Flutter Dart License: MIT Platform

hexaGenApp Logo

Generate precise frequencies (0-20 MHz) β€’ Control hexaTune devices β€’ Cross-platform support

Features β€’ Getting Started β€’ Documentation β€’ Contributing β€’ Support


πŸ“– Overview

hexaGenApp is a powerful Flutter-based mobile and desktop application designed to control hexaTune frequency generator hardware. Create complex frequency sequences, manage generation history, and monitor device statusβ€”all from an intuitive, multi-platform interface.

✨ Key Highlights

  • 🎚️ Frequency Control: Generate frequencies from 0 Hz to 20 MHz with precision
  • πŸ“‹ Sequence Builder: Create sequences up to 64 items with custom durations
  • πŸ“Š Real-time Monitoring: Track generation status with live updates
  • πŸ”„ History Management: Save and replay past sequences (up to 50 entries)
  • 🎨 Theme Flexibility: Light, dark, and high-contrast modes
  • 🌍 Multilingual: English and Turkish support
  • πŸ”Œ MIDI Communication: USB MIDI connection to hexaTune devices
  • βš™οΈ Background Service: Continue generation even when app is in background

πŸš€ Features

Core Functionality

πŸŽ›οΈ Frequency Generation

  • Range: 0 Hz - 20,000,000 Hz (20 MHz)
  • Sequence Length: Up to 64 frequency items
  • Duration Control: Set individual duration for each frequency
  • Repeat Mode: Configure repeat count for sequences
  • Status Tracking: Real-time status for each item (pending β†’ processing β†’ completed/error)

πŸ“‘ Device Communication

  • MIDI Protocol: Industry-standard USB MIDI communication
  • AT Commands: Custom command protocol for device control
    • VERSION - Query firmware version
    • FREQ - Set frequency and duration
    • SETRGB - Control LED colors
    • RESET - Reset device state
    • FWUPDATE - Firmware update mode
  • Auto-reconnect: Automatic device detection and reconnection
  • Error Handling: Comprehensive error codes (E001001-E001009)

πŸ“œ Operation History

  • Persistent Storage: Save up to 50 generation sequences
  • Regenerate: Replay any past sequence with one tap
  • Detailed View: Expandable cards showing full sequence data
  • Auto-cleanup: FIFO deletion when limit reached

βš™οΈ Settings & Diagnostics

  • Theme Selector: Choose between light, dark, and high-contrast modes
  • Device Info: View connection status and firmware version
  • Log Monitor: Real-time log viewer with filtering by category and level
  • Auto-scroll: Keep latest logs visible automatically

🎨 User Interface

Navigation Structure

πŸ“± hexaGenApp
β”œβ”€β”€ 🎚️ Generation     - Build and execute frequency sequences
β”œβ”€β”€ πŸ“œ History         - View and replay past operations
β”œβ”€β”€ πŸ›’ Products        - hexaTune product catalog (coming soon)
β”œβ”€β”€ ❓ How to Use      - Usage instructions (coming soon)
└── βš™οΈ Settings        - Theme, device info, logs

Design System

  • Material Design 3: Modern, adaptive UI components
  • Custom Color Scheme:
    • Primary: Yellow/Gold (energy, precision)
    • Secondary: Cyan (connectivity, signals)
    • Tertiary: Purple (innovation, premium)
  • Typography:
    • Inter for body text and UI elements
    • Rajdhani for headings and titles
  • Accessibility: High-contrast mode, WCAG 2.1 compliant

πŸ“¦ Installation

Prerequisites

  • Flutter SDK: 3.x or later
  • Dart SDK: ^3.9.2 or later
  • Platform Tools:
    • Android: Android Studio + Android SDK
    • iOS: Xcode (macOS only)
    • Desktop: Platform-specific build tools

Quick Start

# Clone the repository
git clone https://github.com/hTuneSys/hexaGenApp.git
cd hexaGenApp/hexagenapp

# Install dependencies
flutter pub get

# Verify setup
flutter doctor

# Run on connected device
flutter run

# Or specify platform
flutter run -d android
flutter run -d ios
flutter run -d linux
flutter run -d macos
flutter run -d windows

πŸ—οΈ Architecture

Project Structure

hexagenapp/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart              # Entry point
β”‚   β”œβ”€β”€ l10n/                  # Internationalization
β”‚   └── src/
β”‚       β”œβ”€β”€ app.dart           # Root app widget
β”‚       β”œβ”€β”€ core/              # Core functionality
β”‚       β”‚   β”œβ”€β”€ at/            # AT command protocol
β”‚       β”‚   β”œβ”€β”€ device/        # Device management
β”‚       β”‚   β”œβ”€β”€ error/         # Error handling
β”‚       β”‚   β”œβ”€β”€ service/       # Core services
β”‚       β”‚   β”œβ”€β”€ sysex/         # MIDI SysEx protocol
β”‚       β”‚   └── theme/         # Theme system
β”‚       └── pages/             # UI pages
β”œβ”€β”€ assets/                    # Fonts, icons
β”œβ”€β”€ android/                   # Android platform
β”œβ”€β”€ ios/                       # iOS platform
β”œβ”€β”€ linux/                     # Linux platform
β”œβ”€β”€ macos/                     # macOS platform
β”œβ”€β”€ windows/                   # Windows platform
└── test/                      # Tests

Core Components

Services (Singleton Pattern)

  • DeviceService: Device lifecycle, MIDI communication, command tracking
  • StorageService: Persistent data (theme, history)
  • LogService: Centralized logging with filtering

Communication Layer

  • HexaTuneDeviceManager: MIDI device scanning and connection
  • AT Command Builder: Protocol implementation
  • SysEx Handler: Message encoding/decoding, USB MIDI packets

UI Layer

  • Generation Page: Interactive sequence builder
  • History Page: Operation history with replay
  • Settings Page: Configuration and diagnostics

πŸ› οΈ Development

Commands

# Run tests
flutter test

# Analyze code
flutter analyze

# Format code
dart format .

# Build release
flutter build apk --release        # Android
flutter build ios --release        # iOS
flutter build linux --release      # Linux
flutter build macos --release      # macOS
flutter build windows --release    # Windows

Branching Strategy

Use prefixed branch names:

  • feat/ - New features
  • fix/ - Bug fixes
  • refactor/ - Code refactoring
  • docs/ - Documentation
  • test/ - Tests
  • ci/ - CI/CD changes

Commit Conventions

Follow conventional commits:

<type>(scope): <description>

Types: feat, fix, docs, style, refactor, perf, test, chore, ci, build, release, hotfix

Examples:

feat(generation): add drag-to-reorder for sequence items
fix(device): resolve MIDI connection timeout issue
docs(readme): update installation instructions

πŸ“š Documentation

Comprehensive documentation is available in the docs/ directory:


🀝 Contributing

We welcome contributions! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch (feat/amazing-feature)
  3. Make your changes following our Style Guide
  4. Test your changes (flutter test && flutter analyze)
  5. Commit using conventional commits
  6. Push to your branch
  7. Open a Pull Request

Read our Contributing Guidelines for detailed information.

Code of Conduct

This project follows our Code of Conduct. Please read it before contributing.


πŸ”§ Hardware Requirements

To use frequency generation features:

  • hexaTune frequency generator device (required for generation)
  • USB connection (OTG adapter for mobile devices)
  • MIDI support on your platform

Note: The app runs without hardware, but generation features will be disabled.


🌍 Localization

Currently supported languages:

  • πŸ‡¬πŸ‡§ English (default)
  • πŸ‡ΉπŸ‡· Turkish

Want to add a language? See our Localization Guide.


πŸ§ͺ Testing

Current Coverage

  • Widget tests for UI components
  • Unit tests for core logic

Running Tests

# All tests
flutter test

# Specific test file
flutter test test/widget_test.dart

# With coverage
flutter test --coverage

πŸ“± Platform Support

Platform Status Notes
Android βœ… Full Android 5.0+ (API 21+)
iOS βœ… Full iOS 12.0+
Linux βœ… Full Desktop support
macOS βœ… Full macOS 10.14+
Windows βœ… Full Windows 10+
Web 🚧 Beta Limited MIDI support

πŸ› Known Issues

  • Web: MIDI support limited by browser capabilities
  • iOS: Background service requires audio permission
  • Android: Some devices require manual USB permission grant

See GitHub Issues for complete list.


πŸ—ΊοΈ Roadmap

Version 1.1

  • Complete "How to Use" page with tutorials
  • Add "Products" catalog page
  • Cloud sync for history
  • Advanced sequence editing

Version 1.2

  • Firmware update UI
  • Custom waveform generation
  • Sequence templates
  • Export/import sequences

Version 2.0

  • Multi-device support
  • Remote control via Bluetooth
  • Advanced analytics
  • Custom scripting support

See Project Board for live progress.


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

SPDX Compliance

All source files include SPDX license identifiers:

SPDX-FileCopyrightText: 2025 hexaTune LLC
SPDX-License-Identifier: MIT

πŸ™ Acknowledgments

  • Flutter Team - Amazing cross-platform framework
  • flutter_midi_command - MIDI communication library
  • Material Symbols - Comprehensive icon set
  • hexaTune Community - Feedback and testing

πŸ“ž Support & Contact

Get Help

Connect


🏒 About hexaTune LLC

hexaTune LLC specializes in precision frequency generation hardware and software solutions for research, education, and professional applications.

Mission: Democratize access to high-quality frequency generation tools through open-source software and affordable hardware.


⭐ Star us on GitHub!

If you find hexaGenApp useful, please consider starring the repository!

GitHub stars


Built with ❀️ by hexaTune LLC

Website β€’ GitHub β€’ Email

About

hexaGen Mobile App

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published