Tempo Lock · Thức ăn cho tư duy
Sau khi tiếng gõ nhịp tắt đi
Ván chơi bắt đầu bằng một tiếng gõ đánh dấu nhịp độ, rồi tiếng gõ ấy im bặt, và người chơi phải tiếp tục gõ đúng nhịp độ đó suốt những ô nhịp im lặng.
Được viết và biên tập bằng tiếng Anh. Bản tiếng Việt này được tạo ra bằng dịch máy; ở những chỗ cần độ chính xác, bản gốc tiếng Anh là bản có thẩm quyền. Đọc bản gốc bằng tiếng Anh →
Cấu trúc của một ván chơi
Một ván trong Tempo Lock được dựng từ một mục tiêu, thứ quy định bốn điều: giá trị nhịp độ tính bằng số phách mỗi phút, số ô nhịp mà tiếng gõ còn vang lên, số ô nhịp im lặng tiếp theo sau, và số phách mỗi ô nhịp, tức tử số của số chỉ nhịp. Cỗ máy dùng các trường này để dựng toàn bộ ván chơi, từ phách nghe được đầu tiên cho đến phách im lặng cuối cùng. Nhịp độ đặt tốc độ cho tiếng gõ, số ô nhịp có tiếng quyết định người chơi nghe máy đếm nhịp trong bao lâu, còn số ô nhịp im lặng đặt ra thử thách giữ nhịp độ mà không có tiếng gõ. Giá trị số phách mỗi ô nhịp xác định mỗi ô nhịp có bao nhiêu phách, và trò chơi đặt nó bằng 4, tức nhịp bốn bốn (common time), trong mọi ván. 3
Cỗ máy tính ra vài giá trị dẫn xuất từ mục tiêu để phục vụ hệ thống chấm điểm. Nó tính độ dài một phách bằng sáu mươi nghìn chia cho nhịp độ, cho ra thời lượng của một phách tính bằng mili giây. Nó tính tổng số phách bằng tổng của số ô nhịp có tiếng và số ô nhịp im lặng nhân với số phách mỗi ô nhịp, cho ra tổng số phách mà người chơi phải gõ qua. Nó tính điểm khởi đầu của phần im lặng bằng số ô nhịp có tiếng nhân với số phách mỗi ô nhịp, đánh dấu đúng chỉ số phách mà tại đó tiếng gõ ngừng vang. Những giá trị dẫn xuất ấy tạo thành nền tảng toán học cho cả ván chơi. 3
Tiếng gõ và sự im lặng
Tiếng gõ là tín hiệu âm thanh xác lập nhịp độ cho ván chơi. Nó vang lên đúng nhịp độ mục tiêu trong suốt các ô nhịp có tiếng, đánh dấu từng phách bằng một âm ngắn. Tiếng gõ này đóng vai trò một máy đếm nhịp (metronome), phát ra âm thanh ở những khoảng cách đều nhau, có điều ở đây khoảng cách ấy do mục tiêu của ván chơi đặt ra chứ không phải do người chơi. Trước tiên có bốn phách đếm vào, và phách đầu của mỗi ô nhịp được gõ ở cao độ cao hơn. Nhạc công dùng máy đếm nhịp để chơi hoặc tập cho đúng nhịp, giữ nhịp độ đều và phách đều đặn. Tiếng gõ trong trò chơi làm đúng chức năng ấy trong giai đoạn có tiếng, cung cấp một điểm tựa để người chơi khớp những cú gõ của mình vào. 2
Khi các ô nhịp có tiếng kết thúc, tiếng gõ tắt hẳn. Người chơi không còn nghe máy đếm nhịp nữa và phải tiếp tục gõ đúng nhịp độ đó suốt những ô nhịp im lặng. Sự im lặng này tạo ra thử thách cốt lõi của trò chơi, bởi người chơi phải giữ nhịp độ trong đầu mà không còn điểm tựa bên ngoài. Sự im lặng ấy không trống rỗng; nó đầy ắp ký ức về nhịp độ và nỗ lực duy trì nhịp độ của người chơi. Điểm số về sau sẽ đo xem người chơi giữ được nhịp độ ấy tốt đến đâu trong khoảng im lặng. 3
Dấu thời gian thô và tính tất định
Cỗ máy vận hành hoàn toàn từ các dấu thời gian thô của những cú gõ, đo bằng mili giây. Mỗi cú gõ được ghi lại như một giá trị thời gian tuyệt đối, và mọi phép tính đều xuất phát từ các dấu thời gian ấy cùng với mục tiêu. Cùng một chuỗi dấu thời gian luôn cho ra cùng một kết quả, điều khiến cỗ máy có tính tất định và kiểm thử được mà không cần đến đồng hồ. Cách làm này loại bỏ mọi mơ hồ khỏi các phép tính thời gian và bảo đảm việc chấm điểm nhất quán qua những lần chạy khác nhau với cùng dữ liệu vào. 3
Các hàm chấm điểm trong cỗ máy nhận đầu vào là những dấu thời gian thô tính bằng mili giây cùng với mục tiêu. Thiết kế này có nghĩa là cỗ máy có thể được kiểm thử bằng những chuỗi dấu thời gian định sẵn, và kết quả có thể kiểm chứng mà không cần chạy trò chơi theo thời gian thực. Tính tất định còn trải sang bộ sinh số ngẫu nhiên có gieo hạt giống, thứ chọn nhịp độ mục tiêu cho mỗi ván. Một hạt giống và một mức độ khó cho trước luôn đặt ra cùng một mục tiêu, và từ điểm đó trở đi mọi luật đều kiểm thử được. 3
Khôi phục nhịp độ từ những cú gõ
Cỗ máy khôi phục một ước lượng nhịp độ từ khoảng cách trung bình giữa các cú gõ liên tiếp. Nó tính các khoảng giữa hai cú gõ, tức hiệu thời gian giữa mỗi cú gõ và cú gõ liền trước, rồi tính trung bình của chúng, bỏ qua bất kỳ khoảng nào bằng không hoặc âm; với ít hơn hai cú gõ thì nó không báo nhịp độ nào cả. Giá trị số phách mỗi phút được suy ra từ khoảng trung bình ấy, cho ra một thước đo nhịp độ mà người chơi đã duy trì trong chuỗi gõ. Hàm này hoạt động độc lập với nhịp độ mục tiêu và cung cấp một phép đo khách quan về màn thể hiện thật sự của người chơi. 3
Nhịp độ khôi phục được hiển thị trên màn hình kết quả dưới dòng “Your tempo” (Nhịp độ của bạn), đặt cạnh nhịp độ mục tiêu, để người chơi thấy mình đã bám sát tốc độ dự định đến đâu. Phép tính chỉ làm việc trên các dấu thời gian thô, trên toàn bộ những cú gõ được ghi nhận, cả trong phần có tiếng lẫn phần im lặng. Nó chỉ được báo ra để tham khảo: bản thân điểm số được tính từ độ lệch, chứ không phải từ nhịp độ khôi phục. 3
Đo độ lệch so với lưới nhịp
Hệ thống chấm điểm thưởng cho người chơi giữ được những cú gõ sát với lưới nhịp lý tưởng của máy đếm nhịp trong giai đoạn im lặng. Lưới lý tưởng gồm những vị trí phách sẽ xuất hiện nếu một máy đếm nhịp khởi động ngay tại cú gõ đầu tiên của người chơi rồi chạy tiếp đúng nhịp độ mục tiêu. Mỗi cú gõ được ghép với vị trí phách lý tưởng gần nhất, và chênh lệch giữa chúng chính là độ lệch của cú gõ ấy. Chỉ những cú gõ có phách gần nhất rơi vào giai đoạn im lặng mới được tính, và vì mỗi cú gõ đều ghép với phách gần nhất của nó, không cú gõ nào có thể lệch quá nửa phách. Mỗi phách trong giai đoạn im lặng mà không có cú gõ nào sẽ bị tính là một lần trượt bằng nửa phách, tức trường hợp tệ nhất, rồi gộp vào cùng một giá trị trung bình, nên bỏ phách sẽ đẩy độ lệch trung bình lên cao và kéo điểm số xuống, còn người chơi không gõ gì trong khoảng im lặng sẽ được không điểm. 3
Cách tiếp cận dựa trên độ lệch này biến việc giữ nhịp độ thành một đại lượng đo được. Cỗ máy không chỉ kiểm tra xem các cú gõ có rơi vào một cửa sổ nào đó hay không; nó đo chính xác độ chệch so với các vị trí lý tưởng. Một lần giữ nhịp hoàn hảo, với độ lệch trung bình bằng không, được 1000 điểm, và điểm số giảm theo đường thẳng xuống 0 tại độ lệch trung bình bằng một phần tư phách, nên độ lệch càng nhỏ thì điểm luôn càng cao. Thang đo tính bằng phách chứ không bằng mili giây, nên nó mang cùng một ý nghĩa ở mọi nhịp độ: ở 120 phách mỗi phút, một phần tư phách là 125 mili giây, còn ở 80 thì là 187,5. Một phần tư phách cũng chính là mức trung bình của việc gõ bừa, nên gõ ngẫu nhiên gần như chẳng được điểm nào. Màn hình kết quả vẫn báo độ lệch trung bình tính bằng mili giây, và biến điểm số thành một lời phán: “Locked in!” (khóa chặt được nhịp) từ 850 điểm trở lên, “Tight.” (chắc tay) từ 650 trở lên, “Wobbly.” (chông chênh) từ 350 trở lên, và “Lost the beat.” (lạc mất nhịp) nếu thấp hơn nữa. Điều này tạo ra một thang thể hiện liên tục thay vì một kết quả đạt hay trượt nhị phân, cho phép đánh giá độ chính xác về thời gian một cách tinh tế. 3
Các mức độ khó dựng sẵn
Trò chơi có ba mức độ khó dựng sẵn là “Easy” (Dễ), “Medium” (Vừa) và “Hard” (Khó), thay đổi khoảng nhịp độ và số ô nhịp im lặng. Mức nào cũng cho bốn ô nhịp có tiếng. Easy rút một nhịp độ trong khoảng từ 70 đến 100 phách mỗi phút và đòi bốn ô nhịp im lặng; Medium rút trong khoảng 90 đến 130 và đòi sáu; Hard rút trong khoảng 110 đến 170 và đòi tám. Những mức dựng sẵn ấy cho người chơi quyền chọn thử thách, từ nhịp độ thong thả với đoạn im lặng ngắn cho tới nhịp độ nhanh với đoạn giữ nhịp dài. 3
Các mức dựng sẵn vận hành trong cùng khuôn khổ tất định như phần còn lại của cỗ máy. Mỗi mức định nghĩa một mục tiêu với những giá trị trường cụ thể, và cỗ máy xử lý mục tiêu ấy y hệt như với bất kỳ mục tiêu nào khác. Cái khó nằm ở sự kết hợp giữa nhịp độ và số ô nhịp im lặng, thứ quyết định các phách đến nhanh đến đâu và người chơi phải giữ chúng bao lâu khi không còn tiếng gõ. Hệ thống chấm điểm giữ nguyên qua mọi mức, luôn đo độ lệch so với lưới lý tưởng bất kể chọn mức nào, và vì thang đo của nó đặt theo phân số của một phách, một điểm số nhất định biểu thị cùng một mức chính xác tương đối ở nhịp độ nhanh của Hard cũng như ở nhịp độ chậm của Easy. 3
Nhịp độ đứng sau trò chơi
Trong âm nhạc, nhịp độ là tốc độ của một tác phẩm, đo bằng số phách mỗi phút. Nhịp độ 60 phách mỗi phút nghĩa là một phách mỗi giây, còn nhịp độ 120 phách mỗi phút thì nhanh gấp đôi, tức hai phách mỗi giây. Trường độ nốt của mỗi phách thường là trường độ mà mẫu số của số chỉ nhịp chỉ ra. Nhịp độ có thể được ghi bằng các thuật ngữ tiếng Ý, từ những mức chậm như largo và andante đến những mức nhanh như allegro và presto, hoặc bằng một chỉ dẫn máy đếm nhịp nêu rõ số phách mỗi phút. Các chỉ dẫn nhịp độ có thể truyền đạt cả cảm xúc lẫn tốc độ, và nhịp độ không nhất thiết phải cố định: nhà soạn nhạc có thể viết accelerando để tăng tốc hay ritardando để chậm lại ngay trong một tác phẩm 1. Trò chơi dùng khái niệm nhịp độ này như một giá trị cố định đo bằng số phách mỗi phút, với nhịp độ mục tiêu đặt tốc độ cho cả ván chơi.
Nhịp độ trong trò chơi là giá trị số phách mỗi phút mà tiếng gõ phát ra và người chơi phải giữ. Đó là một con số duy nhất xác định tốc độ của ván chơi, và nó xuất hiện trong mục tiêu bên cạnh các số ô nhịp. Người chơi gõ theo nhịp độ ấy, còn cỗ máy đo xem họ duy trì nó tốt đến đâu. Nhịp độ không thay đổi trong ván chơi; nó là điểm tựa cố định để đánh giá màn thể hiện của người chơi. 3
Chiếc máy đếm nhịp
Máy đếm nhịp là thiết bị phát ra tiếng gõ hoặc âm thanh khác ở những khoảng cách đều nhau do người dùng đặt, thường tính bằng số phách mỗi phút. Người chơi nhạc và người hát tập luyện cùng với nó để giữ một nhịp độ đều và một phách đều đặn. Máy đếm nhịp cơ học truyền thống dùng một con lắc có quả nặng: đẩy quả nặng lên cao trên thanh thì nhịp độ chậm lại, trượt xuống thấp thì nhanh lên, và cơ cấu phát ra một tiếng gõ theo mỗi nhịp lắc. Johann Maelzel được cấp bằng sáng chế cho một máy đếm nhịp cơ học vào năm 1815 và sản xuất hàng loạt từ năm 1816, dựa trên một thiết kế con lắc ngược chạy bằng dây cót có trước đó của Dietrich Nikolaus Winkel, đồng thời bổ sung một thang nhịp độ bằng số; máy đếm nhịp hiện đại còn có dạng thiết bị điện tử thạch anh và phần mềm 2.
Tiếng gõ trong trò chơi đóng vai trò máy đếm nhịp trong giai đoạn có tiếng, phát đúng nhịp độ mục tiêu suốt những ô nhịp có tiếng. Nó cung cấp khoảng cách đều đặn mà người chơi phải khớp những cú gõ của mình vào. Khi tiếng gõ tắt, người chơi phải giữ đúng nhịp độ ấy mà không còn thiết bị, tức là bị thử thách khả năng giữ nhịp độ từ bên trong. Vai trò của máy đếm nhịp trong trò chơi là xác lập nhịp độ rồi tự rút lui, để người chơi một mình mang nhịp độ ấy đi tiếp. 3
Mục tiêu và các trường của nó
Mục tiêu là cấu trúc dữ liệu trung tâm định nghĩa mỗi ván chơi. Nó chứa bốn trường: nhịp độ tính bằng số phách mỗi phút; số ô nhịp có tiếng mà tiếng gõ vang lên; số ô nhịp im lặng tiếp theo sau; và số phách mỗi ô nhịp, tức tử số của số chỉ nhịp, bằng 4 cho nhịp bốn bốn. Các trường ấy cùng nhau quyết định cấu trúc của ván chơi, từ số phách trong giai đoạn có tiếng đến số phách trong giai đoạn im lặng. 3
Cỗ máy dùng mục tiêu để tính mọi giá trị dẫn xuất chi phối ván chơi. Từ nhịp độ, nó suy ra thời lượng mỗi phách tính bằng mili giây. Từ các số ô nhịp và số phách mỗi ô nhịp, nó suy ra tổng số phách và phách mà tại đó sự im lặng bắt đầu. Mục tiêu là cố định trong suốt ván chơi, nghĩa là nhịp độ và các số ô nhịp không đổi từ đầu đến cuối. Người chơi chỉ có thể đáp lại mục tiêu bằng cách gõ đúng nhịp độ và canh những cú gõ của mình khớp với lưới lý tưởng. 3
Từ dấu thời gian đến điểm số
Con đường từ dấu thời gian của các cú gõ đến điểm số cuối cùng đi theo một trình tự tính toán rõ ràng. Trước hết, trò chơi ghi mỗi cú gõ thành một dấu thời gian tính bằng mili giây, bỏ qua những cú gõ thực hiện sớm hơn nửa phách trước khi bốn phách đếm vào kết thúc. Trong giai đoạn có tiếng, người chơi gõ theo tiếng gõ, hình thành cảm giác về nhịp độ. Khi tiếng gõ tắt, người chơi tiếp tục gõ suốt những ô nhịp im lặng. Sau đó cỗ máy đo độ lệch của từng cú gõ trong giai đoạn im lặng so với lưới nhịp lý tưởng neo vào cú gõ đầu tiên, lấy trung bình các độ lệch ấy, tính mỗi phách im lặng không được gõ như một lần trượt bằng nửa phách, rồi ánh xạ giá trị trung bình, xét như một phân số của phách, thành điểm số từ 0 đến 1000. Cùng với điểm số, nó báo cả nhịp độ khôi phục từ khoảng trung bình giữa các cú gõ và số cú gõ trong giai đoạn im lặng. 3
Dây chuyền này hoàn toàn tất định. Với cùng một hạt giống và cùng một mức độ khó, cùng một mục tiêu được sinh ra. Với cùng một mục tiêu và cùng những dấu thời gian gõ, cùng một điểm số được tính ra. Cỗ máy không phụ thuộc vào thời gian của đồng hồ treo tường hay bất kỳ tham chiếu bên ngoài nào; nó chỉ phụ thuộc vào các dấu thời gian và mục tiêu. Điều này khiến hệ thống vừa đáng tin cậy vừa kiểm thử được, vì mọi bước đều có thể kiểm chứng bằng dữ liệu vào định sẵn và kết quả mong đợi. 3
Giai đoạn im lặng như một phép đo
Giai đoạn im lặng là nơi phép đo diễn ra. Trong giai đoạn có tiếng, tiếng gõ cung cấp một điểm tựa, và người chơi có thể chỉnh những cú gõ của mình cho khớp với nó. Trong giai đoạn im lặng, không có điểm tựa nào như thế, và những cú gõ của người chơi phơi bày mức độ họ đã thấm nhịp độ vào bên trong. Cỗ máy đo mức thấm ấy bằng cách so từng cú gõ với vị trí phách lý tưởng ngoại suy từ cú gõ đầu tiên của người chơi theo nhịp độ mục tiêu. Chênh lệch giữa cú gõ và vị trí lý tưởng chính là độ lệch của cú gõ ấy. 3
Giai đoạn im lặng cũng là nơi thiết kế của trò chơi bộc lộ rõ nhất. Tiếng gõ phát đúng nhịp độ mục tiêu trong những ô nhịp có tiếng, rồi tắt đi, và người chơi phải tiếp tục gõ đúng nhịp độ ấy suốt những ô nhịp im lặng. Độ dài của giai đoạn im lặng, do số ô nhịp im lặng và số phách mỗi ô nhịp quyết định, đặt ra thời lượng của khoảng đo. Giai đoạn im lặng càng dài thì người chơi càng phải giữ nhịp độ qua nhiều phách hơn, và độ lệch càng có cơ hội tích lũy. Hệ thống chấm điểm đo độ lệch của mọi cú gõ trong giai đoạn im lặng, tính phạt mọi phách im lặng bị bỏ trống, rồi lấy trung bình tất cả thành điểm số cuối cùng, nên một sai lệch nhịp độ nhỏ nhưng lớn dần qua một đoạn giữ nhịp dài sẽ đẩy độ lệch trung bình lên cao và kéo điểm số xuống. 3
Tính tất định từ hạt giống
Toàn bộ hệ thống là tất định, xuất phát từ một bộ sinh số ngẫu nhiên có gieo hạt giống. Một hạt giống cho trước luôn đặt ra cùng một mục tiêu, và từ điểm đó trở đi mọi luật đều kiểm thử được. Hạt giống quyết định nhịp độ, rút ra như một số nguyên trong khoảng của mức độ khó đã chọn; còn các số ô nhịp thì đến từ chính mức dựng sẵn ấy. Vì hạt giống và mức độ khó quyết định trọn vẹn mục tiêu, chúng luôn tạo ra cùng một cấu trúc ván chơi. Tính chất này còn trải sang cả việc chấm điểm, bởi cùng những dấu thời gian gõ đối chiếu với cùng một mục tiêu luôn cho ra cùng một điểm số. 3
Tính tất định từ hạt giống phục vụ cả người chơi lẫn người phát triển. Với người chơi, nó có nghĩa là các ván chơi nhất quán và công bằng; cùng một chuỗi cú gõ sẽ luôn cho cùng một kết quả. Chế độ Hàng ngày lấy hạt giống từ ngày tháng theo giờ quốc tế UTC, nên mọi người chơi trong ngày hôm đó ở một mức độ khó nhất định đều nhận cùng một mục tiêu, trong khi chế độ Luyện tập chọn một hạt giống ngẫu nhiên mới cho mỗi ván. Với người phát triển, nó có nghĩa là cỗ máy có thể được kiểm thử kỹ lưỡng bằng những hạt giống và chuỗi cú gõ định sẵn. Tính tất định không phải là một ràng buộc; nó là một tính năng khiến hệ thống thời gian của trò chơi trở nên minh bạch và đáng tin cậy. 3
Sources & notes
- "Tempo," Wikipedia, in music, tempo is the speed or pace of a given composition, measured in beats per minute (BPM): a tempo of 60 beats per minute signifies one beat per second, while a tempo of 120 beats per minute is twice as rapid, signifying two beats every second. The note value of each beat is typically the one indicated by the denominator of the time signature. Tempo may be indicated by Italian markings, from slow ones such as largo and andante (at a walking pace) to fast ones such as allegro and presto, or by a metronome mark giving a specific BPM. Tempo markings can convey mood as well as speed, and a tempo need not be fixed: a composer may write an accelerando to speed up or a ritardando to slow down within a piece. en.wikipedia.org/wiki/Tempo.
- "Metronome," Wikipedia, a device that produces an audible click or other sound at a uniform interval that can be set by the user, typically in beats per minute. Musicians use a metronome to play or practise in time, keeping a steady tempo and a regular beat. A traditional mechanical metronome uses a weighted pendulum: sliding the weight up the rod slows the tempo and sliding it down speeds it up, and the mechanism produces a click with each swing. Johann Maelzel patented a mechanical metronome in 1815 and mass-produced it from 1816, building on an earlier spring-powered, inverted-pendulum design by Dietrich Nikolaus Winkel and adding a numerical tempo scale; modern metronomes also come as quartz electronic devices and software. en.wikipedia.org/wiki/Metronome.
- Tempo Lock game engine: a pure, deterministic timing engine with no audio and no DOM. A target sets a tempo in beats per minute, a number of audible bars while a click plays, a number of silent bars to hold after it stops, and a beats-per-bar time-signature numerator (4 for 4/4). The click plays the target tempo for the audible bars, then cuts out, and the player must keep tapping the same tempo through the silent bars. The beat length in milliseconds is sixty thousand divided by the tempo; the total beat count is the audible plus silent bars times the beats per bar; and the silent phase starts at the audible bars times the beats per bar. The scoring functions take raw tap timestamps in milliseconds together with the target, so the same inputs always give the same result and the engine is testable without a clock. The tempo is recovered from the average interval between taps. Drift is the average distance of silent-phase taps from the nearest beat of an ideal grid anchored on the first tap and stepped at the target tempo; each silent-phase beat without a tap counts as a miss of half a beat, and with fewer than two taps the drift is half a beat. The score is 1000 at zero drift, falling linearly to 0 at a quarter of a beat, so the scale is relative to the tempo; the result grades are “Locked in!” at 850 or more, “Tight.” at 650 or more, “Wobbly.” at 350 or more, and “Lost the beat.” below that. Difficulty presets: Easy 70–100 BPM with 4 audible and 4 silent bars, Medium 90–130 with 4 and 6, Hard 110–170 with 4 and 8. The tempo is drawn from a seeded random number generator; Daily mode seeds it from the UTC date, Practice from a random number. Read from the game’s own source.
- Further reading on Metronome, Re-examining Czerny’s and Moscheles’s Metronome Marks for Beethoven’s Piano Sonatas. doi.org.
- Further reading on Metronome, Turn the Beat On: An Evidenced-Based Practice Journey Implementing Metronome Use in Emergency Department Cardiac Arrest . pubmed.ncbi.nlm.nih.gov.