Slide 1

Slide 1 text

Live on iOSDC2023 20230903 iOSDC2023 Rakuten Group, Inc. Hiromu Tsuruta / hcrane(͘Ε͍Μ)

Slide 2

Slide 2 text

Swi f Ͱ Ի੠ϓϩάϥϛϯά͸ ָ͍ͧ͠ʂ

Slide 3

Slide 3 text

ΤϨΩΪλʔʹ͍ͭͯ جૅ஌ࣝ

Slide 4

Slide 4 text

ΤϨΩΪλʔ Ξϯϓ γʔϧυέʔϒϧ ΪλʔͷԻ͕ग़Δ࢓૊Έ ݭͷৼಈΛిؾʹม͑ͯɺΞϯϓͰ૿෯ͤ͞Δͬͧʂʂʂ

Slide 5

Slide 5 text

ΪλʔͷԻΛม͑Δํ๏ ΪλʔͱΞϯϓͷؒʹɺΤϑΣΫλʔΛܨ͍ͰԻΛมԽͤ͞Δͬͧʂʂʂ ΤϨΩΪλʔ Ξϯϓ ΤϑΣΫλʔ

Slide 6

Slide 6 text

ΞφϩάͱσδλϧͷԻ੠৴߸ΛɺΦʔσΟΦɾΠϯλʔϑΣʔεͰม׵͢Δͬͧʂʂʂ ΤϨΩΪλʔ Mac ΦʔσΟΦ ΠϯλʔϑΣʔε ΪλʔͷԻΛ PC Ͱѻ͏

Slide 7

Slide 7 text

Xcode (Mac Catalyst) ֎෦͔Βೖྗͨ͠ԻΛग़ྗ͢Δ࠷খݶͷίʔυ ΪλʔͷԻΛ Swift Ͱѻ͏ ※ ΪλʔʹݶΒͣ֎෦ೖྗ͞ΕΔԻΛશͯѻ͑Δ AVAudioEngine ͕ೖྗԻΛऔ͖ͬͯͯ͘ΕΔͷͰɺࣽΔͳΓম͘ͳΓ޷͖ʹͬͧ͢ʂʂʂ

Slide 8

Slide 8 text

AVAudioEngine·ΘΓ

Slide 9

Slide 9 text

iOS 2.0~ CoreAudio ͷ౥ࡌ iOS 3.0~ AVAudioSession ͷ௥Ճ iOS 5.0~ Audio Unit ͷΤϑΣΫτΛ௥Ճ iOS 7.0~ Inter-App Audio ͷ௥Ճ iOS 8.0~ AVAudioEngine AVAudioUnit ͷ௥Ճ iOS 9.0~ AUAudioUnit ͷ௥Ճ 
 Audio Unit Extensions ͷొ৔ AVAudioEngine ͕ొ৔͢Δ·ͰɺϦΞϧλΠϜʹԻ੠Λૢ࡞͢Δͷ͸͔ͳΓෑډ͕ߴ͔ͬͨ… ΦʔσΟΦपΓͷ API Ξοϓσʔτ

Slide 10

Slide 10 text

AVAudioUnit Ͱཉ͍͠ΤϑΣΫτΛ࡞Γɺattach ͯ͠ connect ͢Δ͚ͩʂ AVAudioEngine ͰԻΛ࿪·ͤΔίʔυྫ

Slide 11

Slide 11 text

iOSDC 2018 AVAudioUnitE ff ect࣮ԋ by takopom iOSDC 2020 ࠓ೔͔Β෼͔ΔAVAudioEngineͷશͯ by s_urabe 👇👇 ৄ͍͠࿩͸աڈͷ iOSDC ͔Β 👇👇 Quite: https://speakerdeck.com/takopom/iosdc-2018-lt Quite: https://speakerdeck.com/yaminoma/jin-ri-karafen-karu-avaudioenginefalsequan-te

Slide 12

Slide 12 text

ʢ౰વͳΜ͚ͩͲʣ AVAudioEngine ͸ ΪλʔͷԻʹಛԽͯ͠ͳ͍

Slide 13

Slide 13 text

AudioKit

Slide 14

Slide 14 text

Ի੠ॲཧ͕Ͱ͖Δ Swi f ϑϨʔϜϫʔΫ

Slide 15

