tictacsync 0.4a0__tar.gz → 1.4.6b0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. {tictacsync-0.4a0/tictacsync.egg-info → tictacsync-1.4.6b0}/PKG-INFO +23 -14
  2. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/README.md +20 -11
  3. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/setup.py +12 -7
  4. tictacsync-1.4.6b0/tictacsync/device_scanner.py +565 -0
  5. tictacsync-1.4.6b0/tictacsync/entry.py +340 -0
  6. tictacsync-1.4.6b0/tictacsync/mamconf.py +157 -0
  7. tictacsync-1.4.6b0/tictacsync/mamdav.py +651 -0
  8. tictacsync-1.4.6b0/tictacsync/mamreap.py +484 -0
  9. tictacsync-1.4.6b0/tictacsync/mamsync.py +325 -0
  10. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync/multi2polywav.py +12 -8
  11. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync/timeline.py +567 -208
  12. tictacsync-1.4.6b0/tictacsync/yaltc.py +1598 -0
  13. {tictacsync-0.4a0 → tictacsync-1.4.6b0/tictacsync.egg-info}/PKG-INFO +23 -14
  14. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync.egg-info/SOURCES.txt +4 -1
  15. tictacsync-1.4.6b0/tictacsync.egg-info/entry_points.txt +7 -0
  16. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync.egg-info/requires.txt +2 -1
  17. tictacsync-0.4a0/tictacsync/device_scanner.py +0 -626
  18. tictacsync-0.4a0/tictacsync/entry.py +0 -282
  19. tictacsync-0.4a0/tictacsync/remergemix.py +0 -144
  20. tictacsync-0.4a0/tictacsync/yaltc.py +0 -1843
  21. tictacsync-0.4a0/tictacsync.egg-info/entry_points.txt +0 -4
  22. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/LICENSE +0 -0
  23. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/setup.cfg +0 -0
  24. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync/__init__.py +0 -0
  25. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync.egg-info/dependency_links.txt +0 -0
  26. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync.egg-info/not-zip-safe +0 -0
  27. {tictacsync-0.4a0 → tictacsync-1.4.6b0}/tictacsync.egg-info/top_level.txt +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tictacsync
3
- Version: 0.4a0
4
- Summary: command for syncing audio video recordings
3
+ Version: 1.4.6b0
4
+ Summary: commands for syncing audio video recordings
5
5
  Home-page: https://tictacsync.org/
6
6
  Author: Raymond Lutz
7
7
  Author-email: lutzrayblog@mac.com
8
- Classifier: Development Status :: 2 - Pre-Alpha
8
+ Classifier: Development Status :: 4 - Beta
9
9
  Classifier: Environment :: Console
10
10
  Classifier: Intended Audience :: End Users/Desktop
11
11
  Classifier: License :: OSI Approved :: MIT License
@@ -23,21 +23,27 @@ License-File: LICENSE
23
23
 
24
24
  # tictacsync
25
25
 
26
- ## Warning: this is at pre-alpha stage
26
+ ## Warning: this is at beta stage
27
27
 
28
28
  Unfinished sloppy code ahead, but should run without errors. Some functionalities are still missing. Don't run the code without parental supervision. Suggestions and enquiries are welcome via the [lists hosted on sourcehut](https://sr.ht/~proflutz/TicTacSync/lists).
29
29
 
30
30
  ## Description
31
31
 
