Browse Source

updated legacy demo apps to use new SDK project style

process-audio-capture
Mark Heath 3 years ago
parent
commit
8d152cb3fe
  1. 191
      AudioFileInspector/AudioFileInspector.csproj
  2. 5
      AudioFileInspector/Program.cs
  3. 77
      AudioFileInspector/Properties/AssemblyInfo.cs
  4. 46
      AudioFileInspector/ReleaseNotes.md
  5. 173
      MidiFileConverter/MidiFileConverter.csproj
  6. 5
      MidiFileConverter/Program.cs
  7. 149
      MidiFileConverter/ReleaseNotes.md
  8. 220
      MixDiff/MixDiff.csproj
  9. 5
      MixDiff/Program.cs
  10. 79
      MixDiff/Properties/AssemblyInfo.cs
  11. 49
      MixDiff/ReleaseNotes.md

191
AudioFileInspector/AudioFileInspector.csproj

@ -1,152 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D29C1659-635C-497B-847E-FE9A5A69ED03}</ProjectGuid>
<TargetFramework>net6.0-windows</TargetFramework>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>AudioFileInspector</RootNamespace>
<AssemblyName>AudioFileInspector</AssemblyName>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<PlatformTarget>x86</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
<Version>0.1.8</Version>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Core">
<Reference Update="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework> <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference> </Reference>
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AboutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutForm.Designer.cs">
<DependentUpon>AboutForm.cs</DependentUpon>
</Compile>
<Compile Include="AudioFileInspectorForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AudioFileInspectorForm.Designer.cs">
<DependentUpon>AudioFileInspectorForm.cs</DependentUpon>
</Compile>
<Compile Include="FileAssociations.cs" />
<Compile Include="FileInspectors\Mp3FileInspector.cs" />
<Compile Include="FindForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FindForm.Designer.cs">
<DependentUpon>FindForm.cs</DependentUpon>
</Compile>
<Compile Include="IAudioFileInspector.cs" />
<Compile Include="FileInspectors\MidiFileInspector.cs" />
<Compile Include="OptionsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="OptionsForm.Designer.cs">
<DependentUpon>OptionsForm.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="AboutForm.resx">
<DependentUpon>AboutForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="AudioFileInspectorForm.resx">
<SubType>Designer</SubType>
<DependentUpon>AudioFileInspectorForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FindForm.resx">
<SubType>Designer</SubType>
<DependentUpon>FindForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="OptionsForm.resx">
<SubType>Designer</SubType>
<DependentUpon>OptionsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="InstallScript.nsi" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="FileInspectors\SoundFontInspector.cs" />
<Compile Include="FileInspectors\WaveFileInspector.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="audio_file_inspector.html"> <Content Include="audio_file_inspector.html">
@ -154,42 +17,14 @@
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<ProjectReference Include="..\NAudio.Core\NAudio.Core.csproj" />
<ProjectReference Include="..\NAudio.Midi\NAudio.Midi.csproj" />
<ProjectReference Include="..\NAudio\NAudio.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NAudio.Core\NAudio.Core.csproj">
<Project>{5bfaf13b-0823-4a5d-a9cb-a894ee53e2b2}</Project>
<Name>NAudio.Core</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio.Midi\NAudio.Midi.csproj">
<Project>{279f8cb0-a9fc-459e-baf3-05b7c6eee0f7}</Project>
<Name>NAudio.Midi</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio\NAudio.csproj">
<Project>{DA4F02E3-0B5E-42CD-B8D9-5583FA51D66E}</Project>
<Name>NAudio</Name>
</ProjectReference>
<PackageReference Include="System.ComponentModel.Composition" Version="6.0.0" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.310801">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project> </Project>

5
AudioFileInspector/Program.cs

@ -1,4 +1,4 @@
using System;
using System;
using System.Linq; using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
using System.Windows.Forms; using System.Windows.Forms;
@ -16,6 +16,7 @@ namespace AudioFileInspector
static int Main(string[] args) static int Main(string[] args)
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
var catalog = new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly()); var catalog = new AssemblyCatalog(System.Reflection.Assembly.GetExecutingAssembly());
@ -62,4 +63,4 @@ namespace AudioFileInspector
return 0; return 0;
} }
} }
}
}

