CopperMod.Med 1.0.0

dotnet add package CopperMod.Med --version 1.0.0
                    
NuGet\Install-Package CopperMod.Med -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CopperMod.Med" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CopperMod.Med" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="CopperMod.Med" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CopperMod.Med --version 1.0.0
                    
#r "nuget: CopperMod.Med, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CopperMod.Med@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CopperMod.Med&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=CopperMod.Med&version=1.0.0
                    
Install as a Cake Tool

CopperMod

CopperMod is a terminal music player for classic tracker and chip music formats. It started as a portable MED renderer, but is growing into a small playback stack with reusable C# backends and a Terminal.Gui based player application.

The project focuses on accurate replay behavior rather than format conversion. Backends render audio in small time slices, making them useful both for the CopperMod player and for other applications that need tracker playback.

Current Status

  • MED / OctaMED: MMD0-MMD3 parsing and Amiga-style playback work is underway.
  • ProTracker MOD: 4-channel ProTracker playback with Amiga-style sample output.
  • SID / RSID: native C# C64/SID emulation with cycle-counted register scheduling.
  • CopperMod: terminal UI player with NAudio output and optional output shaping.

This is still an accuracy project in progress. Some advanced replay details, especially for SID analog behavior and difficult RSID tunes, are expected to keep improving over time.

Build

Requires the .NET 10 SDK.

dotnet build .\CopperMod.sln
dotnet test .\CopperMod.sln

Packages

The reusable playback backends are intended to be published separately:

dotnet add package CopperMod.Med
dotnet add package CopperMod.ProTracker
dotnet add package CopperMod.Sid

All backend packages depend on CopperMod.Abstractions, which contains the shared module loading and rendering interfaces.

Run

dotnet run --project .\CopperMod -- "path\to\tune.sid"

If no file is provided, CopperMod tries to open the default MED test tune when it is available in the workspace.

Projects

  • CopperMod - terminal player application.
  • CopperMod.Abstractions - shared playback interfaces.
  • CopperMod.Med - MED / OctaMED backend.
  • CopperMod.ProTracker - ProTracker MOD backend.
  • CopperMod.Sid - PSID / RSID backend.
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 66 5/26/2026
0.1.0-alpha.1 44 5/26/2026