aboutsummaryrefslogtreecommitdiff
path: root/src/spectrogramming.audio.sql
blob: 3add75f9824e9585ce73a0956f918b5411427d0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
INSERT OR REPLACE INTO audio_tracks (id, sample_rate, format) VALUES ('spectrogramming', 8000, 'u8') RETURNING id;

WITH RECURSIVE
  audio AS
    (SELECT *, 160 AS gain FROM audio_tracks WHERE id = 'spectrogramming'),
  note_positions(position) AS
    (SELECT 0 UNION ALL
      SELECT position + 1 FROM note_positions, audio
        WHERE position < 100000),
  samples(value, position) AS
    (SELECT
      (100.0*SIN(position * 2.0 / sample_rate) + 1.0) / 2.0 * gain
      , position
    FROM note_positions, audio)
INSERT INTO audio_track_samples (audio_track_id, value, position) SELECT 'spectrogramming', value, position FROM samples ORDER BY position;