"use client"; import { useState } from "react"; import { FileAudio, X, Music } from "lucide-react"; import { AudioUpload } from "./AudioUpload"; import { StemSeparationPanel } from "./StemSeparationPanel"; import { MIDIExtractionPanel } from "./MIDIExtractionPanel"; import { AgenticWorkflowPanel } from "./AgenticWorkflowPanel"; import { MusicGenerator } from "./MusicGenerator"; import { useAudioStore } from "@/store/audio-store"; export function AudioProcessingPanel() { const loadGeneratedMIDI = useAudioStore((state) => state.loadGeneratedMIDI); const [uploadedFile, setUploadedFile] = useState(null); const [activeTab, setActiveTab] = useState<"upload" | "workflow" | "stems" | "midi" | "music">( "upload" ); const handleFileUploaded = (file: File, audioBuffer: AudioBuffer) => { setUploadedFile(file); setActiveTab("workflow"); // Switch to workflow tab after upload }; const tabs = [ { id: "upload" as const, label: "Upload", icon: FileAudio }, { id: "workflow" as const, label: "Workflow", icon: FileAudio }, { id: "stems" as const, label: "Stems", icon: FileAudio }, { id: "midi" as const, label: "MIDI", icon: FileAudio }, { id: "music" as const, label: "Generate", icon: Music }, ]; return (
{/* Tab Navigation */}
{tabs.map((tab) => { const Icon = tab.icon; return ( ); })}
{/* Content */}
{activeTab === "upload" && (

Audio Upload

{uploadedFile && ( )}
{uploadedFile && (

Uploaded:

{uploadedFile.name}

{(uploadedFile.size / (1024 * 1024)).toFixed(2)} MB

)}
)} {activeTab === "workflow" && (

Agentic Workflow

{ console.log("Workflow complete:", result); }} />
)} {activeTab === "stems" && (

Stem Separation

{ console.log("Stems separated:", result); }} />
)} {activeTab === "midi" && (

MIDI Extraction

{ console.log("MIDI extracted:", result); }} />
)} {activeTab === "music" && (

AI Music Generation

{ console.log("Music generated:", { midiFile, audioFile }); try { if (midiFile) { const trackId = await loadGeneratedMIDI(midiFile, "AI Generated Music"); console.log("Added generated MIDI to track:", trackId); } } catch (error) { console.error("Failed to load generated MIDI:", error); } }} />
)}
); }