77
AudioFileInspector/Properties/AssemblyInfo.cs

@ -1,77 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Audio File Inspector")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Mark Heath")]
[assembly: AssemblyProduct("Audio File Inspector")]
[assembly: AssemblyCopyright("Copyright © Mark Heath 2012")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("8bb855c5-ddfc-4596-a5df-aa9059be7705")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("0.1.7.0")]
[assembly: AssemblyFileVersion("0.1.7.0")]
// build 1 - 1 Nov 2006
// initial version - moved out of WavePlayer
// extracted file describing logic into classes
// drag and drop support
// command line support
// explorer context menu support
// save analysis to text file
// installer
// command line register and unregister file associations
// build 2 - 2 Nov 2006
// fixed some installer problems
// build 3 - 10 Nov 2006
// MIDI note off events are not displayed
// Initial M:B:T support for MIDI
// build 4 - 26 Apr 2007
// Updated to work with latest code in CodePlex
// Beginnings of a find feature
// build 5 - 8 Jun 2008
// Shows length of Wave file as a TimeSpan as well as bytes
// build 6 - 13 Jan 2009
// can report on strc chunks in ACID wav files
// build 7 - 13 Jan 2012
// better MBT calculation for MIDI files
// TODO list
// help file
// better error handling
// possibly: a plugin format
// options for each inspector
// describe on a separate thread
// Enhance existing:
// MIDI: riff, M:B:T
// WAV: ACID format
// Additional formats:
// WAV 64
// AIFF
// REX
// MP3
// OGG
// Project 5 pattern

46
AudioFileInspector/ReleaseNotes.md

@ -0,0 +1,46 @@
// build 1 - 1 Nov 2006
// initial version - moved out of WavePlayer
// extracted file describing logic into classes
// drag and drop support
// command line support
// explorer context menu support
// save analysis to text file
// installer
// command line register and unregister file associations
// build 2 - 2 Nov 2006
// fixed some installer problems
// build 3 - 10 Nov 2006
// MIDI note off events are not displayed
// Initial M:B:T support for MIDI
// build 4 - 26 Apr 2007
// Updated to work with latest code in CodePlex
// Beginnings of a find feature
// build 5 - 8 Jun 2008
// Shows length of Wave file as a TimeSpan as well as bytes
// build 6 - 13 Jan 2009
// can report on strc chunks in ACID wav files
// build 7 - 13 Jan 2012
// better MBT calculation for MIDI files
### 0.1.8 29 Apr 2022
- updated to latest .NET 6
// TODO list
// help file
// better error handling
// possibly: a plugin format
// options for each inspector
// describe on a separate thread
// Enhance existing:
// MIDI: riff, M:B:T
// WAV: ACID format
// Additional formats:
// WAV 64
// AIFF
// REX
// MP3
// OGG
// Project 5 pattern

173
MidiFileConverter/MidiFileConverter.csproj

