Skip to content

AmekoProject/Ameko

Repository files navigation

Ameko

Ameko Banner Logo

.NET 10.0 Zig 0.15.1

Ameko is a subtitle editing suite for Advanced Substation Alpha (ASS) subtitles.

Features

  • Core Subtitle Editing: Create, manipulate, and style subtitles.
  • Audio and Video Playback: Preview your work with the integrated video player powered by FFMS2 and libass.
  • Reference Files: Load an additional subtitle file (e.g. closed captions) to use as a reference. When editing a line, any lines from the reference file that overlap in time are automatically shown in a panel below the editor.
  • Tabs: Ameko is a tabbed editor, allowing you to easily switch between multiple open workspaces, each with their own subtitle, audio, and video files.
  • Projects: Ameko is introducing Project Files, which enable logical grouping and organization of subtitle files independent of the physical filesystem structure. They also provide a centralized place for team-shared configuration, spellchecking, styles, colors, and more.
  • Integrated Git Support: Ameko features basic Git features, like commiting, pulling, pushing, and blaming.
  • Scripting: Ameko includes robust support for C# scripts and libraries. The integrated package manager and the vast NuGet ecosystem are at your fingertips! In addition, Ameko features a scripting playground for quick-and-dirty automation and testing, and limited support for simple JavaScript-based scriptlets.
  • Powerful API: Scripts and libraries get direct access to AssCS, allowing them to manipulate the document, its events, their components (override tags, etc.), and more with ease.
  • Integrated Script Help: Script authors can attach a markdown help/documentation file with their script that will automatically be added to the Help window for easy reference.

Future Prospects

Potential features on Ameko's roadmap include:

  • Audio Spectrum View: Add a spectrum visualization option to complement the existing waveform one.
  • Audio Text Rendering: View timestamps and more on the audio visualization.
  • Interactive Audio Tools: Click and drag on the audio view to re-time lines.
  • Graphical Tools: Tools for visually manipulating subtitles on the video.

The inclusion of these features will likely rely on support from viewers like you! If you're interested in contributing to the project, please reach out!

Development

Bob the Builder

I would strongly recommend using Jetbrains Rider or Visual Studio for development.

C#

  • Make sure you have the .NET SDK installed.
  • Run dotnet restore to collect required NuGet packages.
  • To build, either click the Build button in your IDE, or run dotnet build.
  • To test, either click the Run Tests button in your IDE, or run dotnet test.
  • To build a release binary, use dotnet publish.
  • The final output for debugging and running is the Ameko project.

Zig

  • Make sure you have Zig installed.
  • You may need to build FFMS2 and libass yourself.
  • To build, run zig build. To run, use zig build run.
  • To test, run zig test.
  • To build a release binary, use zig build --release=safe.

Project Components

I wasn't sure where to put this section, so under "development" it goes! The Ameko project is currently comprised of 4 components working in tandem.

  • AssCS: The backbone of the operation. AssCS is responsible for everything involving the subtitle document itself. Managing events and styles, parsing tags, and reading/writing files are just part of what AssCS does. Eventually, AssCS will likely be split into its own project so anyone can use it for their C# projects.
  • Holo: The middleware layer, primarily linking the GUI to AssCS and Mizuki. It also manages the Package Manager, projects, configuration, and pretty much everything that's not immediately GUI-related.
  • Mizuki: A high-performance interop library. Mizuki facilitates communication between Holo and A/V libraries like FFMS and libass. By doing most of the work in a low-level language like Zig, Mizuki is able to reduce the amount of calls across the managed-unmanaged border.
  • Ameko: Despite being the namesake of the project, effort has been made to make Ameko a thin GUI. Theoretically, one should be able to build their own GUI and plug it right into Holo. Ameko's primary purpose is to facilitate data transfer between the user and Holo.

Contributing

Thank you for your interest in contributing to Ameko! Whether you're reporting or fixing bugs, adding a translation, implementing features, or starting a discussion, all contributions are welcome and appreciated.

Localization

es-419

If you are interested in localizing Ameko into your language (Thank you!), please see the Crowdin project. Note: Ameko is localized via the ResX format, which is quite limited, such as lacking support for plurals.

Code

Before submitting a pull request, please make sure your code is properly formatted:

  • C# code is automatically formatted using CSharpier as part of the build process.
  • Zig code should be formatted using zig fmt.

Additionally, there are some testing guidelines:

  • Unit tests are required for contributions to the Holo and AssCS projects.
  • Tests are optional, but highly appreciated, for Ameko's ViewModels and for Mizuki.

Licensing

  • The Ameko application is licensed under the GNU GPL v3 license.
  • Libraries developed for Ameko are licensed under the Mozilla Public License 2.0.
  • For more information, see the LICENSE files.

About

Cross-platform editor for Advanced Substation Alpha (ASS) subtitles

Topics

Resources

License

GPL-3.0, MPL-2.0 licenses found

Licenses found

GPL-3.0
LICENSE-GPL
MPL-2.0
LICENSE-MPL

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •