fleshing out a little more, added some thoughts, and a waveform package
This commit is contained in:
parent
1035f2f35c
commit
961ace637e
|
@ -17,6 +17,8 @@
|
||||||
E2D9A8F228F20DF500519159 /* Scale.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F128F20DF500519159 /* Scale.swift */; };
|
E2D9A8F228F20DF500519159 /* Scale.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F128F20DF500519159 /* Scale.swift */; };
|
||||||
E2D9A8F628F2104C00519159 /* FileScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F528F2104C00519159 /* FileScanner.swift */; };
|
E2D9A8F628F2104C00519159 /* FileScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F528F2104C00519159 /* FileScanner.swift */; };
|
||||||
E2D9A8F828F2118D00519159 /* Brain.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D9A8F728F2118D00519159 /* Brain.swift */; };
|
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 */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
@ -32,6 +34,7 @@
|
||||||
E2D9A8F128F20DF500519159 /* Scale.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Scale.swift; sourceTree = "<group>"; };
|
E2D9A8F128F20DF500519159 /* Scale.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Scale.swift; sourceTree = "<group>"; };
|
||||||
E2D9A8F528F2104C00519159 /* FileScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileScanner.swift; sourceTree = "<group>"; };
|
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>"; };
|
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>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -39,6 +42,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
E2D9A8FD28F2207B00519159 /* Waveform in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -92,6 +96,7 @@
|
||||||
E2D9A8EF28F20D5300519159 /* Instrument.swift */,
|
E2D9A8EF28F20D5300519159 /* Instrument.swift */,
|
||||||
E2D9A8F128F20DF500519159 /* Scale.swift */,
|
E2D9A8F128F20DF500519159 /* Scale.swift */,
|
||||||
E2D9A8F728F2118D00519159 /* Brain.swift */,
|
E2D9A8F728F2118D00519159 /* Brain.swift */,
|
||||||
|
E2D9A8F928F21B0B00519159 /* Category.swift */,
|
||||||
);
|
);
|
||||||
path = Models;
|
path = Models;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -127,6 +132,9 @@
|
||||||
dependencies = (
|
dependencies = (
|
||||||
);
|
);
|
||||||
name = SoundpoolBrowser;
|
name = SoundpoolBrowser;
|
||||||
|
packageProductDependencies = (
|
||||||
|
E2D9A8FC28F2207B00519159 /* Waveform */,
|
||||||
|
);
|
||||||
productName = SoundpoolBrowser;
|
productName = SoundpoolBrowser;
|
||||||
productReference = E2D9A8D728F20AF200519159 /* SoundpoolBrowser.app */;
|
productReference = E2D9A8D728F20AF200519159 /* SoundpoolBrowser.app */;
|
||||||
productType = "com.apple.product-type.application";
|
productType = "com.apple.product-type.application";
|
||||||
|
@ -155,6 +163,9 @@
|
||||||
Base,
|
Base,
|
||||||
);
|
);
|
||||||
mainGroup = E2D9A8CE28F20AF200519159;
|
mainGroup = E2D9A8CE28F20AF200519159;
|
||||||
|
packageReferences = (
|
||||||
|
E2D9A8FB28F2207B00519159 /* XCRemoteSwiftPackageReference "Waveform" */,
|
||||||
|
);
|
||||||
productRefGroup = E2D9A8D828F20AF200519159 /* Products */;
|
productRefGroup = E2D9A8D828F20AF200519159 /* Products */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
projectRoot = "";
|
projectRoot = "";
|
||||||
|
@ -186,6 +197,7 @@
|
||||||
E2D9A8F828F2118D00519159 /* Brain.swift in Sources */,
|
E2D9A8F828F2118D00519159 /* Brain.swift in Sources */,
|
||||||
E2D9A8DD28F20AF200519159 /* ContentView.swift in Sources */,
|
E2D9A8DD28F20AF200519159 /* ContentView.swift in Sources */,
|
||||||
E2D9A8DB28F20AF200519159 /* SoundpoolBrowserApp.swift in Sources */,
|
E2D9A8DB28F20AF200519159 /* SoundpoolBrowserApp.swift in Sources */,
|
||||||
|
E2D9A8FA28F21B0B00519159 /* Category.swift in Sources */,
|
||||||
E2D9A8F628F2104C00519159 /* FileScanner.swift in Sources */,
|
E2D9A8F628F2104C00519159 /* FileScanner.swift in Sources */,
|
||||||
E2D9A8F228F20DF500519159 /* Scale.swift in Sources */,
|
E2D9A8F228F20DF500519159 /* Scale.swift in Sources */,
|
||||||
E2D9A8EE28F20D3B00519159 /* HarmonyTable.swift in Sources */,
|
E2D9A8EE28F20D3B00519159 /* HarmonyTable.swift in Sources */,
|
||||||
|
@ -384,6 +396,25 @@
|
||||||
defaultConfigurationName = Release;
|
defaultConfigurationName = Release;
|
||||||
};
|
};
|
||||||
/* End XCConfigurationList section */
|
/* End XCConfigurationList section */
|
||||||
|
|
||||||
|
/* Begin XCRemoteSwiftPackageReference section */
|
||||||
|
E2D9A8FB28F2207B00519159 /* XCRemoteSwiftPackageReference "Waveform" */ = {
|
||||||
|
isa = XCRemoteSwiftPackageReference;
|
||||||
|
repositoryURL = "https://github.com/AudioKit/Waveform/";
|
||||||
|
requirement = {
|
||||||
|
kind = upToNextMajorVersion;
|
||||||
|
minimumVersion = 1.0.0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
/* End XCRemoteSwiftPackageReference section */
|
||||||
|
|
||||||
|
/* Begin XCSwiftPackageProductDependency section */
|
||||||
|
E2D9A8FC28F2207B00519159 /* Waveform */ = {
|
||||||
|
isa = XCSwiftPackageProductDependency;
|
||||||
|
package = E2D9A8FB28F2207B00519159 /* XCRemoteSwiftPackageReference "Waveform" */;
|
||||||
|
productName = Waveform;
|
||||||
|
};
|
||||||
|
/* End XCSwiftPackageProductDependency section */
|
||||||
};
|
};
|
||||||
rootObject = E2D9A8CF28F20AF200519159 /* Project object */;
|
rootObject = E2D9A8CF28F20AF200519159 /* Project object */;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"pins" : [
|
||||||
|
{
|
||||||
|
"identity" : "waveform",
|
||||||
|
"kind" : "remoteSourceControl",
|
||||||
|
"location" : "https://github.com/AudioKit/Waveform/",
|
||||||
|
"state" : {
|
||||||
|
"revision" : "5b96ddbe28006136a6a334eb7998c91c1da686d6",
|
||||||
|
"version" : "1.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version" : 2
|
||||||
|
}
|
|
@ -7,7 +7,45 @@
|
||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
First start show dialog for folder location
|
||||||
|
|
||||||
|
Scan for Genres
|
||||||
|
Scan for Categories in those Genres
|
||||||
|
Scan for Instruments in the Categories
|
||||||
|
For each Instrument
|
||||||
|
strip k_ w_ o_ from start
|
||||||
|
split into name + sample number
|
||||||
|
(what regex for that?)
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
class Brain: ObservableObject {
|
class Brain: ObservableObject {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
so for "Soundpool DVD Collection 17", contains folder of ... Genre / Collection / Style?
|
||||||
|
|
||||||
|
'Breakbeat Vol. 1' 'Chillout Vol. 5'
|
||||||
|
'DanceElectro Vol. 9' 'Dubstep Vol. 1'
|
||||||
|
'HipHop Vol. 12' 'Jazz Vol. 1'
|
||||||
|
'Minimal DeepHouse Vol. 9' 'MovieScore Vol. 8'
|
||||||
|
'RockAlternative Vol. 3' 'TechnoTrance Vol. 13'
|
||||||
|
|
||||||
|
[Soundpool DVD Collection 17]$ ls Jazz\ Vol.\ 1/ ... Instrument / Category
|
||||||
|
|
||||||
|
Bass BPM.inf Brass
|
||||||
|
Drums Guitar Keys
|
||||||
|
Piano Synth Vocals
|
||||||
|
|
||||||
|
[Soundpool DVD Collection 17]$ ls -la Jazz\ Vol.\ 1/Synth/ ... Instrument / Sample
|
||||||
|
'k_Echoes A 1.wav' 'k_Echoes A 2.wav' 'k_Echoes A 3.wav'
|
||||||
|
'k_Echoes A 4.wav' 'k_Echoes A 5.wav' 'k_Echoes A 6.wav'
|
||||||
|
'k_Glass 1.wav' 'k_Glass 2.wav' 'k_Glass 3.wav'
|
||||||
|
'k_Glass 4.wav' 'k_Glass 5.wav' 'k_Glass 6.wav'
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
//
|
||||||
|
// Category.swift
|
||||||
|
// SoundpoolBrowser
|
||||||
|
//
|
||||||
|
// Created by Robert McGovern on 08/10/2022.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
struct Category {
|
||||||
|
var name: String
|
||||||
|
var instruments: [Instrument]
|
||||||
|
}
|
|
@ -18,3 +18,16 @@ import Foundation
|
||||||
date liked: date
|
date liked: date
|
||||||
date scanned: date
|
date scanned: date
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
struct Genre {
|
||||||
|
var name: String
|
||||||
|
var volumeNumber: Int
|
||||||
|
var tempo: Int
|
||||||
|
var scale: Scale
|
||||||
|
var sampleKey: [Int: Scale]
|
||||||
|
var liked: Bool
|
||||||
|
var dateLiked: Date
|
||||||
|
var dateScanned: Date
|
||||||
|
|
||||||
|
var categories: Category
|
||||||
|
}
|
||||||
|
|
|
@ -16,3 +16,13 @@ import Foundation
|
||||||
date liked: date
|
date liked: date
|
||||||
length: number (seconds)
|
length: number (seconds)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
struct Instrument {
|
||||||
|
var name: String
|
||||||
|
var number: Int
|
||||||
|
var scale: Scale
|
||||||
|
var location: String
|
||||||
|
var liked: Bool
|
||||||
|
var dateLiked: Date
|
||||||
|
var length: Float
|
||||||
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
so for "Soundpool DVD Collection 17", contains folder of ...
|
so for "Soundpool DVD Collection 17", contains folder of ... Genre / Collection / Style?
|
||||||
|
|
||||||
'Breakbeat Vol. 1' 'Chillout Vol. 5'
|
'Breakbeat Vol. 1' 'Chillout Vol. 5'
|
||||||
'DanceElectro Vol. 9' 'Dubstep Vol. 1'
|
'DanceElectro Vol. 9' 'Dubstep Vol. 1'
|
||||||
|
@ -6,63 +6,30 @@ so for "Soundpool DVD Collection 17", contains folder of ...
|
||||||
'Minimal DeepHouse Vol. 9' 'MovieScore Vol. 8'
|
'Minimal DeepHouse Vol. 9' 'MovieScore Vol. 8'
|
||||||
'RockAlternative Vol. 3' 'TechnoTrance Vol. 13'
|
'RockAlternative Vol. 3' 'TechnoTrance Vol. 13'
|
||||||
|
|
||||||
----
|
[Soundpool DVD Collection 17]$ ls Jazz\ Vol.\ 1/ ... Instrument / Category
|
||||||
|
|
||||||
[Soundpool DVD Collection 17]$ ls Jazz\ Vol.\ 1/
|
|
||||||
|
|
||||||
Bass BPM.inf Brass
|
Bass BPM.inf Brass
|
||||||
Drums Guitar Keys
|
Drums Guitar Keys
|
||||||
Piano Synth Vocals
|
Piano Synth Vocals
|
||||||
|
|
||||||
---
|
[Soundpool DVD Collection 17]$ ls -la Jazz\ Vol.\ 1/Synth/ ... Instrument / Sample
|
||||||
|
'k_Echoes A 1.wav' 'k_Echoes A 2.wav' 'k_Echoes A 3.wav'
|
||||||
[Soundpool DVD Collection 17]$ ls -la Jazz\ Vol.\ 1/Synth/
|
'k_Echoes A 4.wav' 'k_Echoes A 5.wav' 'k_Echoes A 6.wav'
|
||||||
-rw-r--r-- 1 rob rob 707348 Jul 16 2010 'k_Echoes A 1.wav'
|
'k_Glass 1.wav' 'k_Glass 2.wav' 'k_Glass 3.wav'
|
||||||
-rw-r--r-- 1 rob rob 707390 Jul 16 2010 'k_Echoes A 2.wav'
|
'k_Glass 4.wav' 'k_Glass 5.wav' 'k_Glass 6.wav'
|
||||||
-rw-r--r-- 1 rob rob 707390 Jul 16 2010 'k_Echoes A 3.wav'
|
....
|
||||||
-rw-r--r-- 1 rob rob 707348 Jul 16 2010 'k_Echoes A 4.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 707390 Jul 16 2010 'k_Echoes A 5.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 707558 Jul 16 2010 'k_Echoes A 6.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Glass 1.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Glass 2.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Glass 3.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Glass 4.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Glass 5.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Glass 6.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Melody B 1.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Melody B 2.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Melody B 3.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Melody B 4.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Melody B 5.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Melody B 6.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Pad A 1.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Pad A 2.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Pad A 3.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Pad A 4.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Pad A 5.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Pad A 6.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Whistle A 1.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Whistle A 2.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Whistle A 3.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Whistle A 4.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Whistle A 5.wav'
|
|
||||||
-rw-r--r-- 1 rob rob 706714 Jul 16 2010 'k_Whistle A 6.wav'
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Other file examples of files ...
|
Other file examples of files ...
|
||||||
|
|
||||||
-rw-r--r-- 1 rob rob 353914 Jul 16 2010 'o_Tremolo 6.wav'
|
'o_Tremolo 6.wav' 'w_Ballad A 1.wav' 'k_Whistle A 6.wav'
|
||||||
-rw-r--r-- 1 rob rob 1412738 Jul 16 2010 'w_Ballad A 1.wav'
|
|
||||||
|
|
||||||
'Umber Horns 1.wav'
|
---
|
||||||
'Umber Horns 2.wav'
|
|
||||||
'Umber Horns 3.wav'
|
|
||||||
'Umber Horns 4.wav'
|
|
||||||
-rw-rw---- 1 deluge deluge 1059504 Oct 8 18:26 'Umber Horns 5.wav'
|
|
||||||
-rw-rw---- 1 deluge deluge 1059504 Oct 8 18:15 'Umber Horns 6.wav'
|
|
||||||
-rw-rw---- 1 deluge deluge 1059504 Oct 8 18:15 'Umber Horns 7.wav'
|
|
||||||
|
|
||||||
|
'Umber Horns 1.wav' 'Umber Horns 2.wav' 'Umber Horns 3.wav'
|
||||||
|
'Umber Horns 4.wav' 'Umber Horns 5.wav' 'Umber Horns 6.wav'
|
||||||
|
'Umber Horns 7.wav'
|
||||||
|
|
||||||
'Beige Bass 1.wav' 'Gamboge BassA 6.wav' 'Limerick ViolinsA 4.wav' 'Orange Basses 2.wav' 'Orchid Strings 7.wav' 'Viridian Pizz 5.wav'
|
'Beige Bass 1.wav' 'Gamboge BassA 6.wav' 'Limerick ViolinsA 4.wav' 'Orange Basses 2.wav' 'Orchid Strings 7.wav' 'Viridian Pizz 5.wav'
|
||||||
'Beige Bass 2.wav' 'Gamboge BassA 7.wav' 'Limerick ViolinsA 5.wav' 'Orange Basses 3.wav' 'Orchid Violins 1.wav' 'Viridian Pizz 6.wav'
|
'Beige Bass 2.wav' 'Gamboge BassA 7.wav' 'Limerick ViolinsA 5.wav' 'Orange Basses 3.wav' 'Orchid Violins 1.wav' 'Viridian Pizz 6.wav'
|
||||||
|
|
|
@ -5,3 +5,7 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
show waveform? https://www.audiokit.io/AudioKitUI/documentation/audiokitui/waveform
|
||||||
|
|
||||||
|
https://www.audiokit.io/Waveform/documentation/waveform
|
||||||
|
https://github.com/AudioKit/Waveform/
|
||||||
|
|
Loading…
Reference in New Issue