@ -1,148 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{5B5897BD-A423-4AF8-8A59-1C1372ED77DB}</ProjectGuid>
<TargetFramework>net6.0-windows</TargetFramework>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MarkHeath.MidiUtils</RootNamespace> <RootNamespace>MarkHeath.MidiUtils</RootNamespace>
<AssemblyName>MIDI File Converter</AssemblyName> <AssemblyName>MIDI File Converter</AssemblyName>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<Version>0.4.0.0</Version>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AboutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutForm.Designer.cs">
<DependentUpon>AboutForm.cs</DependentUpon>
</Compile>
<Compile Include="AdvancedOptionsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AdvancedOptionsForm.Designer.cs">
<DependentUpon>AdvancedOptionsForm.cs</DependentUpon>
</Compile>
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MainForm.Designer.cs">
<DependentUpon>MainForm.cs</DependentUpon>
</Compile>
<Compile Include="MidiConverter.cs" />
<Compile Include="NamingRule.cs" />
<Compile Include="OutputMidiType.cs" />
<Compile Include="Program.cs" />
<Compile Include="ProgressEventArgs.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="AboutForm.resx">
<DependentUpon>AboutForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="AdvancedOptionsForm.resx">
<SubType>Designer</SubType>
<DependentUpon>AdvancedOptionsForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="MainForm.resx">
<SubType>Designer</SubType>
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="InstallScript.nsi" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NAudio.Midi\NAudio.Midi.csproj">
<Project>{279f8cb0-a9fc-459e-baf3-05b7c6eee0f7}</Project>
<Name>NAudio.Midi</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio.WinForms\NAudio.WinForms.csproj">
<Project>{a006a4de-00f2-4cf3-a8c2-582d3802c110}</Project>
<Name>NAudio.WinForms</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio\NAudio.csproj">
<Project>{DA4F02E3-0B5E-42CD-B8D9-5583FA51D66E}</Project>
<Name>NAudio</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio.Midi\NAudio.Midi.csproj" />
<ProjectReference Include="..\NAudio.WinForms\NAudio.WinForms.csproj" />
<ProjectReference Include="..\NAudio\NAudio.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="midi_file_converter.html"> <Content Include="midi_file_converter.html">
@ -153,28 +22,8 @@
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.310801">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project> </Project>

5
MidiFileConverter/Program.cs

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Windows.Forms; using System.Windows.Forms;
@ -13,8 +13,9 @@ namespace MarkHeath.MidiUtils
static void Main() static void Main()
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm()); Application.Run(new MainForm());
} }
} }
}
}

149
MidiFileConverter/Properties/AssemblyInfo.cs → MidiFileConverter/ReleaseNotes.md

@ -1,91 +1,60 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("MIDI File Converter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Mark Heath")]
[assembly: AssemblyProduct("MIDI File Converter")]
[assembly: AssemblyCopyright("Copyright © Mark Heath 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c25a6f6b-abf0-4460-a49e-d73c069f80e3")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("0.3.11.0")]
[assembly: AssemblyFileVersion("0.3.11.0")]
// build 1 29 Oct 2006
// build 1 is experimental
// updated for Groove Monkee loops so it works on all incoming files
// build 2 30 Oct 2006
// setting to leave MIDI file type unchanged
// settings to force notes to a specific channel
// added clip naming option
// uses new generic about box
// uses new generic progress log
// decoupled logic from Main Form UI
// option not to rename files at all
// Hidden option to trim text markers and remove blank
// Hidden option to insert a name marker and delete all others
// Hidden option to recreate end track markers
// basic install script
// should now be able to cope with multi-track type 1s as input as well
// show hourglass
// remove empty tracks option added
// settings upgrade option
// Update help file
// build 3
// fixed a bug removing blank tracks
// build 4
// advanced options dialog
// clear log on start
// build 5 31 Oct 2006
// Remove extra tempo events option
// Remove extra markers option
// build 6 31 Oct 2006
// option to save conversion log
// build 7 2 Nov 2006
// final build for release
// build 8 3 Nov 2006
// minor changes
// build 9 6 Mar 2007
// renamed to MIDI file converter
// now hosted on CodePlex
// fixed a bug where track 1 didn't have an end track marker if Recreate Track End Markers wasn't set,
// and converting from type 0 to type 1
// build 10 5 Apr 2007
// updated to use new MidiEventCollection
// build 11 12 Feb 2016
// ensuring end track markers persent converting type 1 to 1
// revamp help for advanced options
// Next version
// support changing note length
// perhaps allow markers less than final note event
// work out times in measures and beats
// review error handling
// Consider a command line interface
// Selecting what to copy & what to process (somehow)
// Protect against output folder being a subfolder of input folder
// Testing
// build 1 29 Oct 2006
// build 1 is experimental
// updated for Groove Monkee loops so it works on all incoming files
// build 2 30 Oct 2006
// setting to leave MIDI file type unchanged
// settings to force notes to a specific channel
// added clip naming option
// uses new generic about box
// uses new generic progress log
// decoupled logic from Main Form UI
// option not to rename files at all
// Hidden option to trim text markers and remove blank
// Hidden option to insert a name marker and delete all others
// Hidden option to recreate end track markers
// basic install script
// should now be able to cope with multi-track type 1s as input as well
// show hourglass
// remove empty tracks option added
// settings upgrade option
// Update help file
// build 3
// fixed a bug removing blank tracks
// build 4
// advanced options dialog
// clear log on start
// build 5 31 Oct 2006
// Remove extra tempo events option
// Remove extra markers option
// build 6 31 Oct 2006
// option to save conversion log
// build 7 2 Nov 2006
// final build for release
// build 8 3 Nov 2006
// minor changes
// build 9 6 Mar 2007
// renamed to MIDI file converter
// now hosted on CodePlex
// fixed a bug where track 1 didn't have an end track marker if Recreate Track End Markers wasn't set,
// and converting from type 0 to type 1
// build 10 5 Apr 2007
// updated to use new MidiEventCollection
// build 11 12 Feb 2016
// ensuring end track markers persent converting type 1 to 1
### 0.4.0 29 Apr 2022
- updated to latest .NET 6
// revamp help for advanced options
// Next version
// support changing note length
// perhaps allow markers less than final note event
// work out times in measures and beats
// review error handling
// Consider a command line interface
// Selecting what to copy & what to process (somehow)
// Protect against output folder being a subfolder of input folder
// Testing
// Public release // Public release

