Blokkily: DAW thử nghiệm ưu tiên pattern, hỗ trợ điều khiển bằng AI qua MCP

Công nghệ12 tháng 10, 2026·8 phút đọc

Blokkily là một DAW (Digital Audio Workstation) thử nghiệm theo hướng pattern-first, dùng một mô hình sự kiện duy nhất để đồng bộ ba trình soạn nhạc: tracker, piano roll và step grid. Điểm đáng chú ý là nó hoạt động như một MCP server, cho phép AI agent điều khiển trực tiếp cửa sổ đang chạy để đọc session, ghi nốt, phát/dừng và chụp màn hình.

Blokkily: DAW thử nghiệm ưu tiên pattern, hỗ trợ điều khiển bằng AI qua MCP

Blokkily là một dự án DAW (Digital Audio Workstation) thử nghiệm theo hướng pattern-first, vừa được giới thiệu trên Hacker News. Điểm khác biệt lớn nhất của nó không nằm ở giao diện hay hiệu ứng âm thanh, mà ở cách một mô hình sự kiện duy nhất điều khiển toàn bộ hệ thống — và ở khả năng cho phép AI agent vận hành phần mềm qua giao thức MCP (Model Context Protocol).

Một mô hình, ba trình soạn nhạc đồng bộ

Ý tưởng cốt lõi của Blokkily là tất cả các trình soạn nhạc đều xoay quanh một pattern chuẩn (canonical pattern) duy nhất:

  • Tracker — kiểu nhập nốt truyền thống với các cột lệnh
  • Piano roll — cuộn nốt theo chiều dọc
  • Step grid — lưới bước dạng ô

Mỗi thao tác chỉnh sửa trên bất kỳ trình nào cũng lập tức phản ánh sang hai trình còn lại, vào bảng thuộc tính (inspector) và vào âm thanh mà bài nhạc phát ra. Người dùng có thể chuyển đổi giữa các chế độ xem hoặc hiển thị tất cả cùng lúc.

Điểm đáng chú ý là việc chỉnh sửa không làm gián đoạn bài nhạc đang phát. Khi có thay đổi, hệ thống biên dịch lại bố cục (arrangement) và chuyển cho callback render ở ranh giới block kế tiếp — không cấp phát bộ nhớ trên luồng âm thanh, không dựng lại đồ thị xử lý, không nạp lại nhạc cụ, cũng không nhảy vị trí phát.

Giao diện session của BlokkilyGiao diện session của Blokkily

Hỗ trợ plugin đa dạng: CLAP, VST3 và SoundFont

Blokkily coi CLAP là định dạng plugin gốc bắt buộc, chứ không phải một tiện ích tương thích thêm vào. Bên cạnh đó:

  • VST3 được hỗ trợ qua JUCE, quét các gói và vị trí hệ thống mặc định
  • FluidSynth tích hợp sẵn để nạp file SF2/SF3, chọn preset và render âm thanh stereo

Một điểm kỹ thuật thú vị: FluidSynth chỉ khởi động một voice tại điểm bắt đầu của block 64 frame. Để đảm bảo mọi lần lặp pattern đều nghe cùng pha bất kể độ dài tính bằng sample, adapter duy trì một nhóm nhỏ các renderer chia sẻ dữ liệu mẫu của bank và phát mỗi nốt trên renderer có block bắt đầu đúng frame của nốt đó.

Cả ba định dạng đều dùng chung một ranh giới xử lý thời gian thực (real-time boundary), chia mỗi block tại các offset tham số để tự động hóa VST3 cũng chính xác đến từng sample.

Session là cả một bài nhạc, không chỉ một pattern

Blokkily tổ chức session theo mô hình song + clips trên timeline:

  • Các pattern có tên được đặt làm clip trên timeline của các track mixer
  • Mỗi track có nhạc cụ riêng và channel strip: gain (dB), pan constant-power, mute, solo và peak meter
  • Tổng hợp qua master fader
  • Engine bài nhạc biên dịch toàn bộ timeline một lần rồi render mà không cấp phát, khóa hay I/O

