from flask import Flask, render_template, jsonify, request import json import subprocess app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/generate_midi', methods=['POST']) def generate_midi(): data = request.json keep_tonality = data.get('keepTonality', False) use_grid = data.get('useGrid', True) arguments = ['python3', 'generate.py', 'models/LMD2/', 'static/', '--n', '1', '--no_audio'] if keep_tonality: arguments.extend(['--z_file', 'static/0/z']) if use_grid: arguments.extend(['--s_file', 'static/0/structure.json']) subprocess.run(arguments, capture_output=True, text=True) filename = "generated.mid" return jsonify({"filename": filename}) @app.route('/save_json', methods=['POST']) def save_json(): data = request.json filepath = 'static/0/structure.json' with open(filepath, 'w') as file: json.dump(data, file) return jsonify(message="JSON saved successfully!") @app.route('/load_grid') def load_grid(): with open('static/0/structure.json', 'r') as file: data = json.load(file) return jsonify(data) if __name__ == '__main__': app.run(debug=True)