220
MixDiff/MixDiff.csproj

@ -1,217 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{1293DD10-378A-4370-AEE2-AA1E9E87039B}</ProjectGuid>
<TargetFramework>net6.0-windows</TargetFramework>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MarkHeath.AudioUtils</RootNamespace> <RootNamespace>MarkHeath.AudioUtils</RootNamespace>
<AssemblyName>MixDiff</AssemblyName>
<SccProjectName>
</SccProjectName>
<SccLocalPath>
</SccLocalPath>
<SccAuxPath>
</SccAuxPath>
<SccProvider>
</SccProvider>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<Version>0.1.8</Version>
<UseWindowsForms>true</UseWindowsForms>
<ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AboutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="AboutForm.Designer.cs">
<DependentUpon>AboutForm.cs</DependentUpon>
</Compile>
<Compile Include="MixdownInfo.cs" />
<Compile Include="Images.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Images.resx</DependentUpon>
</Compile>
<Compile Include="MixDiffForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="MixDiffForm.Designer.cs">
<DependentUpon>MixDiffForm.cs</DependentUpon>
</Compile>
<Compile Include="MixDiffStream.cs" />
<Compile Include="Program.cs" />
<Compile Include="PropertiesForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PropertiesForm.Designer.cs">
<DependentUpon>PropertiesForm.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="AboutForm.resx">
<DependentUpon>AboutForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Images.resx">
<SubType>Designer</SubType>
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Images.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="MixDiffForm.resx">
<SubType>Designer</SubType>
<DependentUpon>MixDiffForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PropertiesForm.resx">
<SubType>Designer</SubType>
<DependentUpon>PropertiesForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="SettingsForm.resx">
<SubType>Designer</SubType>
<DependentUpon>SettingsForm.cs</DependentUpon>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="SettingsForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SettingsForm.Designer.cs">
<DependentUpon>SettingsForm.cs</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="Resources\Pause.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Play.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Stop.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Forward.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Back.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Rewind.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\Loop.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NAudio.Core\NAudio.Core.csproj">
<Project>{5bfaf13b-0823-4a5d-a9cb-a894ee53e2b2}</Project>
<Name>NAudio.Core</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio.WinForms\NAudio.WinForms.csproj">
<Project>{a006a4de-00f2-4cf3-a8c2-582d3802c110}</Project>
<Name>NAudio.WinForms</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio.WinMM\NAudio.WinMM.csproj">
<Project>{0c96d3bf-88a4-47f5-b4f0-53c2a9c988f0}</Project>
<Name>NAudio.WinMM</Name>
</ProjectReference>
<ProjectReference Include="..\NAudio\NAudio.csproj">
<Project>{DA4F02E3-0B5E-42CD-B8D9-5583FA51D66E}</Project>
<Name>NAudio</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" />
<None Include="Resources\Shuffle.png" />
<ProjectReference Include="..\NAudio.Core\NAudio.Core.csproj" />
<ProjectReference Include="..\NAudio.WinForms\NAudio.WinForms.csproj" />
<ProjectReference Include="..\NAudio.WinMM\NAudio.WinMM.csproj" />
<ProjectReference Include="..\NAudio\NAudio.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.310801">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project> </Project>