Mỗi lần lặp của clip được tính là vòng lặp kế tiếp của pattern, nên các thuộc tính như xác suất (probability) và điều kiện vòng lặp (loop conditions) vẫn hoạt động xuyên suốt bố cục.

Engine cũng có thể bounce bố cục ra file WAVE 16-bit, 24-bit hoặc 32-bit float — từng sample giống hệt những gì người dùng nghe thử.

Cao độ vi mô: tuning tính bằng cent

Khác với hầu hết DAW thương mại vốn mặc định system 12 âm bình quân, Blokkily lưu tuning bằng đơn vị cent:

  • Chia đều bất kỳ chu kỳ nào
  • Các hệ tuning lịch sử và hữu tỉ
  • Danh sách kiểu Scala

Một nốt mang theo cả khóa 12 âm mà nhạc cụ nhận được lẫn khoảng retune lệch khỏi nó. Điều này cho phép pattern 19 âm hoặc quarter-tone đến được CLAP, VST3 và synth SoundFont đúng cao độ đã viết, thay vì bị làm tròn về nốt gần nhất.

Có bốn bề mặt chơi nhạc cùng chiếu theo tuning và scale của bài:

  • Bàn phím piano
  • Lưới đẳng cấu (isomorphic grid) với bảy kiểu bố trí: Wicki-Hayden, Bosanquet, harmonic table, accordion B-system, Jankó, fourths và major thirds
  • Cần đàn (fretboard) cho chín cách lên dây
  • Chord pad gọi tên hợp âm theo số La Mã và xếp một hàng cho mỗi thể đảo

Mỗi lưới được viết bằng cent mỗi bước thay vì nửa cung, nên cùng một thế bấm sẽ rơi đúng vào bất kỳ tuning nào mà bài nhạc đang dùng.

Trợ lý sáng tác bằng LLM

Phía trên các trình soạn nhạc có một thanh prompt cho phép yêu cầu trợ lý sáng tác LLM viết thẳng vào pattern đang mở. Ví dụ, người dùng gõ:

"a minor pentatonic ascending" hoặc "offbeat hats"

Câu lệnh được gửi đến backend đã chọn — mặc định là mô hình Ollama chạy cục bộ, hoặc endpoint Gemini / MiniMax nếu có API key. Phản hồi được phân tích cú pháp và giới hạn như mọi input khác, rồi nằm chờ dưới dạng đề xuất trên thanh prompt cho đến khi nhà sản xuất bấm Apply.

Đáng chú ý về mặt kiến trúc: trợ lý chỉ chạy trên luồng GUI, luồng âm thanh không bao giờ thấy lệnh gọi LLM. Mỗi lần sinh là một bước undo.

Điểm nhấn: Blokkily là một MCP server

Đây có lẽ là phần gây tò mò nhất với cộng đồng kỹ thuật. Blokkily đóng vai trò MCP server, cho phép AI agent điều khiển cửa sổ đang chạy. Đăng ký bridge với Claude Code:

claude mcp add blokkily -- blokkily --mcp

Hoặc với bất kỳ client nào nhận cấu hình JSON:

{ "mcpServers": { "blokkily": { "command": "blokkily", "args": ["--mcp"] } } }

Lệnh blokkily --mcp nói MCP qua stdin/stdout và chuyển tiếp từng tool call đến cửa sổ đang mở qua socket cục bộ. Việc kết nối và liệt kê tool không mở cửa sổ; tool call đầu tiên sẽ khởi động Blokkily nếu nó chưa chạy. Chỉ người dùng đã chạy Blokkily mới kết nối được.

