$30 off During Our Annual Pro Sale. View Details »

Live on iOSDC2023

h.crane
September 03, 2023

Live on iOSDC2023

iOSDC2023
Lightning Talk
Live on iOSDC2023

h.crane

September 03, 2023
Tweet

More Decks by h.crane

Other Decks in Technology

Transcript

  1. Live


    on


    iOSDC2023
    20230903 iOSDC2023


    Rakuten Group, Inc.


    Hiromu Tsuruta / hcrane(͘Ε͍Μ)

    View Slide

  2. Swi
    f
    Ͱ


    Ի੠ϓϩάϥϛϯά͸


    ָ͍ͧ͠ʂ

    View Slide

  3. ΤϨΩΪλʔʹ͍ͭͯ


    جૅ஌ࣝ

    View Slide

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

    View Slide

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

    View Slide

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


    ΠϯλʔϑΣʔε
    ΪλʔͷԻΛ PC Ͱѻ͏

    View Slide

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

    View Slide

  8. AVAudioEngine·ΘΓ

    View Slide

  9. 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 Ξοϓσʔτ

    View Slide

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

    View Slide

  11. 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

    View Slide

  12. ʢ౰વͳΜ͚ͩͲʣ


    AVAudioEngine ͸


    ΪλʔͷԻʹಛԽͯ͠ͳ͍


    View Slide

  13. AudioKit

    View Slide

  14. Ի੠ॲཧ͕Ͱ͖Δ


    Swi
    f
    ϑϨʔϜϫʔΫ

    View Slide

  15. Try! Swift 2019


    Swiftʹ͓͚ΔԻͷ੒ܗ


    by Adam Bell
    👇👇 try! Swift Ͱ΋औΓ্͛ΒΕ͍ͯͨ 👇👇
    Quite: https://github.com/b3ll/try-swift-2019/blob/master/Presentation.pdf

    View Slide

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

    View Slide

  17. Version 1.0~

    View Slide

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

    View Slide

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

    View Slide

  20. Version 3.0~

    View Slide

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

    View Slide

  22. Version 5.2~

    View Slide

  23. AudioKit


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

    View Slide

  24. DevoloopAudioKit

    View Slide

  25. Ϊλʔ޲͚ʹఏڙ͞Εͨ


    ϑϨʔϜϫʔΫ

    View Slide

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

    View Slide

  27. ԻΛൺֱͯ͠ΈΑ͏ʂ

    View Slide

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

    View Slide

  29. ͦ΋ͦ΋Ի͕มΘΔͬͯ


    Ͳ͏͍͏࢓૊Έͳͷʁ

    View Slide

  30. Իͬͯʁ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  36. Quite: https://www.nli-research.co.jp/report/detail/id=69307
    ϑʔϦΤม׵
    ೔ৗͷԻ͸पظతͳԻͱ͸ݶΒͳ͍ɻ

    ແݶʹ௕͍पظΛ࣋ͭ΋ͷͱͯ͠ɺϑʔϦΤม׵Λͯ͠ѻ͑Δ
    Α͏ʹ͢Δɻ
    Quite: https://takun-physics.net/7994/

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. ॲཧ͕஗Ԇ͢ΔͷͰ


    C++ Ͱ࣮૷͠ͳ͓͢

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  51. C++ Ͱ


    Ի੠ϓϩάϥϛϯά͸


    ָ͍ͧ͠ʂ
    Swi
    f

    View Slide