public void UpdateSampleFromTrack(Sample sample, Track track) { sample.TrackArtist = track.Artist; sample.TrackTitle = track.Title; sample.TrackLength = track.FullLength; sample.Key = track.Key; var genre = track.Genre.ToLower(); if (!sample.Tags.Contains(genre)) sample.Tags.Add(genre); }
private static Module.Sample GetNewModuleSample(Sample librarySample) { return new Module.Sample { Start = librarySample.Start, Length = librarySample.Length, Offset = librarySample.Offset, Key = librarySample.Description }; }
public SampleModel(Sample sample) { Description = sample.TrackArtist + " - " + sample.TrackTitle + " - " + sample.Description; Tags = string.Join(", ", sample.Tags.ToArray()); LengthFormatted = TimeFormatHelper.GetFormattedHours(Convert.ToDecimal(sample.Length)); Length = Convert.ToDecimal(sample.Length); Bpm = sample.Bpm; Sample = sample; Key = sample.IsAtonal ? "Atonal" : KeyHelper.GetDisplayKey(sample.Key); }
private string GetSampleKey(Sample sample) { return SampleLibrary.GetTrackFromSample(sample).Description + "." + sample.Description; }
public List<Sample> GetMixSectionsAsSamples(Track track) { var bassTrack = BassPlayer.LoadTrackAndAudio(track.Filename); var samples = new List<Sample>(); var fadeIn = new Sample { Description = "FadeIn", Start = bassTrack.SamplesToSeconds(bassTrack.FadeInStart), Length = bassTrack.FadeOutLengthSeconds }; UpdateSampleFromTrack(fadeIn, track); samples.Add(fadeIn); var fadeOut = new Sample { Description = "FadeOut", Start = bassTrack.SamplesToSeconds(bassTrack.FadeOutStart), Length = bassTrack.FadeOutLengthSeconds }; UpdateSampleFromTrack(fadeOut, track); samples.Add(fadeOut); if (bassTrack.UsePreFadeIn) { var preFadeIn = new Sample { Description = "preFadeIn", Start = bassTrack.SamplesToSeconds(bassTrack.PreFadeInStart), Length = bassTrack.SamplesToSeconds(bassTrack.FadeInStart - bassTrack.PreFadeInStart), LoopMode = LoopMode.PartialLoopAnchorEnd }; UpdateSampleFromTrack(preFadeIn, track); samples.Add(preFadeIn); } BassPlayer.UnloadTrackAudioData(bassTrack); return samples; }
public void CalculateSampleKey(Sample sample) { var track = GetTrackFromSample(sample); if (track == null) return; KeyHelper.CalculateKey(track.Filename); TrackLibrary.LoadTrack(track.Filename); var samples = GetTrackSamples(track); samples.ForEach(x => x.Key = track.Key); }
private string GetSampleFolder(Sample sample) { var sampleFolder = Path.Combine(SampleLibraryFolder, FileSystemHelper.StripInvalidFileNameChars(sample.TrackArtist)); var titleFolder = $"{sample.TrackTitle} ({TimeFormatHelper.GetFormattedSeconds(sample.TrackLength)})"; titleFolder = FileSystemHelper.StripInvalidFileNameChars(titleFolder); sampleFolder = Path.Combine(sampleFolder, titleFolder); return sampleFolder; }
public string GetSampleFileName(Sample sample) { var filename = FileSystemHelper.StripInvalidFileNameChars(sample.Description + ".wav"); return Path.Combine(GetSampleFolder(sample), filename); }
private void CreateSampleFolder(Sample sample) { var sampleFolder = Path.Combine(SampleLibraryFolder, FileSystemHelper.StripInvalidFileNameChars(sample.TrackArtist)); if (!Directory.Exists(sampleFolder)) Directory.CreateDirectory(sampleFolder); var titleFolder = $"{sample.TrackTitle} ({TimeFormatHelper.GetFormattedSeconds(sample.TrackLength)})"; titleFolder = FileSystemHelper.StripInvalidFileNameChars(titleFolder); sampleFolder = Path.Combine(sampleFolder, titleFolder); if (!Directory.Exists(sampleFolder)) Directory.CreateDirectory(sampleFolder); }
private void SaveSampleFile(AudioStream audioStream, Sample sample) { var sampleFolder = GetSampleFolder(sample); if (!Directory.Exists(sampleFolder)) CreateSampleFolder(sample); var sampleFile = GetSampleFileName(sample); AudioExportHelper.SavePartialAsWave(audioStream.Filename, sampleFile, sample.Start, sample.Length, sample.Offset, sample.Gain); }
public void EnsureSampleExists(Sample sample) { if (!File.Exists(GetSampleFileName(sample))) { SaveSampleFiles(GetTrackFromSample(sample)); } }
public Track GetTrackFromSample(Sample sample) { return TrackLibrary.GetTrack(sample.TrackArtist, sample.TrackTitle, sample.TrackLength); }
private void AddSample() { var sampleName = UserInputHelper.GetUserInput("Sample Name", "", this); if (sampleName == "") return; var sample = new Sample { Description = sampleName }; if (LibraryTrack != null) SampleLibrary.UpdateSampleFromTrack(sample, LibraryTrack); Samples.Add(sample); CurrentSample = sample; trackWave.CurrentSample = sample; trackWave.Samples = Samples; sample.Start = Track.SamplesToSeconds(trackWave.ZoomStart); sample.Length = Track.SamplesToSeconds(trackWave.ZoomEnd - trackWave.ZoomStart); sample.Bpm = BpmHelper.GetBpmFromLoopLength(sample.Length); RefreshTrackWavePositions(); BindData(); }