เครื่องมือ Audio Mastering ออนไลน์ที่ทำงานบนเบราว์เซอร์โดยตรง
ใช้ Web Audio API ประมวลผลเสียงแบบ Real-time ไม่ต้องติดตั้งอะไรเพิ่ม
ลากไฟล์เสียงวางที่ช่อง Waveform หรือคลิกปุ่ม Upload รองรับ WAV, MP3, FLAC, OGG
แสดงรูปคลื่นเสียงแบบละเอียด มี Seek Bar กระโดดไปยังจุดต่างๆ ของเพลงได้
กราฟความถี่เสียง Real-time 64 แท่ง พร้อม Peak Indicator สี Mint เมื่อเกิน 70%
เส้นโค้ง EQ 7 Band แบบ Real-time มี Drag Handles 7 จุดให้ลากปรับค่าได้โดยตรง
เลือกแนวเพลงได้ 35 แนว ตั้งแต่ Pop, Rock, EDM ถึง Afrobeats, Shoegaze และ Grunge
ส่งออกเป็น WAV 16/24/32-bit หรือ MP3 192/256/320kbps พร้อมดาวน์โหลดทันที
Compressor 7 พารามิเตอร์: Threshold, Ratio, Attack, Release, Knee, Make-Up, SC HPF
Noise Gate ตัดเสียงรบกวน + De-Esser ลด Sibilance ทำงานแบบ Real-time
WaveShaper จำลองเสียง Saturation พร้อม Dry/Wet Mix ให้ความอบอุ่นแก่เสียง
ปรับความกว้าง Stereo 0% (Mono) ถึง 200% (Extra Wide) ด้วย Mid/Side Matrix
Limiter ป้องกัน Clipping ด้วย Ratio 20:1 ปรับ Ceiling, Threshold, Release ได้
รองรับทุกขนาดหน้าจอ มี Mobile Bottom Nav และ Genre Drawer สำหรับมือถือ
เปิดไฟล์ index.html บนเบราว์เซอร์ — ไม่ต้องติดตั้งอะไรเพิ่ม ทำงานได้ทันทีบนเบราว์เซอร์สมัยใหม่
คลิกปุ่ม Upload Audio หรือลากไฟล์เสียงวางที่ช่อง Waveform รองรับ WAV, MP3, FLAC, OGG
เลือกแนวเพลงจาก Sidebar (Desktop) หรือแท็บ Genres (มือถือ) ระบบจะปรับ EQ + Compressor อัตโนมัติ
ใช้ Slider ในส่วน Mastering Controls หรือลาก Handle บน EQ Curve เพื่อปรับแบบ Real-time
กด Play ฟังเสียงที่ปรับแล้ว → พอใจแล้วกด Export เลือกฟอร์แมตและดาวน์โหลด
หน้า Studio หลัก — UI ทั้งหมดของแอปพลิเคชัน
คู่มือการใช้งานสำหรับผู้ใช้ทั่วไป
เอกสารประกอบโปรเจกต์ (หน้านี้)
CSS ทั้งหมด — Custom Properties, Glass Cards, Sliders, Genre Buttons, Responsive
JavaScript Logic — Audio Engine, UI Controls, Genre Presets, Export, Animation Loop
Slider ทั้ง 28 ตัว แบ่งเป็น 8 กลุ่ม
| Control | Web Audio Node | Range | Default | Step |
|---|---|---|---|---|
| Input Gain | GainNode |
-24 → +24 dB | 0 dB | 0.1 |
| Output Gain | GainNode |
-24 → +24 dB | 0 dB | 0.1 |
| Band | Filter Type | Freq | Q | Range | Default |
|---|---|---|---|---|---|
| Sub 60 | Low Shelf | 60 Hz | — | ±12 dB | 0 |
| Bass 150 | Low Shelf | 150 Hz | — | ±12 dB | 0 |
| Lo Mid 400 | Peaking | 400 Hz | 1.0 | ±12 dB | 0 |
| Mid 1k | Peaking | 1 kHz | 0.7 | ±12 dB | 0 |
| Hi Mid 3k | Peaking | 3 kHz | 1.0 | ±12 dB | 0 |
| Treble 6k | High Shelf | 6 kHz | — | ±12 dB | 0 |
| Air 12k | Peaking | 12 kHz | 0.8 | ±6 dB | 0 |
| Control | Range | Default | Step |
|---|---|---|---|
| Threshold | -60 → 0 dB | -24 dB | 0.5 |
| Ratio | 1 → 20 :1 | 4:1 | 0.1 |
| Attack | 0.1 → 100 ms | 10 ms | 0.1 |
| Release | 10 → 1000 ms | 100 ms | 1 |
| Knee | 0 → 30 dB | 10 dB | 0.5 |
| Make-Up Gain | 0 → +24 dB | 0 dB | 0.1 |
| SC HPF | 0 → 500 Hz | 0 Hz | 1 |
ลำดับการไหลของเสียงผ่าน Web Audio Node ต่างๆ:
แต่ละ Preset ปรับค่า EQ 7 Band + Compressor 7 พารามิเตอร์ + Saturation, Stereo, Limiter, Gate, De-Esser อัตโนมัติ
| Format | คุณภาพ | ขนาดโดยประมาณ (ต่อนาที) | หมายเหตุ |
|---|---|---|---|
| WAV 16-bit | CD Quality | ~10 MB/min | ไฟล์เล็กสุดในบรรดา WAV |
| WAV 24-bit | Studio Quality | ~15 MB/min | คุณภาพระดับสตูดิโอ |
| WAV 32f | Max Precision | ~20 MB/min | IEEE Float สำหรับประมวลผลต่อ |
| MP3 320 | Best MP3 | ~2.4 MB/min | คุณภาพสูงสุดของ MP3 |
| MP3 256 | Good Quality | ~1.9 MB/min | สมดุลระหว่างคุณภาพและขนาด |
| MP3 192 | Smaller Size | ~1.4 MB/min | เหมาะส่งต่อ/แชร์ |
MP3 Encoding ใช้ไลบรารี lamejs — หากไลบรารีไม่พร้อมใช้งาน ปุ่ม MP3 จะถูก Disable อัตโนมัติ แนะนำใช้ WAV แทน
แถบนำทาง 4 แท็บ: Player, Genres, Controls, Analyze
แท็บ Genres เปิด Drawer จากด้านล่าง แสดง 3 คอลัมน์
สไลด์นิ้วปรับค่าได้ทุก Slider + EQ Handle
จัดเรียงใหม่อัตโนมัติให้พอดีกับหน้าจอเล็ก
Audio Processing Engine — GainNode, BiquadFilter, DynamicsCompressor, WaveShaper, AnalyserNode
Utility-first CSS Framework สำหรับ Responsive Layout
Icon Library สำหรับ UI Elements ทั้งหมด
Waveform, Spectrum Analyzer, EQ Curve และ Particle Background
MP3 Encoder สำหรับ Export เป็น MP3 (192/256/320kbps)
Google Fonts — ฟอนต์หลักที่ใช้ทั้งโปรเจกต์
1. เพิ่ม Object ในอาร์เรย์ GENRES ในไฟล์ script.js
2. เพิ่ม Overrides ใน GENRE_OVERRIDES — ระบุเฉพาะค่าที่ต่างจาก BASE_PRESET
// ตัวอย่าง: เพิ่ม Genre "Drill"
GENRES.push({ name: 'Drill', emoji: '🔫' });
GENRE_OVERRIDES['Drill'] = {
bass: 4, mid: 1, treble: 2.5, air: 1,
compThreshold: -16, compRatio: 4.5, compMakeup: 4,
satDrive: 15, stereoWidth: 110,
// ... ระบุเฉพาะค่าที่ต่างจาก BASE_PRESET
};
1. เพิ่ม Object ในอาร์เรย์ EXPORT_FORMATS
2. เพิ่ม Case ในฟังก์ชัน exportAudio() สำหรับ Encoding logic
3. เพิ่ม Case ในฟังก์ชัน estimateFileSize() สำหรับคำนวณขนาดไฟล์
1. เพิ่ม Section ใน CONTROL_SECTIONS — กำหนด id, label, icon, controls
2. สร้าง Node ใน initAudioNodes() — สร้าง Web Audio Node และเก็บใน state
3. ต่อ Node เข้า connectProcessingChain() — แทรกเข้าในลำดับที่ต้องการ
4. เพิ่ม Case ใน applyControlToAudio() — เชื่อม Slider เข้า Node
5. เพิ่ม Node ใน renderOffline() — สำหรับ Export