Slide 15 text

Try! Swift 2019 Swiftʹ͓͚ΔԻͷ੒ܗ by Adam Bell 👇👇 try! Swift Ͱ΋औΓ্͛ΒΕ͍ͯͨ 👇👇 Quite: https://github.com/b3ll/try-swift-2019/blob/master/Presentation.pdf

Slide 16

Slide 16 text

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++ Ͱ͍͔ͭ͘ͷػೳ͸ิ͍ͬͯΔ

Slide 17

Slide 17 text

Version 1.0~

Slide 18

Slide 18 text

Csound ͷίʔυྫ ΦʔσΟΦϓϩάϥϛϯάͷͨΊͷυϝΠϯݻ༗ݴޠ

Slide 19

Slide 19 text

Objective-C Ͱѻ͏ίʔυྫ ֎෦͔Β͸ӅṭԽͯ͠ɺ಺෦Ͱ Csound(.csd) Λੜ੒ͯ͠ѻ͏ͬͧʂ

Slide 20

Slide 20 text

Version 3.0~

Slide 21

Slide 21 text

AVAudioEngine Λϥοϓ͍ͯͯ͠ɺ͞Βʹ؆ܿʹॻ͚Δͬͧʂʂʂ AudioEngine ͰԻΛ࿪·ͤΔίʔυྫ

Slide 22

Slide 22 text

Version 5.2~

Slide 23

Slide 23 text

AudioKit (v5.2~) AudioKitEX AudioKitUI DevoloopAudioKit DunneAudioKit SoundpipeAudioKit SporthAudioKit STKAudioKit Controls Flow Keyboard Microtonality PianoRoll Tonic Waveform Core Feature Support

Slide 24

Slide 24 text

DevoloopAudioKit

Slide 25

Slide 25 text

Ϊλʔ޲͚ʹఏڙ͞Εͨ ϑϨʔϜϫʔΫ

Slide 26

Slide 26 text

ίϯϓϨοαʔͱΞϯϓγϛϡϨʔλͷ͕̎ͭ༻ҙ͞Ε͍ͯΔͬͧʂ Quite: https://www.audiokit.io/DevoloopAudioKit/documentation/devoloopaudiokit DevoloopAudioKit ͷத਎

Slide 27

Slide 27 text

ԻΛൺֱͯ͠ΈΑ͏ʂ

Slide 28

Slide 28 text

GitHub - EffectPlayer Quite: https://github.com/crane-hiromu/E ff ectPlayer

Slide 29

Slide 29 text

ͦ΋ͦ΋Ի͕มΘΔͬͯ Ͳ͏͍͏࢓૊Έͳͷʁ

Slide 30

Slide 30 text

Իͬͯʁ

Slide 31

Slide 31 text

Quite: https://www.chegg.com/learn/topic/characteristics-of-sound-waves Ի͕఻ΘΔͷ͸ɺ෺ମͷৼಈʹΑͬͯൃੜ͢Δ೾ͩͬͧʂ Իͷ೾

Slide 32

Slide 32 text

Quite: https://www.chegg.com/learn/topic/characteristics-of-sound-waves ೾͸Ի৭͝ͱʹܗ΋ҧͬͯ͘Δ ೾ͷྫ

Slide 33

Slide 33 text

Ի͸਺ࣜͰදͤΔʂ ※ ৚݅෇͖

Slide 34

Slide 34 text

Quite: https://www.chegg.com/learn/topic/characteristics-of-sound-waves ϑʔϦΤڃ਺ ʢपظؔ਺Ͱ͋Ε͹ʣͲΜͳؔ਺Ͱ΋ࡾ֯ؔ਺ͷ࿨ͰۙࣅͰ͖Δ or ۠෼తʹ׈Β͔ ͔ͭ ࿈ଓ ͔ͭ ઈରՄੵ෼

Slide 35

Slide 35 text

Quite: https://www.youtube.com/watch?v=ds0cmAV-Yek ؔ਺ͷ࿨Λදͨ͠ྫ

Slide 36

Slide 36 text

Quite: https://www.nli-research.co.jp/report/detail/id=69307 ϑʔϦΤม׵ ೔ৗͷԻ͸पظతͳԻͱ͸ݶΒͳ͍ɻ 
 ແݶʹ௕͍पظΛ࣋ͭ΋ͷͱͯ͠ɺϑʔϦΤม׵Λͯ͠ѻ͑Δ Α͏ʹ͢Δɻ Quite: https://takun-physics.net/7994/

