Cập nhật 8
Không hài lòng khi phải tải các bản nhạc lên dịch vụ và xem bản phát hành mới của RekordBox 3 Tôi đã quyết định xem xét lại cách tiếp cận ngoại tuyến và độ phân giải tốt hơn: D
Âm thanh đầy hứa hẹn mặc dù vẫn ở trạng thái rất alpha:
Johnick - Thời gian tốt
Lưu ý rằng không có thang đo logarit cũng như điều chỉnh bảng màu, chỉ là ánh xạ thô từ tần số đến HSL.
Ý tưởng : bây giờ trình kết xuất dạng sóng có một nhà cung cấp màu được yêu cầu màu cho một vị trí cụ thể. Mẫu bạn đang thấy ở trên có tỷ lệ bắt chéo bằng 0 cho 1024 mẫu bên cạnh vị trí đó.
Rõ ràng vẫn còn nhiều việc phải làm trước khi có được thứ gì đó mạnh mẽ nhưng có vẻ như đó là một con đường tốt ...
Từ RekordBox 3 :
Cập nhật 7
Hình thức cuối cùng mà tôi sẽ áp dụng, giống như trong Bản cập nhật 3
(đó là một chút Photoshop để có được sự chuyển tiếp mượt mà giữa các màu)
Kết luận là tôi đã đóng cách đây nhiều tháng nhưng không cho rằng kết quả đó là xấu X)
Cập nhật 6
Tôi đã khai quật dự án gần đây, vì vậy tôi nghĩ về việc cập nhật ở đây: D
Bài hát: Chic - Good Times 2001 (Câu lạc bộ Stonebridge)
IMO tốt hơn, nhịp đập có màu không đổi, v.v ... mặc dù vậy nó không được tối ưu hóa.
Làm sao ?
Vẫn với http://developer.echonest.com/docs/v4/_static/AnalyzeDocumentation.pdf (trang 6)
Đối với từng phân khúc:
public static int GetSegmentColorFromTimbre(Segment[] segments, Segment segment)
{
var timbres = segment.Timbre;
var avgLoudness = timbres[0];
var avgLoudnesses = segments.Select(s => s.Timbre[0]).ToArray();
double avgLoudnessNormalized = Normalize(avgLoudness, avgLoudnesses);
var brightness = timbres[1];
var brightnesses = segments.Select(s => s.Timbre[1]).ToArray();
double brightnessNormalized = Normalize(brightness, brightnesses);
ColorHSL hsl = new ColorHSL(brightnessNormalized, 1.0d, avgLoudnessNormalized);
var i = hsl.ToInt32();
return i;
}
public static double Normalize(double value, double[] values)
{
var min = values.Min();
var max = values.Max();
return (value - min) / (max - min);
}
Rõ ràng là cần nhiều mã hơn trước khi bạn đến đây (tải lên dịch vụ, phân tích JSON, v.v.) nhưng đó không phải là điểm chính của trang web này vì vậy tôi chỉ đăng những nội dung có liên quan để nhận được kết quả trên.
Vì vậy, tôi đang sử dụng 2 chức năng đầu tiên của kết quả phân tích, chắc chắn còn nhiều việc phải làm nhưng tôi vẫn cần phải kiểm tra. Nếu tôi tìm thấy thứ gì đó hay hơn ở trên, tôi sẽ quay lại và cập nhật tại đây.
Như mọi khi, bất kỳ gợi ý về chủ đề này đều được chào đón nhiều hơn!
Cập nhật 5
Một số gradient sử dụng chuỗi hài
Làm mịn màu là tỷ lệ nhạy cảm nếu không nó trông xấu, sẽ cần một số điều chỉnh.
Cập nhật 4
Viết lại việc tô màu xảy ra tại nguồn và làm mịn màu bằng bộ lọc Alpha beta với các giá trị 0,08 và 0,02.
Tốt hơn một chút khi thu nhỏ
Bước tiếp theo là để có được một bảng màu tuyệt vời!
Cập nhật 3
Màu vàng tượng trưng cho phương tiện
Không quá tuyệt vời khi chưa được khám phá, chưa.
(bảng màu cần một số công việc nghiêm túc)
Cập nhật 2
Thử nghiệm sơ bộ bằng cách sử dụng gợi ý hệ số 'âm sắc' thứ hai từ pichenettes
Cập nhật 1
Thử nghiệm sơ bộ sử dụng kết quả phân tích từ dịch vụ EchoNest , lưu ý rằng nó không được căn chỉnh tốt (lỗi của tôi) nhưng nó mạch lạc hơn nhiều so với phương pháp trên.
Đối với những người quan tâm đến việc sử dụng API tuyệt vời này, hãy bắt đầu tại đây: http://developer.echonest.com/docs/v4/track.html#profile
Ngoài ra, đừng nhầm lẫn bởi các dạng sóng này vì chúng đại diện cho 3 bài hát khác nhau.
Câu hỏi ban đầu
Cho đến nay, đây là kết quả tôi nhận được khi sử dụng FFT 256 mẫu và tính toán trọng tâm quang phổ của từng khối .
Kết quả thô của các tính toán
Một số làm mịn được áp dụng (hình thức trông tốt hơn nhiều với nó)
Dạng sóng được sản xuất
Lý tưởng nhất, đây là cách nó sẽ trông như thế nào (lấy từ phần mềm Serato DJ )
Bạn có biết tôi có thể sử dụng kỹ thuật / thuật toán nào để có thể phân tách âm thanh khi tần số trung bình thay đổi theo thời gian không? (giống như hình trên)
spectral_centroid
. Điều tôi thực sự muốn là ánh xạ phổ âm thanh lên phổ màu, vì vậy tần số thấp là màu đỏ, tần số cao là màu xanh lam, kết hợp cả hai là màu đỏ tươi, tần số trung bình là màu xanh lá cây, quét log là cầu vồng, tiếng ồn trắng là màu trắng, nhiễu hồng là hồng, nhiễu đỏ là đỏ, ... Tôi không thể tìm ra cách thực hiện, vì một phổ là tuyến tính và phổ kia là log. :) flic.kr/p/7S8oHA