MetaBrainz.MusicBrainz.DiscId
5.3.0
dotnet add package MetaBrainz.MusicBrainz.DiscId --version 5.3.0
NuGet\Install-Package MetaBrainz.MusicBrainz.DiscId -Version 5.3.0
<PackageReference Include="MetaBrainz.MusicBrainz.DiscId" Version="5.3.0" />
<PackageVersion Include="MetaBrainz.MusicBrainz.DiscId" Version="5.3.0" />
<PackageReference Include="MetaBrainz.MusicBrainz.DiscId" />
paket add MetaBrainz.MusicBrainz.DiscId --version 5.3.0
#r "nuget: MetaBrainz.MusicBrainz.DiscId, 5.3.0"
#:package MetaBrainz.MusicBrainz.DiscId@5.3.0
#addin nuget:?package=MetaBrainz.MusicBrainz.DiscId&version=5.3.0
#tool nuget:?package=MetaBrainz.MusicBrainz.DiscId&version=5.3.0
MetaBrainz.MusicBrainz.DiscId

This is a .NET implementation of libdiscid.
The main point of divergence at this point is that fewer platforms are supported (see below), and that this library supports retrieval of CD-TEXT information.
It uses PInvoke to access devices so is platform-dependent; currently, Windows, Linux and FreeBSD are supported.
Support for macOS is unlikely, because I have no access to a system.
Debugging
The TableOfContents class provides a TraceSource that can be used to
configure debug output; its name is MetaBrainz.MusicBrainz.DiscId.
Configuration
In Code
In code, you can enable tracing like follows:
// Use the default switch, turning it on.
TableOfContents.TraceSource.Switch.Level = SourceLevels.All;
// Alternatively, use your own switch so multiple things can be
// enabled/disabled at the same time.
var mySwitch = new TraceSwitch("MyAppDebugSwitch", "All");
TableOfContents.TraceSource.Switch = mySwitch;
// By default, there is a single listener that writes trace events to
// the debug output (typically only seen in an IDE's debugger). You can
// add (and remove) listeners as desired.
var listener = new ConsoleTraceListener {
Name = "MyAppConsole",
TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId,
};
TableOfContents.TraceSource.Listeners.Clear();
TableOfContents.TraceSource.Listeners.Add(listener);
In Configuration
Your application can also be set up to read tracing configuration from the application configuration file. To do so, the following needs to be added to its startup code:
System.Diagnostics.TraceConfiguration.Register();
(Provided by the System.Configuration.ConfigurationManager package.)
The application config file can then have a system.diagnostics section
where sources, switches and listeners can be configured.
<configuration>
<system.diagnostics>
<sharedListeners>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" traceOutputOptions="DateTime,ProcessId" />
</sharedListeners>
<sources>
<source name="MetaBrainz.MusicBrainz.DiscId" switchName="MetaBrainz.MusicBrainz.DiscId">
<listeners>
<add name="console" />
<add name="discid-log" type="System.Diagnostics.TextWriterTraceListener" initializeData="discid.log" />
</listeners>
</source>
</sources>
<switches>
<add name="MetaBrainz.MusicBrainz.DiscId" value="All" />
</switches>
</system.diagnostics>
</configuration>
Release Notes
These are available on GitHub.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.