32
- `tictacsync` is a python script to sync audio and video files shot
33
- with [dual system sound](https://www.learnlightandsound.com/blog/2017/2/23/how-to-record-sound-for-video-dual-systemsync-sound) using a specific hardware timecode generator
34
- called [Tic Tac Sync](https://tictacsync.org). The timecode is named YaLTC for *yet
35
- another longitudinal time code* and should be recorded on a scratch
36
- track on each device for the syncing to be performed, later in _postprod_ before editing.
37
-
32
+ `tictacsync` is a python script to sync, cut and join audio files against camera files shot using a specific hardware timecode generator
33
+ called [Tic Tac Sync](https://tictacsync.org). The timecode is named TicTacCode and should be recorded on a scratch
34
+ track on each device for `tictacsync` to work.
38
35
  ## Status
39
36
 
40
- `tictacsync` scans for audio video files and displays their starting time and then merges overlapping audio and video recordings. Multicam syncing with one stereo audio recorder has been tested (spring 2023, [see demo](https://youtu.be/pklTSTi7cqs)). Multi audio recorders coming soon...
37
+ Feature complete! `tictacsync` scans for audio video files and then merges overlapping audio and video recordings, It
38
+
39
+ * Decodes the TicTacCode audio track alongside your audio tracks
40
+ * Establishes UTC start time (and end time) within 100 μs!
41
+ * Syncs, cuts and joins any concurrent audio to camera files (using `FFmpeg`)
42
+ * Processes _multiple_ audio recorders
43
+ * Corrects device clock drift so _both_ ends coincide (thanks to `sox`)
44
+ * Sets video metadata TC of multicam files for NLE timeline alignement
45
+ * Writes _synced_ ISO files with dedicated file names declared in `tracks.txt`
46
+ * Produces nice plots.
41
47
 
42
48
 
43
49
  ## Installation
@@ -52,7 +58,7 @@ Then pip install the syncing program:
52
58
  This should install python dependencies _and_ the `tictacsync` command.
53
59
  ## Usage
54
60
 
55
- Download multiple sample files [here](https://nuage.lutz.quebec/s/nY54nQyxmZbTLti/download/dailies.zip) (625 MB, sorry) unzip and run:
61
+ Download multiple sample files [here](https://nuage.lutz.quebec/s/4jw4xgqysLPS8EQ/download/dailies1_3.zip) (700+ MB, sorry) unzip and run:
56
62
 
57
63
  > tictacsync dailies/loose
58
64
  The program `tictacsync` will recursively scan the directory given as argument, find all audio that coincide with any video and merge them into a subfolder named `SyncedMedia`. When the argument is an unique media file (not a directory), no syncing will occur but the decoded starting time will be printed to stdout:
@@ -67,19 +73,22 @@ The program `tictacsync` will recursively scan the directory given as argument,
67
73
  If shooting multicam, put clips in their respective directories (using the camera name as folder name) _and_ the audio under their own directory. `tictacsync` will detect that structured input and will generate multicam folders ready to be imported into your NLE (for now only DaVinci Resolve has been validated).
68
74
 
69
75
  ## Options
76
+ #### `-v`
70
77
 
71
78
  For a very verbose output add the `-v` flag:
72
79
 
73
80
  > tictacsync -v dailies/loose/MVI_0024.MP4
74
-
81
+ #### `--terse`
75
82
  For a one line output (or to suppress the progress bars) use the `--terse` flag:
76
83
 
77
84
  > tictacsync --terse dailies/loose/MVI_0024.MP4
78
85
  dailies/loose/MVI_0024.MP4 UTC:2024-03-12 23:07:01.4281 pulse: 27450 in chan 0
86
+ #### `--isos`
79
87
 
80
- To also produce _synced_ ISO audio files, specify `--isos` . A directory named `ISOs` will contain _for each synced video_ a set of audio files of exact same length, padded or trimmed to coincide with the video track. After re-editing and re-mixing a `remergemix` command will resync the new sound track with the video [TODO].
88
+ Specifying `--isos` produces _synced_ ISO audio files: for each synced \<video-clip\> a directory named `<video-clip>_ISO` will contain a set of ISO audio files each of exact same length, padded or trimmed to coincide with the video start. After re-editing and re-mixing in your DAW of choice a `remergemix` command will resync the new audio with the video and _the new sound track will be updated on your NLE timeline_, _automagically_ on some NLEs or on command for [Davinci Resolve](https://www.niwa.nu/dr-scripts/).
81
89
 
82
90
  > tictacsync --isos dailies/structured
91
+ #### `-p`
83
92
 
84
93
  When called with the `-p` flag, zoomable plots will be produced for diagnostic purpose (close the plotting window for the 2nd one) and the decoded starting time will be output to stdin:
85
94
 
@@ -1,20 +1,26 @@
1
1
  # tictacsync
2
2
 
3
- ## Warning: this is at pre-alpha stage
3
+ ## Warning: this is at beta stage
4
4
 
5
5
  Unfinished sloppy code ahead, but should run without errors. Some functionalities are still missing. Don't run the code without parental supervision. Suggestions and enquiries are welcome via the [lists hosted on sourcehut](https://sr.ht/~proflutz/TicTacSync/lists).
6
6
 
7
7
  ## Description
8
8
 
9
- `tictacsync` is a python script to sync audio and video files shot
10
- with [dual system sound](https://www.learnlightandsound.com/blog/2017/2/23/how-to-record-sound-for-video-dual-systemsync-sound) using a specific hardware timecode generator
11
- called [Tic Tac Sync](https://tictacsync.org). The timecode is named YaLTC for *yet
12
- another longitudinal time code* and should be recorded on a scratch
13
- track on each device for the syncing to be performed, later in _postprod_ before editing.
14
-
9
+ `tictacsync` is a python script to sync, cut and join audio files against camera files shot using a specific hardware timecode generator
10
+ called [Tic Tac Sync](https://tictacsync.org). The timecode is named TicTacCode and should be recorded on a scratch
11
+ track on each device for `tictacsync` to work.
15
12
  ## Status
16
13
 
17
- `tictacsync` scans for audio video files and displays their starting time and then merges overlapping audio and video recordings. Multicam syncing with one stereo audio recorder has been tested (spring 2023, [see demo](https://youtu.be/pklTSTi7cqs)). Multi audio recorders coming soon...
14
+ Feature complete! `tictacsync` scans for audio video files and then merges overlapping audio and video recordings, It
15
+
16
+ * Decodes the TicTacCode audio track alongside your audio tracks
17
+ * Establishes UTC start time (and end time) within 100 μs!
18
+ * Syncs, cuts and joins any concurrent audio to camera files (using `FFmpeg`)
19
+ * Processes _multiple_ audio recorders
20
+ * Corrects device clock drift so _both_ ends coincide (thanks to `sox`)
21
+ * Sets video metadata TC of multicam files for NLE timeline alignement
22
+ * Writes _synced_ ISO files with dedicated file names declared in `tracks.txt`
23
+ * Produces nice plots.
18
24
 
19
25
 
20
26
  ## Installation
@@ -29,7 +35,7 @@ Then pip install the syncing program:
29
35
  This should install python dependencies _and_ the `tictacsync` command.
30
36
  ## Usage
31
37
 
32
- Download multiple sample files [here](https://nuage.lutz.quebec/s/nY54nQyxmZbTLti/download/dailies.zip) (625 MB, sorry) unzip and run:
38
+ Download multiple sample files [here](https://nuage.lutz.quebec/s/4jw4xgqysLPS8EQ/download/dailies1_3.zip) (700+ MB, sorry) unzip and run:
33
39
 
34
40
  > tictacsync dailies/loose
35
41
  The program `tictacsync` will recursively scan the directory given as argument, find all audio that coincide with any video and merge them into a subfolder named `SyncedMedia`. When the argument is an unique media file (not a directory), no syncing will occur but the decoded starting time will be printed to stdout:
@@ -44,19 +50,22 @@ The program `tictacsync` will recursively scan the directory given as argument,
44
50
  If shooting multicam, put clips in their respective directories (using the camera name as folder name) _and_ the audio under their own directory. `tictacsync` will detect that structured input and will generate multicam folders ready to be imported into your NLE (for now only DaVinci Resolve has been validated).
45
51
 
46
52
  ## Options
53
+ #### `-v`
47
54
 
48
55
  For a very verbose output add the `-v` flag:
49
56
 
50
57
  > tictacsync -v dailies/loose/MVI_0024.MP4
51
-
58
+ #### `--terse`
52
59
  For a one line output (or to suppress the progress bars) use the `--terse` flag:
53
60
 
54
61
  > tictacsync --terse dailies/loose/MVI_0024.MP4
55
62
  dailies/loose/MVI_0024.MP4 UTC:2024-03-12 23:07:01.4281 pulse: 27450 in chan 0
63
+ #### `--isos`
56
64
 
57
- To also produce _synced_ ISO audio files, specify `--isos` . A directory named `ISOs` will contain _for each synced video_ a set of audio files of exact same length, padded or trimmed to coincide with the video track. After re-editing and re-mixing a `remergemix` command will resync the new sound track with the video [TODO].
65
+ Specifying `--isos` produces _synced_ ISO audio files: for each synced \<video-clip\> a directory named `<video-clip>_ISO` will contain a set of ISO audio files each of exact same length, padded or trimmed to coincide with the video start. After re-editing and re-mixing in your DAW of choice a `remergemix` command will resync the new audio with the video and _the new sound track will be updated on your NLE timeline_, _automagically_ on some NLEs or on command for [Davinci Resolve](https://www.niwa.nu/dr-scripts/).
58
66
 
59
67
  > tictacsync --isos dailies/structured
68
+ #### `-p`
60
69
 
61
70
  When called with the `-p` flag, zoomable plots will be produced for diagnostic purpose (close the plotting window for the 2nd one) and the decoded starting time will be output to stdin:
62
71
 
@@ -5,7 +5,7 @@ with open("README.md", "rb") as f:
5
5
  long_descr = f.read().decode("utf-8")
6
6
 
7
7
  long_description = 'CLI for syncing audio video \
8
- files containing an audio YaLTC sync track.'
8
+ files containing an audio TicTacCode sync track.'
9
9
 
10
10
  setup(
11
11
  name = "tictacsync",
@@ -15,24 +15,29 @@ setup(
15
15
  },
16
16
  install_requires=[
17
17
  'sox>=1.4.1',
18
- 'ffmpeg_python>=0.2.0',
18
+ 'ffmpeg_python>=0.2.0',
19
19
  'loguru>=0.6.0',
20
20
  'matplotlib>=3.7.1',
21
21
  'numpy>=1.24.3',
22
22
  'rich>=10.12.0',
23
23
  'lmfit',
24
+ 'scikit-image',
24
25
  'scipy>=1.10.1',
25
- 'scikit-learn==1.2.2'],
26
+ 'platformdirs',
27
+ ],
26
28
  python_requires='>=3.10',
27
29
  entry_points = {
28
30
  "console_scripts": [
29
31
  'tictacsync = tictacsync.entry:main',
30
- 'remergemix = tictacsync.remergemix:main',
32
+ 'mamreap = tictacsync.mamreap:main',
33
+ 'mamdav = tictacsync.mamdav:called_from_cli',
34
+ 'mamsync = tictacsync.mamsync:main',
35
+ 'mamconf = tictacsync.mamconf:main',
31
36
  'multi2polywav = tictacsync.multi2polywav:main',
32
37
  ]
33
38
  },
34
- version = '0.4a',
35
- description = "command for syncing audio video recordings",
39
+ version = '1.4.6-beta',
40
+ description = "commands for syncing audio video recordings",
36
41
  long_description_content_type='text/markdown',
37
42
  long_description = long_descr,
38
43
  include_package_data=True,
@@ -41,7 +46,7 @@ setup(
41
46
  author_email = "lutzrayblog@mac.com",
42
47
  url ='https://tictacsync.org/',
43
48
  classifiers=[
44
- 'Development Status :: 2 - Pre-Alpha',
49
+ 'Development Status :: 4 - Beta',
45
50
  'Environment :: Console',
46
51
  'Intended Audience :: End Users/Desktop',
47
52
  'License :: OSI Approved :: MIT License',