FLUTTER ECOSYSTEM

kmvishn/Harmony-Forge

Harmony Forge é uma plataforma de geração de música que combina Flask e Flutter. O Flask gerencia tarefas do backend, como geração de música, autenticação de usuários e supervisão de modelos, enquanto o aplicativo Android baseado em Flutter oferece uma interface amigável ao usuário. Juntos, eles capacitam os usuários a criar músicas de forma contínua por meio de modelos de aprendizado de máquina e princípios de design modernos.

Capa do projeto Forja da Harmonia
Stars
4
Forks
0
Último push (UTC)
9 de ago. de 2024
Status do projeto
Ativo
Vishnu K M GitHub avatar
GITHUB User

Vishnu K M ↗

Kerala
LinguagensDartHTMLPythonC++CMakeSwiftCJavaScriptKotlinObjective-CProcfile

Tópicos técnicos

Pacotes e exemplos relacionados

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Expandir / recolher README

Harmony Forge Logo

Harmony Forge

Harmony Forge is a music generation platform that combines the power of a Flask server for backend processing, a Flutter app for the Android client interface, and allows users to generate music seamlessly.


🎵 Flask Server

The Flask server acts as the backend for the Harmony Forge project. It handles music generation requests, manages user authentication and accounts, provides an admin panel for model management, and ensures a secure environment. Additionally, Harmony Forge leverages LSTM networks for MIDI generation, enabling users to create diverse musical compositions.

Features:
  • Music Generation with LSTM: Utilizes LSTM (Long Short-Term Memory) networks trained on MIDI datasets to generate music based on user preferences and inputs. The LSTM model can capture complex musical patterns and nuances, resulting in diverse and expressive MIDI outputs.

  • Multiple Instrument Support: Harmony Forge supports multiple instruments for MIDI generation, allowing users to specify instrument tracks and arrangements to create rich and varied musical compositions.

  • Custom Model Creation: Users have the flexibility to create custom LSTM models tailored to their musical style and preferences. By training the LSTM network on specific MIDI datasets, users can fine-tune the model to generate music that aligns with their artistic vision.

Technologies Used:
  • Python with Flask framework for server-side logic.
  • TensorFlow for creating and training the LSTM model for MIDI generation.
  • SQLAlchemy for database management.
  • Flask JWT Extended for user authentication and JWT handling.
  • Flask Mail for sending verification emails and notifications.
  • Flask RESTful API for smooth communication with the Flutter app.
Setup Instructions:
  1. Clone the repository:

    git clone https://github.com/jztchl/Harmony-Forge.git
    
  2. Navigate to the Flask server directory:

    cd Harmony-Forge/server
    
  3. Install dependencies:

    pip install -r needs.txt
    
  4. Set up Configuration variables: Configure the following in the config.py after adding it:

import os
from datetime import timedelta
class Config: 
    SECRET_KEY = 'your_secret_key_here'
    SQLALCHEMY_DATABASE_URI = 'sqlite:///users.db'
    JWT_ACCESS_TOKEN_EXPIRES = timedelta(hours=3)
    JWT_REFRESH_TOKEN_EXPIRES = timedelta(days=30)
    MAIL_SERVER = 'smtp.example.com'
    MAIL_PORT = 587
    MAIL_USE_TLS = True
    MAIL_DEFAULT_SENDER = your_email@example.com
    MAIL_USERNAME = your_email@example.com
    MAIL_PASSWORD = your_email_password

  1. Run the Flask server:

    python flask_app.py
    
  2. The Flask server will run on http://localhost:5000.

  3. Or you could run the project in the command line:

    python control.py
    

By integrating LSTM networks for MIDI generation, Harmony Forge offers users the ability to create sophisticated and personalized musical pieces with rich instrumentation and customized model training.

📱 Flutter App

The Harmony Forge project includes an Android Flutter app that serves as the client-side interface for users. Here are some key points about the Flutter app:

  • Technology: Developed using the Flutter framework, which allows for building natively compiled applications for mobile, web, and desktop from a single codebase.
  • Platform: Specifically designed for Android devices, providing a smooth and native-like user experience.
  • User Interface: Features a user-friendly interface designed to interact seamlessly with the Flask server backend.
  • Functionality:
    • Music Generation: Allows users to generate music by interacting with the Flask server endpoints.
    • User Authentication: Enables user registration, login, and password management functionalities.
    • UI/UX Design: Incorporates modern design principles for an engaging and intuitive user experience.
  • Integration with Flask Server: Communicates with the Flask server backend through HTTP requests to perform various actions such as music generation, user management, and feedback submission.
  • Security Measures: Implements secure communication protocols and authentication mechanisms to ensure data privacy and user authentication integrity.
Setup Instructions:
  1. Install Flutter SDK and set up your development environment: Flutter Installation Guide

  2. Clone the repository:

    git clone https://github.com/jztchl/Harmony-Forge.git
    
  3. Navigate to the Flutter app directory:

    cd Harmony-Forge/flutter_app
    
  4. Install dependencies:

    flutter pub get
    
  5. Configure the urls in api lib/api_endpoints.dart:

    const String BASE_URL = 'server url';
    

    note:be in same network running locally

  6. Run the Flutter app:

    flutter run
    
  7. The Flutter app will build and run on your connected Android device or emulator.

Sample Music Files

Multiple Instrument Samples
Single Instrument Samples

Feel free to explore the full potential of Harmony Forge by setting up both the Flask server and Flutter app and experimenting with music generation and user interactions!