fleshing out a little more, added some thoughts, and a waveform package

This commit is contained in:
Robert McGovern 2022-10-08 22:18:29 +01:00
parent 1035f2f35c
commit 961ace637e
8 changed files with 136 additions and 46 deletions

View File

@ -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 */;
} }

View File

@ -0,0 +1,14 @@
{
"pins" : [
{
"identity" : "waveform",
"kind" : "remoteSourceControl",
"location" : "https://github.com/AudioKit/Waveform/",
"state" : {
"revision" : "5b96ddbe28006136a6a334eb7998c91c1da686d6",
"version" : "1.0.1"
}
}
],
"version" : 2
}

View File

@ -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'
*/

View File

@ -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]
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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'

View File

@ -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/