deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

oTAPE 1.0 sürüm adayı dijital kasetler için açık bir dosya biçimi tanımlıyor

oTAPE projesi açık bir dijital kaset biçimi için 1.0 sürüm adayını yayımladı: ZIP, JSON ve AAC'den oluşan, iki sabit uzunluktaki yüzü, kapak görselini ve kayıt sekmelerini tek bir bağımsız .otape dosyasında barındıran bir biçim.

oTAPE 1.0 sürüm adayı dijital kasetler için açık bir dosya biçimi tanımlıyor

Kasetin tamamı için açık bir biçim

oTAPE projesi, açık bir dijital kaset dosya biçimi için 1.0 spesifikasyonunun sürüm adayını yayımladı. 1 Kasım 2026'da Hacker News'in ana sayfasına çıkan otape.org adresindeki projeye göre, tek bir .otape dosyası kasetin tamamını içeriyor: sabit uzunlukta, her biri kesintisiz tek bir kayıt olan iki yüz, etiket, J-kart, varsa kitapçık ve kayıt sekmelerinin durumu. Dosya kendi içinde bütündür ve çevrimdışı çalışır; yapıldığı kayıtlara ya da çevrimiçi hiçbir şeye asla bağlantı vermez.

Spesifikasyon CC BY 4.0 lisansıyla sunuluyor. Özellikle belirtmek gerekir: oTAPE ne bir codec'dir ne de bir müzik çalar — fiziksel bir ortamı, sınırları dâhilinde modelleyen bir container'dır.

Neden önemli biçimde kaset gibi davranıyor

Biçim, akış çağı çalma listelerinin ortadan kaldırdığı kısıtlamaları koruyor. Her yüz bölünmemiş tek bir kayıt; dolayısıyla şarkılar arasındaki sessizlik, sözlü bir giriş ya da pause tuşuna basılma sesi kaydın parçası olarak kalıyor. Parça işaretleri bir yüzü ayrı dosyalara bölmeden şarkılara isim verebiliyor. Konuma atlama yerine sararak ulaşılıyor ve dinleyici diğer yüze çevirmeden önce bir yüz sonuna kadar çalıyor. Kaseti çalmak dosyayı asla değiştirmiyor; çalar dinleme konumunu dosyaya geri yazmak yerine kendi hatırlıyor, tıpkı fiziksel bir kasetin sarımını koruması gibi.

.otape dosyasının içinde

Bir .otape dosyası sabit bir yapıya sahip sıradan bir ZIP arşividir. Araçların dosyayı açmadan tanıyabilmesi için mimetype girdisi ilk sırada yer alıyor: sihirli baytlar ofset 0'daki standart ZIP imzası, application/vnd.otape.cassette ortam türü ise 38. baytta saklanıyor. Ardından manifest.json dosyası kaseti, iki yüzünü ve görünümünü tanımlıyor; bunu kaydedilmiş her yüz için birer ses dosyası izliyor — boş bir yüz basitçe atlanıyor — ve isteğe bağlı görsel ile belge dizinleri geliyor.

AAC-LC, M4A içinde, uyumlu her çaların desteklemek zorunda olduğu tek codec; ALAC, FLAC ve PCM isteğe bağlı alternatifler. Zaman çizelgesi 44.1 veya 48 kHz'de tam sayı karelerle ifade ediliyor ve örneğe kadar kesin. Sürümler MAJOR.MINOR şemasını izliyor; küçük sürümler yalnızca isteğe bağlı alanlar ekleyebiliyor ve yeniden yazımda bilinmeyen veriler korunuyor. Kabuk ve etiket görselleri sabit fiziksel boyutlarda resimler olarak sağlanabileceği gibi, her çaların görüntüleyebileceği birkaç satırlık JSON ile de tanımlanabiliyor.

Sabit uzunluklar ve yazmaya karşı koruma sekmeleri