Các tool bao gồm: get_session, get_pattern, write_notes, transport, list_plugins, set_instrument, list_parameters, set_parameter, set_soundfont_preset và screenshot. Ngoài ra còn có describe, call và get_property — chạm tới mọi phương thức và thuộc tính mà các control của cửa sổ sử dụng: mixer, hiệu ứng, tự động hóa, clip, tempo, tuning, lưu và xuất file.

Điểm quan trọng: chỉnh sửa của agent đi qua đúng những đường dẫn có thể undo mà một cú click đi qua.

Các tính năng khác đáng chú ý

  • Scene launcher (LAUNCH view): scene theo hàng dọc, track theo hàng ngang; khởi chạy có quantization chính xác đến từng sample, hỗ trợ follow action
  • Resampling và stems: ghi lại output của rack vào track audio mới, bounce stem qua cùng engine
  • Sidechain: compressor và mọi hiệu ứng CLAP/VST3 khai báo sidechain input đều có chip SIDECHAIN
  • Modulation panel: LFO (sine, triangle, saw, square, random), macro và envelope follower, gửi dưới dạng CLAP parameter modulation
  • Streaming từ đĩa: clip audio có kích thước giải mã vượt ngưỡng mặc định 128 MiB sẽ stream từ đĩa thay vì nạp vào RAM
  • MPE: hỗ trợ bend, CC 74 và pressure theo từng nốt, ghi lại và phát lại dưới dạng CLAP note expressions

Những gì còn thiếu

Dự án khá thẳng thắn liệt kê các giới hạn hiện tại:

  • MPE chỉ phủ vùng thấp từ chip MPE; biểu cảm từng nốt được ghi và phát nhưng không được vẽ trong trình soạn nhạc
  • Nhạc cụ VST3 chỉ nghe cao độ từng nốt trong phạm vi bend hai nửa cung
  • Chưa đọc MIDI clock
  • Comping (lấy các lượt thu thay thế) chưa có
  • Disk streaming chỉ áp dụng cho clip audio chưa warp
  • Panel sampler chỉ nạp một file mỗi lần, chưa có trình hướng dẫn nhập multi-sample
  • Modulation được đánh giá một lần mỗi block, nên LFO đồng bộ sẽ chuyển ở block sau nhịp của nó
  • Pixels của cửa sổ plugin native cần màn hình X11

Ghi chú về build và giấy phép

Để build cần Qt 6.5+, FluidSynth, RtAudio, RtMidi, libsndfile, libsamplerate và Rubber Band 4. Quy trình:

cmake -S . -B build -G Ninja
cmake --build build
ctest --test-dir build --output-on-failure
./build/blokkily

Lưu ý về giấy phép: tính năng clip warp (time-stretching và pitch-shifting) liên kết với Rubber Band Library — vốn theo giấy phép GPL v2 trở lên trừ khi mua giấy phép thương mại. Do đó một bản binary Blokkily build kèm tính năng này cũng chịu ràng buộc GPL. JUCE và header CLAP được vendor trong third_party/. Hai font giao diện IBM Plex Sans và JetBrains Mono đi kèm theo SIL Open Font License 1.1.

Góc nhìn cho người dùng Việt Nam

Blokkily vẫn ở giai đoạn thử nghiệm, nhưng hướng tiếp cận của nó đáng để cộng đồng làm nhạc và lập trình viên Việt Nam quan tâm vì hai lý do. Thứ nhất, việc tích hợp MCP mở ra khả năng điều khiển DAW bằng AI agent — một hướng đi mà nhiều studio nhỏ và producer độc lập có thể tận dụng để tự động hóa các tác vụ lặp lại. Thứ hai, cách xử lý tuning tính bằng cent khiến Blokkily trở thành môi trường thú vị cho những ai làm nhạc cổ truyền Việt Nam với các hệ cao độ không theo 12 âm bình quân phương Tây.

Dự án mã nguồn mở, nhưng cần lưu ý ràng buộc GPL nếu bạn định dùng cho mục đích thương mại.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