diff --git a/docs/_includes/developer-tools-and-frameworks/airlift.md b/docs/_includes/developer-tools-and-frameworks/airlift.md index 97caa766bde..f1a3e13d498 100644 --- a/docs/_includes/developer-tools-and-frameworks/airlift.md +++ b/docs/_includes/developer-tools-and-frameworks/airlift.md @@ -15,6 +15,6 @@ Some of the core features include : If you are a FCP user or developer who is trying to send or upload data to Airtable, you can use our tool! -Spearheaded by [Vigneswaran Rajkumar](https://twitter.com/IAmVigneswaran). +Spearheaded by [Vigneswaran Rajkumar](https://bsky.app/profile/vigneswaranrajkumar.com). [!button text="View on GitHub" target="blank" variant="info"](https://github.com/TheAcharya/Airlift) diff --git a/docs/_includes/developer-tools-and-frameworks/csv2notion-neo.md b/docs/_includes/developer-tools-and-frameworks/csv2notion-neo.md index 3c058bab77a..185e7248b45 100644 --- a/docs/_includes/developer-tools-and-frameworks/csv2notion-neo.md +++ b/docs/_includes/developer-tools-and-frameworks/csv2notion-neo.md @@ -2,18 +2,20 @@ ![](/static/csv2notion-neo-social-card.png) -CSV2Notion Neo provides an advance method to upload & merge *.csv files to Notion. +CSV2Notion Neo provides an advance method to upload & merge *.csv or *.json files with images to Notion database. Some of the core features include : -- Actually merge CSV with existing database rows (not just add new ones), first column will be used as a key -- Manually set column types instead of relying on autodetection -- Automatically link or create new entries in relation columns based on their value -- Upload files into "Files & media" column -- Upload image file used for cover or icon +- Merge CSV or JSON with the existing database, using the first column as a key to combine existing rows +- Choose column types manually instead of letting Notion detecting them automatically +- Link or create new entries in relation columns based on their values automatically +- Easily upload files into the designated "Files & Media" column +- Assign a icon for each row for quick identification +- Set a cover or embed an image for each row to enhance visual representation +- Upload image files for covers or icons If you are a FCP user or developer who is trying to send or upload data to Notion, you can use our tool! -Spearheaded by [Vigneswaran Rajkumar](https://twitter.com/IAmVigneswaran). +Spearheaded by [Vigneswaran Rajkumar](https://bsky.app/profile/vigneswaranrajkumar.com). [!button text="View on GitHub" target="blank" variant="info"](https://github.com/TheAcharya/csv2notion-neo) diff --git a/docs/_includes/developer-tools-and-frameworks/dawfilekit.md b/docs/_includes/developer-tools-and-frameworks/dawfilekit.md deleted file mode 100644 index 0702d56a2c0..00000000000 --- a/docs/_includes/developer-tools-and-frameworks/dawfilekit.md +++ /dev/null @@ -1,18 +0,0 @@ -### DAWFileKit - -A Swift library for reading and writing common import/export file formats between popular DAW and video editing applications with the ability to convert between formats. - -| Format | Read | Write | -| :-------------------------------: | :-----------: | :-----------: | -| Cubase: Track Archive XML | yes† | yes† | -| Pro Tools: Session Info text file | yes | n/a | -| Standard MIDI File | planned | yes | -| Logic Pro X‡ | future? | future? | -| Final Cut Pro XML (FCPXML) | yes | future? | -| Adobe Premiere XML | future? | future? | - -*† Full read/write support for Cubase Track Archive XML files is implemented for tracks with absolute timebase, as well as tracks with musical timebase where the tempo track uses only 'Jump' tempo events and there are no 'Ramp' tempo events* - -*‡ Research is needed for Logic Pro X to determine what file formats are common and the viability of their implementation* - -[!button text="View on GitHub" target="blank" variant="info"](https://github.com/orchetect/DAWFileKit) diff --git a/docs/_includes/developer-tools-and-frameworks/markersextractor-cli.md b/docs/_includes/developer-tools-and-frameworks/markersextractor-cli.md index 3768ef9146e..dcb40af8434 100644 --- a/docs/_includes/developer-tools-and-frameworks/markersextractor-cli.md +++ b/docs/_includes/developer-tools-and-frameworks/markersextractor-cli.md @@ -10,6 +10,6 @@ Some of the core features include : - Ability to batch extract and render stills or animated GIFs based on each marker's timecode - Ability to batch burn-in labels of each marker's metadata onto the stills or animated GIFs -Spearheaded by [Vigneswaran Rajkumar](https://twitter.com/IAmVigneswaran). +Spearheaded by [Vigneswaran Rajkumar](https://bsky.app/profile/vigneswaranrajkumar.com). [!button text="View on GitHub" target="blank" variant="info"](https://github.com/TheAcharya/MarkersExtractor) diff --git a/docs/_includes/developer-tools-and-frameworks/pipeline-neo.md b/docs/_includes/developer-tools-and-frameworks/pipeline-neo.md index ba60b291969..633434e191b 100644 --- a/docs/_includes/developer-tools-and-frameworks/pipeline-neo.md +++ b/docs/_includes/developer-tools-and-frameworks/pipeline-neo.md @@ -1,18 +1,32 @@ -### Pipeline Neo +### Pipeline Neo (CLI & Library) ![](/static/pipeline-neo-social-card.png) -**Pipeline Neo** is a modern Swift framework and spiritual successor to the original [Pipeline](https://github.com/reuelk/pipeline), designed for professional video editing workflows. Built with Swift 6.0 and targeting macOS 12+, it provides a comprehensive API for parsing, creating, and manipulating FCPXML files with advanced timecode operations, async/await patterns, and robust error handling. +**Pipeline Neo** is modern Swift 6 framework for working with Final Cut Pro's FCPXML with full concurrency support and SwiftTimecode integration. Pipeline Neo is a spiritual successor to the original [Pipeline](https://github.com/reuelk/pipeline), modernised for Swift 6.0 and contemporary development practices. -The framework seamlessly integrates with [TimecodeKit](https://github.com/orchetect/TimecodeKit) to deliver type-safe operations for professional video editing environments. Pipeline Neo is currently in experimental development, focusing on core functionality while providing a foundation for future expansion. The entire codebase has been developed and refined using AI-assisted development practices. +Pipeline Neo provides a comprehensive API for parsing, creating, and manipulating FCPXML files with advanced timecode operations, async/await patterns, and robust error handling. Built with Swift 6.0 and targeting macOS 12+, it offers type-safe operations, comprehensive test coverage, and seamless integration with SwiftTimecode for professional video editing workflows. -#### AI Agent Development Collaboration +Pipeline Neo is currently in an experimental stage and does not yet cover the full range of FCPXML attributes and parameters. It focuses on core functionality while providing a foundation for future expansion and feature completeness. -Pipeline Neo is refactored and developed using AI agents. [Vigneswaran Rajkumar](https://bsky.app/profile/vigneswaranrajkumar.com) welcomes developers interested in maintaining or contributing to the project through similar AI-assisted development approaches. Those passionate about AI-driven development workflows and looking to collaborate on expanding Pipeline Neo's capabilities are encouraged to reach out. - -Developers with experience in AI agent development and FCPXML processing are invited to contact Vigneswaran Rajkumar for repository access and collaboration on advancing the framework's functionality. +This codebase is developed using AI agents. > [!IMPORTANT] -> Pipeline Neo has yet to be extensively tested in production environments, real-world workflows, or application integration. This library serves as a modernised foundation for AI-assisted development and experimentation with FCPXML processing capabilities. +> Pipeline Neo has yet to be extensively tested in production environments, real-world workflows, or application integration. This library serves as a modernised foundation for AI-assisted development and experimentation with FCPXML processing capabilities. Additionally, this project would not be actively maintained, so please consider this when planning long-term integrations. + +#### Core Features + +- Read, create, and modify FCPXML documents via a protocol-oriented API (resources, events, projects, sequences). +- Load single .fcpxml files or .fcpxmld bundles (FCPXMLFileLoader; sync and async). +- Parse and validate against bundled DTDs (1.5–1.14): structural/reference validation and DTD schema validation. +- Typed access to resources, events, clips, and projects (helpers and APIs). +- Timecode and timing with SwiftTimecode: CMTime, Timecode, FCPXML time strings; all FCP frame rates; frame-boundary conform. +- Typed element filtering (FCPXMLElementType; multicam vs compound inferred from structure). +- Cut detection on project spines: edit points (hard cut, transition, gap) and same-clip vs different-clips; sync and async. +- Version conversion: convert to a target version (e.g. 1.14 → 1.10), strip elements not in target DTD, validate; save as .fcpxml or .fcpxmld (bundle from 1.10+). +- Per-version DTD validation against a chosen version or the document’s declared version. +- Media extraction and copy: extract asset/locator URLs, copy to a directory with deduplication; sync and async. +- Timeline and export: build Timeline, export to FCPXML string or .fcpxmld bundle (optional media copy). +- Experimental CLI: `pipeline-neo` with `--check-version`, `--convert-version`, `--extract-media` (see CLI README). +- Sync and async APIs; dependency-injected, concurrency-safe design for Swift 6. [!button text="View on GitHub" target="blank" variant="info"](https://github.com/TheAcharya/pipeline-neo) diff --git a/docs/_includes/developer-tools-and-frameworks/swift-daw-file-tools.md b/docs/_includes/developer-tools-and-frameworks/swift-daw-file-tools.md new file mode 100644 index 00000000000..fdbc6a7f48b --- /dev/null +++ b/docs/_includes/developer-tools-and-frameworks/swift-daw-file-tools.md @@ -0,0 +1,21 @@ +### swift-daw-file-tools + +A Swift library for reading and writing common import/export file formats between popular DAW and video editing applications with the ability to convert between formats. + +## Supported File Formats + +| Format | Read | Write | +| :-------------------------------: | :-----------------: | :---------------------------------: | +| Cubase: Track Archive XML | marker tracks only† | marker tracks only† | +| Pro Tools: Session Info text file | full support | n/a | +| Standard MIDI File | planned | convert marker tracks to MIDI files | +| Logic Pro X | planned‡ | planned‡ | +| Final Cut Pro XML (FCPXML) | full support | basic support | +| Adobe Premiere XML | planned | planned | +| SubRip SRT File | full support | full support | + +*† Full read/write support for Cubase Track Archive XML files is implemented for marker tracks only at this time, and only when in absolute timebase or musical timebase where the tempo track uses only 'Jump' tempo events and there are no 'Ramp' tempo events.* Full support for all track and event types may come in a future version of this library on an as-needed basis. + +*‡ Research is needed for Logic Pro X to determine what file formats are common and the viability of their implementation*. + +[!button text="View on GitHub" target="blank" variant="info"](https://github.com/orchetect/swift-daw-file-tools) diff --git a/docs/_includes/developer-tools-and-frameworks/timecodekit.md b/docs/_includes/developer-tools-and-frameworks/swift-timecode.md similarity index 82% rename from docs/_includes/developer-tools-and-frameworks/timecodekit.md rename to docs/_includes/developer-tools-and-frameworks/swift-timecode.md index 7567e04f58e..abdac25cae1 100644 --- a/docs/_includes/developer-tools-and-frameworks/timecodekit.md +++ b/docs/_includes/developer-tools-and-frameworks/swift-timecode.md @@ -1,9 +1,9 @@ -### TimecodeKit +### swift-timecode -![](/static/timecodekit-banner.png) +![](/static/swifttimecode-banner.png) The most robust, precise and complete Swift library for working with SMPTE timecode. Supports 22 industry timecode frame rates, including conversions to/from timecode strings and offering timecode-based calculations. Timecode is a standard for representing video frames and used for video burn-in timecode (BITC), or display in a DAW (Digital Audio Workstation) or video playback/NLE applications. -[!button text="View on GitHub" target="blank" variant="info"](https://github.com/orchetect/TimecodeKit) +[!button text="View on GitHub" target="blank" variant="info"](https://github.com/orchetect/swift-timecode) diff --git a/docs/_includes/developer-tools-and-frameworks/swiftsecuencia.md b/docs/_includes/developer-tools-and-frameworks/swiftsecuencia.md new file mode 100644 index 00000000000..3b4a5d388ef --- /dev/null +++ b/docs/_includes/developer-tools-and-frameworks/swiftsecuencia.md @@ -0,0 +1,5 @@ +### SwiftSecuencia + +SwiftSecuencia provides a type-safe, Swift-native API for creating and exporting media timelines. Build timelines programmatically and export to professional formats for Final Cut Pro, audio production, and more. + +[!button text="View on GitHub" target="blank" variant="info"](https://github.com/intrusive-memory/SwiftSecuencia) diff --git a/docs/_includes/developer-tools-and-frameworks/xlkit.md b/docs/_includes/developer-tools-and-frameworks/xlkit.md new file mode 100644 index 00000000000..2fcfd09c944 --- /dev/null +++ b/docs/_includes/developer-tools-and-frameworks/xlkit.md @@ -0,0 +1,9 @@ +### XLKit + +![](/static/xlkit-social-card.png) + +**XLKit** is a modern Swift library for creating and manipulating Excel (.xlsx) files on macOS and iOS. XLKit provides a fluent, chainable API that makes Excel file generation effortless while supporting advanced features like image embedding, CSV/TSV import/export, cell formatting, and both synchronous and asynchronous operations. Built with Swift 6.0 and targeting macOS 12+ and iOS 15+, it offers type-safe operations, comprehensive error handling, and security features. iOS support is available and tested in CI/CD. + +Created by [Vigneswaran Rajkumar](https://bsky.app/profile/vigneswaranrajkumar.com). + +[!button text="View on GitHub" target="blank" variant="info"](https://github.com/TheAcharya/XLKit) diff --git a/docs/_includes/tools/pipeline-neo.md b/docs/_includes/tools/pipeline-neo.md new file mode 100644 index 00000000000..633434e191b --- /dev/null +++ b/docs/_includes/tools/pipeline-neo.md @@ -0,0 +1,32 @@ +### Pipeline Neo (CLI & Library) + +![](/static/pipeline-neo-social-card.png) + +**Pipeline Neo** is modern Swift 6 framework for working with Final Cut Pro's FCPXML with full concurrency support and SwiftTimecode integration. Pipeline Neo is a spiritual successor to the original [Pipeline](https://github.com/reuelk/pipeline), modernised for Swift 6.0 and contemporary development practices. + +Pipeline Neo provides a comprehensive API for parsing, creating, and manipulating FCPXML files with advanced timecode operations, async/await patterns, and robust error handling. Built with Swift 6.0 and targeting macOS 12+, it offers type-safe operations, comprehensive test coverage, and seamless integration with SwiftTimecode for professional video editing workflows. + +Pipeline Neo is currently in an experimental stage and does not yet cover the full range of FCPXML attributes and parameters. It focuses on core functionality while providing a foundation for future expansion and feature completeness. + +This codebase is developed using AI agents. + +> [!IMPORTANT] +> Pipeline Neo has yet to be extensively tested in production environments, real-world workflows, or application integration. This library serves as a modernised foundation for AI-assisted development and experimentation with FCPXML processing capabilities. Additionally, this project would not be actively maintained, so please consider this when planning long-term integrations. + +#### Core Features + +- Read, create, and modify FCPXML documents via a protocol-oriented API (resources, events, projects, sequences). +- Load single .fcpxml files or .fcpxmld bundles (FCPXMLFileLoader; sync and async). +- Parse and validate against bundled DTDs (1.5–1.14): structural/reference validation and DTD schema validation. +- Typed access to resources, events, clips, and projects (helpers and APIs). +- Timecode and timing with SwiftTimecode: CMTime, Timecode, FCPXML time strings; all FCP frame rates; frame-boundary conform. +- Typed element filtering (FCPXMLElementType; multicam vs compound inferred from structure). +- Cut detection on project spines: edit points (hard cut, transition, gap) and same-clip vs different-clips; sync and async. +- Version conversion: convert to a target version (e.g. 1.14 → 1.10), strip elements not in target DTD, validate; save as .fcpxml or .fcpxmld (bundle from 1.10+). +- Per-version DTD validation against a chosen version or the document’s declared version. +- Media extraction and copy: extract asset/locator URLs, copy to a directory with deduplication; sync and async. +- Timeline and export: build Timeline, export to FCPXML string or .fcpxmld bundle (optional media copy). +- Experimental CLI: `pipeline-neo` with `--check-version`, `--convert-version`, `--extract-media` (see CLI README). +- Sync and async APIs; dependency-injected, concurrency-safe design for Swift 6. + +[!button text="View on GitHub" target="blank" variant="info"](https://github.com/TheAcharya/pipeline-neo) diff --git a/docs/developers/fcpxml.md b/docs/developers/fcpxml.md index ff9f81ff93e..45c1f71dbf9 100644 --- a/docs/developers/fcpxml.md +++ b/docs/developers/fcpxml.md @@ -42,21 +42,29 @@ You can read [Demystifying Final Cut Pro XMLs by Philip Hodgetts and Gregory Cla --- -## DAWFileKit +## swift-daw-file-tools -[Steffan Andrews](https://github.com/orchetect) has created an amazing Swift Framework called [DAWFileKit](https://github.com/orchetect/DAWFileKit), which can read and process FCPXML. +[Steffan Andrews](https://github.com/orchetect) has created an amazing Swift Framework called [swift-daw-file-tools](https://github.com/orchetect/swift-daw-file-tools), which can read and process FCPXML. --- -## Pipeline Neo +## SwiftSecuencia -[Pipeline](https://github.com/reuelk/pipeline) was originally developed by [Reuel Kim](https://github.com/reuelk) and it is no longer maintained. **Pipeline Neo** was created as a spin-off project to fix and update the library when necessary. +SwiftSecuencia provides a type-safe, Swift-native API for creating and exporting media timelines. Build timelines programmatically and export to professional formats for Final Cut Pro, audio production, and more. -**Pipeline Neo** extends the `XMLDocument` and `XMLElement` classes in the Foundation framework. It adds properties and methods that simplify the creation and management of FCPXML document structure. +You can learn more about [SwiftSecuencia](https://github.com/intrusive-memory/SwiftSecuencia). -**Pipeline Neo** also includes supplemental classes and a `CMTime` extension to help in the processing of FCPXML data. For example, you can easily convert a timing value that looks like `59983924/30000s` in the XML to `00:33:19,464` for display in an app. +--- + +## Pipeline Neo (CLI & Library) + +**Pipeline Neo** is modern Swift 6 framework for working with Final Cut Pro's FCPXML with full concurrency support and SwiftTimecode integration. Pipeline Neo is a spiritual successor to the original [Pipeline](https://github.com/reuelk/pipeline), modernised for Swift 6.0 and contemporary development practices. + +Pipeline Neo provides a comprehensive API for parsing, creating, and manipulating FCPXML files with advanced timecode operations, async/await patterns, and robust error handling. Built with Swift 6.0 and targeting macOS 12+, it offers type-safe operations, comprehensive test coverage, and seamless integration with SwiftTimecode for professional video editing workflows. + +Pipeline Neo's codebase is derived from [swift-daw-file-tools](https://github.com/orchetect/swift-daw-file-tools) and [SwiftSecuencia](https://github.com/intrusive-memory/SwiftSecuencia). The project now includes an experimental CLI tool for testing and expanding Pipeline Neo's functionality. -In most cases, we'd recommend [DAWFileKit](https://github.com/orchetect/DAWFileKit) instead of Pipeline Neo, however we include it here as it does have some functionality that DAWFileKit is currently lacking. +This codebase is developed using AI agents. You can learn more about [Pipeline Neo](https://github.com/TheAcharya/pipeline-neo). diff --git a/docs/static/swifttimecode-banner.png b/docs/static/swifttimecode-banner.png new file mode 100644 index 00000000000..0b2171f4954 Binary files /dev/null and b/docs/static/swifttimecode-banner.png differ diff --git a/docs/static/timecodekit-banner.png b/docs/static/timecodekit-banner.png deleted file mode 100644 index 06456995c0e..00000000000 Binary files a/docs/static/timecodekit-banner.png and /dev/null differ diff --git a/docs/static/xlkit-social-card.png b/docs/static/xlkit-social-card.png new file mode 100644 index 00000000000..db8c6843f99 Binary files /dev/null and b/docs/static/xlkit-social-card.png differ