Objective
Create an audio library that supports multiple audio formats. AIDB natively supports MP3, WAV, FLAC, AAC, and OGG formats with explicit type declarations.
Step 1: Create Multi-Format Audio Table
Create a table that can store audio in different formats.
CREATE TABLE audio_library (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
artist VARCHAR(100),
format VARCHAR(10) NOT NULL,
mp3_file AUDIO(MP3),
wav_file AUDIO(WAV),
flac_file AUDIO(FLAC),
aac_file AUDIO(AAC),
ogg_file AUDIO(OGG),
duration_seconds INTEGER,
bitrate INTEGER,
sample_rate INTEGER,
file_size BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Step 2: Create Format-Specific Tables
Create separate tables for each audio format.
-- MP3 files (compressed, most common)
CREATE TABLE mp3_audio (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
audio AUDIO(MP3) NOT NULL,
bitrate INTEGER DEFAULT 320,
file_size BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- WAV files (uncompressed, high quality)
CREATE TABLE wav_audio (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
audio AUDIO(WAV) NOT NULL,
sample_rate INTEGER DEFAULT 44100,
bit_depth INTEGER DEFAULT 16,
file_size BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- FLAC files (lossless compression)
CREATE TABLE flac_audio (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
audio AUDIO(FLAC) NOT NULL,
compression_level INTEGER DEFAULT 5,
file_size BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- AAC files (modern compressed)
CREATE TABLE aac_audio (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
audio AUDIO(AAC) NOT NULL,
bitrate INTEGER DEFAULT 256,
file_size BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- OGG files (open source format)
CREATE TABLE ogg_audio (
id INTEGER PRIMARY KEY,
title VARCHAR(255) NOT NULL,
audio AUDIO(OGG) NOT NULL,
quality INTEGER DEFAULT 8,
file_size BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Step 3: Insert Sample Audio Records
Add sample records for each format.
INSERT INTO mp3_audio (id, title, bitrate, file_size) VALUES
(1, 'Pop Song Master', 320, 8500000),
(2, 'Podcast Episode 15', 128, 28000000),
(3, 'Ambient Background', 192, 4200000);
INSERT INTO wav_audio (id, title, sample_rate, bit_depth, file_size) VALUES
(1, 'Studio Recording Raw', 48000, 24, 125000000),
(2, 'Voice Over Take 1', 44100, 16, 45000000);
INSERT INTO flac_audio (id, title, compression_level, file_size) VALUES
(1, 'Symphony Orchestra', 8, 85000000),
(2, 'Jazz Album Track', 5, 42000000);
INSERT INTO aac_audio (id, title, bitrate, file_size) VALUES
(1, 'Streaming Version', 256, 7200000),
(2, 'Mobile Podcast', 128, 15000000);
INSERT INTO ogg_audio (id, title, quality, file_size) VALUES
(1, 'Game Soundtrack', 8, 6500000),
(2, 'Podcast Archive', 5, 22000000);