summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 77bce18661d28b7cb033351964c3b5b0d70a0bb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
TODO:
* Nag screen: "Observe the law, do not record people without their consent"
	* "Don't show me this again" checkbox
* Volume leveling on user's behalf
	* Set recording volume for both sources to reasonable level (75%?)
	* Normalize each to something like -0.1dB
	* After mixing the streams, do some sort of compression/leveling
* Reset names of monitor devices to be more human-understandable
* CLI interface
* Choice of gst-audio-profiles for encoding
* Show a timer as a modal progress dialog
* Check disk space usage? Show that too?
* Rip out PA ctypes stuff entirely and replace with udev (?) calls?
* Handle file name collisions and/or overwrites
* Pause toggle button
* Advanced settings
	* Volume settings
	* Option for separate stream recording
* Record from streams instead of devices (maybe more human understandable?)
* "Test mode" before recording
  	* Offer a dummy text to test levels (plosives, etc.)
	* PA volume/gain controls (with peaks?)


NOTES:
Mixing two sources together using GStreamer "adder" element:
gst-launch adder name=mix ! pulsesink { filesrc location=05.mp3 ! decodebin ! mix. } { filesrc location=07.mp3 ! decodebin ! mix. }

What I'm doing in this GStreamer pipeline:
gst-launch adder name=mix ! vorbisenc ! oggmux ! filesink location=blah { pulsesrc ! mix. } { pulsesrc ! mix. }

SAME AS:
gst-launch pulsesrc ! adder name=mix pulsesrc ! mix. ! vorbisenc ! oggmux ! filesink location=blah