added test data similar to real data, including variants with fewer samples, odd filenames. Updated modles, and added notes'

This commit is contained in:
Robert McGovern 2022-10-08 23:35:01 +01:00
parent 961ace637e
commit 595c1cb9ea
87 changed files with 116 additions and 6 deletions

View File

@ -6,7 +6,10 @@ Browser for Magix Soundpool files
Small app to catalogue files from Magix Soundpool DVD's into Genres, Instruments and samples.
Plus preview said samples.
Should also allow dragging sample into another app, like Garageband or Logic
Should also allow dragging sample into another app, like Garageband or Logic.
Also liking samples. Provide filtering of Genre / Category / Instrument.
Supposed to be quick and dirty.
## Usage

View File

@ -19,6 +19,7 @@
E2D9A8F828F2118D00519159 /* Brain.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F728F2118D00519159 /* Brain.swift */; };
E2D9A8FA28F21B0B00519159 /* Category.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F928F21B0B00519159 /* Category.swift */; };
E2D9A8FD28F2207B00519159 /* Waveform in Frameworks */ = {isa = PBXBuildFile; productRef = E2D9A8FC28F2207B00519159 /* Waveform */; };
E2D9A8FF28F2242400519159 /* Sample.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8FE28F2242400519159 /* Sample.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
@ -35,6 +36,7 @@
E2D9A8F528F2104C00519159 /* FileScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileScanner.swift; sourceTree = "<group>"; };
E2D9A8F728F2118D00519159 /* Brain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Brain.swift; sourceTree = "<group>"; };
E2D9A8F928F21B0B00519159 /* Category.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Category.swift; sourceTree = "<group>"; };
E2D9A8FE28F2242400519159 /* Sample.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sample.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -97,6 +99,7 @@
E2D9A8F128F20DF500519159 /* Scale.swift */,
E2D9A8F728F2118D00519159 /* Brain.swift */,
E2D9A8F928F21B0B00519159 /* Category.swift */,
E2D9A8FE28F2242400519159 /* Sample.swift */,
);
path = Models;
sourceTree = "<group>";
@ -197,6 +200,7 @@
E2D9A8F828F2118D00519159 /* Brain.swift in Sources */,
E2D9A8DD28F20AF200519159 /* ContentView.swift in Sources */,
E2D9A8DB28F20AF200519159 /* SoundpoolBrowserApp.swift in Sources */,
E2D9A8FF28F2242400519159 /* Sample.swift in Sources */,
E2D9A8FA28F21B0B00519159 /* Category.swift in Sources */,
E2D9A8F628F2104C00519159 /* FileScanner.swift in Sources */,
E2D9A8F228F20DF500519159 /* Scale.swift in Sources */,

View File

@ -8,6 +8,7 @@
import Foundation
struct Category {
var id: UUID
var name: String
var instruments: [Instrument]
}

View File

@ -20,6 +20,8 @@ import Foundation
*/
struct Genre {
var id: UUID
var name: String
var volumeNumber: Int
var tempo: Int

View File

@ -18,11 +18,11 @@ import Foundation
*/
struct Instrument {
var id: UUID
var name: String
var number: Int
var numberOfSamples: Int
var samples: [Sample]
var scale: Scale
var location: String
var liked: Bool
var dateLiked: Date
var length: Float
}

View File

@ -0,0 +1,32 @@
//
// Sample.swift
// SoundpoolBrowser
//
// Created by Robert McGovern on 08/10/2022.
//
import Foundation
/*
Sample:
name: string (all text, minus number)
number: number (ties to sample)
scale: Scale of sample
location: string (file path)
liked: bool
date liked: date
length: number (seconds)
Image(music.note)
*/
struct Sample {
var id: UUID
var name: String
var number: Int
var scale: Scale
var location: String
var liked: Bool
var dateLiked: Date
var length: Float
}

13
Test Data/BPM.inf Normal file
View File

@ -0,0 +1,13 @@
[Tempo]
BPM=125
[HarmonyTable]
Scale=C
Sample1=C
Sample2=d
Sample3=e
Sample4=F
Sample5=G
Sample6=a
Sample7=B

13
Test Data/Broken-BPM.inf Normal file
View File

@ -0,0 +1,13 @@
[Tmpo]
BPM=1250
[HamonyTable]
Scale=C
Sample1=c
Sample2=d
Sample3=e
Sample4=z
Sample5=G
Sample6=a
Sample7=d

View File

@ -0,0 +1,13 @@
[Tempo]
BPM=80
[HarmonyTable]
Scale=a
Sample1=a
Sample2=B
Sample3=C
Sample4=d
Sample5=e
Sample6=F
Sample7=G

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Test Data/sample.wav Normal file

Binary file not shown.

View File

@ -39,3 +39,12 @@ Other file examples of files ...
'Beige Bass 6.wav' 'Gamboge Cello 4.wav' 'Limerick ViolinsB 2.wav' 'Orange Basses 7.wav' 'Orchid Violins 5.wav' 'Viridian Violins 3.wav'
'Beige Bass 7.wav' 'Gamboge Cello 5.wav' 'Limerick ViolinsB 3.wav' 'Orange Strings 1.wav' 'Orchid Violins 6.wav' 'Viridian Violins 4.wav'
'Beige StingsB 1.wav' 'Gamboge Cello 6.wav' 'Limerick ViolinsB 4.wav' 'Orange Strings 2.wav' 'Orchid Violins 7.wav' 'Viridian Violins 5.wav'
...
So I would see it as
MovieScore
[Vol 1, Vol 2, Vol 3, ...]
Vol 1 [Bass, Brass, Drums, Synth, Wind]
Bass [Beige Bass, Gamboge BassA, Gamboge Cello, Limerick ViolinsA, Orange Basses, Orange Strings, ....]
Beige Bass [ Sample 1, Sample 2, Sample 3, Sample 4, Sample 5, Sample 6, Sample 7]

View File

@ -28,4 +28,8 @@ Genre Instrument:
sample[number: note] date liked: date
liked: bool length: number (seconds)
date liked: date scale: note enum
date scanned: date
date scanned: date samples: [Sample]
Category:
name: String
instruments: [Instrument]

View File

@ -1,7 +1,8 @@
1) try and identify what the k_ w_ o_ on some files mean, if can't then simply strip them off
2) scan folder for genres, then spin of threads to scan instruments, then tracks
3) browser should provide filter down by default of genre, optional filter trackname
4) ...
4) be able to drag sample into Garageband / Logic
5)
---
@ -9,3 +10,18 @@ show waveform? https://www.audiokit.io/AudioKitUI/documentation/audiokitui/wavef
https://www.audiokit.io/Waveform/documentation/waveform
https://github.com/AudioKit/Waveform/
---
Image names:
music.note.house (for top of tree / genre)
music.note.house.fill
music.note (for sample)
music.note.list (for category)
I like palette rendering for .house .note .list
---
what happens if there are duplicate file names between say Vol 1 and Vol 12 of one Genre, and Vol 3 of a difference Genre?
Treat each as unique. So add id.