Skip to content

Commit 97a4e4f

Browse files
authored
Merge pull request #45 from boostcampwm-snu-2026-1/feat/39-wav-file-import
feat: import WAV files as audio clips
2 parents 45d6bb7 + c22796e commit 97a4e4f

15 files changed

Lines changed: 1078 additions & 94 deletions

docs/features/15-wav-file-import-as-audio-clip.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Feature: 15 WAV File Import as Audio Clip
22

33
## Status
4-
Planned
4+
In Review
55

66
## Goal
77

@@ -33,6 +33,7 @@ Included:
3333
- Display the imported audio clip in the sidebar clip list.
3434
- Selecting the imported audio clip should show a simple audio clip detail or placeholder editor instead of the drum sequencer and piano roll.
3535
- Show useful imported file metadata such as file name, display name, duration, and file type when practical.
36+
- Add a simple loop preview play/stop control for the selected imported audio clip.
3637
- Keep imported file bytes and decoded `AudioBuffer` data in runtime-only storage.
3738
- Document that imported files are not persisted across refresh until IndexedDB or another persistence feature is implemented.
3839
- Preserve the existing hybrid clip creation behavior under `Build a clip`.
@@ -130,6 +131,7 @@ Important limitation: without time stretching, resizing an audio clip instance s
130131
- `Import a file` opens a file picker that accepts `.wav` files.
131132
- Selecting a valid WAV creates an audio clip in the sidebar.
132133
- Selecting the audio clip shows an audio clip detail or placeholder editor instead of drum/piano editors.
134+
- The audio clip detail view can loop-preview and stop the imported WAV from the runtime cache.
133135
- Invalid or undecodable files show a clear error and do not create broken clip state.
134136
- Imported audio metadata is serializable.
135137
- Runtime-only file, object URL, decoded buffer, and audio node data are not stored in project JSON.
@@ -149,6 +151,7 @@ Manual check:
149151
- Choose `Import a file` and confirm the browser file picker accepts WAV files.
150152
- Import a valid WAV and confirm a new audio clip appears in the sidebar.
151153
- Select the imported audio clip and confirm the app shows audio clip information rather than the drum sequencer and piano roll.
154+
- Use the preview controls and confirm the imported WAV loops and can be stopped.
152155
- Try an invalid file and confirm the app shows an error without corrupting clip state.
153156
- Refresh the page and confirm any non-persisted imported file limitation is understandable.
154157

src/app/App.module.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@
8989
overflow: hidden;
9090
}
9191

92+
.singlePanel {
93+
min-height: 0;
94+
overflow: hidden;
95+
}
96+
9297
@media (max-width: 920px) {
9398
.mainLayout {
9499
grid-template-columns: minmax(212px, 32%) minmax(0, 1fr);

0 commit comments

Comments
 (0)