An easy way of recording any discussion or sounds without ads or internet access

Overview

Simple Voice Recorder

Logo

Ever wished you remember what the other person said? Or the task they gave you at a meeting? Wish no more. With this simple recorder you can record any audio really quickly.

The app goes straight to the point, it contains no fancy features that you won't use. Just you and the voice recorder. It shows the current sound volume on a nice visualization that you can have a lot of fun with. Provides a really intuitive and clean user interface, not much can go wrong there.

Contains no ads or unnecessary permissions. It is fully opensource, provides customizable colors.

This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com

Get it on Google Play Get it on F-Droid

App image App image App image
Comments
  • [Crash] Deny Permissions

    [Crash] Deny Permissions

    After denying permission two times, the app is crashing while opening till we allow the permission from settings.

    Ref Video:

    https://user-images.githubusercontent.com/38963667/147447509-89639c1c-8f97-403f-874c-991dcd30ddbd.mp4

    opened by Anshul1507 11
  • Added widget for quick recording starting (#22)

    Added widget for quick recording starting (#22)

    Hi,

    I've added a widget for quick recording starting. I've created it based on other Simple apps, so there is an icon configuration. The widget works in a way that after tapping, it starts the app with recording turned on. If there is already recording going on, it doesn't stop the current recording.

    I tried to do this without opening an app, but I got an exception on setting audio source. I found a workaround which was opening the MainActivity, starting service and closing the app, but I wasn't able to do this without initial render and I decided to not go this way, since it wasn't looking nice with a blink of an app on the screen. However, if you'd prefer this way, I can modify the code.

    vq6u0YJeDi

    opened by Aga-C 8
  • Files are saved with the .mp3 extension but are AAC

    Files are saved with the .mp3 extension but are AAC

    I have tried the new app and I have seen that the files are recorded with the .mp3 extension but MediaInfo says that they are in AAC format. I also notice that the sound is a bit metallic, is there any noise reduction applied to the recordings? Thanks for this new app.

    feature request 
    opened by proideo 7
  • Rename en-GB to en-US

    Rename en-GB to en-US

    If there's no metadata that matches current locale (eg. ro-RO), F-Droid tries to use en-US but if that's not available either it will show first metadata language code found eg. Arabic

    opened by licaon-kter 6
  • Added starting recording on app launch (#20)

    Added starting recording on app launch (#20)

    Hi,

    I've added an option for starting recording after launching the app.

    https://user-images.githubusercontent.com/85929121/137784459-06503709-1e0a-4678-8770-65e6678a21c0.mp4

    opened by Aga-C 5
  • Different licenses listed

    Different licenses listed

    Fdroid has this app listed as an Apache License 2.0 https://f-droid.org/en/packages/com.simplemobiletools.voicerecorder/

    Here on github it's listed as a GPLv3 License. The Apache 2.0 License is compatible with the GPLv3, but I'm not sure it works the other way.

    I'm assuming one of these are incorrect, so I thought I would point it out. One difference is Apache allows sublicensing, but the GPLv3 doesn't. So, it could make a difference on how the code is used.

    feature request 
    opened by metalx1000 5
  • [Bug] Recording stopped by power button if started from widget

    [Bug] Recording stopped by power button if started from widget

    Environment

    Phone: Moto G7 Power OS: LineageOS 16.0, 19.1 (LOS v. 16.0 is equivalent to stock Android 9, and v. 19.1 is equivalent to stock A12)

    Reproduction steps

    1. Kill the app. Make sure it is not running in the foreground or recently backgrounded.
    2. Start the recording from the widget
    3. Hit the power button to lock the phone
    4. Unlock the phone
    5. Stop the recording using the widget (a toast appears saying "recording saved successfully")
    6. Open the app, check the recordings list and see that it is empty
    7. Tap the empty recordings list to make the recordings reappear
    8. Notice the latest recording is only 2 seconds long
    9. Play the latest recording to confirm it is only 2 sec long

    see comment below for alternate reproduction steps (background process timeout)

    How I use the app

    I make recordings almost every day, and have been doing so with Simple VR for a while now. Usually my recordings are 20 to 30 min but I have gone much longer. I usually use the widget to quickly start capturing audio, and don't use my phone until I'm done. When finished, I unlock my phone, then I press the widget again to stop the recording. I rarely go back and check my recordings, so I assumed my recordings were successful since the widget stays orange until I finish the recording and press the widget again, then it turns back to white.

    The bug

    I believe there is a bug that stops the recording when the app goes to the background, when the display goes to sleep, or I hit the lock button on the side. I can tell because I just checked my recordings and saw that for the last month and a half, they are all very short, on average less than a minute and a half, some only a few seconds, and some of the files are empty! As I said before, I usually record for 20 mins or much longer. Sure enough, I listened to some of these short recordings and found that the recordings were cut off. I lost about 90 days of recordings! :(

    Notable observations

    This would also imply that the widget is misleading me into thinking my recorder was recording the whole time since it is still orange when I go to tap it again and end the recording. Usually I have to unlock my phone first, then I see the widget is still orange.

    My list of recording files shows that this problem began on July 1, because I have long-length recordings up to June 30th.

    Last week I updated my phone's OS from Lineage 16.0 to 19.1, so I had to reinstall the app. However, I just discovered this problem an hour ago so it must be related to the app, or at least not my OS.

    bug 
    opened by jncosideout 4
  • Pause and close recording makes app crash

    Pause and close recording makes app crash

    Hi, as the title I notice this issue yesterady. Step to reproduce: 1 - Start recording 2 - Pause the recording 3 - Close the recording

    If you try instead to pause - unpause - stop recording then it stops and save the file properly. Well, nothing crititcal, just to inform.

    crDroid 7.5 (Android 11 based)

    bug 
    opened by MarkoIndaco 3
  • Consider mirroring the repos to Codeberg

    Consider mirroring the repos to Codeberg

    Hello @SimpleMobileTools I believe us should mirror our repos to Codeberg because:

    1. Codeberg is libre, free, open-source, privacy-friendly, non-profit
    2. GitHub is privacy-invasive, proprietary
    3. People on Codeberg like me can contribute to the project
    4. GitHub can take down your repos

    Here are some sources for you:

    1. https://sfconservancy.org/GiveUpGitHub
    2. https://github.com/humanetech-community/awesome-humane-tech/issues/33
    3. https://github.com/ungoogled-software/ungoogled-chromium/discussions/1894
    4. cadence.moe/blog/2022-07-03-git-forge-opinions-github-gitlab-gitea-sourcehut
    5. https://github.com/andersju/webbkoll/issues/35
    6. https://docs.codeberg.org/advanced/migrating-repos

    FAQ

    1. Q: - GitHub Actions -- this is a huge time saver for me - Forcing all contributors to modify their current setup and move to another hosting -- we may just lose contributors in the end

      A: As I said, we only just mirror. The repo will be available and contributable on both sites.

    2. Q: - Transferring issues -- is this possible? Issues here represent a technical knowledge base we can't live without - Transferring wiki and all edit history -- possible?

      A: Yes, it is possible. a. Example for issues:

    • https://github.com/andersju/webbkoll/issues/35
    • https://codeberg.org/dataskydd.net/webbkoll/issues/35
    • https://github.com/andersju/webbkoll/issues/33
    • https://codeberg.org/dataskydd.net/webbkoll/issues/33
    • https://github.com/zyachel/quetre/issues/7
    • https://codeberg.org/zyachel/quetre/issues/7

    b. Example for commits:

    • https://codeberg.org/dataskydd.net/webbkoll/commit/6ddfbc6c71ab92f754252dd4904cf49fb19672a6
    • https://github.com/andersju/webbkoll/commit/6ddfbc6c71ab92f754252dd4904cf49fb19672a6

    c. Example for wiki:

    • https://github.com/Freeyourgadget/Gadgetbridge/wiki/Home/_history?page=2
    • https://codeberg.org/Freeyourgadget/Gadgetbridge/wiki/Home?action=_revision
    1. Q: Despite having mirror/s, the project will still continue to be operated from GitHub for development, so having yet another mirror doesn't solve anything.

      A: You can create issues, contribute, view the repos on there without going to GitHub! Example:

    • https://github.com/libredirect/libredirect
    • https://codeberg.org/LibRedirect/libredirect
    • https://github.com/zyachel/quetre
    • https://codeberg.org/zyachel/quetre
    1. Q: How does Codeberg mirror comments from GitHub?

      A: It uses Access Token. image

    2. Q: My repos are very bandwidth-intensive projects, and I have my doubts as to whether the owner(s) of Codeberg would be prepared for such a massive bandwidth rate increase. I've also had individual projects be disabled on small sites before due to taking too much bandwidth.

      A: Oh.. I think you should directly ask https://docs.codeberg.org/contact/ about if they are ready for massive bandwidth rate increase.

    opened by throwaway-d 2
  • Dutch

    Dutch

    Fixed some issues imported from Weblate.

    @tibbi Is it Weblate that's screwing with the formatting of the long descriptions, or is it caused by the translator(s) there? Newlines are gone in all those Weblate imports, so I don't know what it looks like in the Store. I'm guessing it's all flat text now.

    opened by ltGuillaume 2
  • Pixel 5 cracking sounds

    Pixel 5 cracking sounds

    Hello there, anyone also having sound problems with their Android or even Pixel 5 with the recording app? It records cracks and does not sound clear. Reinstallation did not solve it. The onboard Google Recorder app sounds just fine ;) So it's not Microphone.

    Kind regards, Tobias

    opened by mcclaneonfire 2
  • Translations update from Hosted Weblate

    Translations update from Hosted Weblate

    opened by weblate 0
  • Got any smaller formats?

    Got any smaller formats?

    For simple voice recordings, can't there be some more byte-saving formats? It's possible to squeeze a lot of monotonous talking to a pretty small file. I wish this app could do that.

    feature request 
    opened by jidanni 0
  • OPUS codec does not support sample rate of 44100

    OPUS codec does not support sample rate of 44100

    44100 sample rate should be removed from constants and at least set by if statement which checks for chosen encoder/format.

    Current implementation, if set to OPUS, saves recording in 48000 causing playback to be 4% faster than it should be. It is very audible and also noticeable in recording length.

    The solution is to set recording sample rate strictly to 48000 if user choose OPUS, or to provide resampling (https://developer.android.com/ndk/guides/audio/sampling-audio).

    I will check if I will be able to do first solution myself and create pull request for it.

    bug 
    opened by PatrykMis 0
  • Custom directory mostly breaks past recording listing, completley breaks playback

    Custom directory mostly breaks past recording listing, completley breaks playback

    Android 11 F-Droid voicerecorder 5.10.2

    The default location of Internal>Music>Record worked great. I changed it to Internal>Record, it asked me to confirm "use this folder" via android.settings Files, which I did and selected Allow.
    Interestingly the initial folder choice dialogue from VoiceRecorder shows 0 items when there are hundreds.

    When the app is killed/freshly started the Player tab is empty. Some time later (10+ minutes) it will correctly populate. Recording works great. New recordings do not appear in Playback until I force stop VoiceRecorder. Renaming has a similar effect - the change is not reflected until Selecting anything shows a toast of "Error: java.io.IOException: setDataSource failed.: status=0x80000000" and playback does not work at all. The duration is correct on the scrubber but nothing happens trying to play back and scrubbing does not move. Logat has

    10-15 19:29:13.512 29942 29942 V MediaPlayer: resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
    10-15 19:29:13.512 29942 29942 V MediaPlayer: cleanDrmObj: mDrmObj=null mDrmSessionId=null
    10-15 19:29:13.520 32271  1549 W ActivityManager: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from (null) (pid=32153, uid=1013) requires that you obtain access using ACTION_OPEN_DOCUMENT or related APIs
    10-15 19:29:13.521 32153 22200 D mediaserver: openContentUri(content://com.android.externalstorage.documents/tree/primary%3ARecord/document/primary%3ARecord%2F2022_10_04_12_25_52.m4a) caught exception -129
    10-15 19:29:13.521 32153 22200 E MediaPlayerService: Couldn't open fd for content://com.android.externalstorage.documents/tree/primary%3ARecord/document/primary%3ARecord%2F2022_10_04_12_25_52.m4a
    10-15 19:29:13.521 29942 29942 E MediaPlayerNative: Unable to create media player
    

    Deleting items does not work - It shows a prompt to "Allow Voice Recorder to delete this audio file?" and allowing it makes it disappear from the list, but closing and re-opening shows it returned and never deleted.
    Logcat has

    10-15 20:07:56.261  1636 25283 W MediaProvider: java.io.FileNotFoundException: No item at content://media/external/audio/media/235467876
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at com.android.providers.media.MediaProvider.ensureThumbnail(MediaProvider.java:5908)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at com.android.providers.media.MediaProvider.openTypedAssetFileCommon(MediaProvider.java:5849)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at com.android.providers.media.MediaProvider.openTypedAssetFile(MediaProvider.java:5836)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:553)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1983)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.ContentResolver.openTypedAssetFile(ContentResolver.java:1888)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.ContentResolver.lambda$loadThumbnail$0(ContentResolver.java:4040)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.-$$Lambda$ContentResolver$7ILY1SWNxC2xhk-fQUG6tAXW9Ik.call(Unknown Source:10)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.graphics.ImageDecoder$CallableSource.createImageDecoder(ImageDecoder.java:558)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.graphics.ImageDecoder.decodeBitmapImpl(ImageDecoder.java:1862)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.graphics.ImageDecoder.decodeBitmap(ImageDecoder.java:1855)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.ContentResolver.loadThumbnail(ContentResolver.java:4039)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.content.ContentResolver.loadThumbnail(ContentResolver.java:4023)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at com.android.providers.media.PermissionActivity$Description.<init>(PermissionActivity.java:694)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at com.android.providers.media.PermissionActivity$DescriptionTask.doInBackground(PermissionActivity.java:531)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at com.android.providers.media.PermissionActivity$DescriptionTask.doInBackground(PermissionActivity.java:458)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.os.AsyncTask$3.call(AsyncTask.java:394)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    10-15 20:07:56.261  1636 25283 W MediaProvider: 	at java.lang.Thread.run(Thread.java:923)
    10-15 20:07:56.263  1636 25283 W ContentResolver: Failed to get type for: content://media/external/audio/media/235467876 (No item at content://media/external/audio/media/235467876)
    10-15 20:07:56.263  1636 25283 W MediaProvider: java.lang.NullPointerException
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at java.util.Objects.requireNonNull(Objects.java:220)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at android.content.ContentResolver.getTypeInfo(ContentResolver.java:3858)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at com.android.providers.media.PermissionActivity$Description.<init>(PermissionActivity.java:711)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at com.android.providers.media.PermissionActivity$DescriptionTask.doInBackground(PermissionActivity.java:531)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at com.android.providers.media.PermissionActivity$DescriptionTask.doInBackground(PermissionActivity.java:458)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at android.os.AsyncTask$3.call(AsyncTask.java:394)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    10-15 20:07:56.263  1636 25283 W MediaProvider: 	at java.lang.Thread.run(Thread.java:923)
    10-15 20:07:57.072  1636 25283 D MediaProvider: User allowed grant for [content://media/external/audio/media/235467876]
    10-15 20:07:57.074  1636 25283 I MediaProvider: Granted permission to 1 items on external to com.simplemobiletools.voicerecorder
    
    
    bug 
    opened by EkriirkE 0
  • Add a quick settings toggle for sound recording

    Add a quick settings toggle for sound recording

    Title is self-explanatory, but this would be useful as it's even more discrete than the included widget, and is quicker to activate from any application rather than having to go to the homescreen. I attempted to add the feature myself, but my inexperience with Android app development and programming as a whole didn't allow me to (couldn't understand how to toggle recording in code).

    feature request 
    opened by JuanDelPueblo 0
Releases(5.11.0)
Owner
Simple Mobile Tools
A group of simple, open source Android apps without ads and unnecessary permissions, with customizable widgets.
Simple Mobile Tools
Noice is an android app that allows you to create your own set of background sounds by mixing clips from environmental sources.

A native Android app to relax, improve focus and boost productivity with minimal background noise.

Ashutosh Gangwar 666 Jan 3, 2023
A clean music player with a customizable widget, stylish interface and no ads.

Simple Music Player A clean music player with a customizable widget. A music player easily controllable from the status bar, home screen widget or by

Simple Mobile Tools 965 Jan 4, 2023
Detailed listing of multimedia codecs on your Android device - with no ads!

Codec Info Detailed listing of multimedia codecs on your Android device - with no ads! Codec Info is a simple tool that provides detailed listing of m

Krzysztof Nawrot 46 Dec 18, 2022
A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube is WebView without the need to connect api data services. Request caching is available now

Android Oembed Video A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube and others in the WebView without th

Alexey Mostovoy 32 Oct 8, 2022
Auxio is a local music player with a fast, reliable UI/UX without the many useless features present in other music players

Auxio A simple, rational music player for android. FAQ | Licenses | Contributing | Architecture About Auxio is a local music player with a fast, relia

null 3 Mar 21, 2022
:sound: [Android Library] Easily generate pure audio tone of any frequency in android

Android library to easily generate audio tone in android. Generating pure tone of an specific frequency was never that easy. ZenTone does all the heav

Nishant Srivastava 102 Dec 19, 2022
Another local music player for Android built with Compose. Way too "local" so you likely won't need it.

AnotherAndroidLocalMusicPlayer Another local music player for Android built with Compose and media3 (ExoPlayer). Warning The app behaves strangly as i

oO0oO0oO0o0o00 0 Mar 13, 2022
An easy to use Instagram Video Downloader library for android apps.

Instagram-Video-Downloader-Library An easy to use library for directly download videos from ig reels, igtv. Implementation Step 1. Add the JitPack rep

Abhay 16 Dec 7, 2022
SocyMusic is an open-source Android music player written in Java with the aim of creating an easy-to-use app for exchanging and listening to top-quality music. Help us create it!

SocyMusic SocyMusic is an open-source Android music player written entirely in Java. It's objectives are to provide top-quality music to everyone for

Benji 23 Dec 26, 2022
FPS Display Mod for Minecraft with an easy-to-use ingame configuration: /fps

FPS-Display The FPS Display Mod is made to be used with the Minecraft Forge Load

null 3 Nov 26, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 30, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 29, 2022
The Madman library (Media Ads Manager) enables you to advertise video contents with video ads.

Madman (Media ads manager) is a high performance alternative to Google's standard IMA android SDK. If you have your own VAST server and want to render video ads and have full control over the UI, then this library is for you.

Flipkart Incubator 65 Nov 10, 2022
Practice on connecting to internet and getting data from internet app. This gets Mars photos

MarsPhotos - Starter Code Starter code for Android Basics in Kotlin. Introduction Using this stater code you will create MarsPhotos is a demo app that

Espérant GADA 0 Nov 6, 2021
NetGuard provides simple and advanced ways to block access to the internet

NetGuard NetGuard provides simple and advanced ways to block access to the internet - no root required. Applications and addresses can individually be

Marcel Bokhorst 598 Dec 31, 2022
an android app to send private secret SMS while terrorist Islamic republic of Iran banned internet access in Iran.

Mahsa An android application which is designed to deliver safe and encrypted messages using SMS while Islamic republic of Iran banned Iranian people a

null 3 Sep 22, 2022
AdsManager - Easy way to implement Google Ads

AdsManager Easy way to implement Google Ads Implementaion: https://jitpack.io/#R

null 3 Jul 25, 2022
Flutter plugin that leverages Storage Access Framework (SAF) API to get access and perform the operations on files and folders

Flutter plugin that leverages Storage Access Framework (SAF) API to get access and perform the operations on files and folders.

Vehement 8 Nov 26, 2022
[] A simple way to "badge" any given Android view at runtime without having to cater for it in layout

Android ViewBadger A simple way to "badge" any given Android view at runtime without having to cater for it in layout. Note: If your aim is to replica

Jeff Gilfelt 3k Nov 28, 2022