added test data similar to real data, including variants with fewer samples, odd filenames. Updated modles, and added notes'
This commit is contained in:
parent
961ace637e
commit
595c1cb9ea
|
@ -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
|
||||
|
||||
|
|
|
@ -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 */,
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
import Foundation
|
||||
|
||||
struct Category {
|
||||
var id: UUID
|
||||
var name: String
|
||||
var instruments: [Instrument]
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ import Foundation
|
|||
*/
|
||||
|
||||
struct Genre {
|
||||
var id: UUID
|
||||
|
||||
var name: String
|
||||
var volumeNumber: Int
|
||||
var tempo: Int
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
[Tempo]
|
||||
BPM=125
|
||||
|
||||
[HarmonyTable]
|
||||
Scale=C
|
||||
|
||||
Sample1=C
|
||||
Sample2=d
|
||||
Sample3=e
|
||||
Sample4=F
|
||||
Sample5=G
|
||||
Sample6=a
|
||||
Sample7=B
|
|
@ -0,0 +1,13 @@
|
|||
[Tmpo]
|
||||
BPM=1250
|
||||
|
||||
[HamonyTable]
|
||||
Scale=C
|
||||
|
||||
Sample1=c
|
||||
Sample2=d
|
||||
Sample3=e
|
||||
Sample4=z
|
||||
Sample5=G
|
||||
Sample6=a
|
||||
Sample7=d
|
|
@ -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.
Binary file not shown.
|
@ -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]
|
|
@ -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]
|
|
@ -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.
|
Loading…
Reference in New Issue