Simple-Voice-Recorder icon indicating copy to clipboard operation
Simple-Voice-Recorder copied to clipboard

Allow recordings to be saved as an uncompressed PCM file

Open bielej opened this issue 4 years ago • 2 comments

Please add setting allowing saving recordings in a uncompressed PCM (wav) file.

bielej avatar May 19 '20 17:05 bielej

http://soundfile.sapp.org/doc/WaveFormat/ public static byte[] wavHeader( long totalAudioLen, long totalDataLen, long sampleRate, int channels,byte bitPerSample) { // >> shift operators for endianness long byteRate=sampleRatechannels(bitPerSample/8); byte[] header = new byte[44]; header[0] = 'R'; // RIFF/WAVE header header[1] = 'I'; header[2] = 'F'; header[3] = 'F'; header[4] = (byte) (totalDataLen & 0xff); header[5] = (byte) ((totalDataLen >> 8) & 0xff); header[6] = (byte) ((totalDataLen >> 16) & 0xff); header[7] = (byte) ((totalDataLen >> 24) & 0xff); header[8] = 'W'; header[9] = 'A'; header[10] = 'V'; header[11] = 'E'; header[12] = 'f'; // 'fmt ' chunk header[13] = 'm'; header[14] = 't'; header[15] = ' '; header[16] = 16; //16 for PCM. 4 bytes: size of 'fmt ' chunk header[17] = 0; header[18] = 0; header[19] = 0; header[20] = 1; // format = 1 header[21] = 0; header[22] = (byte) channels; // channels 1 for mono 2 for stereo header[23] = 0; header[24] = (byte) (sampleRate & 0xff); header[25] = (byte) ((sampleRate >> 8) & 0xff); header[26] = (byte) ((sampleRate >> 16) & 0xff); header[27] = (byte) ((sampleRate >> 24) & 0xff); header[28] = (byte) (byteRate & 0xff); header[29] = (byte) ((byteRate >> 8) & 0xff); header[30] = (byte) ((byteRate >> 16) & 0xff); header[31] = (byte) ((byteRate >> 24) & 0xff); header[32] = (byte) (1 * (bitPerSample / 8)); // block align header[33] = 0; header[34] = bitPerSample; // bits per sample header[35] = 0; header[36] = 'd'; header[37] = 'a'; header[38] = 't'; header[39] = 'a'; header[40] = (byte) (totalAudioLen & 0xff); header[41] = (byte) ((totalAudioLen >> 8) & 0xff); header[42] = (byte) ((totalAudioLen >> 16) & 0xff); header[43] = (byte) ((totalAudioLen >> 24) & 0xff); return header; }

FreddyJohn avatar Feb 28 '21 16:02 FreddyJohn

I second that request. I would like to record in an uncompressed (PCM/WAV) or at least a lossless compressed (FLAC) format.

On a sidenote, the setting says "extension" but the extension is not what it is about. For example m4a is a container format than can include a variety of different formats. In this case it happens to be AAC. https://en.wikipedia.org/wiki/MPEG-4_Part_14#Data_streams Selecting the format (codec) here would make more sense IMHO.

hollunder avatar May 26 '22 10:05 hollunder