diff --git a/native/intuitives_daw/intlib/ipc/daw.py b/native/intuitives_daw/intlib/ipc/daw.py index a9a333a..6d954b7 100644 --- a/native/intuitives_daw/intlib/ipc/daw.py +++ b/native/intuitives_daw/intlib/ipc/daw.py @@ -226,3 +226,14 @@ def set_pos(self, a_beat): def save_audio_inputs(self): self.send_configure("ai", "") + + def text_to_melody(self, a_uid, a_text): + self.send_configure( + "tm", + "|".join( + str(x) for x in ( + a_uid, + a_text, + ) + ), + ) diff --git a/native/intuitives_daw/intui/widgets/generators.py b/native/intuitives_daw/intui/widgets/generators.py index 5071333..881f0f2 100644 --- a/native/intuitives_daw/intui/widgets/generators.py +++ b/native/intuitives_daw/intui/widgets/generators.py @@ -13,6 +13,8 @@ COLOR_TERTIARY, CHROMA_COLORS, ) +from intlib import constants +from intui.daw import shared as daw_shared class GeneratorPanel(QWidget): @@ -284,7 +286,14 @@ def on_generate_text(self): if not text.strip(): text = "Intuitives" print(f"📝 Converting text to melody: '{text[:20]}...'") - # TODO: Call engine IPC + + if daw_shared.CURRENT_ITEM is None: + print("⚠️ No item selected. Open an item in the sequencer first.") + return + + if constants.DAW_IPC: + constants.DAW_IPC.text_to_melody(daw_shared.CURRENT_ITEM.uid, text) + self.melody_generated.emit([]) def on_color_selected(self, color, note_index):