piyano

CANLI ENSTRÜMAN v1.0
🎹 Bileşen Analizi & Kullanım Alanları

Bu Vanilla Synth, harici kütüphane bağımlılığı olmaksızın Web Audio API üzerine kurulu çok sesli (polyphonic) bir yazılım sentezleyicisidir. Osilatör, filtre, ADSR zarfı ve dinamik sıkıştırıcı zinciri saf JavaScript ile yönetilir.

🚀 Nerelerde Kullanılır?
  • Müzik Eğitimi: Nota öğretimi, aralık tanıma ve kulak eğitimi uygulamalarında interaktif klavye olarak kullanılabilir.
  • Web Tabanlı DAW: Tarayıcı üstü beat-maker veya loop-station prototipleri için ses motoru altyapısı olarak görev yapar.
  • Erişilebilirlik Araçları: Fiziksel klavye kısayolları sayesinde motor engelli kullanıcılar için alternatif giriş cihazı olarak uyarlanabilir.
🎨 Özelleştirme İpuçları:
  • Oktav Aralığı: OCTAVE_RANGE = [4, 5] sabitini değiştirerek klavye aralığını genişletebilirsiniz.
  • Zarf Süreleri: pressNote içindeki exponentialRampToValueAtTime değerleriyle atak/çürüme eğrisini özelleştirebilirsiniz.
  • Filtre Karakteri: BiquadFilter tipini lowpass'tan bandpass'a çevirerek tamamen farklı bir tını elde edebilirsiniz.
🌐 HTML KODU ✏️ Düzenlenebilir
🎨 CSS KODU ✏️ Düzenlenebilir
⚡ JAVASCRIPT KODU ✏️ Düzenlenebilir
🤖 YAPAY ZEKA (AI) PROMPTU ChatGPT / Claude / v0

Bu enstrümanı yapay zekaya sıfırdan yazdırmak, farklı bir tını motoruna dönüştürmek veya React/Vue bileşenine taşımak için hazır prompt:

Bana modern web standartlarına (HTML5, CSS3, Vanilla JS ES2020+) tam uyumlu, harici kütüphane kullanmayan bir "Tek Sayfa Web Audio Enstrümanı (Vanilla Synth)" oluştur.

Gereksinimler:
1. Ses Motoru: Web Audio API kullanarak çok sesli (polyphonic) sentez. Her nota için iki osilatör (biri detune edilmiş), BiquadFilter (lowpass) ve ADSR genlik zarfı. Sinyal zinciri: voices → masterGain → DynamicsCompressor → AnalyserNode → destination.
2. Kullanıcı Arayüzü: Koyu tema (dark mode), flexbox tabanlı akışkan piyano klavyesi (2 oktav). Beyaz tuşlar flex, siyah tuşlar yüzde bazlı mutlak konumlandırma ile hizalanmalı.
3. Etkileşim: Fiziksel klavye kısayolları (A W S E D F T G Y H U J K), pointer events ile dokunmatik/fare desteği, pointer capture ile note-off güvenilirliği.
4. Kayıt Sistemi: Nota başlangıç zamanı ve sürelerini bellekte tutan bir kayıt motoru. setTimeout tabanlı oynatma. localStorage üzerinde kalıcı arşiv (isim, dalga formu, olay dizisi).
5. Görselleştirme: AnalyserNode verisini Canvas 2D ile osiloskop olarak çizen, devicePixelRatio'ya göre ölçeklenen bir scope.
6. Dalga Formu Seçici: sine / triangle / sawtooth / square arasında canlı morphing (aktif seslerin tınısı anında güncellenmeli).
7. Kod Yapısı: Tek HTML dosyasında `