Kaset uzunlukları gerçeğini yansıtıyor: C46, C60, C90 ve C120 tanımlı; özel bir kaset ise C artı toplam dakikası olarak adlandırılıyor ve uzunluk ile kalınlık, spesifikasyonun Ek B.3'ündeki makara modelinden türetiliyor. Her yüzde, bitmiş bir kaseti yanlışlıkla yeniden kayıttan korumak için kırılabilen bir kayıt sekmesi var. Site bunun DRM olmadığını açıkça belirtiyor — fiziksel bir kasette olduğu gibi, isteyen deliği kapatıp yeniden kaydedebilir.

Çalma sırasında uygulanan makine emülasyonu

Bir kaset iki ayrı düzende asla aynı sesi vermezdi ve oTAPE çalarları bunu yeniden üretebiliyor. Proje modellenmiş dört etki tanımlıyor: hem yavaş perde kaymasını (wow) hem de hızlı titremeyi (flutter) kapsayan wobble; yalnızca kaset dönerken duyulan hışırtı; tizlerle başlayan kayıtlı tepe noktalarının yuvarlanması olan warmth; ve tizleri körelten, kısa süreli sinyal kayıplarına yol açan ve stereo görüntüyü bulanıklaştırabilen wear.

Bunların hiçbiri kayda gömülü değil. Makine karakteri dinlerken uygulanıyor, .otape dosyası dokunulmadan kalıyor ve dinleyiciler şarkı ortasında makine değiştirebiliyor. Makinelerin kendileri küçük açık ön ayarlar — yüzde hız, desibel ve hertz gibi fiziksel birimlerle yazılmış .otsound dosyaları — bu yüzden belirli bir ön ayar her çalarda aynı şekilde seslendiriliyor. Altı ön ayar gömülü olarak geliyor ve kullanıcılara kendi ön ayarlarını yapıp paylaşmaları davet ediliyor.

Düz JavaScript ile bir referans çalar

Proje, kitaplıksız, yaklaşık 1.200 satırlık düz JavaScript'ten oluşan tarayıcı tabanlı bir kaset çalar ile geliyor. Üzerine bırakılan herhangi bir .otape dosyasını çalıyor ve dosyaları yüklemek yerine tarayıcıda yerel tutuyor. Çalar, sitedeki ifadesiyle Mirat Can Bayrak'ın 24 yaşındayken yazıp 42 yaşındayken yeniden kaydettiği Gitsem adlı gösterim kasetiyle birlikte geliyor ve çalma, geri sarma, ileri sarma, çevirme ve çıkarma için klavye kontrollerini destekliyor.

Neden önemli

Ses paketlemesinin çoğu kolaylık için optimize edilir: anında atlama, karıştırma, bulut kütüphaneleri. oTAPE tersini savunuyor — sabit uzunluk, elle sıralanmış bir düzen ve tek bir bağımsız nesne, kaldırılması gereken engeller değil, tanımlamaya değer niteliklerdir. Biçim tamamen standart parçalardan (ZIP, JSON, AAC, PNG ve JPEG) oluşturulduğu için zaten var olan araçlarla okunabiliyor; sürümleme kuralları ve izin veren lisansı ise kilitlenmeye değil uzun vadeli birlikte çalışabilirliğe işaret ediyor.

Müzisyenler için, sıralamanın ve runtime'ın eserin parçası olduğu kasıtlı olarak kısıtlanmış bir yayınlama biçimi sunuyor. Arşivciler içinse görselleri, notları ve kayıt geçmişini sesin yanında tek bir çevrimdışı dosyada tutan, korumaya uygun bir paket. Spesifikasyon sürüm adayı durumunda olduğundan tasarım fiilen özellik açısından tamamlandı ama geri bildirime hâlâ açık — bu da olası uygulayıcılar için 1.0 kesinleşmeden önce test edip yorum yapmanın en doğal anı anlamına geliyor.

  • #file-formats
  • #audio
  • #open-source
  • #cassettes
  • #retro-tech

İlgili yazılar