Đây là Thử thách hàng tuần # 1. Chủ đề: Xử lý âm thanh
Nhiệm vụ của bạn là viết một chương trình, ghi một tệp âm thanh vào đĩa (theo định dạng bạn chọn), chứa mã Morse cho 2015
, tức là
..--- ----- .---- .....
Bạn có thể tự do chọn bất kỳ loại âm thanh nào cho các phân đoạn, như sóng hình sin tần số đơn, hợp âm, tiếng ồn, một số nhạc cụ (ví dụ: sử dụng tệp MIDI), miễn là có thể nghe được. Tuy nhiên, có một số hạn chế về thời gian:
- Các đoạn ngắn cần dài ít nhất 0,2 giây.
- Các phân đoạn dài cần dài ít nhất 3 lần so với các phân đoạn ngắn.
- Khoảng nghỉ giữa các phân đoạn trong một chữ số phải có cùng độ dài với các phân đoạn ngắn.
- Khoảng nghỉ giữa các chữ số phải có cùng độ dài với các đoạn dài.
- Mỗi phân đoạn và ngắt có thể sai lệch tới 10% so với độ dài trung bình của loại phân đoạn / ngắt đó.
- Toàn bộ tệp âm thanh có thể không dài hơn 30 giây.
Giờ nghỉ không cần phải im lặng hoàn toàn, nhưng các đoạn Morse nên to hơn rõ rệt so với giờ nghỉ.
Lưu ý rằng bạn phải viết một tập tin âm thanh. Bạn không thể chỉ phát âm thanh, ví dụ như sử dụng tiếng bíp hệ thống. Bạn được phép sử dụng bất kỳ loại thư viện nào để xử lý định dạng tệp và tạo âm thanh, nhưng bạn không được sử dụng các tính năng tích hợp để mã hóa Morse.
Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Vui lòng xem xét liên kết đến tải lên tệp âm thanh kết quả (trên SoundCloud hoặc tương tự), để mọi người có thể kiểm tra kết quả mà không phải chạy mã của bạn. Nếu bạn tải lên SoundCloud, vui lòng đảm bảo bật các tải xuống trong tab Quyền của bản nhạc.
Nếu đầu ra của bạn sử dụng định dạng tệp khá phổ biến, vui lòng thêm một số thông tin về cách phát lại và / hoặc chuyển đổi nó sang định dạng phổ biến hơn và tải lên.
Ví dụ theo dõi
Đây là một bản nhạc ví dụ được tạo thủ công phù hợp với thông số kỹ thuật và sử dụng tiếng ồn cho các phân đoạn Morse (chính xác là tiếng ồn nền của micrô). Đây là liên kết đến SoundCloud nếu trình phát được nhúng không hoạt động cho bạn.
Chi tiết tiền thưởng
Tôi sẽ trao phần thưởng cho bài nộp ngắn nhất bằng ngôn ngữ lập trình âm thanh , tức là một ngôn ngữ được thiết kế để tổng hợp âm thanh. Danh sách đó chưa đầy đủ, vì vậy hãy sử dụng ngôn ngữ lập trình âm thanh khác, nếu bạn biết. Nếu bạn không chắc chắn liệu một số ngôn ngữ bạn muốn sử dụng phân loại là ngôn ngữ lập trình âm thanh, vui lòng cho tôi biết trong các nhận xét hoặc trong trò chuyện và chúng tôi có thể thảo luận về điều đó.
Lưu ý rằng việc gửi của bạn vẫn phải tuân thủ tất cả các quy tắc - đặc biệt, nó phải viết một tệp, điều này có thể không thực hiện được trong tất cả các ngôn ngữ lập trình âm thanh. Ví dụ, theo như tôi có thể nói, gibber chỉ có thể phát âm thanh và không lưu nó vào một tập tin.