Slide 37

Slide 37 text

೾ʹԿ͔ͨ͠Βͷ਺ࣜΛ࢖͑͹ԻΛม͑ΒΕΔͬͧʂ Իͷ೾Λ਺ࣜͰม͑Δ

Slide 38

Slide 38 text

σΟετʔγϣϯ(࿪ΈԻ) Λ࠶ݱͯ͠ΈΔ

Slide 39

Slide 39 text

Quite: https://kensukeinage.com/e ff ector_distortion_and_overdrive/ ԻΛաେ૿෯ͤ͞ΔͱɺΫϦοϐϯάݱ৅͕ى͖೾ܗͷҰ෦͕੾ΓऔΒΕɺ࿪ΜͩԻʹͳΔͬͧʂ σΟετʔγϣϯʢ࿪ΈԻʣͷ࢓૊Έ

Slide 40

Slide 40 text

Quite: https://ja.wikipedia.org/wiki/γάϞΠυؔ਺ γάϞΠυؔ਺ Distortionʢ࿪ΈʣͷΑ͏ͳԻΛ࡞Δ৔߹͸ɺγάϞΠυؔ਺Λ࢖͏ͬͧʂ

Slide 41

Slide 41 text

γάϞΠυؔ਺Λ Swift Ͱ࣮૷͢Δ Swift Ͱ͸ tanh ؔ਺͕༻ҙ͞Ε͍ͯͯ؆୯ͩͬͧʂ

Slide 42

Slide 42 text

γάϞΠυؔ਺Λ Swift Ͱ࣮૷͢Δ + α ֎෦͔Β஋Λௐ੔Ͱ͖ΔΑ͏ʹม਺Λ͍͔ͭ͘༻ҙ͢Δͬͧʂ

Slide 43

Slide 43 text

ΪλʔͷԻΛऔಘ͢Δ όοϑΝΛऔಘͯ͠ԻΛՃ޻͍ͯͬͧ͘͠ʂ

Slide 44

Slide 44 text

γάϞΠυؔ਺ͰԻΛՃ޻͢Δ ϑϨʔϜ͝ͱͷαϯϓϧ஋ΛɺγάϞΠυؔ਺ͰมԽͤ͞Δͬͧʂ

Slide 45

Slide 45 text

ॲཧ͕஗Ԇ͢ΔͷͰ C++ Ͱ࣮૷͠ͳ͓͢

Slide 46

Slide 46 text

γάϞΠυؔ਺Λ C++ Ͱ࣮૷͢Δ ԻΛՃ޻͢ΔͨΊͷ DistortionProcessor ΫϥεΛ༻ҙ࣮ͯ͠૷͍ͯͬͧ͘͠ʂ Swift C++

Slide 47

Slide 47 text

ԻͷՃ޻͢Δ෦෼Λ C++ Ͱ࣮૷͢Δ ಈ࡞Λૣ͘͢ΔͨΊʹνϟϯωϧͷ਺͚ͩฒྻॲཧ͍ͯ͠Δͬͧʂ ※ ಈ࡞͢ΔίʔυΛఏ͍ࣔͯ͠·͕͢ɺ៉ྷͳίʔυ͔Ͳ͏͔ͷอূ͸Ͱ͖·ͤΜ

Slide 48

Slide 48 text

Objective-C++ ͰϒϦοδίʔυΛ࣮૷͢Δ C++ ͸ Swift ͔Β௚઀ݺͼग़ͤͳ͍ͷͰɺObjective-C++ ͰϒϦοδ͢Δͬͧʂ

Slide 49

Slide 49 text

ΪλʔͷԻΛऔಘ͢Δ Objective-C++ ͔ΒϝιουΛݺͿ͚ͩʂ

Slide 50

Slide 50 text

ઌ΄ͲͷϦϙδτϦʹαϯϓϧೖͬͯ·͢ʂ Quite: https://github.com/crane-hiromu/E ff ectPlayer

Slide 51

Slide 51 text

C++ Ͱ Ի੠ϓϩάϥϛϯά͸ ָ͍ͧ͠ʂ Swi f