C#, WPF로 Audio2Tag를 제작을 했던 적이 있다.
https://github.com/reflex2019/Audio2Tag
reflex2019/Audio2Tag
this program can Cue Split and Audio Tagging. Contribute to reflex2019/Audio2Tag development by creating an account on GitHub.
github.com
이제는 내가 주로 개발을 macOS로 하다 보니 맥앱 으로 개발을 하고 싶어졌기 때문에 swift 공부 보단 Apple의 라이브러리, 생태계에 대해서 이해도를 올리기 위해서 맥앱을 개발하게 되었다.
기존에 한번 만들어 보았던 Audio2Tag, 음원 변조, 관리 프로그램이였기 때문에, 전 보다 조금 더 쉽게 개발이 가능할 것이라 보고 개발을 시작 했다.
그러나? 첫번째 난관은 바로 cue 파일을 읽고 파일을 분리 하는 작업이였는데
cue파일을 읽기 위한 라이브러리가 존재 하지 않았던 것이다!
그래서 파일 자체는 읽기가 쉽기 때문에
https://github.com/Piorosen/SwiftCueParser
Piorosen/SwiftCueParser
Cue Parser Swift version. Contribute to Piorosen/SwiftCueParser development by creating an account on GitHub.
github.com
레포지터리를 하나 열어 프로젝트를 열었다.
이때 처음으로 Swift Package Manager을 이용해 보고 싶었기 때문에 SPM을 위해서 릴리즈 연습도 해보고 테스트를 해 보았다.
그리고 라이브러리를 테스트 하기 위해 이때 처음으로도 XCT, Unit Test를 해보았고, 용어 또한 이해를 하고 실제로 적용을 해본 첫 프로젝트이다.
Swift 버전 CueSheet 파서를 만든 뒤 진행을 할려고 하였으나, 혹시나 Tagging 하기 위한 데이터도 없을까? 란 생각으로
MusicBrainz를 검색 했지만 역시나.. Swift버전은 존재 하지 않았다.
그래서 MusicBrainz 를 검색하기 위한 라이브러리 또한 만들게 되었고,
https://github.com/BigGranu/MusicBrainz
BigGranu/MusicBrainz
.Net data bindings for MusicBrainz XML Web Service v2.0 - BigGranu/MusicBrainz
github.com
기반으로 제작을 하였으며
https://github.com/Piorosen/Swift-MusicBrainz
Piorosen/Swift-MusicBrainz
swift version MusicBrainz. Contribute to Piorosen/Swift-MusicBrainz development by creating an account on GitHub.
github.com
현재 진행으로 개발 중에 있다, 현재 제작된 버전은
Area, Release, Annotation 이다.
계속 개발을 진행을 하다가 음악 파일을 자르고, 변형 하던 작업을 계속 진행 하다가
AVAssetWriter, Reader를 발견하게 되어서 테스트 하고 있다.
테스트 결과는 엄청 깔끔하게 나왔고, 오차 범위 내이다.
이유는 음악과 음악간 사이에 텀이 있기 때문에 약 1~3mb정도 비는데 그 정도는 OK 할 정도 였다.
마지막으로 cue 파일 읽었을 때 결과를 표현한 것이다.
'차장님의 이야기' 카테고리의 다른 글
SwiftUI에서 Modal 띄우기 성공 (0) | 2020.07.07 |
---|---|
Cue 파일 읽고, 파일 분리 작업 완성 (0) | 2020.06.29 |
C++의 offsetof 매크로 뜯어보기 (0) | 2020.06.19 |
C#의 UdpClient 생성자 및 동작 (0) | 2020.06.18 |
유니티의 CBD(Component-Based Development) 구현 해보기 (0) | 2020.06.15 |