# Manim Recorder
## GUI (Using PySide6)
![GUI Recorder 1](https://github.com/avnlearn/manim-recorder/blob/main/assets/GUI%20recording_001-0.2.5.png?raw=true)
![GUI Recorder 1](https://github.com/avnlearn/manim-recorder/blob/main/assets/GUI%20recording_002-0.2.5.png?raw=true)
![GUI Recorder 1](https://github.com/avnlearn/manim-recorder/blob/main/assets/GUI%20recording_003-0.2.5.png?raw=true)
```python
from manim import *
# from manim_recorder import VoiceoverScene
from manim_recorder.voiceover_scene import RecorderScene
# from manim_recorder.services.recorder import RecorderService
from manim_recorder.recorder.gui import RecorderService
class VoiceRecorder(RecorderScene):
def construct(self):
self.set_audio_service(
RecorderService()
)
circle = Circle()
square = Square().shift(2 * RIGHT)
with self.voiceover(text="This circle is drawn as I speak.") as tracker:
self.play(Create(circle), run_time=tracker.duration)
with self.voiceover(text="Let's shift it to the left 2 units.") as tracker:
self.play(circle.animate.shift(2 * LEFT),
run_time=tracker.duration)
with self.voiceover(text="Thank you for watching.") as tracker:
self.play(Uncreate(circle))
self.wait()
```
## CLI (Pynput)
```python
from manim import *
# from manim_recorder import VoiceoverScene
from manim_recorder.voiceover_scene import RecorderScene
# from manim_recorder.services.recorder import RecorderService
from manim_recorder.recorder.pynput import RecorderService
from pathlib import Path
class VoiceRecorder(RecorderScene):
def construct(self):
self.set_audio_service(
RecorderService(
device_index=0,
# cache_dir=Path(
# config.media_dir + "/voiceovers/" + self.__class__.__name__.lower()
# ),
)
)
circle = Circle()
square = Square().shift(2 * RIGHT)
with self.voiceover(text="This circle is drawn as I speak.") as tracker:
self.play(Create(circle), run_time=tracker.duration)
with self.voiceover(text="Let's shift it to the left 2 units.") as tracker:
self.play(circle.animate.shift(2 * LEFT),
run_time=tracker.duration)
with self.voiceover(text="Thank you for watching.") as tracker:
self.play(Uncreate(circle))
self.wait()
```
## Termux Cli
```python
from manim import *
from manim_recorder.voiceover_scene import RecorderScene
from manim_recorder.recorder.termux import RecorderService
from pathlib import Path
class Recordering(RecorderScene):
def construct(self):
self.set_speech_service(
RecorderService(
)
)
circle = Circle()
square = Square().shift(2 * RIGHT)
with self.voiceover(text="This circle is drawn as I speak.") as tracker:
self.play(Create(circle), run_time=tracker.duration)
# with self.voiceover("This circle is drawn as I speak.") as tracker:
# self.safe_wait(tracker.duration)
with self.voiceover(text="Let's shift it to the left 2 units.") as tracker:
self.play(circle.animate.shift(2 * LEFT),
run_time=tracker.duration)
with self.voiceover(text="Thank you for watching."):
self.play(Uncreate(circle))
self.wait()
```
Raw data
{
"_id": null,
"home_page": null,
"name": "manim-recorder",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.9",
"maintainer_email": null,
"keywords": "voiceover, manim, recording, math animations",
"author": "AvN Learn",
"author_email": "avnlearn@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/ed/13/36a9d84232c76b5a809c51fd9db43293626bbe365cb3d7c04ab9cd49763d/manim_recorder-0.2.9.tar.gz",
"platform": null,
"description": "# Manim Recorder\n\n## GUI (Using PySide6)\n\n![GUI Recorder 1](https://github.com/avnlearn/manim-recorder/blob/main/assets/GUI%20recording_001-0.2.5.png?raw=true)\n\n![GUI Recorder 1](https://github.com/avnlearn/manim-recorder/blob/main/assets/GUI%20recording_002-0.2.5.png?raw=true)\n\n![GUI Recorder 1](https://github.com/avnlearn/manim-recorder/blob/main/assets/GUI%20recording_003-0.2.5.png?raw=true)\n\n```python\nfrom manim import *\n# from manim_recorder import VoiceoverScene\nfrom manim_recorder.voiceover_scene import RecorderScene\n# from manim_recorder.services.recorder import RecorderService\nfrom manim_recorder.recorder.gui import RecorderService\n\n\nclass VoiceRecorder(RecorderScene):\n def construct(self):\n self.set_audio_service(\n RecorderService()\n )\n\n circle = Circle()\n square = Square().shift(2 * RIGHT)\n \n with self.voiceover(text=\"This circle is drawn as I speak.\") as tracker:\n self.play(Create(circle), run_time=tracker.duration)\n\n with self.voiceover(text=\"Let's shift it to the left 2 units.\") as tracker:\n self.play(circle.animate.shift(2 * LEFT),\n run_time=tracker.duration)\n\n with self.voiceover(text=\"Thank you for watching.\") as tracker:\n self.play(Uncreate(circle))\n\n self.wait()\n\n```\n\n## CLI (Pynput)\n\n```python\nfrom manim import *\n# from manim_recorder import VoiceoverScene\nfrom manim_recorder.voiceover_scene import RecorderScene\n# from manim_recorder.services.recorder import RecorderService\nfrom manim_recorder.recorder.pynput import RecorderService\nfrom pathlib import Path\n\n\nclass VoiceRecorder(RecorderScene):\n def construct(self):\n self.set_audio_service(\n RecorderService(\n device_index=0,\n # cache_dir=Path(\n # config.media_dir + \"/voiceovers/\" + self.__class__.__name__.lower()\n # ),\n )\n )\n\n circle = Circle()\n square = Square().shift(2 * RIGHT)\n with self.voiceover(text=\"This circle is drawn as I speak.\") as tracker:\n self.play(Create(circle), run_time=tracker.duration)\n\n with self.voiceover(text=\"Let's shift it to the left 2 units.\") as tracker:\n self.play(circle.animate.shift(2 * LEFT),\n run_time=tracker.duration)\n\n with self.voiceover(text=\"Thank you for watching.\") as tracker:\n self.play(Uncreate(circle))\n\n self.wait()\n```\n\n## Termux Cli\n\n```python\nfrom manim import *\nfrom manim_recorder.voiceover_scene import RecorderScene\nfrom manim_recorder.recorder.termux import RecorderService\nfrom pathlib import Path\n\n\nclass Recordering(RecorderScene):\n def construct(self):\n self.set_speech_service(\n RecorderService(\n )\n )\n\n circle = Circle()\n square = Square().shift(2 * RIGHT)\n with self.voiceover(text=\"This circle is drawn as I speak.\") as tracker:\n self.play(Create(circle), run_time=tracker.duration)\n\n # with self.voiceover(\"This circle is drawn as I speak.\") as tracker:\n # self.safe_wait(tracker.duration)\n\n with self.voiceover(text=\"Let's shift it to the left 2 units.\") as tracker:\n self.play(circle.animate.shift(2 * LEFT),\n run_time=tracker.duration)\n\n with self.voiceover(text=\"Thank you for watching.\"):\n self.play(Uncreate(circle))\n\n self.wait()\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Manim plugin for recorder",
"version": "0.2.9",
"project_urls": null,
"split_keywords": [
"voiceover",
" manim",
" recording",
" math animations"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "afb719315fcfd204e1c9327e2bb5dd1a9e3fed16e95253e41720f49cdc96d04d",
"md5": "567b12aa5667f455cd7403b19c8b2d7b",
"sha256": "437ac431a3252fd38804742c69e602c0c615c2ba4592471e3749ce5125132199"
},
"downloads": -1,
"filename": "manim_recorder-0.2.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "567b12aa5667f455cd7403b19c8b2d7b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9",
"size": 39911,
"upload_time": "2024-09-22T23:44:58",
"upload_time_iso_8601": "2024-09-22T23:44:58.847051Z",
"url": "https://files.pythonhosted.org/packages/af/b7/19315fcfd204e1c9327e2bb5dd1a9e3fed16e95253e41720f49cdc96d04d/manim_recorder-0.2.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ed1336a9d84232c76b5a809c51fd9db43293626bbe365cb3d7c04ab9cd49763d",
"md5": "ecbd2f9f444bc7c5c2f796ecee0322af",
"sha256": "61b366e58532be489a00a4d4e3181d5a7ccbf7822594cfec9ce4b867bcc2d99d"
},
"downloads": -1,
"filename": "manim_recorder-0.2.9.tar.gz",
"has_sig": false,
"md5_digest": "ecbd2f9f444bc7c5c2f796ecee0322af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9",
"size": 29061,
"upload_time": "2024-09-22T23:45:00",
"upload_time_iso_8601": "2024-09-22T23:45:00.302962Z",
"url": "https://files.pythonhosted.org/packages/ed/13/36a9d84232c76b5a809c51fd9db43293626bbe365cb3d7c04ab9cd49763d/manim_recorder-0.2.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-22 23:45:00",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "manim-recorder"
}