// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 77;
	objects = {

/* Begin PBXBuildFile section */
		07CF52ADAE84DB873EACEF78 /* BPMDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF736221D49CF02BA7C8D6B9 /* BPMDetector.swift */; };
		24383DE5713184D409FD9063 /* ChadMusic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6363FFDA55CFD993BC309249 /* ChadMusic.swift */; };
		26A26B41B196B5BD4930DC32 /* GroupTemplateResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9976E6544585B296A1C101DA /* GroupTemplateResolver.swift */; };
		26BB12106B505E43BF4FC9D6 /* PlayerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1236BDE95EB6791D6236FB /* PlayerViewModel.swift */; };
		2A5E4EBC04A32429A488B917 /* OpusDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AF5A8303D2C02C64E38BFFD /* OpusDecoder.swift */; };
		3395A9BA0229770B4DB5BC87 /* StreamingPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A723E3458C238F1FD1BFD3C2 /* StreamingPlayer.swift */; };
		379B32F8532B619ED072A027 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60ECA4A868B078D1883187AC /* ContentView.swift */; };
		380E85DD78DF70452FD714D3 /* QueueView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E914A3FD78964862B2614958 /* QueueView.swift */; };
		3BB9EDFDD0549752FF295F3E /* PlayerViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6B64DCACBFBECC6891C90CC /* PlayerViewModelTests.swift */; };
		43393F667709155B8274BCF7 /* libogg.a in Resources */ = {isa = PBXBuildFile; fileRef = CA445FC9E802A4C20E3A403D /* libogg.a */; };
		4743395D35A8D95C547C8CB9 /* LibraryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F3B7C5A143DE798D4626FE8 /* LibraryManager.swift */; };
		4750BB279D429C443C4A2981 /* PlaybackUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 602A9910D5F19A92CBDC71A8 /* PlaybackUITests.swift */; };
		5628796FA14B92BBF9B43E32 /* PlaylistViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6C84B8774EB16049C5D0634 /* PlaylistViewModelTests.swift */; };
		57711D4FCC56CF0EAA3B9AEA /* GroupTemplateEditorSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08D15D5EE07B0A62BFD840FE /* GroupTemplateEditorSheet.swift */; };
		5D6C44C69AF7AC10EF57654F /* AudioEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE2DAEAE9E4548FEAE43DD6F /* AudioEngine.swift */; };
		5E8CEFA7EE241802F4811825 /* AudioEngineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F558E3B192986DC2EBB0ED46 /* AudioEngineTests.swift */; };
		606C5864CF7BFE0FD9D45D49 /* AppTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40F598DD9BCE1FA0AE855690 /* AppTheme.swift */; };
		69501B07F5A60CC4F3FD0FD2 /* GroupTemplateResolverTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A92720B54E0C6F6952D1DC3 /* GroupTemplateResolverTests.swift */; };
		70D3F6D051FF364AEE762044 /* MediaKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F53966C8741493C981D95364 /* MediaKeyHandler.swift */; };
		713F146AE128A72D7685ED85 /* SyncManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B76DAB40E97BB6491A86E6E /* SyncManagerTests.swift */; };
		759C3290BED9FA13BC6E3826 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD7C91A9A81F45E761A50F33 /* SettingsView.swift */; };
		7726CE9DEFF12E97426C682E /* MixBoardApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACC56A6245FB276D23559CBF /* MixBoardApp.swift */; };
		7B2F8EAEAFFC2EC639BDD70C /* stb_vorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = A7E76EF83D1D8E970E0A31A5 /* stb_vorbis.c */; };
		7C6A84B33D7D5615EB0B05DE /* QueueEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38F7DDFFB0052E82B9579FA7 /* QueueEntry.swift */; };
		87CF06028B178836BA6DC55D /* MiniPlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AB12561B1AF730065EC608 /* MiniPlayerView.swift */; };
		8959E71D433588DDD17678DC /* WaveformView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BD2DB1EC2209FF74C47FDA7 /* WaveformView.swift */; };
		8C364F881121FBDC0507BE3F /* LRCLIBService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 631AC23E23D3E1BDC9ADF853 /* LRCLIBService.swift */; };
		8E08196F160224F02E37D063 /* SyncManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9ECC0563919D01F75D8E0B7 /* SyncManager.swift */; };
		912A19B864DD7BA90CDACFB5 /* KeychainService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 661D06C0F6B4159529E7CC6E /* KeychainService.swift */; };
		92AB1107C3C9933966713ACA /* libopusfile.a in Resources */ = {isa = PBXBuildFile; fileRef = 624A8B3A36FAC5FB9DDC5E67 /* libopusfile.a */; };
		95899377852BF2AC878090A8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 68DD53987AB941CD45442704 /* Assets.xcassets */; };
		98815185EDE0A4BCBF17C5B9 /* PlaylistViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35E4CBA48B8B32CE1BCAD7C8 /* PlaylistViewModel.swift */; };
		9B9F0CF0742875A907E153AA /* OGGDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EDE955C924C0198C7352401 /* OGGDecoder.swift */; };
		9C3EE050D166FC5929766834 /* MixBoardUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B2F31275CB65372CA6FA5A0 /* MixBoardUITests.swift */; };
		9E9C91E092AB64883F6EE6B0 /* KeyDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 645DBC1C9CF4F140B672D7B1 /* KeyDetector.swift */; };
		9EA1E32B38B0F9E99870EC59 /* WaveformGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EAECFB0715C166BB9B07054 /* WaveformGenerator.swift */; };
		A0784C716AA15CDE2E0B7422 /* LyricsParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D19017A4644FC0728357C3F /* LyricsParser.swift */; };
		A51C687AE19C3E84FD54C5B9 /* AddToPlaylistSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBBA50A7582B55F231E5AA6C /* AddToPlaylistSheet.swift */; };
		A691BE9634610830E1BB808A /* FolderBrowserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3065C0A0D56A81C39226FE66 /* FolderBrowserView.swift */; };
		B277B6A1AE7A7B3F3B5048BF /* TrackRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0DB4B4B5F5AC588DCFDB0CD /* TrackRow.swift */; };
		B54468EDAAEF2726A6B38C0C /* AddGroupToPlaylistSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = E41DB4A612D6382448F0DD4A /* AddGroupToPlaylistSheet.swift */; };
		B769842D41E6024B9BDAEC75 /* CodecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2BA9BE95AB7E0120C386B49 /* CodecTests.swift */; };
		BDC7784201348B34183BEA51 /* CuePoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B2D6AC79F54F259894E400E /* CuePoint.swift */; };
		BE7AB214FE205DC12BB2A60C /* MockURLProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 849474D386A916C1B3414A51 /* MockURLProtocol.swift */; };
		BEFC8982E0D4314A9DAEEBD8 /* PlaylistDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3CE708A06FA6FACD9163798 /* PlaylistDetailView.swift */; };
		BFC987A83994155E5702AC68 /* PlaylistFolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B06CCD1797B66666B24AF57F /* PlaylistFolder.swift */; };
		C3661CDAB1BE2C95AE69ADB1 /* ChadMusicAPIClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3FDBF83B261F1B1F2FD07AA /* ChadMusicAPIClient.swift */; };
		C5445BE9211773A3C765686F /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = F082E02B359284DF788ECB01 /* AppState.swift */; };
		CC051E3E0E64005C419E2A96 /* libopus.a in Resources */ = {isa = PBXBuildFile; fileRef = 449D61AC1EE4C72C87FDE11B /* libopus.a */; };
		CCECD84E3286B2500DE1FDFE /* Playlist.swift in Sources */ = {isa = PBXBuildFile; fileRef = 475B0D96BE1F660E43F4338F /* Playlist.swift */; };
		D2F69A15D9EAD0B0F7AB4321 /* CloudStreamingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF1DED14695761FDB3C92ABE /* CloudStreamingTests.swift */; };
		D408096F4D08840C966D4DC3 /* MetadataService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83502527607F43B5AAF43A5B /* MetadataService.swift */; };
		D745E3B69D257B06ECB55735 /* PlaylistListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEEFB8D4A7732D9179B80961 /* PlaylistListView.swift */; };
		D90B76ED48494E5EFAF307AD /* Track.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2911C47EF0A790D14A41ACCD /* Track.swift */; };
		DD56D0E534B6AC6DAC3DD238 /* CloudBrowserView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7774A282E55258E902663EB2 /* CloudBrowserView.swift */; };
		E7254E3B096C82833E6EAC32 /* WaveformGeneratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B402C83CB50D990A2E067E9E /* WaveformGeneratorTests.swift */; };
		E73B39EC4AB5EE03B770ECE9 /* LyricsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B407D125FA9B66C2F5AE6449 /* LyricsTests.swift */; };
		EABC718B141E4A741CB7A338 /* ArtworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FEBDB0BB1A240BB292F64A6 /* ArtworkService.swift */; };
		EB0AE5BCF77E33C39B2062AE /* ModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CE159AE643FA6D443DA2A58 /* ModelTests.swift */; };
		F68E77C46DA49D37AF843648 /* NowPlayingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7FCB9E71FB67DBBBBA237E /* NowPlayingView.swift */; };
		F973B39909DBEEEFD691672B /* CloudBrowserUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C1E48CF6E780D9643A87A4 /* CloudBrowserUITests.swift */; };
		F9E1EC2A05D690057B963102 /* LibraryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE57266AAD0021383B334BCD /* LibraryView.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		47AE927601EF93344ADF48E4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 136856E86875B0E72B3BA10F /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 0907E09982F49B0BAE3D2CB1;
			remoteInfo = MixBoardiOS;
		};
		504CB81CAC10624153757F4D /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 136856E86875B0E72B3BA10F /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 0907E09982F49B0BAE3D2CB1;
			remoteInfo = MixBoardiOS;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		08D15D5EE07B0A62BFD840FE /* GroupTemplateEditorSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTemplateEditorSheet.swift; sourceTree = "<group>"; };
		0AF5A8303D2C02C64E38BFFD /* OpusDecoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpusDecoder.swift; sourceTree = "<group>"; };
		0B2F31275CB65372CA6FA5A0 /* MixBoardUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixBoardUITests.swift; sourceTree = "<group>"; };
		0FEBDB0BB1A240BB292F64A6 /* ArtworkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtworkService.swift; sourceTree = "<group>"; };
		1C1236BDE95EB6791D6236FB /* PlayerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerViewModel.swift; sourceTree = "<group>"; };
		2911C47EF0A790D14A41ACCD /* Track.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Track.swift; sourceTree = "<group>"; };
		2E5081BAC653C98E20486642 /* opus_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = opus_types.h; sourceTree = "<group>"; };
		3065C0A0D56A81C39226FE66 /* FolderBrowserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FolderBrowserView.swift; sourceTree = "<group>"; };
		30AB12561B1AF730065EC608 /* MiniPlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiniPlayerView.swift; sourceTree = "<group>"; };
		35E4CBA48B8B32CE1BCAD7C8 /* PlaylistViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistViewModel.swift; sourceTree = "<group>"; };
		38F7DDFFB0052E82B9579FA7 /* QueueEntry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueEntry.swift; sourceTree = "<group>"; };
		3B76DAB40E97BB6491A86E6E /* SyncManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncManagerTests.swift; sourceTree = "<group>"; };
		3BD2DB1EC2209FF74C47FDA7 /* WaveformView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaveformView.swift; sourceTree = "<group>"; };
		40F598DD9BCE1FA0AE855690 /* AppTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTheme.swift; sourceTree = "<group>"; };
		449D61AC1EE4C72C87FDE11B /* libopus.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libopus.a; sourceTree = "<group>"; };
		475B0D96BE1F660E43F4338F /* Playlist.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Playlist.swift; sourceTree = "<group>"; };
		4B2D6AC79F54F259894E400E /* CuePoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CuePoint.swift; sourceTree = "<group>"; };
		602A9910D5F19A92CBDC71A8 /* PlaybackUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackUITests.swift; sourceTree = "<group>"; };
		60ECA4A868B078D1883187AC /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
		624A8B3A36FAC5FB9DDC5E67 /* libopusfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libopusfile.a; sourceTree = "<group>"; };
		631AC23E23D3E1BDC9ADF853 /* LRCLIBService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LRCLIBService.swift; sourceTree = "<group>"; };
		6363FFDA55CFD993BC309249 /* ChadMusic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChadMusic.swift; sourceTree = "<group>"; };
		645DBC1C9CF4F140B672D7B1 /* KeyDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyDetector.swift; sourceTree = "<group>"; };
		661D06C0F6B4159529E7CC6E /* KeychainService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainService.swift; sourceTree = "<group>"; };
		68DD53987AB941CD45442704 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		6A5EBAA40B5EDC89CCE2B2BB /* stb_vorbis_wrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stb_vorbis_wrapper.h; sourceTree = "<group>"; };
		6A92720B54E0C6F6952D1DC3 /* GroupTemplateResolverTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTemplateResolverTests.swift; sourceTree = "<group>"; };
		6D726B0D736F677437FEC8BA /* MixBoardiOSUITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = MixBoardiOSUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		6EE3DE980DF887C4317E1E04 /* MixBoardiOSTests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = MixBoardiOSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		6F3B7C5A143DE798D4626FE8 /* LibraryManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryManager.swift; sourceTree = "<group>"; };
		7774A282E55258E902663EB2 /* CloudBrowserView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudBrowserView.swift; sourceTree = "<group>"; };
		7D19017A4644FC0728357C3F /* LyricsParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LyricsParser.swift; sourceTree = "<group>"; };
		83502527607F43B5AAF43A5B /* MetadataService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetadataService.swift; sourceTree = "<group>"; };
		849474D386A916C1B3414A51 /* MockURLProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockURLProtocol.swift; sourceTree = "<group>"; };
		88A00D973DFE61DA80CEFC63 /* opusfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = opusfile.h; sourceTree = "<group>"; };
		8CE159AE643FA6D443DA2A58 /* ModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelTests.swift; sourceTree = "<group>"; };
		97BCB55CDAD16C2AD0750458 /* opus_defines.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = opus_defines.h; sourceTree = "<group>"; };
		9976E6544585B296A1C101DA /* GroupTemplateResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTemplateResolver.swift; sourceTree = "<group>"; };
		9EAECFB0715C166BB9B07054 /* WaveformGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaveformGenerator.swift; sourceTree = "<group>"; };
		9EDE955C924C0198C7352401 /* OGGDecoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OGGDecoder.swift; sourceTree = "<group>"; };
		A50996A9FDBA63F9AEDD4902 /* opus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = opus.h; sourceTree = "<group>"; };
		A6C84B8774EB16049C5D0634 /* PlaylistViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistViewModelTests.swift; sourceTree = "<group>"; };
		A723E3458C238F1FD1BFD3C2 /* StreamingPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamingPlayer.swift; sourceTree = "<group>"; };
		A7E76EF83D1D8E970E0A31A5 /* stb_vorbis.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = stb_vorbis.c; sourceTree = "<group>"; };
		A9ECC0563919D01F75D8E0B7 /* SyncManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncManager.swift; sourceTree = "<group>"; };
		AA7FCB9E71FB67DBBBBA237E /* NowPlayingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NowPlayingView.swift; sourceTree = "<group>"; };
		ACC56A6245FB276D23559CBF /* MixBoardApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MixBoardApp.swift; sourceTree = "<group>"; };
		AF736221D49CF02BA7C8D6B9 /* BPMDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BPMDetector.swift; sourceTree = "<group>"; };
		B06CCD1797B66666B24AF57F /* PlaylistFolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistFolder.swift; sourceTree = "<group>"; };
		B2120B77C1DC2A2C489C4495 /* MixBoardiOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = MixBoardiOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
		B402C83CB50D990A2E067E9E /* WaveformGeneratorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaveformGeneratorTests.swift; sourceTree = "<group>"; };
		B407D125FA9B66C2F5AE6449 /* LyricsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LyricsTests.swift; sourceTree = "<group>"; };
		B4C783FE8D72490B0C9FC434 /* config_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config_types.h; sourceTree = "<group>"; };
		BE57266AAD0021383B334BCD /* LibraryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryView.swift; sourceTree = "<group>"; };
		BEEFB8D4A7732D9179B80961 /* PlaylistListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistListView.swift; sourceTree = "<group>"; };
		C6B64DCACBFBECC6891C90CC /* PlayerViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerViewModelTests.swift; sourceTree = "<group>"; };
		CA445FC9E802A4C20E3A403D /* libogg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libogg.a; sourceTree = "<group>"; };
		CBBA50A7582B55F231E5AA6C /* AddToPlaylistSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddToPlaylistSheet.swift; sourceTree = "<group>"; };
		CC965C1466ACDD2E38AE5321 /* os_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = os_types.h; sourceTree = "<group>"; };
		D3FDBF83B261F1B1F2FD07AA /* ChadMusicAPIClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChadMusicAPIClient.swift; sourceTree = "<group>"; };
		DD7C91A9A81F45E761A50F33 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
		E3CE708A06FA6FACD9163798 /* PlaylistDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaylistDetailView.swift; sourceTree = "<group>"; };
		E41DB4A612D6382448F0DD4A /* AddGroupToPlaylistSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddGroupToPlaylistSheet.swift; sourceTree = "<group>"; };
		E90BEC484812C2BA0DF15852 /* opus_projection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = opus_projection.h; sourceTree = "<group>"; };
		E914A3FD78964862B2614958 /* QueueView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueView.swift; sourceTree = "<group>"; };
		EE2DAEAE9E4548FEAE43DD6F /* AudioEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioEngine.swift; sourceTree = "<group>"; };
		EF1DED14695761FDB3C92ABE /* CloudStreamingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudStreamingTests.swift; sourceTree = "<group>"; };
		F082E02B359284DF788ECB01 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = "<group>"; };
		F0DB4B4B5F5AC588DCFDB0CD /* TrackRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackRow.swift; sourceTree = "<group>"; };
		F2BA9BE95AB7E0120C386B49 /* CodecTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodecTests.swift; sourceTree = "<group>"; };
		F44D9FF6356AB9C0C1F531D7 /* opus_multistream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = opus_multistream.h; sourceTree = "<group>"; };
		F53966C8741493C981D95364 /* MediaKeyHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaKeyHandler.swift; sourceTree = "<group>"; };
		F53DEF563120C3F3B6EC9B17 /* ogg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = "<group>"; };
		F558E3B192986DC2EBB0ED46 /* AudioEngineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioEngineTests.swift; sourceTree = "<group>"; };
		F5D297D015B8240DFA10635C /* MixBoard-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MixBoard-Bridging-Header.h"; sourceTree = "<group>"; };
		F8C1E48CF6E780D9643A87A4 /* CloudBrowserUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudBrowserUITests.swift; sourceTree = "<group>"; };
		FC6B4D6B6FBB4F0F5CEE8827 /* ogg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXGroup section */
		01413B5334A21F4D1CEEE0C0 /* opus */ = {
			isa = PBXGroup;
			children = (
				97BCB55CDAD16C2AD0750458 /* opus_defines.h */,
				F44D9FF6356AB9C0C1F531D7 /* opus_multistream.h */,
				E90BEC484812C2BA0DF15852 /* opus_projection.h */,
				2E5081BAC653C98E20486642 /* opus_types.h */,
				A50996A9FDBA63F9AEDD4902 /* opus.h */,
				88A00D973DFE61DA80CEFC63 /* opusfile.h */,
			);
			path = opus;
			sourceTree = "<group>";
		};
		09082FC16BD8EFDC6E2A576B /* lib */ = {
			isa = PBXGroup;
			children = (
				CA445FC9E802A4C20E3A403D /* libogg.a */,
				449D61AC1EE4C72C87FDE11B /* libopus.a */,
				624A8B3A36FAC5FB9DDC5E67 /* libopusfile.a */,
			);
			path = lib;
			sourceTree = "<group>";
		};
		1332E5B75E8FF27EC72C7E0A /* OpusLib */ = {
			isa = PBXGroup;
			children = (
				FBD9885D8FBB93ECDA027235 /* include */,
				09082FC16BD8EFDC6E2A576B /* lib */,
			);
			path = OpusLib;
			sourceTree = "<group>";
		};
		1B9750DC80B4C7A27CDFB781 /* ogg */ = {
			isa = PBXGroup;
			children = (
				B4C783FE8D72490B0C9FC434 /* config_types.h */,
				FC6B4D6B6FBB4F0F5CEE8827 /* ogg.h */,
				CC965C1466ACDD2E38AE5321 /* os_types.h */,
			);
			path = ogg;
			sourceTree = "<group>";
		};
		779EB629DFF798AB1B02E145 /* Services */ = {
			isa = PBXGroup;
			children = (
				0FEBDB0BB1A240BB292F64A6 /* ArtworkService.swift */,
				EE2DAEAE9E4548FEAE43DD6F /* AudioEngine.swift */,
				AF736221D49CF02BA7C8D6B9 /* BPMDetector.swift */,
				D3FDBF83B261F1B1F2FD07AA /* ChadMusicAPIClient.swift */,
				661D06C0F6B4159529E7CC6E /* KeychainService.swift */,
				645DBC1C9CF4F140B672D7B1 /* KeyDetector.swift */,
				6F3B7C5A143DE798D4626FE8 /* LibraryManager.swift */,
				631AC23E23D3E1BDC9ADF853 /* LRCLIBService.swift */,
				7D19017A4644FC0728357C3F /* LyricsParser.swift */,
				F53966C8741493C981D95364 /* MediaKeyHandler.swift */,
				83502527607F43B5AAF43A5B /* MetadataService.swift */,
				849474D386A916C1B3414A51 /* MockURLProtocol.swift */,
				9EDE955C924C0198C7352401 /* OGGDecoder.swift */,
				0AF5A8303D2C02C64E38BFFD /* OpusDecoder.swift */,
				A723E3458C238F1FD1BFD3C2 /* StreamingPlayer.swift */,
				A9ECC0563919D01F75D8E0B7 /* SyncManager.swift */,
				9EAECFB0715C166BB9B07054 /* WaveformGenerator.swift */,
			);
			path = Services;
			sourceTree = "<group>";
		};
		79CCDC24146638948CBCEC9E = {
			isa = PBXGroup;
			children = (
				C8F02BC907F648149C5B2FA4 /* Sources */,
				B5DBC14AA87BE8FC0582278D /* Tests */,
				E710654EDC5BEFA0243A5A12 /* UITests */,
				FCBD4522947F6E56E803DDC6 /* Products */,
			);
			sourceTree = "<group>";
		};
		7F61E00E741F32754E1C3E81 /* Resources */ = {
			isa = PBXGroup;
			children = (
				68DD53987AB941CD45442704 /* Assets.xcassets */,
			);
			path = Resources;
			sourceTree = "<group>";
		};
		809411FB03B6B689D9DE9907 /* Models */ = {
			isa = PBXGroup;
			children = (
				F082E02B359284DF788ECB01 /* AppState.swift */,
				40F598DD9BCE1FA0AE855690 /* AppTheme.swift */,
				6363FFDA55CFD993BC309249 /* ChadMusic.swift */,
				4B2D6AC79F54F259894E400E /* CuePoint.swift */,
				9976E6544585B296A1C101DA /* GroupTemplateResolver.swift */,
				475B0D96BE1F660E43F4338F /* Playlist.swift */,
				B06CCD1797B66666B24AF57F /* PlaylistFolder.swift */,
				38F7DDFFB0052E82B9579FA7 /* QueueEntry.swift */,
				2911C47EF0A790D14A41ACCD /* Track.swift */,
			);
			path = Models;
			sourceTree = "<group>";
		};
		A0991586314D042664A33F77 /* Views */ = {
			isa = PBXGroup;
			children = (
				E41DB4A612D6382448F0DD4A /* AddGroupToPlaylistSheet.swift */,
				CBBA50A7582B55F231E5AA6C /* AddToPlaylistSheet.swift */,
				7774A282E55258E902663EB2 /* CloudBrowserView.swift */,
				60ECA4A868B078D1883187AC /* ContentView.swift */,
				3065C0A0D56A81C39226FE66 /* FolderBrowserView.swift */,
				08D15D5EE07B0A62BFD840FE /* GroupTemplateEditorSheet.swift */,
				BE57266AAD0021383B334BCD /* LibraryView.swift */,
				30AB12561B1AF730065EC608 /* MiniPlayerView.swift */,
				AA7FCB9E71FB67DBBBBA237E /* NowPlayingView.swift */,
				E3CE708A06FA6FACD9163798 /* PlaylistDetailView.swift */,
				BEEFB8D4A7732D9179B80961 /* PlaylistListView.swift */,
				E914A3FD78964862B2614958 /* QueueView.swift */,
				DD7C91A9A81F45E761A50F33 /* SettingsView.swift */,
				F0DB4B4B5F5AC588DCFDB0CD /* TrackRow.swift */,
				3BD2DB1EC2209FF74C47FDA7 /* WaveformView.swift */,
			);
			path = Views;
			sourceTree = "<group>";
		};
		B5DBC14AA87BE8FC0582278D /* Tests */ = {
			isa = PBXGroup;
			children = (
				F558E3B192986DC2EBB0ED46 /* AudioEngineTests.swift */,
				EF1DED14695761FDB3C92ABE /* CloudStreamingTests.swift */,
				F2BA9BE95AB7E0120C386B49 /* CodecTests.swift */,
				6A92720B54E0C6F6952D1DC3 /* GroupTemplateResolverTests.swift */,
				B407D125FA9B66C2F5AE6449 /* LyricsTests.swift */,
				8CE159AE643FA6D443DA2A58 /* ModelTests.swift */,
				C6B64DCACBFBECC6891C90CC /* PlayerViewModelTests.swift */,
				A6C84B8774EB16049C5D0634 /* PlaylistViewModelTests.swift */,
				3B76DAB40E97BB6491A86E6E /* SyncManagerTests.swift */,
				B402C83CB50D990A2E067E9E /* WaveformGeneratorTests.swift */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		C196ADF95D5F9524ECF12DD5 /* OGG */ = {
			isa = PBXGroup;
			children = (
				F5D297D015B8240DFA10635C /* MixBoard-Bridging-Header.h */,
				F53DEF563120C3F3B6EC9B17 /* ogg.h */,
				6A5EBAA40B5EDC89CCE2B2BB /* stb_vorbis_wrapper.h */,
				A7E76EF83D1D8E970E0A31A5 /* stb_vorbis.c */,
			);
			path = OGG;
			sourceTree = "<group>";
		};
		C8F02BC907F648149C5B2FA4 /* Sources */ = {
			isa = PBXGroup;
			children = (
				ACC56A6245FB276D23559CBF /* MixBoardApp.swift */,
				809411FB03B6B689D9DE9907 /* Models */,
				C196ADF95D5F9524ECF12DD5 /* OGG */,
				1332E5B75E8FF27EC72C7E0A /* OpusLib */,
				7F61E00E741F32754E1C3E81 /* Resources */,
				779EB629DFF798AB1B02E145 /* Services */,
				DCA751450A9535DB2F2BC49D /* ViewModels */,
				A0991586314D042664A33F77 /* Views */,
			);
			path = Sources;
			sourceTree = "<group>";
		};
		DCA751450A9535DB2F2BC49D /* ViewModels */ = {
			isa = PBXGroup;
			children = (
				1C1236BDE95EB6791D6236FB /* PlayerViewModel.swift */,
				35E4CBA48B8B32CE1BCAD7C8 /* PlaylistViewModel.swift */,
			);
			path = ViewModels;
			sourceTree = "<group>";
		};
		E710654EDC5BEFA0243A5A12 /* UITests */ = {
			isa = PBXGroup;
			children = (
				F8C1E48CF6E780D9643A87A4 /* CloudBrowserUITests.swift */,
				0B2F31275CB65372CA6FA5A0 /* MixBoardUITests.swift */,
				602A9910D5F19A92CBDC71A8 /* PlaybackUITests.swift */,
			);
			path = UITests;
			sourceTree = "<group>";
		};
		FBD9885D8FBB93ECDA027235 /* include */ = {
			isa = PBXGroup;
			children = (
				1B9750DC80B4C7A27CDFB781 /* ogg */,
				01413B5334A21F4D1CEEE0C0 /* opus */,
			);
			path = include;
			sourceTree = "<group>";
		};
		FCBD4522947F6E56E803DDC6 /* Products */ = {
			isa = PBXGroup;
			children = (
				B2120B77C1DC2A2C489C4495 /* MixBoardiOS.app */,
				6EE3DE980DF887C4317E1E04 /* MixBoardiOSTests.xctest */,
				6D726B0D736F677437FEC8BA /* MixBoardiOSUITests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		0907E09982F49B0BAE3D2CB1 /* MixBoardiOS */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = E0B4DD02B0BDE15BA6A3F3F5 /* Build configuration list for PBXNativeTarget "MixBoardiOS" */;
			buildPhases = (
				AE32C9205A6DD086CC7FF992 /* Sources */,
				B6B7503B80E513DC3E349BB0 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = MixBoardiOS;
			packageProductDependencies = (
			);
			productName = MixBoardiOS;
			productReference = B2120B77C1DC2A2C489C4495 /* MixBoardiOS.app */;
			productType = "com.apple.product-type.application";
		};
		39145F296862BC5011010CD2 /* MixBoardiOSUITests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = F0F1A2471A6DCAC88600712E /* Build configuration list for PBXNativeTarget "MixBoardiOSUITests" */;
			buildPhases = (
				D8B2242123A0DEC9EE065A6A /* Sources */,
			);
			buildRules = (
			);
			dependencies = (
				F93CE1CE125D5C7BC82054FB /* PBXTargetDependency */,
			);
			name = MixBoardiOSUITests;
			packageProductDependencies = (
			);
			productName = MixBoardiOSUITests;
			productReference = 6D726B0D736F677437FEC8BA /* MixBoardiOSUITests.xctest */;
			productType = "com.apple.product-type.bundle.ui-testing";
		};
		E27BDA59B075CF1614CF9392 /* MixBoardiOSTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 48EC8B6205AC728381EA57DA /* Build configuration list for PBXNativeTarget "MixBoardiOSTests" */;
			buildPhases = (
				907C57A0DA20F5DD051C447B /* Sources */,
			);
			buildRules = (
			);
			dependencies = (
				9C526FD964E1266FAD96E657 /* PBXTargetDependency */,
			);
			name = MixBoardiOSTests;
			packageProductDependencies = (
			);
			productName = MixBoardiOSTests;
			productReference = 6EE3DE980DF887C4317E1E04 /* MixBoardiOSTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		136856E86875B0E72B3BA10F /* Project object */ = {
			isa = PBXProject;
			attributes = {
				BuildIndependentTargetsInParallel = YES;
				LastUpgradeCheck = 1600;
				TargetAttributes = {
					39145F296862BC5011010CD2 = {
						TestTargetID = 0907E09982F49B0BAE3D2CB1;
					};
				};
			};
			buildConfigurationList = 09F18186D8B0B98F03E04D01 /* Build configuration list for PBXProject "MixBoardiOS" */;
			compatibilityVersion = "Xcode 14.0";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				Base,
				en,
			);
			mainGroup = 79CCDC24146638948CBCEC9E;
			minimizedProjectReferenceProxies = 1;
			preferredProjectObjectVersion = 77;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				0907E09982F49B0BAE3D2CB1 /* MixBoardiOS */,
				E27BDA59B075CF1614CF9392 /* MixBoardiOSTests */,
				39145F296862BC5011010CD2 /* MixBoardiOSUITests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		B6B7503B80E513DC3E349BB0 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				95899377852BF2AC878090A8 /* Assets.xcassets in Resources */,
				43393F667709155B8274BCF7 /* libogg.a in Resources */,
				CC051E3E0E64005C419E2A96 /* libopus.a in Resources */,
				92AB1107C3C9933966713ACA /* libopusfile.a in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		907C57A0DA20F5DD051C447B /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				5E8CEFA7EE241802F4811825 /* AudioEngineTests.swift in Sources */,
				D2F69A15D9EAD0B0F7AB4321 /* CloudStreamingTests.swift in Sources */,
				B769842D41E6024B9BDAEC75 /* CodecTests.swift in Sources */,
				69501B07F5A60CC4F3FD0FD2 /* GroupTemplateResolverTests.swift in Sources */,
				E73B39EC4AB5EE03B770ECE9 /* LyricsTests.swift in Sources */,
				EB0AE5BCF77E33C39B2062AE /* ModelTests.swift in Sources */,
				3BB9EDFDD0549752FF295F3E /* PlayerViewModelTests.swift in Sources */,
				5628796FA14B92BBF9B43E32 /* PlaylistViewModelTests.swift in Sources */,
				713F146AE128A72D7685ED85 /* SyncManagerTests.swift in Sources */,
				E7254E3B096C82833E6EAC32 /* WaveformGeneratorTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		AE32C9205A6DD086CC7FF992 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				B54468EDAAEF2726A6B38C0C /* AddGroupToPlaylistSheet.swift in Sources */,
				A51C687AE19C3E84FD54C5B9 /* AddToPlaylistSheet.swift in Sources */,
				C5445BE9211773A3C765686F /* AppState.swift in Sources */,
				606C5864CF7BFE0FD9D45D49 /* AppTheme.swift in Sources */,
				EABC718B141E4A741CB7A338 /* ArtworkService.swift in Sources */,
				5D6C44C69AF7AC10EF57654F /* AudioEngine.swift in Sources */,
				07CF52ADAE84DB873EACEF78 /* BPMDetector.swift in Sources */,
				24383DE5713184D409FD9063 /* ChadMusic.swift in Sources */,
				C3661CDAB1BE2C95AE69ADB1 /* ChadMusicAPIClient.swift in Sources */,
				DD56D0E534B6AC6DAC3DD238 /* CloudBrowserView.swift in Sources */,
				379B32F8532B619ED072A027 /* ContentView.swift in Sources */,
				BDC7784201348B34183BEA51 /* CuePoint.swift in Sources */,
				A691BE9634610830E1BB808A /* FolderBrowserView.swift in Sources */,
				57711D4FCC56CF0EAA3B9AEA /* GroupTemplateEditorSheet.swift in Sources */,
				26A26B41B196B5BD4930DC32 /* GroupTemplateResolver.swift in Sources */,
				9E9C91E092AB64883F6EE6B0 /* KeyDetector.swift in Sources */,
				912A19B864DD7BA90CDACFB5 /* KeychainService.swift in Sources */,
				8C364F881121FBDC0507BE3F /* LRCLIBService.swift in Sources */,
				4743395D35A8D95C547C8CB9 /* LibraryManager.swift in Sources */,
				F9E1EC2A05D690057B963102 /* LibraryView.swift in Sources */,
				A0784C716AA15CDE2E0B7422 /* LyricsParser.swift in Sources */,
				70D3F6D051FF364AEE762044 /* MediaKeyHandler.swift in Sources */,
				D408096F4D08840C966D4DC3 /* MetadataService.swift in Sources */,
				87CF06028B178836BA6DC55D /* MiniPlayerView.swift in Sources */,
				7726CE9DEFF12E97426C682E /* MixBoardApp.swift in Sources */,
				BE7AB214FE205DC12BB2A60C /* MockURLProtocol.swift in Sources */,
				F68E77C46DA49D37AF843648 /* NowPlayingView.swift in Sources */,
				9B9F0CF0742875A907E153AA /* OGGDecoder.swift in Sources */,
				2A5E4EBC04A32429A488B917 /* OpusDecoder.swift in Sources */,
				26BB12106B505E43BF4FC9D6 /* PlayerViewModel.swift in Sources */,
				CCECD84E3286B2500DE1FDFE /* Playlist.swift in Sources */,
				BEFC8982E0D4314A9DAEEBD8 /* PlaylistDetailView.swift in Sources */,
				BFC987A83994155E5702AC68 /* PlaylistFolder.swift in Sources */,
				D745E3B69D257B06ECB55735 /* PlaylistListView.swift in Sources */,
				98815185EDE0A4BCBF17C5B9 /* PlaylistViewModel.swift in Sources */,
				7C6A84B33D7D5615EB0B05DE /* QueueEntry.swift in Sources */,
				380E85DD78DF70452FD714D3 /* QueueView.swift in Sources */,
				759C3290BED9FA13BC6E3826 /* SettingsView.swift in Sources */,
				3395A9BA0229770B4DB5BC87 /* StreamingPlayer.swift in Sources */,
				8E08196F160224F02E37D063 /* SyncManager.swift in Sources */,
				D90B76ED48494E5EFAF307AD /* Track.swift in Sources */,
				B277B6A1AE7A7B3F3B5048BF /* TrackRow.swift in Sources */,
				9EA1E32B38B0F9E99870EC59 /* WaveformGenerator.swift in Sources */,
				8959E71D433588DDD17678DC /* WaveformView.swift in Sources */,
				7B2F8EAEAFFC2EC639BDD70C /* stb_vorbis.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		D8B2242123A0DEC9EE065A6A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				F973B39909DBEEEFD691672B /* CloudBrowserUITests.swift in Sources */,
				9C3EE050D166FC5929766834 /* MixBoardUITests.swift in Sources */,
				4750BB279D429C443C4A2981 /* PlaybackUITests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		9C526FD964E1266FAD96E657 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 0907E09982F49B0BAE3D2CB1 /* MixBoardiOS */;
			targetProxy = 504CB81CAC10624153757F4D /* PBXContainerItemProxy */;
		};
		F93CE1CE125D5C7BC82054FB /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 0907E09982F49B0BAE3D2CB1 /* MixBoardiOS */;
			targetProxy = 47AE927601EF93344ADF48E4 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		054FB1A27E51816FA4063484 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"$(inherited)",
					"DEBUG=1",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 17.0;
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
				MTL_FAST_MATH = YES;
				ONLY_ACTIVE_ARCH = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_VERSION = 5.9;
			};
			name = Debug;
		};
		98514345E6F920F371FAC2C7 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				GENERATE_INFOPLIST_FILE = YES;
				"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = "DISABLE_OPUS=1";
				HEADER_SEARCH_PATHS = "$(SRCROOT)/Sources/OpusLib/include $(SRCROOT)/Sources/OpusLib/include/opus $(SRCROOT)/Sources/OpusLib/include/ogg";
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardiOSTests;
				SDKROOT = iphoneos;
				"SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphonesimulator*]" = DISABLE_OPUS;
				SWIFT_OBJC_BRIDGING_HEADER = "";
				TARGETED_DEVICE_FAMILY = "1,2";
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MixBoard.app/MixBoard";
			};
			name = Debug;
		};
		9D1AAD157A839ACDA7AB5B4C /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 17.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				MTL_FAST_MATH = YES;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = iphoneos;
				SWIFT_COMPILATION_MODE = wholemodule;
				SWIFT_OPTIMIZATION_LEVEL = "-O";
				SWIFT_VERSION = 5.9;
			};
			name = Release;
		};
		A0D0816F69E4CC9CEB7F805B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				GENERATE_INFOPLIST_FILE = YES;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardiOSUITests;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				TEST_TARGET_NAME = MixBoardiOS;
			};
			name = Debug;
		};
		A78BE4C792293551E614E5C1 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				GENERATE_INFOPLIST_FILE = YES;
				"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = "DISABLE_OPUS=1";
				HEADER_SEARCH_PATHS = "$(SRCROOT)/Sources/OpusLib/include $(SRCROOT)/Sources/OpusLib/include/opus $(SRCROOT)/Sources/OpusLib/include/ogg";
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardiOSTests;
				SDKROOT = iphoneos;
				"SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphonesimulator*]" = DISABLE_OPUS;
				SWIFT_OBJC_BRIDGING_HEADER = "";
				TARGETED_DEVICE_FAMILY = "1,2";
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MixBoard.app/MixBoard";
			};
			name = Release;
		};
		AEC03CA1B6D82279C160A07B /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				GENERATE_INFOPLIST_FILE = YES;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardiOSUITests;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				TEST_TARGET_NAME = MixBoardiOS;
			};
			name = Release;
		};
		B639A0432641C825AA778529 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Green AppIcon-Lime AppIcon-Cyan AppIcon-Blue AppIcon-Purple AppIcon-Pink AppIcon-Red AppIcon-Orange AppIcon-Gold AppIcon-White";
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
				CODE_SIGN_ENTITLEMENTS = MixBoardiOS.entitlements;
				CODE_SIGN_IDENTITY = "iPhone Developer";
				CURRENT_PROJECT_VERSION = 1;
				"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = "DISABLE_OPUS=1";
				GENERATE_INFOPLIST_FILE = YES;
				HEADER_SEARCH_PATHS = "$(SRCROOT)/Sources/OpusLib/include $(SRCROOT)/Sources/OpusLib/include/opus $(SRCROOT)/Sources/OpusLib/include/ogg";
				INFOPLIST_FILE = Info.plist;
				INFOPLIST_GENERATION_MODE = GeneratedByXcode;
				INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.music";
				INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES;
				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
				INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(SRCROOT)/Sources/OpusLib/lib";
				"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = "";
				MARKETING_VERSION = 1.0.0;
				"OTHER_LDFLAGS[sdk=iphoneos*]" = "-logg -lopus -lopusfile";
				"OTHER_LDFLAGS[sdk=iphonesimulator*]" = "";
				PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardiOS;
				PRODUCT_NAME = MixBoard;
				SDKROOT = iphoneos;
				SUPPORTS_MACCATALYST = NO;
				"SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphonesimulator*]" = DISABLE_OPUS;
				SWIFT_EMIT_LOC_STRINGS = YES;
				SWIFT_OBJC_BRIDGING_HEADER = "Sources/OGG/MixBoard-Bridging-Header.h";
				SWIFT_OPTIMIZATION_LEVEL = "-O";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Release;
		};
		CCC050D6A11BD5A595ED8050 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_ALTERNATE_APPICON_NAMES = "AppIcon-Green AppIcon-Lime AppIcon-Cyan AppIcon-Blue AppIcon-Purple AppIcon-Pink AppIcon-Red AppIcon-Orange AppIcon-Gold AppIcon-White";
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = YES;
				CODE_SIGN_ENTITLEMENTS = MixBoardiOS.entitlements;
				CODE_SIGN_IDENTITY = "Apple Development";
				CURRENT_PROJECT_VERSION = 1;
				"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = "DISABLE_OPUS=1";
				GENERATE_INFOPLIST_FILE = YES;
				HEADER_SEARCH_PATHS = "$(SRCROOT)/Sources/OpusLib/include $(SRCROOT)/Sources/OpusLib/include/opus $(SRCROOT)/Sources/OpusLib/include/ogg";
				INFOPLIST_FILE = Info.plist;
				INFOPLIST_GENERATION_MODE = GeneratedByXcode;
				INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.music";
				INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = YES;
				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
				INFOPLIST_KEY_UISupportsDocumentBrowser = YES;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(SRCROOT)/Sources/OpusLib/lib";
				"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]" = "";
				MARKETING_VERSION = 1.0.0;
				"OTHER_LDFLAGS[sdk=iphoneos*]" = "-logg -lopus -lopusfile";
				"OTHER_LDFLAGS[sdk=iphonesimulator*]" = "";
				PRODUCT_BUNDLE_IDENTIFIER = com.mixboard.MixBoardiOS;
				PRODUCT_NAME = MixBoard;
				SDKROOT = iphoneos;
				SUPPORTS_MACCATALYST = NO;
				"SWIFT_ACTIVE_COMPILATION_CONDITIONS[sdk=iphonesimulator*]" = DISABLE_OPUS;
				SWIFT_EMIT_LOC_STRINGS = YES;
				SWIFT_OBJC_BRIDGING_HEADER = "Sources/OGG/MixBoard-Bridging-Header.h";
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		09F18186D8B0B98F03E04D01 /* Build configuration list for PBXProject "MixBoardiOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				054FB1A27E51816FA4063484 /* Debug */,
				9D1AAD157A839ACDA7AB5B4C /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Debug;
		};
		48EC8B6205AC728381EA57DA /* Build configuration list for PBXNativeTarget "MixBoardiOSTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				98514345E6F920F371FAC2C7 /* Debug */,
				A78BE4C792293551E614E5C1 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Debug;
		};
		E0B4DD02B0BDE15BA6A3F3F5 /* Build configuration list for PBXNativeTarget "MixBoardiOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				CCC050D6A11BD5A595ED8050 /* Debug */,
				B639A0432641C825AA778529 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Debug;
		};
		F0F1A2471A6DCAC88600712E /* Build configuration list for PBXNativeTarget "MixBoardiOSUITests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A0D0816F69E4CC9CEB7F805B /* Debug */,
				AEC03CA1B6D82279C160A07B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Debug;
		};
/* End XCConfigurationList section */
	};
	rootObject = 136856E86875B0E72B3BA10F /* Project object */;
}
