david-swift / Memorize

Study flashcards in a native GNOME app
https://flathub.org/apps/io.github.david_swift.Flashcards
GNU General Public License v3.0
94 stars 9 forks source link

Add audio to cards #3

Open david-swift opened 9 months ago

david-swift commented 9 months ago

Is your feature request related to a problem? Please describe.

No response

Describe the solution you'd like

@wada3n had the idea of recording and adding audio to cards (see #1), since this would be great for language learning. We can add a third button to every flashcard's toolbar (next to tags and delete) that opens a popover for recording audio, and then a button on the flashcard next to the star (if enabled, maybe in another corner) for playing the audio. In the study view, we could add it to the question and solution, and in the test view to the question.

Additional context

This problem has been reported by @wada3n in #1.

wada3n commented 9 months ago

I agree with your suggested UI for recording and playing audio, They align perfectly with the goal of creating a seamless learning experience.

I'd like to propose an additional feature: separate audio recordings for each side of flashcard. To implement this, the audio recording popover could include an option to select the side of the flashcard to which the recording is being added.

Furthermore, let’s provide users with a choice between automatic audio playback and manual playback for solution side, and for questions in the study view, via preferences.

Thanks again!

david-swift commented 9 months ago

Thanks for the idea, that's exactly how I'm going to implement it! Thank you so much for taking the time for writing those texts! Please don't expect this feature to be available very soon, because it seems to be rather complex and I don't have experience with recording audio. For audio playback, there seems to be a simple widget (MediaFile), but recording seems to be more complex. Vocalis might be a good reference here. So please don't expect this feature to be implemented very soon!

wada3n commented 9 months ago

You’re welcome!

After giving it some more thought, I actually think we should completely reconsider adding audio recording altogether.. I believe it would be more in line with GNOME’s philosophy to prioritize enabling users to effortlessly add existing audio files.

Fortunately, there are already outstanding apps specifically designed for audio recording, such as Vocalis and Reco. Integrating with such apps would offer a smoother experience for users. Of course, this is just my suggestion, and I appreciate your broader perspective on the matter.

david-swift commented 9 months ago

I don't really think so since that would mean that the user has to save a lot of recordings of single words only somewhere in the filesystem, and they wouldn't normally use those recordings for anything different. I think it makes sense to offer the user the recording feature inside the app and automatically store the files in the user data directory of the app. This also results in one fewer step in the workflow (only record instead of record + import). I agree that the user should also have the option to insert existing audio files, but it shouldn't be the only way of adding an audio comment.

wada3n commented 9 months ago

Hi @david-swift,

I really appreciate your dedication to this project and your detailed response. I understand your point about offering a seamless recording experience within the app.

However, I was thinking about ways to potentially reduce the complexity of development. What if you included an option to move audio files to the app's directory during import? This way, users wouldn't have to use the app for recording, and you wouldn't have to go through the intricate process of implementing that feature. At the same time, users wouldn't need to keep the audio files separately.

Personally, I would greatly appreciate a recording feature, but I also recognize its complexity. I'm excited to see what you decide to do!

Thanks again for everything.

david-swift commented 9 months ago

Yes, it probably makes sense to implement the general support for playing audio files first and add the recording feature in a second step. Thank you so much for sharing your ideas!