2 điểm bởi GN⁺ 2023-11-30 | 1 bình luận | Chia sẻ qua WhatsApp
  • Freetar là giao diện thay thế mã nguồn mở cho Ultimate Guitar, làm cho tab và hợp âm Ultimate Guitar điều mà Invidious làm cho YouTube
  • Cung cấp thiết kế đơn giản không có quảng cáo, popup, AI hay blockchain, tập trung vào chức năng tìm kiếm và xem tab
  • Các hợp âm yêu thích được lưu trong session storage mà không cần tài khoản và không được gửi lên máy chủ; có chế độ tối, tự động cuộn, chế độ xem hợp âm để in và tính năng ngăn màn hình tắt dựa trên WakeLock API
  • Sau khi cài đặt, chạy tệp thực thi freetar không kèm tham số sẽ hoạt động tại 0.0.0.0:22000, và có thể điều chỉnh cách chạy bằng các biến môi trường FREETAR_HOST, FREETAR_PORT, FREETAR_CACHE_TIMEOUT
  • Công việc sắp tới bao gồm cải thiện UX trên di động, đóng gói PWA, lưu mục yêu thích bằng mã hóa phía máy chủ và hiển thị mã QR để chia sẻ tab; khuyến nghị đề xuất issue trước khi thêm tính năng

Freetar làm gì

Tính năng cung cấp

  • Cung cấp thiết kế đơn giản không có quảng cáo, popup, AI hay blockchain
  • Có thể tìm kiếm và xem tab
  • Có thể lưu các hợp âm yêu thích thành favs
    • Mọi dữ liệu được lưu trong session storage
    • Không được gửi lên máy chủ
    • Không cần tài khoản
  • Hỗ trợ chế độ tối
  • Hỗ trợ tự động cuộn
  • Hữu ích cho việc in hợp âm
  • Có thể hiển thị hợp âm
  • Dùng WakeLock API để ngăn màn hình tắt

Cài đặt và chạy

  • Khi cài đặt thành công, sẽ có tệp thực thi freetar trong PATH
  • Chạy không kèm tham số sẽ lắng nghe tại 0.0.0.0:22000
  • Có thể thay đổi host và port bằng biến môi trường
    • FREETAR_HOST
    • FREETAR_PORT
    • FREETAR_CACHE_TIMEOUT: chỉ định thời gian cache tab trong bộ nhớ để giảm số yêu cầu tới Ultimate Guitar
      • Giá trị mặc định là 0
      • Mặc định hoạt động như cache vô hạn

Cách triển khai

  • Có thể cài dưới dạng gói PyPI
  • Có thể chạy bằng image Docker
  • Cũng có thể dùng Docker Compose
    • sudo docker compose up -d
    • Có thể đổi cổng bind bằng biến môi trường FREETAR_PORT
  • Thay vì lấy image từ Docker Hub, có thể build kho cục bộ rồi chạy
    • docker compose build
    • docker compose up -d

