iOSDC2023 Lightning Talk Live on iOSDC2023
LiveoniOSDC202320230903 iOSDC2023Rakuten Group, Inc.Hiromu Tsuruta / hcrane(͘Ε͍Μ)
View Slide
SwifͰԻϓϩάϥϛϯάָ͍ͧ͠ʂ
ΤϨΩΪλʔʹ͍ͭͯجૅࣝ
ΤϨΩΪλʔ ΞϯϓγʔϧυέʔϒϧΪλʔͷԻ͕ग़ΔΈݭͷৼಈΛిؾʹม͑ͯɺΞϯϓͰ૿෯ͤ͞Δͬͧʂʂʂ
ΪλʔͷԻΛม͑Δํ๏ΪλʔͱΞϯϓͷؒʹɺΤϑΣΫλʔΛܨ͍ͰԻΛมԽͤ͞ΔͬͧʂʂʂΤϨΩΪλʔ ΞϯϓΤϑΣΫλʔ
ΞφϩάͱσδλϧͷԻ৴߸ΛɺΦʔσΟΦɾΠϯλʔϑΣʔεͰม͢ΔͬͧʂʂʂΤϨΩΪλʔ MacΦʔσΟΦΠϯλʔϑΣʔεΪλʔͷԻΛ PC Ͱѻ͏
Xcode(Mac Catalyst)֎෦͔Βೖྗͨ͠ԻΛग़ྗ͢Δ࠷খݶͷίʔυΪλʔͷԻΛ Swift Ͱѻ͏※ ΪλʔʹݶΒͣ֎෦ೖྗ͞ΕΔԻΛશͯѻ͑ΔAVAudioEngine ͕ೖྗԻΛऔ͖ͬͯͯ͘ΕΔͷͰɺࣽΔͳΓম͘ͳΓ͖ʹͬͧ͢ʂʂʂ
AVAudioEngine·ΘΓ
iOS 2.0~CoreAudio ͷࡌiOS 3.0~AVAudioSession ͷՃiOS 5.0~Audio Unit ͷΤϑΣΫτΛՃiOS 7.0~Inter-App Audio ͷՃiOS 8.0~AVAudioEngineAVAudioUnit ͷՃiOS 9.0~AUAudioUnit ͷՃ Audio Unit Extensions ͷొAVAudioEngine ͕ొ͢Δ·ͰɺϦΞϧλΠϜʹԻΛૢ࡞͢Δͷ͔ͳΓෑډ͕ߴ͔ͬͨ…ΦʔσΟΦपΓͷ API Ξοϓσʔτ
AVAudioUnit Ͱཉ͍͠ΤϑΣΫτΛ࡞Γɺattach ͯ͠ connect ͢Δ͚ͩʂAVAudioEngine ͰԻΛ·ͤΔίʔυྫ
iOSDC 2018AVAudioUnitEffect࣮ԋby takopomiOSDC 2020ࠓ͔Β͔ΔAVAudioEngineͷશͯby s_urabe👇👇 ৄ͍͠աڈͷ iOSDC ͔Β 👇👇Quite: https://speakerdeck.com/takopom/iosdc-2018-ltQuite: https://speakerdeck.com/yaminoma/jin-ri-karafen-karu-avaudioenginefalsequan-te
ʢવͳΜ͚ͩͲʣAVAudioEngine ΪλʔͷԻʹಛԽͯ͠ͳ͍
AudioKit
Իॲཧ͕Ͱ͖ΔSwifϑϨʔϜϫʔΫ
Try! Swift 2019Swiftʹ͓͚ΔԻͷܗby Adam Bell👇👇 try! Swift ͰऔΓ্͛ΒΕ͍ͯͨ 👇👇Quite: https://github.com/b3ll/try-swift-2019/blob/master/Presentation.pdf
Version 1.0~ϦϦʔε(Csound ͷϥούʔ)Version 5.0~AudioEngine ΫϥεΛίΞͱͨ͠େ෯ͳΞοϓσʔτݩʑ Csound ϕʔεͩͬͨͷ͕ɺAVAudioEngine ʹมΘΓɺ͔ͳΓѻ͍͍ͬͧ͢ʂʂʂAudioKit ͷྺ࢙Version 3.0~ίΞͷίʔυ͕ AVAudioEngine ʹͳΔVersion 2.0~ϥΠϒίʔσΟϯάػೳͷՃVersion 4.0~ػೳͷ֦ॆͱςετͷՃVersion 5.2~ϥΠϒϥϦͷ Feature ԽVersion 6.0~Coming soon※ CsoundҰ෦Ͱ༻͍ͯ͠Δɻ·ͨ CoreAudio, C++ Ͱ͍͔ͭ͘ͷػೳิ͍ͬͯΔ
Version 1.0~
Csound ͷίʔυྫΦʔσΟΦϓϩάϥϛϯάͷͨΊͷυϝΠϯݻ༗ݴޠ
Objective-C Ͱѻ͏ίʔυྫ֎෦͔ΒӅṭԽͯ͠ɺ෦Ͱ Csound(.csd) Λੜͯ͠ѻ͏ͬͧʂ
Version 3.0~
AVAudioEngine Λϥοϓ͍ͯͯ͠ɺ͞Βʹ؆ܿʹॻ͚ΔͬͧʂʂʂAudioEngine ͰԻΛ·ͤΔίʔυྫ
Version 5.2~
AudioKit(v5.2~)AudioKitEX AudioKitUI DevoloopAudioKit DunneAudioKitSoundpipeAudioKit SporthAudioKit STKAudioKitControls Flow Keyboard MicrotonalityPianoRoll Tonic WaveformCoreFeatureSupport
DevoloopAudioKit
Ϊλʔ͚ʹఏڙ͞ΕͨϑϨʔϜϫʔΫ
ίϯϓϨοαʔͱΞϯϓγϛϡϨʔλͷ͕̎ͭ༻ҙ͞Ε͍ͯΔͬͧʂQuite: https://www.audiokit.io/DevoloopAudioKit/documentation/devoloopaudiokitDevoloopAudioKit ͷத
ԻΛൺֱͯ͠ΈΑ͏ʂ
GitHub - EffectPlayerQuite: https://github.com/crane-hiromu/EffectPlayer
ͦͦԻ͕มΘΔͬͯͲ͏͍͏Έͳͷʁ
Իͬͯʁ
Quite: https://www.chegg.com/learn/topic/characteristics-of-sound-wavesԻ͕ΘΔͷɺମͷৼಈʹΑͬͯൃੜ͢ΔͩͬͧʂԻͷ
Quite: https://www.chegg.com/learn/topic/characteristics-of-sound-wavesԻ৭͝ͱʹܗҧͬͯ͘Δͷྫ
ԻࣜͰදͤΔʂ※ ͖݅
Quite: https://www.chegg.com/learn/topic/characteristics-of-sound-wavesϑʔϦΤڃʢपظؔͰ͋ΕʣͲΜͳؔͰࡾ֯ؔͷͰۙࣅͰ͖Δor۠తʹΒ͔ ͔ͭ ࿈ଓ ͔ͭ ઈରՄੵ
Quite: https://www.youtube.com/watch?v=ds0cmAV-YekؔͷΛදͨ͠ྫ
Quite: https://www.nli-research.co.jp/report/detail/id=69307ϑʔϦΤมৗͷԻपظతͳԻͱݶΒͳ͍ɻ ແݶʹ͍पظΛ࣋ͭͷͱͯ͠ɺϑʔϦΤมΛͯ͠ѻ͑ΔΑ͏ʹ͢ΔɻQuite: https://takun-physics.net/7994/
ʹԿ͔ͨ͠ΒͷࣜΛ͑ԻΛม͑ΒΕΔͬͧʂԻͷΛࣜͰม͑Δ
σΟετʔγϣϯ(ΈԻ)Λ࠶ݱͯ͠ΈΔ
Quite: https://kensukeinage.com/effector_distortion_and_overdrive/ԻΛաେ૿෯ͤ͞ΔͱɺΫϦοϐϯάݱ͕ى͖ܗͷҰ෦͕ΓऔΒΕɺΜͩԻʹͳΔͬͧʂσΟετʔγϣϯʢΈԻʣͷΈ
Quite: https://ja.wikipedia.org/wiki/γάϞΠυؔγάϞΠυؔDistortionʢΈʣͷΑ͏ͳԻΛ࡞Δ߹ɺγάϞΠυؔΛ͏ͬͧʂ
γάϞΠυؔΛ Swift Ͱ࣮͢ΔSwift Ͱ tanh ͕ؔ༻ҙ͞Ε͍ͯͯ؆୯ͩͬͧʂ
γάϞΠυؔΛ Swift Ͱ࣮͢Δ + α֎෦͔ΒΛௐͰ͖ΔΑ͏ʹมΛ͍͔ͭ͘༻ҙ͢Δͬͧʂ
ΪλʔͷԻΛऔಘ͢ΔόοϑΝΛऔಘͯ͠ԻΛՃ͍ͯͬͧ͘͠ʂ
γάϞΠυؔͰԻΛՃ͢ΔϑϨʔϜ͝ͱͷαϯϓϧΛɺγάϞΠυؔͰมԽͤ͞Δͬͧʂ
ॲཧ͕Ԇ͢ΔͷͰC++ Ͱ࣮͠ͳ͓͢
γάϞΠυؔΛ C++ Ͱ࣮͢ΔԻΛՃ͢ΔͨΊͷ DistortionProcessor ΫϥεΛ༻ҙ࣮͍ͯͯͬͧ͘͠͠ʂSwiftC++
ԻͷՃ͢Δ෦Λ C++ Ͱ࣮͢Δಈ࡞Λૣ͘͢ΔͨΊʹνϟϯωϧͷ͚ͩฒྻॲཧ͍ͯ͠Δͬͧʂ※ ಈ࡞͢ΔίʔυΛఏ͍ࣔͯ͠·͕͢ɺ៉ྷͳίʔυ͔Ͳ͏͔ͷอূͰ͖·ͤΜ
Objective-C++ ͰϒϦοδίʔυΛ࣮͢ΔC++ Swift ͔Βݺͼग़ͤͳ͍ͷͰɺObjective-C++ ͰϒϦοδ͢Δͬͧʂ
ΪλʔͷԻΛऔಘ͢ΔObjective-C++ ͔ΒϝιουΛݺͿ͚ͩʂ
ઌ΄ͲͷϦϙδτϦʹαϯϓϧೖͬͯ·͢ʂQuite: https://github.com/crane-hiromu/EffectPlayer
C++ ͰԻϓϩάϥϛϯάָ͍ͧ͠ʂSwif