init commit
This commit is contained in:
61
IDEA.MD
Normal file
61
IDEA.MD
Normal file
@@ -0,0 +1,61 @@
|
||||
# Application Idea
|
||||
|
||||
`playback` is a fullscreen TUI for playing audio files in parallel with rendering their transcription from an SRT file.
|
||||
|
||||
|
||||
## Features
|
||||
|
||||
**Waveform View**
|
||||
A section that renders the "timeline" which show the waveform as well as a needle showing the current location
|
||||
|
||||
**Transcript View**
|
||||
A scrollable view that shows the contents of the SRT. As the audio is playing (or paused) at any particular location, the
|
||||
relevant text from the transcript should be highlighted showing the current location. Allow for an edit mode to fix
|
||||
transcriptions. With vim style interactions. If vim can be incorperated itself then eve better.
|
||||
|
||||
**Keyboard Navigation**
|
||||
- When the waveform view is the active view, move forward and back in the audio with `left`, `right`, `h`, and `l`.
|
||||
- When the transcript view is active, use vim binding to move around. Including `i` to enter interactive/edit mode.
|
||||
- Use `ctrl + j` and `ctrl + k` to move between wave form and transcript mode.
|
||||
|
||||
**Layout**
|
||||
The two views will stack vertically on top of each other, with the waveform being on top. Not too much vertical room is
|
||||
needed for the waveform. The trascript section will take up the rest of the vertical space and will be scrollable.
|
||||
|
||||
There will be a small section at the top with the absolute path to the audio file and to the SRT file.
|
||||
|
||||
## Workflow
|
||||
|
||||
Application launched with
|
||||
|
||||
```bash
|
||||
playback ./audioFileName -t ./transcriptFileName.srt
|
||||
```
|
||||
|
||||
`-t` stands for transcript and it is optional. If `-t` is not provided the system will first try to find a file in the same
|
||||
directory as the audio file that is also named the same except with an `srt` extension. If that is not found them the application
|
||||
will launch with no transcript.
|
||||
|
||||
**No Transcript Mode**
|
||||
The app can function perfectly fine with no transcript. The user can play, pause, rewind, fast forward, no issue. In this mode,
|
||||
the application will actually create a stand in, empty transcript with a formualted name of `sameNameOfFile.srt.tmp` in the system `/tmp`
|
||||
folder. The user will be able to edit this file in the editor and save it (using the vim commands when not in edit mode). If the user
|
||||
saves the file and it is one of these temp files, then it will make a new file in the dir of the audio file named `sameNameOfFile.srt`
|
||||
|
||||
The tmp transcript will be mostly empty, other than message about no transcript was found and a temproary file was made, which they can
|
||||
edit here, and what it will be saved as. Also the file will inform them about the `transcribe` tool found at
|
||||
`https://git.beitzah.net/ysandler/transcribe`. It will also inform them about how to launch with a srt file is the mistakenly didn't
|
||||
include it
|
||||
|
||||
|
||||
## Configuration
|
||||
- config file is found at `~/.config/playback`
|
||||
|
||||
|
||||
## Tech stack
|
||||
|
||||
I want to build as much as possible in Golang.
|
||||
I want to have versioning with a file called `VERSION` that just contains the version value
|
||||
I want to use `make` to build
|
||||
I want an install.sh script that creates a desktop registry for app launchers (only worrying about linux right now)
|
||||
|
||||
Reference in New Issue
Block a user