5
MixDiff/Program.cs

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Windows.Forms; using System.Windows.Forms;
@ -13,8 +13,9 @@ namespace MarkHeath.AudioUtils
static void Main() static void Main()
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MixDiffForm()); Application.Run(new MixDiffForm());
} }
} }
}
}

79
MixDiff/Properties/AssemblyInfo.cs

@ -1,79 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("MixDiff")]
[assembly: AssemblyDescription("Mix Comparison Utility")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Mark Heath")]
[assembly: AssemblyProduct("MixDiff")]
[assembly: AssemblyCopyright("Copyright © Mark Heath 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("12d6167b-bcab-4b93-b7ae-460fee425dfa")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
[assembly: AssemblyVersion("0.1.7.0")]
[assembly: AssemblyFileVersion("0.1.7.0")]
// build 1 19 Oct 2006
// initial project created
// build 2 8 Mar 2007
// project added to codeplex
// basic ability to load and play a file
// can switch between files
// build 3 16 Mar 2007
// pausing ability
// fixed a bug with stop
// compare mode added
// initial slot clearing code
// build 4 19 Mar 2007
// more context menu actions
// properties form for offset and volume setting
// build 5 20 Mar 2007
// can save settings to a MixDiff file
// offset is now working
// build 6 22 Mar 2007
// can load from a MixDiff file
// help and about dialogs
// build 7 23 Mar 2007
// comparison file opening bug fixes & enhancements
// beginnings of a shuffle feature
// TODO list - key features for version 1
// 24 bit support
// select WaveOut output device
// configurable skip back amount
// Error handling
// Implement shuffle & reveal feature
// Keyboard support
// Options form to allow selection of WaveOut device
// update WaveOut to allow Init to be called multiple times
// fix the negative time thing
// repositioning drag bar
// status bar
//Extra features:
//MixDiff file should offer relative path support
//master volume
//32 bit file support
//mp3 support
//less important: 8 bit, 64 bit file support
//mismatched sample rate support

49
MixDiff/ReleaseNotes.md

@ -0,0 +1,49 @@
// build 1 19 Oct 2006
// initial project created
// build 2 8 Mar 2007
// project added to codeplex
// basic ability to load and play a file
// can switch between files
// build 3 16 Mar 2007
// pausing ability
// fixed a bug with stop
// compare mode added
// initial slot clearing code
// build 4 19 Mar 2007
// more context menu actions
// properties form for offset and volume setting
// build 5 20 Mar 2007
// can save settings to a MixDiff file
// offset is now working
// build 6 22 Mar 2007
// can load from a MixDiff file
// help and about dialogs
// build 7 23 Mar 2007
// comparison file opening bug fixes & enhancements
// beginnings of a shuffle feature
### 0.1.8 29 Apr 2022
- updated to latest .NET 6
// TODO list - key features for version 1
// 24 bit support
// select WaveOut output device
// configurable skip back amount
// Error handling
// Implement shuffle & reveal feature
// Keyboard support
// Options form to allow selection of WaveOut device
// update WaveOut to allow Init to be called multiple times
// fix the negative time thing
// repositioning drag bar
// status bar
//Extra features:
//MixDiff file should offer relative path support
//master volume
//32 bit file support
//mp3 support
//less important: 8 bit, 64 bit file support
//mismatched sample rate support
Loading…
Cancel
Save