Compare commits
No commits in common. "main" and "v0.1.8" have entirely different histories.
4
.gitattributes
vendored
4
.gitattributes
vendored
@ -1,8 +1,6 @@
|
||||
*.meta -whitespace
|
||||
CameraAI~/Tools~/CWCameraWorker/** -text -diff -whitespace
|
||||
CameraAI~/Tools~/CWCameraWorker/** -diff -whitespace
|
||||
*.exe filter=lfs diff=lfs merge=lfs -text
|
||||
*.dll filter=lfs diff=lfs merge=lfs -text
|
||||
*.pyd filter=lfs diff=lfs merge=lfs -text
|
||||
CameraAI~/RuntimeData~/DatasetExports/**/*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
CameraAI~/RuntimeData~/DatasetExports/dataset_catalog.json text eol=lf
|
||||
CameraAI~/RuntimeData~/reports/training_index.json text eol=lf
|
||||
|
||||
@ -1,182 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
## 0.4.14 - 2026-08-17
|
||||
|
||||
- Resolved the configured CinemachineBrain from camera tracks on descendant
|
||||
PlayableDirectors, including Cinemachine 3 `OutputCamera` setups, so
|
||||
orchestration Timelines can import AI results without duplicating camera
|
||||
tracks on the parent Timeline.
|
||||
- Made AI preview cloning inactive from construction and disconnected cloned
|
||||
authored Cinemachine tracks and virtual cameras before playback. This
|
||||
prevents the authored Motion Timeline from competing with the generated
|
||||
Shot tracks while preserving the original scene hierarchy. This is an
|
||||
Editor-only hotfix; the bundled Windows worker remains 0.1.9.
|
||||
|
||||
## 0.4.13 - 2026-08-16
|
||||
|
||||
- Enforced radial distance bounds on the actual float32 camera coordinates,
|
||||
preventing oblique wide-shot plateaus from drifting a few micrometres past
|
||||
their authored safety annulus during publication.
|
||||
- Made a final distance postcondition failure reject only that camera
|
||||
candidate while preserving fail-closed handling for real generator
|
||||
invariants. Rebuilt the self-contained Windows worker as 0.1.9.
|
||||
|
||||
## 0.4.12 - 2026-08-16
|
||||
|
||||
- Made packaged catalog freshness checks portable across Windows Git
|
||||
checkouts: an exact raw hash remains authoritative, while a byte-for-byte
|
||||
equivalent CRLF checkout is accepted only when LF normalization reproduces
|
||||
the indexed hash. Content changes and Git LFS pointer files still fail
|
||||
closed.
|
||||
- Extended `CWCameraWorker doctor` to validate the packaged training index
|
||||
against its catalog, and pinned the release catalog and training index to LF
|
||||
line endings. Rebuilt the self-contained Windows worker as 0.1.8.
|
||||
|
||||
## 0.4.11 - 2026-08-10
|
||||
|
||||
- Integrated the verified YAMO dataset refresh without replacing the packaged
|
||||
production reference library or its default models. Dataset revisions now
|
||||
retain distinct runtime identities, provenance, and subject-targeting
|
||||
evidence instead of colliding with their base recordings.
|
||||
- Added fail-closed audio-aligned frame-mask handling across trajectory,
|
||||
sequence, cut-ranker, and cut-reference consumers. Incomplete shots and
|
||||
censored audio tails are excluded rather than silently becoming training or
|
||||
authored-cut supervision.
|
||||
- Hardened exact-audio cut references so independently aligned sources cannot
|
||||
be unioned into spurious double cuts, and expanded transition-only candidate
|
||||
search only when the normal safe pool cannot make both neighbouring edits.
|
||||
A bounded all-fail transition search now stops generation instead of
|
||||
publishing a known-bad edge.
|
||||
- Rebuilt the self-contained Windows worker as 0.1.7 from the checkpointed
|
||||
source with the pinned Python 3.12.13 build environment. The bundled
|
||||
RuntimeData~ library remains the established production baseline; research
|
||||
candidate models and indexes are deliberately not bundled by default.
|
||||
|
||||
## 0.4.10 - 2026-08-09
|
||||
|
||||
- Replaced the loose first-passing angular limiter with an authored-target
|
||||
minimum-jerk selector. The Arisa regression output keeps all 69 music-shaped
|
||||
cuts while angular jerk P90 falls from about 852 to 235 deg/s^3 and P99 from
|
||||
about 4,455 to 912 deg/s^3.
|
||||
- Made final float32 quaternion tracking authoritative, removed shot-entry
|
||||
pre-echo, added a C2 semantic-focus dead zone, and recorded explicit angular
|
||||
and dynamics fallback shot indices.
|
||||
- Hardened translation rewrites and the final radial clamp so a repair cannot
|
||||
hide or introduce a local acceleration/jerk seam. Intentional dolly and orbit
|
||||
motion remains available.
|
||||
- Baked position and quaternion animation as audited not-a-knot C2 curves
|
||||
instead of piecewise-linear or C1-only curves. The importer verifies C2 seams,
|
||||
240/480 Hz motion, quaternion continuity, and the post-Unity clip curves, with
|
||||
adaptive key refinement and fail-closed dense C2 fallback.
|
||||
- Resolved the active package through `FileUtil.GetPhysicalPath` so serialized
|
||||
paths to an older `Library/PackageCache` revision can no longer keep running a
|
||||
stale worker after a package update. Valid explicit external paths are kept.
|
||||
- Rebuilt the self-contained Windows worker as 0.1.6 with Python 3.12.13. The
|
||||
clean 647-file build passes `doctor`; camera, time, and shot outputs are
|
||||
byte-identical to source generation for the 12,269-frame regression input.
|
||||
|
||||
## 0.4.9 - 2026-08-09
|
||||
|
||||
- Restored the authored same-audio cut prior for production generation inputs
|
||||
without admitting the target camera trajectory into the planner or template
|
||||
library. The Arisa regression song now recovers its music-shaped 69-shot
|
||||
cadence, while a silent-tail fallback cut is removed.
|
||||
- Replaced performer-screen-motion penalties with stabilized residual framing
|
||||
diagnostics so expressive dance motion no longer suppresses orbit, drift,
|
||||
lead-room, or authored camera movement. Hard person, distance, step, aim, and
|
||||
dynamics gates remain fail-closed.
|
||||
- Calibrated front-facing safety once over the full performance. Choreography
|
||||
turns can keep a stable stage-front camera without rewarding side or rear
|
||||
placement, while true 180-degree rear candidates remain rejected.
|
||||
- Added a versioned selection-safety contract for selected-shot regeneration,
|
||||
verified exact-audio reference hashes across bundled and project data roots,
|
||||
and deterministically deduplicated identical packaged reference copies.
|
||||
- Added a final-world post-clamp kinematic repair and hard audit. Distance
|
||||
clamping can no longer reintroduce an unbraked reversal after the YAMO
|
||||
deceleration/acceleration pass; all 69 regression shots pass the final
|
||||
post-clamp contract and Shot 66 has zero remaining abrupt reversal events.
|
||||
- Rebuilt the self-contained Windows worker as 0.1.5 with Python 3.12.13 in a
|
||||
disposable, exact-pinned environment with one-thread scientific-library
|
||||
limits, artifact size/file-count guards, and a distribution provenance
|
||||
manifest. The clean worker contains 647 files (267,608,825 bytes), passes
|
||||
`doctor`, and is byte-identical to source generation for camera, time, and
|
||||
shot outputs.
|
||||
|
||||
## 0.4.8 - 2026-08-09
|
||||
|
||||
- Replaced the unstable frame-local aim controller with a causal, feed-forward
|
||||
angular-velocity path. Static targets now settle without a left/right limit
|
||||
cycle, legal 45/80-degree-per-second pans keep their entry velocity, and
|
||||
abrupt changes are bounded to 90 deg/s, 360 deg/s^2, and 7,200 deg/s^3.
|
||||
- Added C2 position resampling, speed-adaptive C2 distance transitions, and a
|
||||
final distance/step audit after every trajectory transform. The final
|
||||
candidate gate now fails closed on missing data and checks translation jerk,
|
||||
screen-space p99 and one-frame impulses, and the actual post-clamp step.
|
||||
- Calibrated the new dynamics policy against 1,381 runtime-eligible authored
|
||||
shots. The 600 m/s^3 translation maximum applies only to final generated
|
||||
candidates; expressive authored wide/dolly templates remain available for
|
||||
retargeting and soft ranking.
|
||||
- Replaced Unity's piecewise-linear reduced position curves with velocity-aware
|
||||
C1 Hermite curves. Every reduced shot is audited at source times and
|
||||
midpoints for position error, local speed/acceleration/jerk regressions, and
|
||||
meaningful-motion retention; unsafe reductions automatically fall back to
|
||||
exact position keys for that shot only.
|
||||
- Rebuilt the self-contained Windows worker as 0.1.4 with the trajectory module
|
||||
and build-identity snapshot included. The frozen worker doctor and 196-test
|
||||
build suite pass without requiring Python on the artist machine.
|
||||
- On the 12,269-frame Arisa regression input, all 56 shots passed visibility,
|
||||
facing, aim, distance, step, screen-dynamics, and cut-transition checks.
|
||||
Worst translation jerk improved from 641.61 to 247.81 m/s^3 and worst
|
||||
angular jerk from 30,294.84 to 7,146.35 deg/s^3; uncached generation improved
|
||||
from about 124 seconds to 107 seconds.
|
||||
- Unity compiled with zero Camera AI errors and the package EditMode suite
|
||||
passed 121/121. The Balanced importer retained simplified C1 curves for 41
|
||||
shots and safely selected exact position keys for the 15 shots whose reduced
|
||||
curves exceeded the local motion or 5 mm error contract.
|
||||
|
||||
## 0.4.7 - 2026-08-09
|
||||
|
||||
- Fixed the incomplete 6D-to-quaternion conversion that replaced every
|
||||
non-positive-trace rotation with a fixed 180-degree roll. This had rejected
|
||||
almost all authored front-camera templates and biased generation toward the
|
||||
actor's back.
|
||||
- Added torso-derived front-facing safety to candidate selection, including
|
||||
median alignment, severe-rear frame ratio, and longest consecutive rear run.
|
||||
- Made missing or non-finite front-facing audit data fail closed and improved
|
||||
all-candidates-rejected diagnostics with per-gate counts.
|
||||
- Invalidated both preparation and candidate caches because corrected template
|
||||
rotations affect both stages.
|
||||
- Rebuilt self-contained Windows worker 0.1.3 with pinned, verified runtime
|
||||
dependencies. The focused worker suite passes 148 tests.
|
||||
- On the 12,269-frame Arisa regression input, front-safety failures improved
|
||||
from 49/56 shots to 0/56; severe rear-facing frames fell from 72.64% to
|
||||
0.18%, with a maximum per-shot run of 15 frames.
|
||||
|
||||
## 0.4.6
|
||||
|
||||
- Added a soft front-facing preference so safe candidates do not
|
||||
systematically place the actor's back toward the camera.
|
||||
- Bumped the candidate-cache logic version to invalidate stale orientation
|
||||
candidates.
|
||||
|
||||
## 0.4.5
|
||||
|
||||
- Rebuilt the frozen worker so portable prepared-template rotation conversion
|
||||
is included in the executable.
|
||||
|
||||
## 0.4.4
|
||||
|
||||
- Automatically prefers bundled `RuntimeData~`, including Unity Git
|
||||
PackageCache installs, over stale serialized external roots.
|
||||
|
||||
## 0.4.3
|
||||
|
||||
- Added a self-contained `RuntimeData~` reference bundle containing 263
|
||||
prepared songs.
|
||||
- Made the packaged worker auto-discover the bundle; raw source audio and a
|
||||
separate CW-AI checkout are no longer required for generation.
|
||||
- Kept generation caches project-local and writable.
|
||||
|
||||
## 0.4.2 - 2026-08-03
|
||||
|
||||
- Fixed Unity assembly exclusion caused by duplicate legacy/package script GUIDs.
|
||||
@ -380,3 +203,8 @@
|
||||
- Added Exact, Balanced, and Editable error-bounded curve simplification presets.
|
||||
- Added a content-addressed Hybrid preparation-cache workflow shared across
|
||||
candidate seeds.
|
||||
## 0.4.3
|
||||
|
||||
- Added a self-contained `RuntimeData~` reference bundle (263 prepared songs).
|
||||
- The packaged worker auto-discovers the bundle; raw CW-AI source audio and a separate checkout are no longer required for generation.
|
||||
- Generation caches remain project-local and writable.
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
- Git 2.14 or newer available on `PATH`
|
||||
- Git LFS installed before Unity resolves the package
|
||||
|
||||
The bundled `CWCameraWorker` contains Python 3.12.13 and its inference
|
||||
The bundled `CWCameraWorker` contains Python 3.10 and its inference
|
||||
dependencies. Do not install Python on an artist workstation for this package.
|
||||
The worker is an onedir build: `CWCameraWorker.exe` and its `_internal` folder
|
||||
must remain together.
|
||||
@ -17,7 +17,7 @@ must remain together.
|
||||
In Unity Package Manager, choose **Add package from git URL** and enter:
|
||||
|
||||
```text
|
||||
https://kindnick-git.duckdns.org/mingle/streamingle-unity-utilities.git?path=/CameraAI~#v0.1.20
|
||||
https://kindnick-git.duckdns.org/mingle/streamingle-unity-utilities.git?path=/CameraAI~#v0.1.7
|
||||
```
|
||||
|
||||
The initial package download is large because the frozen Windows worker is
|
||||
@ -26,7 +26,7 @@ it, remove the package lock entry, and add the package again.
|
||||
|
||||
## Reference data
|
||||
|
||||
Version 0.1.20 includes a compact, read-only `RuntimeData~` bundle with the
|
||||
Version 0.1.7 includes a compact, read-only `RuntimeData~` bundle with the
|
||||
263 prepared reference songs, cut policy, and ranker model. An artist
|
||||
workstation does not need a separate `CW-AI` checkout or Python installation.
|
||||
If a newer access-controlled library is available, it remains an optional
|
||||
|
||||
@ -4169,122 +4169,37 @@ namespace Streamingle.Editor
|
||||
{
|
||||
var projectRoot = Directory.GetParent(Application.dataPath)?.FullName
|
||||
?? Environment.CurrentDirectory;
|
||||
return ResolveCliExecutablePath(
|
||||
return AICameraCliRunner.ResolveExecutable(
|
||||
ignoreConfigured ? string.Empty : _cliExecutable,
|
||||
_cwAiRoot,
|
||||
projectRoot,
|
||||
ResolvePhysicalPackageRoot());
|
||||
}
|
||||
|
||||
internal static string ResolveCliExecutablePath(
|
||||
string configuredExecutable,
|
||||
string cwAiRoot,
|
||||
string projectRoot,
|
||||
string packageRoot)
|
||||
{
|
||||
var normalizedConfigured = TryGetFullPath(configuredExecutable);
|
||||
if (!string.IsNullOrWhiteSpace(normalizedConfigured) &&
|
||||
!IsCameraAiPackageCachePath(normalizedConfigured) &&
|
||||
File.Exists(normalizedConfigured))
|
||||
{
|
||||
// A valid path outside PackageCache was explicitly selected by
|
||||
// the user and must remain authoritative.
|
||||
return normalizedConfigured;
|
||||
}
|
||||
|
||||
var normalizedPackageRoot = TryGetFullPath(packageRoot);
|
||||
if (!string.IsNullOrWhiteSpace(normalizedPackageRoot))
|
||||
{
|
||||
var packagedWorker = Path.Combine(
|
||||
normalizedPackageRoot,
|
||||
"Tools~",
|
||||
"CWCameraWorker",
|
||||
AICameraCliRunner.ExecutableName);
|
||||
if (File.Exists(packagedWorker))
|
||||
{
|
||||
return Path.GetFullPath(packagedWorker);
|
||||
}
|
||||
|
||||
packagedWorker = Path.Combine(
|
||||
normalizedPackageRoot,
|
||||
"Tools~",
|
||||
AICameraCliRunner.ExecutableName);
|
||||
if (File.Exists(packagedWorker))
|
||||
{
|
||||
return Path.GetFullPath(packagedWorker);
|
||||
}
|
||||
}
|
||||
|
||||
// Never fall back to a serialized worker or data root from an old
|
||||
// Git package revision merely because Unity has not evicted that
|
||||
// PackageCache directory yet.
|
||||
var safeConfigured = IsCameraAiPackageCachePath(configuredExecutable)
|
||||
? string.Empty
|
||||
: normalizedConfigured;
|
||||
var safeCwAiRoot = IsCameraAiPackageCachePath(cwAiRoot)
|
||||
? string.Empty
|
||||
: TryGetFullPath(cwAiRoot);
|
||||
return AICameraCliRunner.ResolveExecutable(
|
||||
safeConfigured,
|
||||
safeCwAiRoot,
|
||||
projectRoot,
|
||||
normalizedPackageRoot);
|
||||
projectRoot);
|
||||
}
|
||||
|
||||
internal static string ResolveDefaultCwAiRoot(
|
||||
string projectRoot,
|
||||
string configuredRoot)
|
||||
{
|
||||
return ResolveDefaultCwAiRoot(
|
||||
projectRoot,
|
||||
configuredRoot,
|
||||
ResolvePhysicalPackageRoot());
|
||||
}
|
||||
|
||||
internal static string ResolveDefaultCwAiRoot(
|
||||
string projectRoot,
|
||||
string configuredRoot,
|
||||
string packageRoot)
|
||||
{
|
||||
var normalizedProjectRoot = string.IsNullOrWhiteSpace(projectRoot)
|
||||
? Environment.CurrentDirectory
|
||||
: Path.GetFullPath(projectRoot);
|
||||
|
||||
var normalizedConfigured = TryGetFullPath(configuredRoot);
|
||||
if (!string.IsNullOrWhiteSpace(normalizedConfigured) &&
|
||||
!IsCameraAiPackageCachePath(normalizedConfigured) &&
|
||||
IsGenerationLibraryRoot(normalizedConfigured))
|
||||
{
|
||||
// Preserve a valid repository or data library that the user
|
||||
// explicitly selected outside Unity's PackageCache.
|
||||
return normalizedConfigured;
|
||||
}
|
||||
|
||||
var candidates = new List<string>();
|
||||
var normalizedPackageRoot = TryGetFullPath(packageRoot);
|
||||
if (!string.IsNullOrWhiteSpace(normalizedPackageRoot))
|
||||
{
|
||||
candidates.Add(Path.Combine(
|
||||
normalizedPackageRoot,
|
||||
"RuntimeData~"));
|
||||
}
|
||||
|
||||
// This logical package path supports embedded/local packages when
|
||||
// FileUtil cannot resolve a physical path during early domain load.
|
||||
candidates.Add(Path.Combine(
|
||||
normalizedProjectRoot,
|
||||
"Packages",
|
||||
"com.mingle.cw-ai",
|
||||
"RuntimeData~"));
|
||||
candidates.AddRange(new[]
|
||||
var candidates = new[]
|
||||
{
|
||||
configuredRoot,
|
||||
// Self-contained package install: RuntimeData~ is shipped
|
||||
// beside the editor scripts, so artists do not need a
|
||||
// separate CW-AI checkout.
|
||||
Path.Combine(
|
||||
normalizedProjectRoot,
|
||||
"Packages",
|
||||
"com.mingle.cw-ai",
|
||||
"RuntimeData~"),
|
||||
normalizedProjectRoot,
|
||||
Path.Combine(
|
||||
Directory.GetParent(normalizedProjectRoot)?.FullName ??
|
||||
normalizedProjectRoot,
|
||||
"CW-AI"),
|
||||
Environment.CurrentDirectory
|
||||
});
|
||||
};
|
||||
|
||||
foreach (var candidate in candidates)
|
||||
{
|
||||
@ -4315,50 +4230,6 @@ namespace Streamingle.Editor
|
||||
"CW-AI");
|
||||
}
|
||||
|
||||
private static string ResolvePhysicalPackageRoot()
|
||||
{
|
||||
try
|
||||
{
|
||||
return TryGetFullPath(FileUtil.GetPhysicalPath(
|
||||
"Packages/com.mingle.cw-ai"));
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
private static bool IsCameraAiPackageCachePath(string candidate)
|
||||
{
|
||||
var fullPath = TryGetFullPath(candidate);
|
||||
if (string.IsNullOrWhiteSpace(fullPath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var normalized = fullPath.Replace('\\', '/');
|
||||
return normalized.IndexOf(
|
||||
"/Library/PackageCache/com.mingle.cw-ai@",
|
||||
StringComparison.OrdinalIgnoreCase) >= 0;
|
||||
}
|
||||
|
||||
private static string TryGetFullPath(string candidate)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(candidate))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return Path.GetFullPath(candidate.Trim());
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
private static string ResolveProjectCacheRoot()
|
||||
{
|
||||
var projectRoot = Directory.GetParent(Application.dataPath)?.FullName
|
||||
@ -4426,32 +4297,26 @@ namespace Streamingle.Editor
|
||||
currentRoot = string.Empty;
|
||||
}
|
||||
}
|
||||
var previousRoot = _cwAiRoot;
|
||||
var repairedLibraryRoot = !string.Equals(
|
||||
currentRoot.TrimEnd('\\', '/'),
|
||||
resolvedRoot.TrimEnd('\\', '/'),
|
||||
StringComparison.OrdinalIgnoreCase);
|
||||
if (repairedLibraryRoot)
|
||||
{
|
||||
_cwAiRoot = resolvedRoot;
|
||||
AppendLog(
|
||||
"[library-root-auto-repair] " +
|
||||
$"{previousRoot} -> {_cwAiRoot}");
|
||||
}
|
||||
|
||||
var previousExecutable = _cliExecutable;
|
||||
var resolvedExecutable = ResolveCliExecutable();
|
||||
if (!string.Equals(
|
||||
TryGetFullPath(previousExecutable),
|
||||
TryGetFullPath(resolvedExecutable),
|
||||
if (string.Equals(
|
||||
currentRoot.TrimEnd('\\', '/'),
|
||||
resolvedRoot.TrimEnd('\\', '/'),
|
||||
StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
_cliExecutable = resolvedExecutable;
|
||||
AppendLog(
|
||||
"[worker-path-auto-repair] " +
|
||||
$"{previousExecutable} -> {_cliExecutable}");
|
||||
return false;
|
||||
}
|
||||
return repairedLibraryRoot;
|
||||
|
||||
var previousRoot = _cwAiRoot;
|
||||
_cwAiRoot = resolvedRoot;
|
||||
if (string.IsNullOrWhiteSpace(_cliExecutable) ||
|
||||
!File.Exists(_cliExecutable))
|
||||
{
|
||||
_cliExecutable = ResolveCliExecutable(true);
|
||||
}
|
||||
|
||||
AppendLog(
|
||||
"[library-root-auto-repair] " +
|
||||
$"{previousRoot} -> {_cwAiRoot}");
|
||||
return true;
|
||||
}
|
||||
|
||||
private static string ExistingDirectoryOrFallback(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -21,10 +21,6 @@ namespace Streamingle.Editor
|
||||
private const string MotionDirectorName = "Motion";
|
||||
private const string SchemaVersion = "1.3";
|
||||
private const string GenerationInputKind = "generation_input";
|
||||
internal const string SourceFingerprintSchema =
|
||||
"cw-ai-camera-source-v2-dependency-hash";
|
||||
internal const string LegacySourceFingerprintSchema =
|
||||
"cw-ai-camera-source-v1-semantic";
|
||||
private const string GenerationInputDirectoryPrefix =
|
||||
"GenerationInput_60fps_";
|
||||
|
||||
@ -494,7 +490,6 @@ namespace Streamingle.Editor
|
||||
cameraSamplingPolicy =
|
||||
"Per authored Cinemachine track; muted variants included by batch; " +
|
||||
"procedural CameraState sampled deterministically; overlaps blended.",
|
||||
sourceFingerprintSchema = SourceFingerprintSchema,
|
||||
sourceFingerprint = sourceFingerprint,
|
||||
discoveredCameraTrackCount =
|
||||
songs.Count + skippedCameraTracks.Count,
|
||||
@ -1887,34 +1882,6 @@ namespace Streamingle.Editor
|
||||
}
|
||||
|
||||
internal static string ComputeSceneCameraSourceFingerprint(Scene scene)
|
||||
{
|
||||
return ComputeSceneCameraSourceFingerprint(
|
||||
scene,
|
||||
out _);
|
||||
}
|
||||
|
||||
internal static string ComputeSceneCameraSourceFingerprint(
|
||||
Scene scene,
|
||||
out string legacyFingerprint)
|
||||
{
|
||||
legacyFingerprint =
|
||||
ComputeLegacySceneCameraSourceFingerprint(scene);
|
||||
var dependencyRecords = AssetDatabase
|
||||
.GetDependencies(scene.path, true)
|
||||
.Where(IsCameraSourceDependency)
|
||||
.Select(assetPath =>
|
||||
assetPath.Replace('\\', '/') + "|" +
|
||||
AssetDatabase
|
||||
.GetAssetDependencyHash(assetPath)
|
||||
.ToString())
|
||||
.ToArray();
|
||||
return ComposeSceneCameraSourceFingerprint(
|
||||
legacyFingerprint,
|
||||
dependencyRecords);
|
||||
}
|
||||
|
||||
internal static string ComputeLegacySceneCameraSourceFingerprint(
|
||||
Scene scene)
|
||||
{
|
||||
var lines = new List<string>();
|
||||
var directors = Resources.FindObjectsOfTypeAll<PlayableDirector>()
|
||||
@ -1968,139 +1935,6 @@ namespace Streamingle.Editor
|
||||
return string.Concat(bytes.Select(item => item.ToString("x2")));
|
||||
}
|
||||
|
||||
internal static string ComposeSceneCameraSourceFingerprint(
|
||||
string semanticFingerprint,
|
||||
IEnumerable<string> dependencyRecords)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(semanticFingerprint))
|
||||
{
|
||||
throw new ArgumentException(
|
||||
"A semantic source fingerprint is required.",
|
||||
nameof(semanticFingerprint));
|
||||
}
|
||||
|
||||
var records = (dependencyRecords ?? Array.Empty<string>())
|
||||
.Where(record => !string.IsNullOrWhiteSpace(record))
|
||||
.Select(record => record.Trim().Replace('\\', '/'))
|
||||
.Distinct(StringComparer.Ordinal)
|
||||
.OrderBy(record => record, StringComparer.Ordinal);
|
||||
var payload = string.Join(
|
||||
"\n",
|
||||
new[]
|
||||
{
|
||||
"schema|" + SourceFingerprintSchema,
|
||||
"semantic|" + semanticFingerprint.Trim()
|
||||
}.Concat(records.Select(record => "dependency|" + record)));
|
||||
using var sha256 = SHA256.Create();
|
||||
var bytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(payload));
|
||||
return string.Concat(bytes.Select(item => item.ToString("x2")));
|
||||
}
|
||||
|
||||
internal static bool TryMatchSceneCameraSourceFingerprint(
|
||||
string storedSchema,
|
||||
string storedFingerprint,
|
||||
string currentStrongFingerprint,
|
||||
string currentLegacyFingerprint,
|
||||
out bool legacyFingerprintAccepted,
|
||||
out string error)
|
||||
{
|
||||
legacyFingerprintAccepted = false;
|
||||
if (string.IsNullOrWhiteSpace(storedFingerprint))
|
||||
{
|
||||
error = "The manifest source fingerprint is missing.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(storedSchema) ||
|
||||
string.Equals(
|
||||
storedSchema,
|
||||
LegacySourceFingerprintSchema,
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
if (!string.Equals(
|
||||
storedFingerprint,
|
||||
currentLegacyFingerprint,
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
error =
|
||||
"The loaded scene legacy semantic fingerprint does " +
|
||||
"not match the manifest.";
|
||||
return false;
|
||||
}
|
||||
|
||||
legacyFingerprintAccepted = true;
|
||||
error = string.Empty;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!string.Equals(
|
||||
storedSchema,
|
||||
SourceFingerprintSchema,
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
error =
|
||||
$"Unsupported source fingerprint schema '{storedSchema}'.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!string.Equals(
|
||||
storedFingerprint,
|
||||
currentStrongFingerprint,
|
||||
StringComparison.Ordinal))
|
||||
{
|
||||
error =
|
||||
"The loaded scene strong dependency fingerprint does " +
|
||||
"not match the manifest.";
|
||||
return false;
|
||||
}
|
||||
|
||||
error = string.Empty;
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool IsCameraSourceDependency(string assetPath)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(assetPath))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (Path.GetExtension(assetPath).ToLowerInvariant())
|
||||
{
|
||||
case ".unity":
|
||||
case ".playable":
|
||||
case ".anim":
|
||||
case ".prefab":
|
||||
case ".controller":
|
||||
case ".overridecontroller":
|
||||
case ".mask":
|
||||
case ".fbx":
|
||||
case ".dae":
|
||||
case ".obj":
|
||||
case ".blend":
|
||||
case ".wav":
|
||||
case ".mp3":
|
||||
case ".flac":
|
||||
case ".ogg":
|
||||
return true;
|
||||
case ".asset":
|
||||
var assetType =
|
||||
AssetDatabase.GetMainAssetTypeAtPath(assetPath);
|
||||
var fullName = assetType?.FullName ?? string.Empty;
|
||||
return assetType != null &&
|
||||
(typeof(TimelineAsset).IsAssignableFrom(assetType) ||
|
||||
typeof(AnimationClip).IsAssignableFrom(assetType) ||
|
||||
typeof(RuntimeAnimatorController)
|
||||
.IsAssignableFrom(assetType) ||
|
||||
typeof(AvatarMask).IsAssignableFrom(assetType) ||
|
||||
fullName.StartsWith(
|
||||
"Unity.Cinemachine.",
|
||||
StringComparison.Ordinal));
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
internal static bool TryComputeGenerationInputSourceFingerprint(
|
||||
PlayableDirector sourceDirector,
|
||||
out string fingerprint,
|
||||
@ -3558,7 +3392,6 @@ namespace Streamingle.Editor
|
||||
public string rootLayout;
|
||||
public string audioFeatureLayout;
|
||||
public string cameraSamplingPolicy;
|
||||
public string sourceFingerprintSchema;
|
||||
public string sourceFingerprint;
|
||||
public int discoveredCameraTrackCount;
|
||||
public int exportedCameraTrackCount;
|
||||
|
||||
@ -3,6 +3,6 @@ guid: 8c8c76ce67b4489299ad2b2afb1cdf3d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@ -4,9 +4,9 @@ ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
|
||||
disableValidation: 0
|
||||
unsupportedSelectorAction: 0
|
||||
|
||||
@ -4,7 +4,7 @@ ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
|
||||
|
||||
@ -16,7 +16,7 @@ Cinemachine Track이나 기존 카메라 애니메이션은 필요하지 않으
|
||||
Unity Package Manager의 `Add package from git URL`에는 다음 주소를 사용할 수
|
||||
있습니다.
|
||||
|
||||
`https://kindnick-git.duckdns.org/mingle/streamingle-unity-utilities.git?path=/CameraAI~#v0.1.20`
|
||||
`https://kindnick-git.duckdns.org/mingle/streamingle-unity-utilities.git?path=/CameraAI~#v0.1.7`
|
||||
|
||||
배포 패키지에는 Windows x64용 `CWCameraWorker` 폴더 전체가 포함됩니다.
|
||||
Python은 따로 설치하지 않아도 되지만, Git 패키지의 대용량 바이너리를 받으려면
|
||||
@ -24,11 +24,10 @@ Unity를 열기 전에 Git과 Git LFS를 설치해야 합니다. Worker는 단
|
||||
아니므로 `CWCameraWorker.exe`와 같은 폴더의 `_internal` 내용을 함께 유지해야
|
||||
합니다.
|
||||
|
||||
카메라 생성에 필요한 준비된 참조 카메라·모션 데이터와 컷 모델은 패키지의
|
||||
읽기 전용 `RuntimeData~`에 포함됩니다. 별도의 `CW-AI` 체크아웃은 필요하지
|
||||
않습니다. 더 최신의 권한 제어 데이터가 있다면 `CWAI_ROOT` 환경 변수, Unity
|
||||
프로젝트 옆의 `CW-AI` 폴더 또는 생성 창의
|
||||
`고급 · 진단 > 참조 데이터 루트`에서 선택적으로 덮어쓸 수 있습니다.
|
||||
카메라 생성에 필요한 사내 참조 카메라·모션 데이터는 권한이 있는 `CW-AI`
|
||||
데이터 루트에서 읽습니다. 해당 데이터는 이 유틸리티 패키지에 포함되지 않습니다.
|
||||
다른 PC에서는 `CWAI_ROOT` 환경 변수, Unity 프로젝트 옆의 `CW-AI` 폴더 또는
|
||||
생성 창의 `고급 · 진단 > 참조 데이터 루트` 중 하나로 위치를 지정합니다.
|
||||
상세 설치 절차는 `Documentation~/EXTERNAL_INSTALLATION.md`를 참고하세요.
|
||||
참조 데이터는 읽기 전용이어도 됩니다. 반복 생성 캐시는 기본적으로 현재 Unity
|
||||
프로젝트의 `Library/CWAI`에 저장되며, 필요하면 `CWAI_CACHE_ROOT` 환경 변수로
|
||||
|
||||
@ -91,8 +91,7 @@
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"audioFile": "audio_source.wav",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "fcfdb8705a1f54e443d81058a6d796b3aa77defdf32fdcb244c4a6c8cfdf2ac8"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "밤하늘의 별을",
|
||||
@ -121,8 +120,7 @@
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"audioFile": "audio_source.wav",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "5c45856ebc36cf245526fb484252a8c831c79ecdfb447094864de321201fb4ba"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "서방님과의러브",
|
||||
@ -151,8 +149,7 @@
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"audioFile": "audio_source.mp3",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "c9785ce3e6d9c81b29ecab48b102b103a0f87d2bdb275f56f0a0d74f216c415b"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "오르트구름",
|
||||
@ -181,8 +178,7 @@
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"audioFile": "audio_source.wav",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ed88db0a3cec7c7fd157f9a352c9c39dc6ea2f2903b96040bd7448fbde311dbe"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "파도혁명",
|
||||
@ -211,8 +207,7 @@
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"audioFile": "audio_source.wav",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "927a01a0359165d530776f0cd496c1f1bf2dc307e4c5a5e051fc5e5b8dc380f5"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -106,8 +106,7 @@
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"audioFile": "audio_source.mp3",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "fe7aec63ef44d8618b72d5b1e8ee495a1cbb7055ccaf712b502993f4dd6e2a11"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f64ca5c7a24d3de5c49c87c5b44943fc09bc089a890c63cee65c84bb56a9d054"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dd2e8c14513dd71fca97901d2709ebd64df656b87b4cec171ce3053dc858a5fd"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f64ca5c7a24d3de5c49c87c5b44943fc09bc089a890c63cee65c84bb56a9d054"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1a846b5ba37a1f70ccdbcaeb2766edbd45047151ed171e1e41cd9ca73c9f5504"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -108,8 +108,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2f16e6489f0bcbb31c180a08f859484b8a785ae5f0edcd7d9ea7e8dd31949252"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "찐찐찐찐찐최_종 - Camera 02 (Cinemachine Track)",
|
||||
@ -143,8 +142,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2f16e6489f0bcbb31c180a08f859484b8a785ae5f0edcd7d9ea7e8dd31949252"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2563b7ce20039202767188d1498e5e6da4c234edc67ac2d3e1f8673c29c5c7ad"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "38b893e16779aa4c74afb23ae4bf774c589183147d9b2daada6e01ed9b99070e"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dd2e8c14513dd71fca97901d2709ebd64df656b87b4cec171ce3053dc858a5fd"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "88146db25f8478fecd3e5a757a9485d5576e54c18df792346c74888bb6452db3"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dd2e8c14513dd71fca97901d2709ebd64df656b87b4cec171ce3053dc858a5fd"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "a70f91f681aa4ce6b2a67aa82dda93ebad97c9c4c664e6b81ad8a430766e13a7"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2563b7ce20039202767188d1498e5e6da4c234edc67ac2d3e1f8673c29c5c7ad"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "3b6cce1f2ca7edba67aa736dae03bb84629b6acd38dd304af647d56a4435b20c"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "0e9ebaf131a7f091af6f3e812fef352ea863aea27a907ad283431a82505d6b98"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f64ca5c7a24d3de5c49c87c5b44943fc09bc089a890c63cee65c84bb56a9d054"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "6f1a9ba1fdd357aaf062a54a3d1c2b51a89f5cc8a510c2a451bb81e6d7d788ae"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "23d62a79fa756f059995a46f32cf1d1d4b7009ee262535fada5078f1f4a6b885"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "모시모시",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "모시모시",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "4d30be4f0782798fe2b6e1f964a34b272227dc2f3cf052e708d01c0b8b44092c"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "39b496e641c61d92b9a753d9c10ec4f62bd7a3880eeb631163aa982499d76754"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "c3f5042d894e2e75e485f95aff3b032aed67f475372b56da40a15477e8813110"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "c3f5042d894e2e75e485f95aff3b032aed67f475372b56da40a15477e8813110"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2563b7ce20039202767188d1498e5e6da4c234edc67ac2d3e1f8673c29c5c7ad"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8ffe39bf7e261f2c6cbe3d0efcd3934a731c449ad214137ce58fa7132ac26d09"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -108,8 +108,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "a58325243df8dcb67d95a2c4a0abfefbad56fe0649e4d543e7f8ad96519c5a28"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "3728cc8646511eaab803852668ae7293bf13cf6060f934968ee6971a4a870af1"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "a58325243df8dcb67d95a2c4a0abfefbad56fe0649e4d543e7f8ad96519c5a28"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "21134c4b0a5db0ba365874b537990a59629e26754806db5fabf594297f2c1a8f"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "a58325243df8dcb67d95a2c4a0abfefbad56fe0649e4d543e7f8ad96519c5a28"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "878160795903626fb2296b62b54d5ed6007a8515bfc97f049375c63b08aa6aec"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f64ca5c7a24d3de5c49c87c5b44943fc09bc089a890c63cee65c84bb56a9d054"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ec3ea7631f181acd4391a9c3f344e877f5d52a151c15293b05fa1b600211912d"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dd2e8c14513dd71fca97901d2709ebd64df656b87b4cec171ce3053dc858a5fd"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f33d7b8c0e53ef05863ab2c4bf7cfd85179fc65538c0a79ba31f9e66a5788197"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "골반통신 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f33d7b8c0e53ef05863ab2c4bf7cfd85179fc65538c0a79ba31f9e66a5788197"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dd2e8c14513dd71fca97901d2709ebd64df656b87b4cec171ce3053dc858a5fd"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "26e338a01816e0a2f91fa01d51db0ab56fe5051242d06618f66ab9db8a5180c6"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2ce378fb3bb7a648c02318b2d541bb1c12ebbd9ea62a006f528c6474106d0594"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "에코챌린지 - Camera 02 (Cinemachine Track) [muted]",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2ce378fb3bb7a648c02318b2d541bb1c12ebbd9ea62a006f528c6474106d0594"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8d63b00244a21e67c66cc0e60cd0f2cd5c97759bb45d0aa6228683f8012cfbe6"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "18189bd0ed3fc215cfc28751528067242de81d5f60b44de9447da9a09bb6bb9a"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "e9271a7d56330252f3f0691fae567c467bf9702d9b067471c9d56eab71cf77e6"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ba21343a8003056ddff149c52b876a4e74c0386b5761363bb68e91e437ff9bd4"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "21134c4b0a5db0ba365874b537990a59629e26754806db5fabf594297f2c1a8f"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "21134c4b0a5db0ba365874b537990a59629e26754806db5fabf594297f2c1a8f"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8ae720f39e3639a7e7ab220cfc058b18704f6f42794c2056ac8cd92f0c4b5c4a"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1a846b5ba37a1f70ccdbcaeb2766edbd45047151ed171e1e41cd9ca73c9f5504"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "b510ab572586558a61b5b55836c8bc0692e4ac48fdf0edeadaf42361156dff09"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f64ca5c7a24d3de5c49c87c5b44943fc09bc089a890c63cee65c84bb56a9d054"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "a9b2463d2132cfb74bdd3b4afceb24a867d0089fde8a603f2e2e5730e3f63eed"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1a846b5ba37a1f70ccdbcaeb2766edbd45047151ed171e1e41cd9ca73c9f5504"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ec3ea7631f181acd4391a9c3f344e877f5d52a151c15293b05fa1b600211912d"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "eee74e1d2377d5d4fe070f70c1a182329489f3e4081b83b6b47a705e26d5a30a"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "3728cc8646511eaab803852668ae7293bf13cf6060f934968ee6971a4a870af1"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1a846b5ba37a1f70ccdbcaeb2766edbd45047151ed171e1e41cd9ca73c9f5504"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1252b8c4c9617b9d8a53e2c5f08bd5281878fd72ff0d8822b168602563489b1a"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "88146db25f8478fecd3e5a757a9485d5576e54c18df792346c74888bb6452db3"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ce23a6e59a62b7d9a4a8e95b055309dcd50e776774843c0d77a1fd1a181077c2"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "0348fec90213920c6ce7a50f42235892d8890fc415c63924ce9940d6ac15976d"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dbe206e23b87566f1418080ca9c7d1f5d6e5f4ddfd2e348a7489f22c37b56494"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "영물이다",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "d203dfd34e831296a270826381e16de8e80d93640ad1de1ef0ea597dc5ab055e"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "e8b6cbda716d842fd36a27f3f87bdbaf6705ae98aad24572576653ea0ca59ac7"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2fa4a8494a320f9aa28e35c258e5fefd9966cfab14f32ee2c093fdf4bf322004"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "솜주먹 1인 아이돌 수정 4 - Camera 02 (Cinemachine Track)",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "2fa4a8494a320f9aa28e35c258e5fefd9966cfab14f32ee2c093fdf4bf322004"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1a846b5ba37a1f70ccdbcaeb2766edbd45047151ed171e1e41cd9ca73c9f5504"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "간바레 - Camera 03 (Cinemachine Track (1))",
|
||||
@ -171,8 +169,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c38a6c8dabc48331f0fe79fd28cd947a8abe38a56dcda659a899e3211c58c35"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8d63b00244a21e67c66cc0e60cd0f2cd5c97759bb45d0aa6228683f8012cfbe6"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "6b80d66f31a95706712754f6f9b4f9f9b617bb8df3d8ebfb53f08aa4dfac2900"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "639bda53142bda2776d0aeab8267fa805956664ed0a6c22efb7ed0984aa64bc9"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "d8f1b2870af9dd0dc84d4cfdde6676222a91fe11bbbbc146b9e4f23cc9f7031f"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "31bab87e2b159093d756afbdee6f6ed949a19b434763599530a877f7cbca1220"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "4c3b91090a7985f54695be7eb3fc57d754a020022aa14ce9b107f09668e583e4"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "e7dc2abeb62a9855cee1c0fcbe6ceef5795e967680180ad82364a7d7942683fe"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -103,8 +103,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "8c5e7a7c47d275081004d81613113569473ecd5953223ff691acf252db82aba9"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "865f7a756f8ab17651e8a42d1aa610d58f8b20818b85a54a3dcca74d2db0933b"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "a8c054acc80a470c50affcdf1860c9c38eb60b530f063a3d8ee38cc4d0dfd082"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "1252b8c4c9617b9d8a53e2c5f08bd5281878fd72ff0d8822b168602563489b1a"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "f64ca5c7a24d3de5c49c87c5b44943fc09bc089a890c63cee65c84bb56a9d054"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "dea055a2fd9b84950ed6f325acdb39b2a581c015c4d1c7ee9dd8a24d77248aca"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
@ -101,8 +101,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ce23a6e59a62b7d9a4a8e95b055309dcd50e776774843c0d77a1fd1a181077c2"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
},
|
||||
{
|
||||
"songName": "Two - Camera 02 (Cinemachine Track (1))",
|
||||
@ -136,8 +135,7 @@
|
||||
"timeFile": "time.f64",
|
||||
"shotsFile": "shots.json",
|
||||
"previewFile": "preview.csv",
|
||||
"preparedFile": "prepared_v1.npz",
|
||||
"audioFingerprint": "ce23a6e59a62b7d9a4a8e95b055309dcd50e776774843c0d77a1fd1a181077c2"
|
||||
"preparedFile": "prepared_v1.npz"
|
||||
}
|
||||
],
|
||||
"portablePreparedSchemaVersion": "1"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user