Môi trường phát triển và công việc sắp tới

  • Môi trường phát triển cần uv
  • Ví dụ chạy khi phát triển là FREETAR_CACHE_TIMEOUT=1 uv run freetar/backend.py hoặc FREETAR_CACHE_TIMEOUT=1 uv run freetar
  • Tệp tĩnh nằm tại freetar/static/*, template HTML nằm tại freetar/templates/*
  • Công việc sắp tới gồm:
    • Cải thiện UX trên thiết bị di động
    • Đóng gói Progressive Web App được ghi là PGA
    • Lưu favs bằng phương thức mã hóa phía máy chủ
    • Hiển thị mã QR để chia sẻ tab nhanh
  • Cũng có các mục đã hoàn thành
  • Có thể đóng góp, nhưng khuyến nghị nên tạo issue đề xuất tính năng trước
    • Không muốn UI hay tính năng trở nên cồng kềnh

1 bình luận

 
GN⁺ 2023-11-30
Ý kiến trên Hacker News
  • Khá ổn, và đã có nhiều công cụ liên quan. Tôi nghĩ họ sẽ tiếp tục khóa chặt hơn việc truy cập tab, nên tôi cũng đã tự làm sẵn một công cụ scrape và lưu tab
    Tôi là thành viên UG Pro trọn đời, nhưng họ cứ liên tục vượt lằn ranh để kiếm tiền nhiều hơn. Đáng tiếc là trong lĩnh vực này gần như không có đường đi theo hướng mã nguồn mở, vì tab thường do nhà xuất bản hoặc ít nhất là nghệ sĩ nắm giấy phép. Oliver Tree từng là một trường hợp kỳ lạ khi buộc gỡ phần lớn tab, dù mỗi bài chỉ ở mức khoảng 4 hợp âm. Nghĩ đến việc ai cũng có thể nghe một bài hát rồi chép tab, tình trạng hiện nay của lĩnh vực này khá gây bực bội

    • Có lẽ còn khá lâu nữa các dự án mã nguồn mở mới đụng phải giới hạn này. Đặc biệt nếu tab được phân tán theo kiểu Soulseek thì càng như vậy
      Tôi tự hỏi đã có ai thử lập luận về sử dụng hợp lý cho mục đích giáo dục chưa. Tab giống chỉ dẫn về cách chơi một bài nhạc sao cho tốt nhất hơn là một tác phẩm sáng tạo thực sự, và do không có thông tin về nhịp nên thường không thể khôi phục bản nhạc thực tế chỉ từ tab. Hợp âm còn chứa ít thông tin hơn nữa, đến mức bản chép hợp âm guitar có thể chẳng giống chút nào với các nốt thực sự được chơi trong bản thu
    • Chuyện Oliver Tree thật đáng tiếc. Tôi thích nhân vật đó, nhưng không biết anh ta lại nghiêm túc với âm nhạc đến vậy. Tôi cứ tưởng nó được cố ý làm đơn giản gần như để giễu nhại
    • Đúng là kinh tế học vi mô. Sản phẩm không được tối ưu cho người dùng, mà là công cụ để vắt tiền
      Tôi nghĩ họ sẽ tiếp tục đẩy tới mức người dùng vừa đủ hài lòng, hoặc thậm chí hơi dưới mức đó
    • Ý là nghệ sĩ hay nhà xuất bản sở hữu mọi tab được tạo ra cho bài hát của họ sao? Tôi tò mò điều đó có cơ sở thế nào
    • Cũng có những nơi tràn lan bản sao miễn phí của nội dung được cấp phép. Tất nhiên tôi chẳng biết gì về những nơi đó, nhưng tôi chắc rằng chúng sẽ cung cấp một lực đối kháng khá hữu ích với chủ nghĩa tư bản
  • Tôi đã dùng Ultimate Guitar từ đầu những năm 2000, và vài tab tôi tạo vẫn còn ở đó. Giờ vào lại thì đúng là bi kịch. Trang web tệ kinh khủng, nên tôi chắc chắn sẽ thử công cụ này

    • Trong số những thứ từ thời đó, thứ nào không trở nên tệ đi rõ rệt thì chỉ là vì nó vẫn giữ nguyên, ví dụ như Craigslist
      Internet thời đó đẹp vì có nhiều ngóc ngách mà việc kiếm tiền không dễ hoặc không được cố theo đuổi, nên nhiều thứ có thể đơn giản là tồn tại. Giờ thì không còn như vậy
    • Thật buồn khi thấy công sức mình đóng góp miễn phí cho cộng đồng lại bị dùng để khai thác chính những người đó
    • Tôi cũng vậy. Tôi đã kết bạn online rất nhiều trên diễn đàn, và đó là chốn lui tới online của tôi vào đầu đến giữa những năm 2000
      Tôi cũng nhớ rất vui kênh IRC nơi chúng tôi tụ tập. Chắc vẫn còn một hai tab tôi đăng trên trang đó. Vài năm gần đây thỉnh thoảng tôi quay lại xem, lần nào cuối cùng cũng lại rời xa
    • Xin tiễn biệt mxtabs. Dù vậy, nhờ UG mà tôi đã học được cách chơi bằng tai
  • Hallelujah. Trước đây tôi đã mua ứng dụng nên được chuyển sang gói trọn đời, nhờ vậy tránh được một phần marketing, nhưng cái UI điên rồ của họ nhiều lúc khiến việc chơi guitar còn khó hơn

  • Tôi nhớ OLGA, tức On-Line Guitar Archive. Khi còn là thiếu niên học guitar những năm 1990, OLGA có đủ tab dạng văn bản do người dùng tạo để tôi có thể học miễn phí mọi bài tôi từng nghe hoặc muốn chơi

    • Nội dung cốt lõi của Ultimate Guitar đến từ OLGA, nên màn enshittification lần này càng có cảm giác đặc biệt phi lý
  • Thực sự tuyệt vời. Tôi học guitar được khoảng 15 tháng, và rất ghét quảng cáo cùng popup trên hầu hết các trang guitar. Công cụ này hoàn hảo vì có giao diện đơn giản, làm đúng việc cần làm và không làm phí thời gian

    • @kmille vì không có chức năng sắp xếp bảng, tôi đã lấy mã từ Stack Overflow và tạo một pull request
      Do không dùng jQuery nên có thể không khớp với quy ước mã hiện tại, nhưng nếu bạn merge và triển khai thì sẽ có tính năng sắp xếp, rất tốt. Cảm ơn lần nữa vì đã nghĩ ra và làm ra nó
  • Rất hay. Trang gốc trong nhiều năm đã trở nên khá thù địch với người dùng, đặc biệt càng khó chấp nhận hơn khi phần lớn nội dung làm nên bản sắc của trang lại do người dùng đóng góp

  • Có hai điều. Thứ nhất, thật sự tuyệt vời. Tôi đã tìm thử các tab mình từng thêm vào trang và nó hiển thị rất tốt. Quan trọng nhất là nó hiển thị ở định dạng thân thiện để in
    Thứ hai, nếu bạn chơi hoặc quan tâm đến guitar cổ điển, cũng nên xem viên ngọc trên Internet này: https://www.classtab.org/

  • Vài năm trước tôi đã làm một web app tương tự. Tôi nghĩ nó cạnh tranh khá tốt với công cụ này. Cũng có tô sáng cú pháp nữa :)
    https://tabviewer.app/

    • Hay đấy. Không biết có mã nguồn mở không. Cá nhân tôi thấy thứ còn thiếu duy nhất là trình xem hợp âm
    • Có liên quan: https://github.com/tablature-viewer/tablature-viewer.github....
      Nói về bình luận anh em và mô tả “nhấp để xem kho lưu trữ”, trừ khi giờ đây "license":"ISC" trong package.json được chính thức công nhận là giấy phép có hiệu lực pháp lý, còn không thì kho lưu trữ này không có giấy phép
  • Tôi mua gói Pro một năm rồi hoàn tiền sau 24 giờ và chịu lỗ, vì đã đăng ký bằng mã khuyến mãi không hoàn tiền
    Ứng dụng đơn giản là không hoạt động đúng. Playlist không thực sự tải bài tiếp theo vào thời điểm mong đợi, mở một bản nhạc mất quá lâu, và với mỗi bài trong playlist lại phải chuyển sang “chords” nên càng tải lâu hơn. Chỉ cần đừng tải những thứ tôi hoàn toàn không cần là đã tiết kiệm được rất nhiều thời gian. Hơn nữa cũng không thể đồng bộ bài thủ công để dùng offline; sau khi thêm vào yêu thích thì phải phụ thuộc vào lịch đồng bộ của họ

  • Tôi đã làm công cụ dòng lệnh cho việc này: https://codeberg.org/ltworf/ultimateultimateguitar