-
-
Save atsushieno/11cf7e8ba46bfbfdce3638ff9ab91eac to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/1-intro.md b/1-intro.md | |
index d12bb09..f198d26 100644 | |
--- a/1-intro.md | |
+++ b/1-intro.md | |
@@ -7,15 +7,13 @@ | |
## é³æ¥œã®æã¡èŸŒã¿äœæ¥ãšDAWã®ä»äº | |
-ãã®æ¬ã®èªè ã§ããçããã«ãšã£ãŠã¯ãDAWãªã©ã®ãœãããŠã§ã¢ã䜿çšããŠã³ã³ãã¥ãŒã¿ãŒã§äœæ²ã§ããããšã¯èªæã§ããããããããå®éã«DAWã䜿ã£ãŠäœæ¥ããŠãããã©ããããšãªããšã誰ããYESãšã¯çããããªã質åã§ããããšã§ãããã | |
+ãã®æ¬ã®èªè ã§ããçããã«ãšã£ãŠã¯ãDAWãªã©ã®ãœãããŠã§ã¢ã䜿çšããã°ã³ã³ãã¥ãŒã¿ãŒã§äœæ²ã§ããããšã¯èªæã§ããããå®éã«DAWã䜿ã£ãŠå šãŠã®äœæ¥ãè¡ã£ãŠãããã©ããã¯äººããããã§ãDAWã䜿çšããŠé³æ¥œãå¶äœããŠãã人ããæçµçãªæ¥œæ²ãã¡ã€ã«ãäœæãããŸã§ã®å šãŠã®å·¥çšãDAWã§è¡ã£ãŠãããšã¯éããŸããããããã§ã¯æ¥œæ²ãã¡ã€ã«ãäœæãããŸã§ã®å·¥çšãå šäœæ¥ã§ãããšããŠè©±ãé²ããŸããããDAWã䜿çšãã楜æ²å¶äœã«ã¯ã次ã®ãããªäœæ¥ããããŸãïŒé çªéããšããããã§ã¯ãããŸããïŒã | |
-DAWã䜿çšããŠé³æ¥œãå¶äœããŠãã人ããæçµçãªæ¥œæ²ãã¡ã€ã«ãäœæãããŸã§ã®å šãŠã®å·¥çšãDAWã§è¡ã£ãŠãããšã¯éããŸããããããã§ã¯æ¥œæ²ãã¡ã€ã«ãäœæãããŸã§ã®å·¥çšãå šäœæ¥ã§ãããšããŠè©±ãé²ããŸããããDAWã䜿çšãã楜æ²å¶äœã«ã¯ã次ã®ãããªäœæ¥ããããŸãïŒé çªéããšããããã§ã¯ãããŸããïŒã | |
- | |
-- 楜æ²ã®ããŒãæ§æã決ããŠããã©ãã¯çŸ€ãšããŠç·šæãã | |
-- é²é³æžã¿ã®ãªãŒãã£ãªãµã³ããªã³ã°ããŒã¿ãããã°ãããããªãŒãã£ãªã®ãã©ãã¯ã«è²Œãä»ãã | |
-- ã€ã³ã¹ãã¥ã«ã¡ã³ã¿ã« = 楜åšãæå®ããŠèé¢ãæã¡èŸŒãå Žåã¯ããã¢ãããŒã«ãšãã£ã¿ãªã©ã䜿çšããªããåããŒãã®é³ç¬Šãæã¡èŸŒã | |
-- åããŒãã®æ¥œåšãå®çŸ©ãããäž»ã«ãªãŒãã£ãªãã©ã°ã€ã³ïŒVSTãAUãªã©ïŒãæå®ããŠããã®ãã©ã¡ãŒã¿ãŒã調æŽãã | |
-- åããŒãã®é³éã調æŽãããã³ãæ¯ãåããŠå·Šå³ã®ãã©ã³ã¹ããšããEQïŒã€ã³ã©ã€ã¶ãŒïŒãªã©ã§åé³åã®åã¿ã調æŽãã | |
+- 楜æ²ã®ããŒãæ§æã決ããŠããã©ãã¯çŸ€ãšããŠç·šæããã | |
+- é²é³æžã¿ã®ãªãŒãã£ãªãµã³ããªã³ã°ããŒã¿ãããã°ãããããªãŒãã£ãªã®ãã©ãã¯ã«è²Œãä»ããããããã¯ä»ã®ããŒããæŒå¥ããªããæ°ãããã©ãã¯ã®ã»ã¯ã·ã§ã³ãé²é³ããã | |
+- ã€ã³ã¹ãã¥ã«ã¡ã³ã¿ã« = 楜åšãæå®ããŠèé¢ãæã¡èŸŒãå Žåã¯ããã¢ãããŒã«ãšãã£ã¿ãªã©ã䜿çšããªããåããŒãã®é³ç¬Šãæã¡èŸŒãã | |
+- åããŒãã®æ¥œåšãå®çŸ©ãããäž»ã«ãªãŒãã£ãªãã©ã°ã€ã³ïŒVSTãAUãªã©ïŒãæå®ããŠããã®ãã©ã¡ãŒã¿ãŒã調æŽããã | |
+- åããŒããããã¯æ¥œæ²å šäœã®é³éã調æŽãããã³ãæ¯ãåããŠå·Šå³ã®ãã©ã³ã¹ããšããEQïŒã€ã³ã©ã€ã¶ãŒïŒãªã©ã§åé³åã®åã¿ã調æŽããã | |
ãããã®éçšã®äžã§ãDAWãã©ã®ãããªä»äºãè¡ã£ãŠããããåå¥ã«èŠãŠãããŸãããã | |
@@ -56,16 +54,16 @@ DAWã䜿çšããŠé³æ¥œãå¶äœããŠãã人ããæçµçãªæ¥œæ²ãã¡ | |
äžè¬çãªPCã®ãŠãŒã¶ãŒã¯ããªãŒãã£ãªããã€ã¹ãè€æ°äœ¿çšããå¿ èŠã¯ç¡ãã§ãããããããé³æ¥œå¶äœã«ãããŠã¯ãä»ã®ãªãŒãã£ãªåºåã䌎ãã¢ããªã±ãŒã·ã§ã³ã«éªéãããªãããã«ããããã¯ä»ã®ãªãŒãã£ãªå ¥åãšããã·ã³ã°ããç®çã§ããªãŒãã£ãªã€ã³ã¿ãŒãã§ãŒã¹ã«é³å£°ãåºåããŠãããããåä¿¡ããããŒã¿ãããžã¿ã«ã«ä¿åãããããªããšããããŸãããã®ãããDAWã«ã¯ç¹ã«äœ¿çšãããªãŒãã£ãªããã€ã¹ãåå¥ã«èšå®ããæ©èœãæ±ããããŸãã | |
-ãŸããMIDIããã€ã¹ã䜿çšããå Žåã¯ãã©ã®ããã€ã¹ã䜿çšããããšããç°å¢èšå®ãæ±ããããŸããããã«ãè¿å¹Žã®MIDIããã€ã¹ã«ã¯ãMPEïŒMIDI polyphonic expressionïŒãªã©é«åºŠãªå ¥åæ å ±ãéä¿¡ã§ãããã®ãå¢ããŠãããããããžã®å¯Ÿå¿ãªãã·ã§ã³ãè¿œå ã§æå®ã§ããããšãæåŸ ãããå Žé¢ããããŸããä»åŸMIDI-CIïŒcapability inquiryïŒãã¯ãããšãããMIDI 2.0ãã®æ©èœïŒçŸåšçå®äžïŒãå®çŸããŠãããšããã®èŠæ±äºé ãåºãã£ãŠããããšã§ãããã | |
+ãŸããMIDIããã€ã¹ã䜿çšããå Žåã¯ãã©ã®ããã€ã¹ã䜿çšããããšããç°å¢èšå®ãæ±ããããŸããããã«ãè¿å¹Žã®MIDIããã€ã¹ã«ã¯ãMPEïŒMIDI polyphonic expressionïŒãªã©é«åºŠãªå ¥åæ å ±ãéä¿¡ã§ãããã®ãå¢ããŠãããããããžã®å¯Ÿå¿ãªãã·ã§ã³ãè¿œå ã§æå®ã§ããããšãæåŸ ãããå Žé¢ããããŸããä»åŸMIDI-CIïŒcapability inquiryïŒãã¯ãããšããMIDI 2.0ã®æ©èœãå®çŸããŠãããšããã®èŠæ±äºé ãåºãã£ãŠããããšã§ãããïŒMIDI 2.0ã«ã€ããŠã¯å¥éèšåããŸãïŒã | |
## DAWã§ã¯ãªãé³æ¥œãœãããŠã§ã¢ã»ããŒã« | |
é»ååãããé³æ¥œã¯ãå€ãã®å Žåã¯DAWã§å¶äœãããŸãããããŸã«ãã以å€ã®ãœãããŠã§ã¢ã䜿çšãããããšããããŸããæ¬æžã®ã¿ãŒã²ããã¯ã·ãŒã±ã³ãµãŒãšã³ãžã³ãªã®ã§ãDAW以å€ã®é³æ¥œããŒã«ã«ã€ããŠãèšåããŠãããŸãã@<fn>{other-tools} | |
-//footnote[other-tools][ããã§èšåããä»ã«ããã©ãã«ãŒã®ãããªäœæ²ããŒã«ãããã®ã§ãããæ©èœçã«ã¯ãã£ããDAWã«é¡ãããã®ãšèšããã®ã§ãããã§ã¯èšåããŸããã] | |
+//footnote[other-tools][ããã§èšåããä»ã«ããã©ãã«ãŒã®ãããªäœæ²ããŒã«ãããã®ã§ãããUIã®æ§æãé€ãæ©èœé¢ã¯å€§ãŸãã«ã¯DAWã«é¡ãããã®ãšèšããã®ã§ãããã§ã¯èšåããŸããã] | |
-### VPL/APLã®ç³»è (Max/MSP, Pure Data etc.) | |
+### ã¯ãªãšã€ãã£ãã³ãŒãã£ã³ã°ãšVPL/APLã®ç³»è | |
//image[puredata][Pure Data(Wikimedia Commons: PureData-Harvie-Examples.png)][scale=0.7] | |
@@ -79,11 +77,13 @@ VPLïŒvisual programming languageïŒãšã¯ãæçŽã«ããã°ã©ãã³ã°ã | |
ãŽã£ãžã¥ã¢ã«ãåŠçããªããã®ã«ã€ããŠã¯ãAPL (audio programming language)ãšããã«ããŽãªããããŸããããŸããŸãªãªãŒãã£ãªåŠçãèšè¿°ããããã®èšèªãšããåŽé¢ã匷ãã§ããé³æ¥œçãªå¹æãèšè¿°ããããã«äœ¿ãããšããŸãã«ããã®ã§ãDAWã®ä»äºãšéè€ãããšããããããŸãã䜿çšãããŠããäœã¬ãã«ã®ãœãããŠã§ã¢åºç€ãåæ§ã®æ§æã«ãªã£ãŠããããšã¯å€ãã§ãã | |
+2020幎ã®æ¬çå·çæç¹ã§ã¯ãã©ã€ãã³ãŒãã£ã³ã°ç³»ã®èšèªãšããŠåºãç¥ãããŠããã®ã¯TidalCyclesãSonic PiãSuperColliderãExtemporeãªã©ãæããããã§ãããã | |
+ | |
### MMLã®ç³»è | |
//image[mml][MML (mugene samples)][scale=0.8] | |
-MML (music macro language@<fn>{not-music-markup})ã¯ãïŒAPLãšã¯ç°ãªãïŒé³æ¥œãèšè¿°ããç®çã§äœãããåçš®ã®èšèªã®ç·ç§°ã§ããçè ãã³ã³ãã€ã©ãŒãéçºããŠå ¬éããŠããã®ã§ãã@<fn>{mugene}ãMIDIåœä»€ã®ãããªå¯èªæ§ã®äœããã®ãèªã¿ãããç°¡æœã«èšè¿°ãããã®ã§ãïŒããšãã°ããªã¯ã¿ãŒã4ã®ããã®ããŒãã»ãªã³ã`[90h, 40h, 50h]`ãªã©ãšèšè¿°ãã代ããã« `o4c`ã§ããŸããïŒã20äžçŽã«æ ããŠããæè¡ã§ãããããšããšã¯å¯Ÿè±¡ãšãªãé³æºãMIDIã§ã¯ãªãFMé³æºããããªã©ã§ãããDAWãã¡ã€ã³ã¹ããªãŒã ã«ãªã£ãçŸåšã§ã¯ããŸã䜿ãããŠããŸããã | |
+MML (music macro language@<fn>{not-music-markup})ã¯ãïŒAPLãšã¯ç°ãªãïŒé³æ¥œãèšè¿°ããïŒäœç·šæ²ããïŒç®çã§äœãããåçš®ã®èšèªã®ç·ç§°ã§ããçè ãã³ã³ãã€ã©ãŒãéçºããŠå ¬éããŠããã®ã§ãã@<fn>{mugene}ãMIDIåœä»€ã®ãããªå¯èªæ§ã®äœããã®ãèªã¿ãããç°¡æœã«èšè¿°ãããã®ã§ãïŒããšãã°ããªã¯ã¿ãŒã4ã®ããã®ããŒãã»ãªã³ã`[90h, 40h, 50h]`ãªã©ãšèšè¿°ãã代ããã« `o4c`ã§ããŸããïŒã20äžçŽã«æ ããŠããæè¡ã§ãããããšããšã¯å¯Ÿè±¡ãšãªãé³æºãMIDIã§ã¯ãªãFMé³æºããããªã©ã§ãããDAWãã¡ã€ã³ã¹ããªãŒã ã«ãªã£ãçŸåšã§ã¯ããŸã䜿ãããŠããŸãããããããã¥ãŒã³ç³»ã®äœæ²è ãããŸã«äœ¿ãããšããããŸãã | |
//footnote[mugene][https://github.com/atsushieno/mugene] | |
@@ -92,6 +92,27 @@ APLãçã®MIDIã¡ãã»ãŒãžãæ±ãã©ã€ãã©ãªã§ã¯ããé³æ¥œãã | |
//footnote[not-music-markup][Music Markup Languageã§MMLãšãããã®ãååšããŸãããå šãã®å¥ç©ã§ã] | |
//footnote[mml-literal][åç¬ã®ã³ã³ãã€ã©ãŒããŒã«ã§ã¯ãªããã©ã€ãã©ãªãšããŠæäŸããŠãæååãªãã©ã«ãã³ã³ãã€ã«ããããšããããã¡ã§ã䜿ããã§ããããããŠãŒã¶ãŒãéçºããŒã«ãæããªããšãããªããªãã®ã¯ããã£ãŠé¢åãªã®ã§ãDSLã®äžçš®ãšèããŠèšè¿°ããã»ãããŸã è¯ãã§ãããã] | |
+MMLé¢é£ããŒã«ã«ã¯ãç¹ã«ããŒã¿ãã©ãŒããããç¬èªã§ããå Žåã¯ãã¬ã€ã€ãŒãšãªããœãããŠã§ã¢ãå¿ èŠã§ããããã¬ã€ã€ãŒãéçºãããšãã¯ïŒæ¬æ ŒçãªDAWã«æ¯ã¹ããšã ãã¶è»œéãªä»äºã§ã¯ãããã®ã®ïŒå°çšã®ã·ãŒã±ã³ãµãŒãšã³ãžã³ãå®è£ ããå¿ èŠããããŸããããŒã¿ãã©ãŒããããSMFã§ãã£ãããäžéšã®FMé³æºçšé³æ¥œããŒã¿ãªã©æ¢ã«ãã¬ã€ã€ãŒãååšãããããªæ¢ç¥ã®ãã©ãŒããããªã©ã§ããã°ãèªåã§ã·ãŒã±ã³ãµãŒãšã³ãžã³ãå®è£ ããå¿ èŠã¯ãªãã§ãããã | |
+ | |
+ | |
+## ãªãŒãã£ãªéçºã«é©ããèšèªãšãã®ç¹åŸŽ | |
+ | |
+ããã°ã©ãã³ã°ã«ããããªãŒãã£ãªåŠçã®äžçã¯ããç¹æ®ãªç©ºéã§ããå³ãããªã¢ã«ã¿ã€ã èŠä»¶ãæºè¶³ããããã«ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ããã«ãå šãŠã®ã¹ã¬ãããåæ¢ãããŠã¡ã¢ãªãååããããããªåŠçãããå®è¡æã«å¿ èŠã«ãªã£ããä»®æ³ãã·ã³ã³ãŒãããã€ãã£ãã³ãŒãã«æéããããŠã³ã³ãã€ã«ãããJITã®ãããªåŠçã¯åããŠããªããšãããŠããŸãããã®ãããJavaã.NETã®ãããªä»®æ³ãã·ã³æè¡ãå ¥ã蟌ãããšãã»ãŒãããŸãã@<fn>{vstnet}ã | |
+ | |
+//footnote[vstnet][VST2 SDKã.NET APIåããã ãã®VST.NETãšãããããžã§ã¯ãããããŸãããããã¯GCã«ããé 延ãå容ãããšããåæã§äœããããã®ã§ããVST3ã«ã察å¿ããŠããŸããã] | |
+ | |
+ãã®ããããªãŒãã£ãªããã°ã©ã éçºã«ãããŠã¯ãC++ãããã€ãã£ãã³ãŒããšããŠã³ã³ãã€ã«æžã¿ã®å®è¡ãã€ããªãçæããç¹æ®ãªèšèªããã³éçºããŒã«ã䜿ãããŸããAppleãã©ãããã©ãŒã å°çšã®ã³ãŒãã§ã¯SwiftãObjective-CãçšããããŸãïŒGUIã ãSwiftããšãããã©ã°ã€ã³ãå°ãªããªãã§ãããïŒãC++以å€ã§ææèŠãããŠããèšèªã¯Rustã§ãããŸããæ±çšèšèªã§ããlibsoundioã®éçºè ãèšèšããŠããZigã¯ããªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³éçºã念é ã«çœ®ããŠèšèšãããŠããŸãã@<fn>{v} | |
+ | |
+//footnote[v][ä»ã«ã¯Vèšèªãªã©ãno JIT, no GCã§ãªãŒãã£ãªéçºãšã®çžæ§ãè¯ãããã§ããã宣äŒåã極端ã«åŒ·ãèšèªã§å®æ ãšã®ä¹é¢ã倧ãããšããåŽé¢ãããã®ã§ãããã§ã¯è泚ã§ã®èšåã«ãšã©ããŸãã] | |
+ | |
+//footnote[julia-aot][Juliaã«ã¯AOTã§åäœãããããæ¹ããããããªã®ã§ãAOTã§å®çšäžåé¡ãªããã°ããã¯é害ã§ã¯ãªããããããŸããã] | |
+ | |
+ãã€ãã£ãã³ãŒãçæã®æèã§ããç»å Žããã®ãLLVMã§ããLLVMã¯APLïŒaudio programming languageããªãŒãã£ãªããã°ã©ã éçºèšèªïŒã®ããã¯ãšã³ãã«ãããçšããããŸãããã®æ¹é¢ã§ã¯FAUSTãããç¥ãããŠããŸãã2020幎ãŸã§JUCEã®éçºå ã§ãã£ãROLI@<fn>{roli}ã2018幎ã«SOULãšããé¡äŒŒã®èšèªãã¢ããŠã³ã¹ããŠããŸããäžæ¹ã§JITã§ã¯ãªãéçã³ãŒãçæãæåŸ ãããããšããã£ãŠãïŒAPLã§ã¯ãªãæ±çšèšèªã§ããïŒåãLLVMèšèªã®ç³»èã§ãç¬èªã®å®è¡ã¢ãžã¥ãŒã«åœ¢åŒããã¡JITãåºæ¬ãšããJuliaãªã©ã¯äŒŒãŠéãªãåé¡ã§ãããšãããŸã@<fn>{julia-aot}ã | |
+ | |
+![FAUSTã®ã³ãŒãäŸïŒå ¬åŒããã¥ã¡ã³ãã®Additive SynthesisïŒ](faust-example.png) | |
+ | |
+//footnote[roli][ROLIã¯2020幎ã«JUCEéçºããã³ã©ã€ã»ã³ã·ã³ã°ã®ããžãã¹ãPACE瀟ã«å£²åŽããŠããŸããã©ã€ã»ã³ã¹è¡šèšãªã©ã«ãããéçºäŒæ¥ã®å矩ã¯ãJUCEã®äŒçµ±çãªéçºäŒæ¥ã®å矩ã§ãã£ãRaw Material Softwareãšãªã£ãŠããŸãã] | |
+ | |
## é³æ¥œããŒã«éçºã®èª²é¡ | |
@@ -123,36 +144,33 @@ DAWã®ãããªãœãããŠã§ã¢ã¯ãäŒçµ±çã«ãã¹ã¯ãããã§è¡ã | |
| ãã©ã°ã€ã³æ©æ§ | Windows | Mac | Linux | iOS | Android | | |
| ------------------ | ------------ | --- | ----- | --- | -------- | | |
-| VST v2 ïŒå ¥æäžå¯èœïŒ | â | â | â | â | â | | |
-| VST v3 | â | â | â | â | â | | |
-| AU (AudioUnit) | â | â | â | â | â | | |
-| DSSI | â | â | â | â | â | | |
-| Lv2 (LADSPA v2) | (â) | (â) | â | â | â | | |
-| DirectX Plugins | â | â | â | â | â | | |
+| VST | â | â | â | - | - | | |
+| AU (AudioUnit) | - | â | - | â | - | | |
+| DSSI | - | - | â | - | - | | |
+| LV2 (LADSPA v2) | (â) | (â) | â | - | - | | |
+| DirectX Plugins | â | - | - | - | - | | |
ïŒAAXãªã©ãè€æ°ã®ãã©ã°ã€ã³ãã¹ãã«éãããŠãããšã¯èšããªãæè¡ã«ã€ããŠã¯é€å€ããŠããŸããïŒ | |
VSTãç¹ã«æåã§ãããVSTã¯v2ãšv3ã§å€§ããç°ãªããŸããVST v3ã¯GPLã§å ¬éãããŠãããLinuxããµããŒããããŠããã®ã§ãããVST v3ã®APIã®èšèšã«åºã¥ããã©ã°ã€ã³éçºãç ©éã«ãªã£ãããšããã£ãŠããçŸåšã§ãVST v2ã«åºã¥ããã©ã°ã€ã³ã®ã»ããå€ããšããã®ã2019幎åé ã®çŸç¶ã§ããVST v2ã¯æ¢ã«SteinbergãSDKãéå ¬éã«ããŠãããå ¥æäžå¯èœã«ãªã£ãŠããã®ã§ãä»åŸã¯æžå°ããŠããå¯èœæ§ãé«ãã§ãããã | |
-LADSPAãDSSIãLV2ã¯ãVSTããããã©ãšã¿ãªãªãœãããŠã§ã¢ã§MacãšWindowsãããµããŒãããŠããªãã£ãæ代ã«ãLinuxã§ãªãŒãã£ãªãã©ã°ã€ã³ãå®çŸããããã®ä»çµã¿ãšããŠéçºãããŸããããªãŒãã£ãªãã©ã°ã€ã³ã«ã¯äŒçµ±çã«åæ¥çšã®ãã®ãå€ãã£ãã®ã§ãããLADSPAã¯LGPLãLV2ã¯ISC Licenseã§å ¬éãããŠããŸããïŒVST v3ããã©ã€ãã©ãªã§ããã«ããããããGPLv3ã§å ¬éãããšããã®ã¯ãå®è³ªçã«åçšã©ã€ã»ã³ã¹è²©å£²ã®ããã®ã©ã€ã»ã³ã¹éžæã§ããïŒ | |
+AUãv2ãšv3ã§ã¯ããŒãæ¹åŒãªã©ã¢ãŒããã¯ãã£ãç°ãªãåŽé¢ãããïŒç¹ã«iOSã¯v3ã®ã¿ãµããŒããããŠããïŒã®ã§ãäžæŠã«ã¯åäžèŠåºæ¥ãªãã®ã§ããããããŸã§æŠèŠãšããŠèŠãŠãã ããã | |
+ | |
+VSTããããã©ãšã¿ãªãªãœãããŠã§ã¢ã§MacãšWindowsãããµããŒãããŠããªãã£ãæ代ã«ãLinuxã§ãªãŒãã£ãªãã©ã°ã€ã³ãå®çŸããããã®ä»çµã¿ãšããŠLADSPAãDSSIãLV2ãšãã£ãèŠæ ŒãéçºãããŸããããªãŒãã£ãªãã©ã°ã€ã³ã«ã¯äŒçµ±çã«åæ¥çšã®ãã®ãå€ãã£ãã®ã§ãããLADSPAã¯LGPLãLV2ã¯ISC Licenseã§å ¬éãããŠããŸããVST v3ããã©ã€ãã©ãªã§ããã«ããããããGPLv3ã§å ¬éãããšããã®ã¯ãå®è³ªçã«SDKã®åçšã©ã€ã»ã³ã¹è²©å£²ã®ããã®ã©ã€ã»ã³ã¹éžæã§ãã | |
-GUIéšåã§ãã©ãããã©ãŒã åºæã®å®è£ ãæ··åããå¿ èŠãå€ããšããç¹ã§ãLinuxãšã¯çžæ§ã®æªããœãããŠã§ã¢ã®é¡åãªã®ã§ããããªãŒãã£ãªãã©ã°ã€ã³ãäŸåããWindowsã®ãã©ãããã©ãŒã æ©èœãã©ã€ãã©ãªã¯æå°éã«æãããã®ãå€ããWineã§åäœãããã®ãå°ãªãããååšããŠããããã§ã@<fn>{vst-wine}ã | |
+GUIéšåã§ãã©ãããã©ãŒã åºæã®å®è£ ãæ··åããå¿ èŠãå€ããšããç¹ã§ãLinuxãšã¯çžæ§ã®æªããœãããŠã§ã¢ã®é¡åãªã®ã§ããããªãŒãã£ãªãã©ã°ã€ã³ãäŸåããWindowsã®ãã©ãããã©ãŒã æ©èœãã©ã€ãã©ãªã¯æå°éã«æãããã®ãå€ããWineã§åäœãããã®ãå°ãªãããååšããŠããããã§ã@<fn>{vst-wine}ãèå³ãããèªè ã¯airwave, LinVst, LinVst3, vst-bridge, yabridgeãšãã£ããããžã§ã¯ãã調ã¹ãŠã¿ãŠãã ããã | |
//footnote[vst-wine][ã©ã€ã»ã³ã¹ãã§ãã«ãŒãªã©ãOSãå³å¯ã«ãã§ãã¯ããçã®åé¡ã§æåŸ éãã«ã€ã³ã¹ããŒã«ãããªãããšãå€ãã§ãã] | |
ãã®ããã«ããã©ãããã©ãŒã ã«ãã£ãŠãã©ãã©ã®äžçã«ãªã£ãŠãããªãŒãã£ãªãã©ã°ã€ã³ã§ãããè€æ°ã®ãã¹ãã§åäœããããšãæ±ããããããšããã£ãŠãåºæ¬çãªèŠæ±äºé ã¯ã©ã®ãã©ã°ã€ã³æ©æ§ã§ãã»ãŒåæ§ïŒãªãŒãã£ãª/MIDI ã®å ¥åããåºåãŸã§ã®ãã€ãã©ã€ã³åŠçïŒã§ãããšãããŸãããã®ãããããããçµ±äžããã¯ãã¹ãã©ãããã©ãŒã ã®APIãæäŸããã©ã€ãã©ãªãéçºãããŠããŸãããæåã©ããã§ã¯**JUCE**ã**IPlug2**ïŒ2018幎以åã¯WDLïŒãªã©ãæããããŸããæ¬æžã§é »ç¹ã«èšåããtracktion_engineãJUCEã®ã¢ãžã¥ãŒã«ã§ãã | |
-ãããã®ãªãŒãã£ãªãã©ã°ã€ã³ã¯çŸç¶ã»ãŒC++ã®ç¬å£å Žã§ãããä»ã®ããã°ã©ãã³ã°èšèªã§ã¯ã»ãšãã©éçºãããŠããªãç¶æ ã§ãããã®çç±ã¯äž»ã«ãªãŒãã£ãªã®å³æ Œãªäœã¬ã€ãã³ã·ãŒèŠæ±ã«ãããã®ã倧ããã§ã@<fn>{low-latency-requirements}ãè¿å¹Žã§ã¯Rustã®ãããªèšèªã§ããã®èŠæ±ãæºãããã¯ãã§ãããC++æšæºãèšèªæ©èœãæ¹åãã€ã€ãããC++ããã®å€§èŠæš¡ãªç§»è¡ãèµ·ãããã©ããã¯æªã ã«äºèŠãããããšããã§ãã | |
- | |
-//footnote[low-latency-requirements][ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãJITã³ã³ãã€ã«ãªã©ã§ãªãŒãã£ãªåŠçãæ¢ãŸã£ãŠã¯ãªããªãããã§ãã] | |
- | |
### é³æ¥œã®ããŒã¿ã¢ãã«ãšæŒå¥ãšã³ãžã³ | |
ãªãŒãã£ãªãMIDIã®I/Oãå®çŸãããªãŒãã£ãªãã©ã°ã€ã³ãMIDI楜åšã«ãã£ãŠé³æºãçšããçºé³ãå¯èœã«ãªã£ããã次ã¯é³æ¥œãæŒå¥åœä»€ã®éåäœãšããŠè¡šçŸããããŒã¿ã¢ãã«ãšããããå¿ å®ã«æŒå¥ãããã¬ã€ã€ãŒããããŠãã®æŒå¥ããŒã¿ãç·šéã§ããæ©èœãå¿ èŠã«ãªããŸãã | |
ãã£ãããªãŒãã£ãªI/OããªãŒãã£ãªãã©ã°ã€ã³ã®APIãæœè±¡åããŠããŸããšããã®éšåã¯çŽç²ã«ãã©ãããã©ãŒã ããªãŒãã£ãªãã©ã°ã€ã³ã®APIããç¬ç«ãããçŽç²ãªããŒã¿ã¢ãã«ã ãã§å®çŸã§ããéšåã§ãããããæãããããããè¡šããã®ãMIDIèŠæ Œã§ãããæšæºMIDIãã¡ã€ã«ã§ãã | |
-ãã£ãšããMIDIã§è¡šçŸã§ããç¯å²ã§é³æ¥œãååã«è¡šçŸã§ããã®ã§ããã°ãçŸä»£ã§ãMIDIé³æºãDTMã®äžå¿ã«ãªã£ãŠããããšã§ããããçŸå®ã¯ããã¯ãªããããªãŒãã£ãªãã©ã°ã€ã³åºæã®æ©èœãå©çšããããMIDIã§ã¯æ±ããããªãæ°ã®é³æºãæäœããããMIDIä»æ§ã«ã¯å«ãŸããªããããªé«åºŠãªã³ã³ãããŒã«åœä»€ãé§äœ¿ãããããšãã£ãã¢ãã³ãªææ³ã«åºã¥ããŠãäœæ²äœæ¥ãè¡ãããŸãã | |
+MIDIã§è¡šçŸã§ããç¯å²ã§é³æ¥œãååã«è¡šçŸã§ããã®ã§ããã°ãçŸä»£ã§ãMIDIé³æºãDTMã®äžå¿ã«ãªã£ãŠããããšã§ããããçŸå®ã¯ããã¯ãªããããªãŒãã£ãªãã©ã°ã€ã³åºæã®æ©èœãå©çšããããMIDIã§ã¯æ±ããããªãæ°ã®é³æºãæäœããããMIDIä»æ§ã«ã¯å«ãŸããªããããªé«åºŠãªã³ã³ãããŒã«åœä»€ãé§äœ¿ãããããšãã£ãã¢ãã³ãªææ³ã«åºã¥ããŠãäœæ²äœæ¥ãè¡ãããŸãã | |
ãšã¯ãããMIDIã®æ代ã«ç¢ºç«ããæè¡ã®å€ãã¯çŸä»£ã§ãéçšãããã®ã§ããããšãã°é³æ¥œããã©ãã¯ã®éåäœãšããŠè¡šçŸãããã®äžã«ïŒã°ã«ãŒãã³ã°ãããããŒã¿ã®å±éãªã©ã¯ãŸãå¥ãšããŠïŒããŒããªã³ãããŒããªããã³ã³ãããŒã«ãã§ã³ãžãªã©ã®åœä»€ãšã¿ã€ã ã¹ã¿ã³ããçµã¿åãããŠæŒå¥åœä»€ã®ã€ãã³ããšããŠãŸãšããæéã®èšç®ã¯ãã³ããš4åé³ç¬Šã®å解èœã«åºã¥ããŠæå®ããããšãã£ãæè¡èŠçŽ ã¯ãçŸä»£ã§ãæ¡çšãããŠããŸããDAWã®ã·ãŒã±ã³ãµãŒãšã³ãžã³ã¯é«åºŠãªåœä»€ããµããŒãããMIDIã·ãŒã±ã³ãµãŒãšã³ãžã³ã§ããããšèšã£ãŠãããã§ãããã | |
@@ -168,18 +186,19 @@ GUIã¯ãäŒçµ±çã«ã¯ãã©ãããã©ãŒã åºæã®æ©èœã§ãããã | |
ã¯ãã¹ãã©ãããã©ãŒã ã®GUIãã¬ãŒã ã¯ãŒã¯ã®äžã«ã¯ãç¬èªã«GUIéšåãã¬ã³ããªã³ã°ãããã®ãšãAPIã ããå ±éã§ããã©ã€ãã©ãªããã©ãããã©ãŒã å¥ã«å®è£ ããŠãã©ãããã©ãŒã åºæã®GUIéšåãåŒã³åºããã®ããããŸããåŸè ã®ã¢ãããŒãã¯ããã¿ã³ãããã¹ãããã¯ã¹ããªã¹ããã¥ãŒãªã©ã«ã€ããŠã¯ãã©ã®ãã©ãããã©ãŒã ã§ãæäŸãããŠããã®ã§æå¹ã§ãããé³æ¥œãœãããŠã§ã¢ã«ã¯ç¹æã®GUIã³ã³ãããŒã«ïŒããšãã°ãããããã2軞ã¹ã©ã€ããŒãªã©ïŒãããããããã¯ãã©ãããã©ãŒã ãã€ãã£ãã§ã¯æäŸãããŠããŸãããvst4guiãJUCEãWDLã¯ããããæäŸããGUIã©ã€ãã©ãªãšããŠãéžã°ããŠããŸããã | |
-ãã ãGUIãã¬ãŒã ã¯ãŒã¯ã¯ããšãããã°ã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªæ§é ãã²ããŠã¯éçºèšèªãŸã§ææãããã®ã§ãããæ¢åã®ãã®ããããšããŠãããã䜿ããã©ããã¯ã¢ããªã±ãŒã·ã§ã³ã®èšèšæ¬¡ç¬¬ã§ããããéã«ãJUCEãWDLãå©çšã§ãããšããçç±ã§C++ãéžã°ããŠãããšããåŽé¢ã¯ããªã倧ããã§ããããäžæ¹ã§JUCEã§éçºãããGUIã¯âŠå¹³ããããã°ãæªçãããŸããªããã§ãïŒè©Šãã«Linuxäžã§JUCEã§å®è£ ããããã¡ã€ã«ãã€ã¢ãã°ãéããŠã¿ããšããããŸããã¡ã€ã³ã¡ãã¥ãŒã¯ã©ã®ãã©ãããã©ãŒã ã§ãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ããŒãå¹ããŸããïŒããGUIã¯ãã©ãããã©ãŒã ããšã«å®è£ ãããã¹ãããšèšãããŠãä»æ¹ãªãã¬ãã«ã§ãã | |
+ãã ãGUIãã¬ãŒã ã¯ãŒã¯ã¯ããšãããã°ã¢ããªã±ãŒã·ã§ã³ã®å šäœçãªæ§é ãã²ããŠã¯éçºèšèªãŸã§ææãããã®ã§ãããæ¢åã®ãã®ããããšããŠãããã䜿ããã©ããã¯ã¢ããªã±ãŒã·ã§ã³ã®èšèšæ¬¡ç¬¬ã§ããããéã«ãJUCEãWDLãå©çšã§ãããšããçç±ã§C++ãéžã°ããŠãããšããåŽé¢ã¯ããªã倧ããã§ããããäžæ¹ã§JUCEã§éçºãããGUIã¯ãã©ãããã©ãŒã GUIããªã¹ãã¯ãããUIã«æ¯ã¹ããšå€§ããå£ããŸã@<fn>{juce-linux-gui}ãã¢ãã€ã«ãã©ãããã©ãŒã ã§ã¯ãããGUIã¯ãã©ãããã©ãŒã ããšã«å®è£ ãããã¹ãããšãã䞻匵ãèŠãããŸããããã¹ã¯ãããã§ãåœç¶ã«åæ§ã®è°è«ããããçžå¿ã®åŠ¥åœæ§ããããŸãã | |
+ | |
+//footnote[juce-linux-gui][è©Šãã«Linuxäžã§JUCEã§å®è£ ããããã¡ã€ã«ãã€ã¢ãã°ãéããŠã¿ããšããããŸããã¡ã€ã³ã¡ãã¥ãŒã¯ã©ã®ãã©ãããã©ãŒã ã§ãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ããŒãå¹ããŸããã] | |
ãã£ãšããGUIã§ããã¯ãã¹ãã©ãããã©ãŒã ã»ã¯ãã¹å¶äœç°å¢ã§ãµããŒããããã¹ãæ©èœãç¡ãããã§ã¯ãããŸãããããšãã°ã³ã³ãããŒã«ã»ãµãŒãã£ã¹ãã«ã¹ã¿ã å¶åŸ¡ããããã®UIãäœæããæ©èœããããŸãããããã¯ãŠãŒã¶ãŒãæå®ãããªãŒãã£ãªã»ãã©ã°ã€ã³ã®ãã©ã¡ãŒã¿ãŒã«å¯ŸããŠããããå¶åŸ¡ã§ãããããªGUIã³ã³ãããŒã«ïŒããããªã©ïŒãèªç±ã«å²ãåœãŠããããã¥ãŒã衚瀺ã§ãããããªä»®æ³ã³ã³ãããŒã«ã»ãµãŒãã£ã¹ãäœæããæ©èœãããã§ãããããããã¯ããçšåºŠãã©ãããã©ãŒã ãDAWããç¬ç«ããæšæºçãªååšãããã¹ããªã®ãããããŸããã | |
ããã²ãšã€ããããããã¹ãåŽãšãã©ã°ã€ã³åŽã§äºæ ãç°ãªãã®ãããã©ã°ã€ã³åŽã®GUIã¯ãèªèº«ãšç¡é¢ä¿ãªããŒã€ãã³ãçããã¹ãåŽã§åŠçããããã«ä»åããŠãããªããšãããªãïŒèªèº«ã§å šãŠã®ããŒã€ãã³ããåŠçããããšã«ããŠã¯ãªããªãïŒç¹ã§ããããã¯äžè¬çãªã¢ãŒãã«ãã€ã¢ãã°ã®UIãšã¯ç°ãªããšããã§ãããã®ããã«æäœã®æææš©ã®æåšãäžæçãªGUIã®æ§æã¯ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãšããŠäžé©åã§ãããšçè ã¯èããŸãããæ¢åã®ãªãŒãã£ãªãã©ã°ã€ã³ããã©ã°ã€ã³ãã¹ãã¯ãã»ãŒäŸå€ãªããã®ãããªUIèšèšãåæãšããŠæ§ç¯ãããŠããŸãã | |
+æ¬æžã§ãšãŠãèšåã§ãããã«ãªã話é¡ãšããŠããªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³ã«ããé«æ°Žæºã®ã¢ããªã±ãŒã·ã§ã³éçºã¢ãŒããã¯ãã£ãã©ãé©çšãããããšããåé¡ããããŸãããšãŠãèšåã§ãããã«ãªãã®ã¯ãçè ã®ç¥èäžè¶³ãšããããããªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³ã®äžçã§äœ¿ãããŠããGUIããŒã«ãããããããŸã§æçããŠããªããšããåé¡ã倧ããã§ããçŸç¶ã§ã¯GUIãåé¢ã§ããŠããã°è¯ãã»ãã§ãFlux, M-V-whateverïŒMVVM, MVU, MVIãªã©ïŒãšãã£ã話é¡ã¯ãªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³éçºã§ã¯ã»ãšãã©èŠãããŸãããããã©ãããç¬èªUIããŒã«ãããã«ç«èããŠããããã«ãã©ãããã©ãŒã ã®UIã¬ã€ãã©ã€ã³ã«æ²¿ã£ãŠãããªããã¢ã¯ã»ã·ããªãã£å¯Ÿå¿ãªã©ã匱ãâŠãšãã£ããã®ãå€ãã§ãããã®ãããªçŸç¶ã§ããã¹ãã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ã«ã€ããŠè°è«ããã®ã¯ãæ®å¿µãªããçè ã®æã«ã¯äœããŸãã | |
+ | |
### GUIããåãé¢ãããé³æ¥œç·šéæ©èœ | |
æåŸã«ãDAWã§ã¯é³æ¥œãåçããã ãã§ã¯ãªããç·šéãåºæ¥ãªããã°ãªããŸããããããã·ãŒã±ã³ãµãŒãšã³ãžã³ã«æåŸ ãããæ©èœã®ã²ãšã€ã§ããããã¯GUIããã®æäœã«å¯Ÿå¿ããæ©èœãå®çŸãããã®ã§ãåãªãåçæ©èœã«æ¯ã¹ããšæ Œæ®µã«è€éãªæ©èœã§ãããšãããŸãã | |
-GUIãã®ãã®ã¯ãã©ãããã©ãŒã ã«åŒ·ãçµã³ã€ããããã¡ã§éçºãããããšãå€ãã§ãããGUIã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠãUIãšããžãã¯ã®åé¢ãæ±ããããããã«ãªã£ãŠããããšãã£ã¿ãŒãšããŠã®æ©èœãGUIããåãé¢ããŠãã©ãããã©ãŒã äŸåãæé€ãããšããã®ããæè¡ãã¬ã³ãã®ã²ãšã€ã§ãããšãããŸãã | |
- | |
- | |
- | |
+GUIãã®ãã®ã¯ãã©ãããã©ãŒã ã«åŒ·ãçµã³ã€ããããã¡ã§éçºãããããšãå€ãã§ãããGUIã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠãUIãšããžãã¯ã®åé¢ãæ±ããããããã«ãªã£ãŠããããšãã£ã¿ãŒã®ããã«GUIäžã§åäœããããšã倧åæã®ã¢ããªã±ãŒã·ã§ã³ã§ãã£ãŠããããŸããŸãªæ©èœãGUIããåãé¢ããŠãã©ãããã©ãŒã äŸåãæé€ãããšããã®ããæè¡ãã¬ã³ãã®ã²ãšã€ã§ãããšãããŸãã | |
diff --git a/2-raw-audio-midi-access.md b/2-raw-audio-midi-access.md | |
index 6a42792..1f22a3f 100644 | |
--- a/2-raw-audio-midi-access.md | |
+++ b/2-raw-audio-midi-access.md | |
@@ -1,20 +1,23 @@ | |
-# ãªãŒãã£ãª/MIDIã®ãã€ãã£ãã¢ã¯ã»ã¹ | |
+# ãªãŒãã£ãª/MIDIãžã®ã¢ã¯ã»ã¹ | |
ã·ãŒã±ã³ãµãŒã»ãšã³ãžã³ãäœæããå ŽåããªãŒãã£ãªãMIDIã®æ©èœã«ã¢ã¯ã»ã¹ããã¢ãããŒãã¯2ã€ããããŸãã | |
-- æ¢åã®ãªãŒãã£ãªãã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ã«å«ãŸããæ©èœã䜿ã | |
+- æ¢åã®ãªãŒãã£ãªéçºãã¬ãŒã ã¯ãŒã¯ã«å«ãŸããæ©èœã䜿ã | |
- èªåã§ãªãŒãã£ãªãMIDIã«çŽæ¥ã¢ã¯ã»ã¹ãã | |
-åè ã®äŸãšããŠã¯ãJUCEãWDL/iPlug2ãCarlaãšãã£ãã©ã€ãã©ãªãæããããŸãããããã䜿ãã°ããã®ç« ã§èª¬æãããããªãªãŒãã£ãªI/OãMIDI I/Oã«ã€ããŠãèªåã§å®è£ ãã¹ãããšã¯äœããããŸããããããã®ã©ã€ãã©ãªã¯åçšã§äœ¿ãå Žåã«ã¯æ³šæãã¹ããã®ãããã®ã§@<fn>{audio-plugin-fx-licensing}ãèªè ã«ãã£ãŠã¯èªåã§éçºããããšèãããããããŸããã | |
+åè ã®äŸãšããŠã¯ãJUCEãWDL/iPlug2ãšãã£ãã©ã€ãã©ãªãæããããŸãããããã䜿ãã°ããã®ç« ã§èª¬æãããããªãªãŒãã£ãªI/OãMIDI I/Oã«ã€ããŠãèªåã§å®è£ ãã¹ãããšã¯äœããããŸããããããã®ã©ã€ãã©ãªã¯åçšã§äœ¿ãå Žåã«ã¯æ³šæãã¹ããã®ãããã®ã§@<fn>{audio-plugin-fx-licensing}ãèªè ã«ãã£ãŠã¯èªåã§éçºããããšèãããããããŸããã | |
//footnote[audio-plugin-fx-licensing][ããšãã°JUCEã®å Žåãã©ã€ãã©ãªå šäœã¯GPLv3ãããã¯åçšã©ã€ã»ã³ã¹ã§ãããOSSã©ã€ã»ã³ã¹ã§ããå©çšã§ããªãç¶æ³ã§ã¯Appleã®App Storeã«ã¯ãªãªãŒã¹ã§ããŸããããªãŒãã£ãªI/OããµããŒããã`juce_audio_devices`ãªã©äžéšã®ã³ã³ããŒãã³ãã¯ISCã©ã€ã»ã³ã¹ã§æäŸãããŠããŸãã] | |
ãããã«ãããæ¬æžã¯ã·ãŒã±ã³ãµãŒã»ãšã³ãžã³ã§äœ¿çšãããŠããæè¡ã解説ãããã®ãªã®ã§ããªãŒãã£ãªãã©ã°ã€ã³ããã©ãã¯ããã¯ã¹ãšããŠã¹ã«ãŒããã®ã§ã¯ãªãããã®äžã§äœ¿çšãããæè¡ãå解ããŠçºããã®ãçã§ãããããã®ç« ã¯ããªãŒãã£ãªãMIDIã«èªåã§ã¢ã¯ã»ã¹ããå Žåã«å¿ èŠã«ãªãAPIãã©ã€ãã©ãªã玹ä»ããŸãã | |
+ | |
## MIDIã¢ã¯ã»ã¹API | |
-MIDIã¯æ¬æ¥ãããã€ã¹äžç«ã®èŠæ Œã§ããããã©ãããã©ãŒã äžç«ã®èŠæ Œã§ãããããããã©ãããã©ãŒã äžç«ã®ä»æ§ã§ããã¯ãã®MIDIããã€ã¹ã«ã¢ã¯ã»ã¹ããããã«ã¯ããã©ãããã©ãŒã åºæã®APIã䜿çšããŠã¢ã¯ã»ã¹ããããšã«ãªããŸããäžè¬çã«ã¯ãããŒããŠã§ã¢ã«ã¢ã¯ã»ã¹ããã«ã¯OSå¥ã«å®è£ ãããããã€ã¹ãã©ã€ããŒãå¿ èŠã§ããïŒãŸãMIDIèŠæ Œã¯USBèŠæ Œãèªçãã以åããååšããå€ãä»æ§ã§ããïŒãããã€ã¹ãã©ã€ããŒã«åºã¥ããŠMIDIããã€ã¹ãšããŠèªèããããã®ããã©ãããã©ãŒã ã§ã©ã®ããã«ã¢ã¯ã»ã¹ãããã¯ããã©ãããã©ãŒã ã®éçºèšèªããã¬ãŒã ã¯ãŒã¯ã«ããããã§ããåãOSãããšãã°Windowsã§ããå€ãããããCã§å©çšã§ããWindows Multimedia APIïŒWinMMïŒãšãC#ãJavaScript (WinJS)ã§å©çšã§ããUniversal Windows Platform (UWP)ã§ã¯ãéçºèšèªããã¬ãŒã ã¯ãŒã¯ãç°ãªããŸãã | |
+MIDIã¯æ¬æ¥ãããã€ã¹äžç«ã®èŠæ Œã§ããããã©ãããã©ãŒã äžç«ã®èŠæ Œã§ãããããããã©ãããã©ãŒã äžç«ã®ä»æ§ã§ããã¯ãã®MIDIããã€ã¹ã«ã¢ã¯ã»ã¹ããããã«ã¯ããã©ãããã©ãŒã åºæã®APIã䜿çšããŠã¢ã¯ã»ã¹ããããšã«ãªããŸããäžè¬çã«ã¯ãããŒããŠã§ã¢ã«ã¢ã¯ã»ã¹ããã«ã¯OSå¥ã«å®è£ ãããããã€ã¹ãã©ã€ããŒãå¿ èŠã§ãïŒMIDIèŠæ Œã¯USBèŠæ Œãèªçãã以åããååšããå€ãä»æ§ã§ããããŸãMIDI I/Oã¯ãªã¢ã«ã¿ã€ã æ§ã®ç¢ºä¿ã®ããã«OSã®æ ¹å¹¹ã«é¢ãããšããåŽé¢ããããŸã@<fn>{web-midi-realtime}ïŒãããã€ã¹ãã©ã€ããŒã«åºã¥ããŠMIDIããã€ã¹ãšããŠèªèããããã®ããã©ãããã©ãŒã ã§ã©ã®ããã«ã¢ã¯ã»ã¹ãããã¯ããã©ãããã©ãŒã ã®éçºèšèªããã¬ãŒã ã¯ãŒã¯ã«ããããã§ããåãOSãããšãã°Windowsã§ããå€ãããããCã§å©çšã§ããWindows Multimedia APIïŒWinMMïŒãšãC#ãJavaScript (WinJS)ã§å©çšã§ããUniversal Windows Platform (UWP)ã§ã¯ãéçºèšèªããã¬ãŒã ã¯ãŒã¯ãç°ãªããŸãã | |
+ | |
+//footnote[web-midi-realtime][Web MIDI APIã§ä¿èšŒã§ããªãæ©èœã§ããããŸãã] | |
å°ã話é¡ã®å¯Ÿè±¡ãå€ããŠãMIDIããµããŒãããã©ã€ãã©ãªããšãŒãããŠèšããšãããã¯å¿ ããããã©ãããã©ãŒã äŸåã®æ©èœãšã¯éããŸãããããšãã°âŠ | |
@@ -42,10 +45,22 @@ MIDIã¯æ¬æ¥ãããã€ã¹äžç«ã®èŠæ Œã§ããããã©ãããã©ãŒã | |
å®ã®ãšããããã®æ©èœãªã¹ãã¯Web MIDI APIä»æ§ã§å®ããããŠããæ©èœãã®ãã®ã§ããããããé説çã§ãããMIDIä»æ§ã«åºã¥ããŠããã€ã¹ãšããåãã§ããæ©èœã¯ãã®çšåºŠã«éãããŠããŸãã | |
-2019幎çŸåšãMMA (MIDI Manufacturers Association)ã§ã¯ãMIDI 2.0ãšåŒã°ããä»æ§ã®çå®ãé²ããããŠããŸããæ¢ã«å ·äœåãã€ã€ããä»æ§ã®ãµãã»ãããšããŠã¯MIDI CI (Capability Inquiry)ãæããããŸããããã¯MIDIæ©åšã®æ©èœ@<fn>{midi-ci-examples}ã®ãµããŒãã®æç¡ããåãåãããããšãã§ããããšãããã®ã§ãã¡ãã»ãŒãžã³ã°ãåæ¹åã§ãå¿çãåãåãããšããæŠå¿µãç¡ãMIDI 1.0ã®ä»æ§ã ãã§ã¯ãŸãå®çŸã§ããªãæ©èœã§ãããã®ãããªæ°ããä»æ§ãå ¥ã£ãŠãããšãMIDIã¢ã¯ã»ã¹ã®ã©ã€ãã©ãªã«æ±ããããæ©èœãæ¡å€§ãããããããŸããã | |
+2020幎ã«ã¯ãMMA (MIDI Manufacturers Association)ã«ãã£ãŠMIDI 2.0ãšåŒã°ããä»æ§ãæ£åŒã«å ¬éãããŸããã2020幎ã®æ¬çå·çæç¹ã§ã¯ãŸã ç®ã«èŠãããã¬ã³ãã«ã¯ãªã£ãŠããŸããããMIDI 2.0ãµããŒããæ±ããããããã«ãªã£ãŠãããšã次ã®æ©èœãæåŸ ãããããã«ãªããŸãã | |
+ | |
+- MIDIããã€ã¹ã§ãµããŒãããŠããæ©èœïŒMIDI 2.0ãµããŒãã®æç¡ãå«ãïŒã®åãåãã (Capability Inquiry) | |
+- MIDIããã€ã¹ã®ããããã£ã®ååŸãšèšå® (Property Exchange) | |
+- MIDI 2.0 UMPã«åºã¥ãããŒã¿ãã±ããã®ã¡ãã»ãŒãžç·šæã»è§£æã»è»¢éã®ä»çµã¿ | |
+ | |
+MIDI 2.0 UMPã«ã€ããŠã¯ãMIDI 2.0ãããã³ã«ãMIDIã¢ã¯ã»ã¹APIã§ãµããŒããããŠããã°ãUMPã®ãµããŒããã®ãã®ã¯ãã©ãããã©ãŒã éäŸåã§å®è£ ã§ããŸã@<fn>{midi-2.0-guidebook}ãããã¯MIDI 1.0ã®ã¡ãã»ãŒãžãåçŽãªãã€ãé åã§ããåãã§ããã®ãšåæ§ã§ãã | |
+ | |
+//footnote[midi-2.0-guidebook][UMPã«ã€ããŠã¯çè ãå人èªãMIDI 2.0 UMPã¬ã€ãããã¯ããšããŠè©³ãããŸãšããŠããŸãã] | |
+ | |
+MIDI 2.0ã¯è€æ°ã®ä»æ§ã®éåäœã§ããããã®äžã®ã²ãšã€MIDI CI (Capability Inquiry)ã§ã¯ãMIDIæ©åšã®æ©èœ@<fn>{midi-ci-examples}ã®ãµããŒãã®æç¡ããåãåããããããšãã§ããŸããããã¯ã¡ãã»ãŒãžã³ã°ãåæ¹åã§ãå¿çãåãåãããšããæŠå¿µãç¡ãMIDI 1.0ã®ä»æ§ã ãã§ã¯ãŸãå®çŸã§ããªãæ©èœã§ããä»åŸãåOSãã©ãããã©ãŒã ã§MIDI 2.0ãµããŒããå®çŸããŠãããšãMIDIã¢ã¯ã»ã¹ã®ã©ã€ãã©ãªã«æ±ããããæ©èœãæ¡å€§ããã§ãããã | |
//footnote[midi-ci-examples][ããšãã°ããã®ããã€ã¹ã¯MPEãåŠçã§ããããããã®ããã€ã¹ã¯ãã³ã¯ã»ã»ã¬ã¯ããããã°ã©ã ã»ãã§ã³ãžã§æå®ã§ããé³è²ã®ãªã¹ããååãè¿ãããšãã§ãããããšãã£ãåãåãããèããããŸãã] | |
+ | |
+ | |
### ãã©ãããã©ãŒã å¥ã®MIDIã¢ã¯ã»ã¹API | |
MIDIã¢ã¯ã»ã¹ã®ãã€ãã£ãAPIã¯ããã©ãããã©ãŒã ããšã«ãã©ãã©ã§ããã次ã®ãªã¹ãã§æŠãåæåºæ¥ãŠããã§ãããã | |
@@ -86,22 +101,24 @@ portmidiã«ã¯å°ãçããããéåžžã¯åãªããã€ãåãšããŠéå | |
DAWã®åŠçã®å€§åã¯ç©¶æ¥µçã«ã¯ãªãŒãã£ãªåŠçã§ãããããªãŒãã£ãªåŠçãã«æ±ããããããšã¯æ°å€ããããŸããããŸããã®ç¯ã§ã¯ãã©ãããã©ãŒã ã®ãªãŒãã£ãªå ¥åºåã«é¢é£ããéšåãè°è«ããŸãããã | |
-### ãªãŒãã£ãªåçã®ã³ãŒã«ãã㯠| |
+### ãªãŒãã£ãªãã€ãã£ãã¢ã¯ã»ã¹ã®èŠæ±äºé | |
-æ¢ã«äœåºŠãèšåããŠããããšãªã®ã§ãç¹°ãè¿ãå¿ èŠãç¡ãã§ããããããªãŒãã£ãªI/Oã®APIããã©ãããã©ãŒã åºæã®ããã¡ã§çºå±ããŠãããã®ã§ããé³å£°ããŒã¿ã¯éåžžã¯åãªããµã³ããªã³ã°ããŒã¿ã§ããããã®ãã©ãŒãããã«æ³šæãæãã°ãåºæ¬çã«ã¯ãã©ãããã©ãŒã äžç«ã®ããã¡ã§åŠçã§ãããã®ã§ãâŠãšãããã ãã§ããã°åçŽã«èãããã®ã§ãããç¶æ³ãã²ãšã€ãããããããèŠå ãšããŠããªãŒãã£ãªåçã«ã¯ãå³å¯ãªåçæéãåçŸã§ããããªã¢ã«ã¿ã€ã åŠçããæ±ããããŸããããã¯ããã°ã©ãã³ã°èšèªã»ç°å¢ã«ãã£ãŠã¯å®çŸãå°é£ãªã®ã§@<fn>{garbage-collection}ããªã¢ã«ã¿ã€ã åŠçãå®çŸã§ããããã»ã¹ïŒã¹ã¬ãã空éã«éé¢ããŠåŠçãè¡ãããããšããããŸã@<fn>{android-audio}ã | |
+äœåºŠãç¹°ãè¿ãå¿ èŠãç¡ã話ã§ããããªãŒãã£ãªI/Oã®APIããã©ãããã©ãŒã åºæã®ããã¡ã§çºå±ããŠãããã®ã§ããé³å£°ããŒã¿ã¯éåžžã¯åãªããµã³ããªã³ã°ããŒã¿ã§ããããã®ãã©ãŒãããã«æ³šæãæãã°ãåºæ¬çã«ã¯ãã©ãããã©ãŒã äžç«ã®ããã¡ã§åŠçã§ãããã®ã§ãâŠãšãããã ãã§ããã°åçŽã«èãããã®ã§ãããç¶æ³ãã²ãšã€ãããããããèŠå ãšããŠããªãŒãã£ãªåçã«ã¯ãå³å¯ãªåçæéãåçŸã§ããããªã¢ã«ã¿ã€ã åŠçããæ±ããããŸããããã¯ããã°ã©ãã³ã°èšèªã»ç°å¢ã«ãã£ãŠã¯å®çŸãå°é£ãªã®ã§@<fn>{garbage-collection}ããªã¢ã«ã¿ã€ã åŠçãå®çŸã§ããããã»ã¹ïŒã¹ã¬ãã空éã«éé¢ããŠåŠçãè¡ãããããšããããŸã@<fn>{android-audio}ã | |
//footnote[garbage-collection][åãããããäŸãšããŠã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®åæ¢æéãJITã³ã³ãã€ã«æéãåé¡ã«ãªããŸã] | |
//footnote[android-audio][ããšãã°Androidã®ãªãŒãã£ãªAPIã¯Android NDKã§æäŸãããŠããŸã(OpenSL ES / AAudio)] | |
-ãããŠããªã¢ã«ã¿ã€ã åŠçãæé©ãªããã¡ã§å®çŸããããã®ã³ãŒãã®ããžãã¯ã¯ããã©ãããã©ãŒã ããšã«ç°ãªããŸãããªã¢ã«ã¿ã€ã ã®ãªãŒãã£ãªåŠçãšããã®ã¯ããªãŒãã£ãªåŠçããŒãåŠçæéã«è¿ã¥ãããšããããšã§ã¯ãªãã人éãã¿ã€ã ã©ã°ãæããªãçšåºŠã«ã¹ã©ã€ã¹ãããæéã®äžã§ããªãŒãã£ãªåºåããã€ã¹ã«é³å£°ããŒã¿ãæž¡ãåŠçããåžžã«ããé æ»ãªããè¡ãããšã§ããããé 延ãçãããšããã®æéã¯é³å£°ããŒã¿ãç¡ãããšã«ãªããé³å£°ãäžèªç¶ãªããåãã«ãªã£ãŠããŸããŸãããŸããé 延ããå Žåã«é³å£°ãåŒã䌞ã°ããããããšãäºå®ãããŠããæŒå¥æéãããå®éã®æŒå¥æéã®ã»ããé·ãã£ãããšãã£ãäºæ ãçããŠããŸããŸãã | |
+ãããŠããªã¢ã«ã¿ã€ã åŠçãæé©ãªããã¡ã§å®çŸããããã®ã³ãŒãã®ããžãã¯ã¯ããã©ãããã©ãŒã ããšã«ç°ãªããŸãããªã¢ã«ã¿ã€ã ã®ãªãŒãã£ãªåŠçãšããã®ã¯ããªãŒãã£ãªåŠçããŒãåŠçæéã«è¿ã¥ãããšããããšã§ã¯ãªãã人éãã¿ã€ã ã©ã°ãæããªãçšåºŠã«ã¹ã©ã€ã¹ãããæéã®äžã§ããªãŒãã£ãªåºåããã€ã¹ã«é³å£°ããŒã¿ãæž¡ãåŠçããåžžã«ããé æ»ãªããè¡ãããšã§ããããé 延ãçãããšããã®æéã¯é³å£°ããŒã¿ãç¡ãããšã«ãªããé³å£°ãäžèªç¶ãªããåãã«ãªã£ãŠããŸããŸãããŸããé 延ããå Žåã«é³å£°ãåŒã䌞ã°ããããããšãäºå®ãããŠããæŒå¥æéãããå®éã®æŒå¥æéã®ã»ããé·ãã£ãããšãã£ãäºæ ãçããŠããŸããŸãã@<fn>{adc19-realtime-101} | |
+ | |
+//footnote[adc19-realtime-101][ãªã¢ã«ã¿ã€ã ãªãŒãã£ãªåŠçã«ã€ããŠã¯ãAudio Developers Conference 2019ã®ã»ãã·ã§ã³åç»Real-time 101 (Part I / Part II)ãåèã«ãªããŸãã] | |
-ããã¯MIDIã®å Žåã«ãåãããšãèšããã®ã§ãããMIDIããŒã¿ã®éåä¿¡ãæ¯èŒçäœè² è·ã§ããã®ã«å¯ŸããŠããªãŒãã£ãªåŠçã®å Žåã¯ãªã¢ã«ã¿ã€ã ã§è€éãªå å·¥åŠçãèŠæ±ããã¡ãªã®ã§ãçŸå®çã«åé¡ã«ãªããŸãã | |
+ããã¯MIDIã®å Žåã«ãåãããšãèšããã®ã§ãããMIDIããŒã¿ã®éåä¿¡ãæ¯èŒçäœè² è·ã§ã¡ãã»ãŒãžã®ãããã¡ãªã³ã°ãåºæ¬çã«äžèŠã§ããã®ã«å¯ŸããŠããªãŒãã£ãªåŠçã®å Žåã¯ãªã¢ã«ã¿ã€ã ã§è€éãªå å·¥åŠçãèŠæ±ããã¡ãªã®ã§ãçŸå®çã«åé¡ã«ãªããŸãã | |
### å€æ§ãªã¯ãã¹ãã©ãããã©ãŒã ã»ãªãŒãã£ãªã©ã€ãã©ãª | |
-ãããã«ããããªã¢ã«ã¿ã€ã åŠçã®èŠæ±äºé ã«ããããããã«ããªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã©ãªã§ã¯ãå€ãã®å Žåã¯ãåªå 床ãã®é«ããªãŒãã£ãªã¹ã¬ããã確ä¿ããŠãããããã®ã³ãŒã«ããã¯ã§åçãããªãŒãã£ãªããŒã¿ãæž¡ãããšã«ãªããŸãããã®ãšããç¹ã«ãã€ãã£ãã®ãªãŒãã£ãªAPIã¯ã1åã®åŒã³åºãã§ãããã¡ãå šéšåãããåŠããã¿ãããªåä»ãªãšããã§éããçããŸããã¯ãã¹ãã©ãããã©ãŒã MIDIã®APIã«æ¯ã¹ããšãéçºè ã®æè¡çãªã»ã³ã¹ãæ±ããããäœå°ã倧ãã@<fn>{xplat-callback-support}ãå®éæ°å€ãã®ã¯ãã¹ãã©ãããã©ãŒã ã»ãªãŒãã£ãªã©ã€ãã©ãªãCãC++ã§éçºãããŠããŸããããã°ãã°ååãæãããããã®ã ãã§ããPortAudioãRTAudioãSDLãJUCEãOpenAL SoftãcucebïŒfirefoxã®ãªãŒãã£ãªåŠçã©ã€ãã©ãªïŒãªã©ããããŸãã | |
+ãããã«ããããªã¢ã«ã¿ã€ã åŠçã®èŠæ±äºé ã«ããããããã«ããªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³ãã©ã€ãã©ãªã§ã¯ãå€ãã®å Žåã¯ãåªå 床ãã®é«ããªãŒãã£ãªã¹ã¬ããã確ä¿ããŠãããããã®ã³ãŒã«ããã¯ã§åçãããªãŒãã£ãªããŒã¿ãæž¡ãããšã«ãªããŸãããã®ãšããç¹ã«ãã€ãã£ãã®ãªãŒãã£ãªAPIã¯ã1åã®åŒã³åºãã§ãããã¡ãå šéšåãããåŠããã¿ãããªåä»ãªãšããã§éããçããŸããã¯ãã¹ãã©ãããã©ãŒã MIDIã®APIã«æ¯ã¹ããšãéçºè ã®æè¡çãªã»ã³ã¹ãæ±ããããäœå°ã倧ãã@<fn>{xplat-callback-support}ãå®éæ°å€ãã®ã¯ãã¹ãã©ãããã©ãŒã ã»ãªãŒãã£ãªã©ã€ãã©ãªãCãC++ã§éçºãããŠããŸããããã°ãã°ååãæãããããã®ã ãã§ããPortAudio, RTAudio, libsoundio, SDL, JUCE, OpenAL Softãªã©ããããŸãã | |
-//footnote[xplat-callback-support][ããšãã°ã©ã®ãã©ãããã©ãŒã ã®ãªãŒãã£ãªAPIã§èŠæ±ãããã³ãŒã«ããã¯ã®ä»çµã¿ã«é©åããã³ãŒã«ããã¯å¯Ÿå¿APIãé©åã«èšèšããã»ã³ã¹ãæ±ããããŸãã] | |
+//footnote[xplat-callback-support][ããšãã°ãã©ãããã©ãŒã ããšã«ç°ãªããªãŒãã£ãªAPIã§ãèŠæ±ãããã³ãŒã«ããã¯ã®ä»çµã¿ã«é©åããã³ãŒã«ããã¯å¯Ÿå¿APIãé©åã«èšèšããã»ã³ã¹ãæ±ããããŸãã] | |
ãªãŒãã£ãªI/Oã®APIãæšæºåããåãã¯20äžçŽã«ã¯ãããŸããã§ãããWebãã©ãŠã¶ãããªãŒãã£ãªããã€ã¹ãžã®ã¹ããªãŒãã³ã°åºåããµããŒããããã®ãšããŠMozillaãFirefoxã§Audio Data APIãå ¬éãããã®åŸGoogleãChromeã§Web Audio APIãå ¬éããŠãçŸåšã§ã¯åŸè ãW3Cã§ä»æ§çå®ãããŠããŸãããªãŒãã£ãªããŒãã®æ¥ç¶ãªã©éå¿çã ãæšæºåããã®ã«çžå¿ãããã®ãªã®ãçå笊ãåºãŠããä»æ§ã§ãAudio Data APIã®ã»ããã·ã³ãã«ã ã£ãã®ã§ãããä»æ§çå®ãå§ãŸã£ãWeb Audio 2.0ã«ã¯Audio Data API䞊ã«ã·ã³ãã«ãªAPIãè¿œå ãããåãã§ããããã§ãã | |
@@ -113,6 +130,8 @@ DAWã«æ±ãããããªãŒãã£ãªã¢ã¯ã»ã¹ã®æ©èœã¯ãå®ã®ãšãã | |
ãã£ãšãããã®çšåºŠã®ç°¡åãªæ©èœã¯ãã»ãšãã©ã®ã¯ãã¹ãã©ãããã©ãŒã ã®ãªãŒãã£ãªI/Oã©ã€ãã©ãªã§æäŸãããŠããã§ãããããã ãMIDIãšåæ§ããªãŒãã£ãªããã€ã¹ã®æ¥ç¶ïŒè§£é€ã®éç¥ã®æç¡ã¯ããã©ãããã©ãŒã ã«ãã£ãŠç°ãªãå¯èœæ§ããããŸãïŒãããMIDIããã€ã¹ãšåæ§ãããŒãªã³ã°ããã°è§£æ±ºããåé¡ã§ã¯ãããŸãïŒã | |
+ãŸãããªãŒãã£ãªããã€ã¹ããã©ã€ããŒã«ã¯æé©ãªãµã³ããªã³ã°åšæ³¢æ°ãæé©ãªãããã¡ãµã€ãºãªã©ãããã€ãããã€ã¹æ å ±ããããŸããã¢ããªã±ãŒã·ã§ã³ãããããååŸããŠI/Oãæé©åã§ããããã«ãããããæäŸããAPIãæ±ããããŸãã | |
+ | |
### ãªãŒãã£ãªããŒã¿ã®å±æ§ | |
ãªãŒãã£ãªããŒã¿ã«ã¯ãããã€ãã®å±æ§ããããŸãã | |
@@ -128,7 +147,9 @@ DAWã«æ±ãããããªãŒãã£ãªã¢ã¯ã»ã¹ã®æ©èœã¯ãå®ã®ãšãã | |
èªåã§çæã§ãããªãŒãã£ãªããŒã¿ã§ããã°ãç°å¢ã«åãããŠæé©ãªãã®ãçšæããã®ãè¯ãã§ãããããäºåã«ããŒã¿ãããããªãå Žåã¯ãªãŒãã£ãªã¹ããªãŒã ã®èšå®ã調æŽãããããããã§ããªãã§ãããã | |
-ãªããå±æ§ã®ç°ãªããªãŒãã£ãªããŒã¿ããå€æããããšèªäœã¯ã¯ãã¹ãã©ãããã©ãŒã ãªããæ¹ã§å®çŸã§ããã®ã§ããããªãŒãã£ãªãªã¢ã«ã¿ã€ã åŠçã¯ã·ãã¢ãªãã®ãªã®ã§ããããã€ãã£ãã®ãªãŒãã£ãªAPIã§èª¿æŽå¯èœã§ããã°å¯èœãªéããã®ããæ¹ã§åŠçãããšããã¢ãããŒããæãŸãããšããã§ãããããããã¯ãã¹ãã©ãããã©ãŒã ã®ãªãŒãã£ãªã©ã€ãã©ãªã®èšèšã«åœ±é¿ãããšããã§ãã | |
+ãªããå±æ§ã®ç°ãªããªãŒãã£ãªããŒã¿ããå€æããããšèªäœã¯ã¯ãã¹ãã©ãããã©ãŒã ãªããæ¹ã§å®çŸã§ããã®ã§ããããªãŒãã£ãªãªã¢ã«ã¿ã€ã åŠçã¯ã·ãã¢ãªãã®ãªã®ã§ããããã€ãã£ãã®ãªãŒãã£ãªAPIã§èª¿æŽå¯èœã§ããã°å¯èœãªéããã®ããæ¹ã§åŠçãããšããã¢ãããŒããæãŸãããšããã§ãããããããã¯ãã¹ãã©ãããã©ãŒã ã®ãªãŒãã£ãªã©ã€ãã©ãªã®èšèšã«åœ±é¿ãããšããã§ã@<fn>{adc18-std-audio}ã | |
+ | |
+//footnote[adc18-std-audio][ãã®è©±é¡ã«ã€ããŠã¯ãAudio Developer Conference 2018ã®ã»ãã·ã§ã³åç»"Towards std::audio"ãåèã«ãªããŸãã] | |
## ãªãŒãã£ãª/MIDIç°å¢èšå® | |
diff --git a/3-audio-plugin.md b/3-audio-plugin.md | |
index 18ef72e..9b6c3b9 100644 | |
--- a/3-audio-plugin.md | |
+++ b/3-audio-plugin.md | |
@@ -1,79 +1,84 @@ | |
-# ãªãŒãã£ãªãã©ã°ã€ã³éçºã©ã€ãã©ãª | |
+# ãªãŒãã£ãªãã©ã°ã€ã³ã®ãµããŒã | |
## ãªãŒãã£ãªãã©ã°ã€ã³ãšãã©ã°ã€ã³ãã¹ã | |
ãªãŒãã£ãªãã©ã°ã€ã³ã¯ãäžè¬çã«ã¯ãã·ãŒã±ã³ãµãŒãšã³ãžã³ã䜿ã£ãŠMIDIã€ãã³ããªã©ãå ¥åããæ¹åŒã§é³æ¥œå¶äœãããšãã«ããã©ãã¯ããšã®é³æºãèšå®ããããã®ãã®ã§ãããç°¡æœã«èšãã°**楜åš**ãš**ãšãã§ã¯ã**ã§ããã®ã¿ãŒã®é³è²ã®ãã©ã°ã€ã³ã«ïŒãããªã¯ã¿ãŒãã®ïŒããããããœâŠããéä¿¡ãããšããããã®ã¿ãŒã®æå®ã®é³éã®é³å£°ããŒã¿ã«ãªãããã®åŸã«ã€ã³ã©ã€ã¶ãŒã§äºåã«èšå®ããå€ã®ãã€ãã¹ãã£ã«ã¿ãŒã»ããŒãã¹ãã£ã«ã¿ãŒãéããŠããã£ã¹ããŒã·ã§ã³ãšãã§ã¯ãã§é³å£°ã«æªã¿ãäžããŠæçµçãªåºåã«ããâŠãšãã£ãããšãå®çŸããŸãã | |
-ããªãŒãã£ãªãã©ã°ã€ã³ãã«ã¯ãW3Cæšæºä»æ§ã®ãããªãã®ã¯ãããŸãããããããè€æ°ã®ã·ãŒã±ã³ãµãŒãšè€æ°ã®æ¥œåšã®éãç¹ãããšãã§ãããããªãããã€ãã®æ¥çæšæºã®ãããªèŠæ ŒããããŸãããã䜿ãããŠããã®ã¯Steinberg瀟ã®VSTãAppleã®AU (Audio Unit)@<fn>{microsoft-dxi}ãããšã¯Linuxã®LADSPAã§ããããMIDIãMIDIæšæºã®ç¯å²ã§ã®ã¿ã楜åšã»ã·ãŒã±ã³ãµãŒéã§ã®ã¡ãã»ãŒãžã®ããåããå¯èœã§ããã®ã«å¯ŸããŠããªãŒãã£ãªãã©ã°ã€ã³ã¯MIDIã¡ãã»ãŒãžã«å ããŠãç¬èªã®ã³ã³ãããŒã«åœä»€ã«åºã¥ããŠããªãŒãã£ãªããŒã¿ãçæãããïŒã€ã³ã¹ãã¥ã«ã¡ã³ã = 楜åšïŒãå å·¥ãããïŒãšãã§ã¯ãïŒã§ãããã®ã§ãã | |
+ããªãŒãã£ãªãã©ã°ã€ã³ãã«ã¯ãW3Cæšæºä»æ§ã®ãããªãã®ã¯ãããŸãããããããè€æ°ã®ã·ãŒã±ã³ãµãŒãšè€æ°ã®æ¥œåšã®éãç¹ãããšãã§ãããããªãããã€ãã®æ¥çæšæºã®ãããªèŠæ ŒããããŸãããã䜿ãããŠããã®ã¯Steinberg瀟ã®ã¯ãã¹ãã©ãããã©ãŒã èŠæ Œã§ããVST (Virtual Studio Technology)ãAppleã®AU (Audio Unit)@<fn>{microsoft-dxi}ãããšã¯Linuxã§ãã䜿ãããŠããLV2 (Linux Audio Developer's Simple Plugin API v2, LADSPA v2) ã§ããããMIDIãMIDIæšæºã®ç¯å²ã§ã®ã¿ã楜åšã»ã·ãŒã±ã³ãµãŒéã§ã®ã¡ãã»ãŒãžã®ããåããå¯èœã§ããã®ã«å¯ŸããŠããªãŒãã£ãªãã©ã°ã€ã³ã¯MIDIã¡ãã»ãŒãžã«å ããŠãç¬èªã®ã³ã³ãããŒã«åœä»€ã«åºã¥ããŠããªãŒãã£ãªããŒã¿ãçæãããïŒã€ã³ã¹ãã¥ã«ã¡ã³ã = 楜åšïŒãå å·¥ãããïŒãšãã§ã¯ãïŒã§ãããã®ã§ãã | |
-//footnote[microsoft-dxi][Windowsã«ãDirectX Instrument Pluginã®ãããªèŠæ ŒãååšããŠããã®ã§ãããæ®å床ã¯ç¡èŠã§ããã¬ãã«ã§ã] | |
+//footnote[microsoft-dxi][MicrosoftãWindowså°çšã®DirectX Instrument PluginãšããèŠæ Œãäœã£ãã®ã§ãããæ®å床ã¯ç¡èŠã§ããã¬ãã«ã§ã] | |
VSTãAUã¯ãé³æºããšãã§ã¯ãããœãããŠã§ã¢ãšããŠè²©å£²ããŠããå€æ°ã®äŒæ¥ãšãDAWãªã©ã®é³æ¥œå¶äœé¢é£ãœãããŠã§ã¢ã販売ããŠããå€æ°ã®äŒæ¥ã«ãšã£ãŠã®ã€ã³ã¿ãŒãã§ãŒã¹ãšãªã£ãŠããŸããç·ç§°ãšããŠãåè ã®è£œå矀ããªãŒãã£ãªãã©ã°ã€ã³ãåŸè ã®è£œå矀ããªãŒãã£ãªãã©ã°ã€ã³ãã¹ããšåŒã³ãŸãã | |
-äžè¬çã«ããªãŒãã£ãªãã©ã°ã€ã³ãã€ã³ã¹ãã¥ã«ã¡ã³ãïŒæ¥œåšïŒãšããŠæ©èœããå Žé¢ã§ã¯ãDAWãªã©ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã¹ãããMIDIã¡ãã»ãŒãžã®ãããªããã¡ã§ãªãŒãã£ãªãã©ã°ã€ã³ã«ãªã¯ãšã¹ããéãããŸããMIDIã¡ãã»ãŒãžã§ãªã¯ãšã¹ããåãåã£ãã€ã³ã¹ãã¥ã«ã¡ã³ãã¯ããã®å 容ã«æ²¿ã£ãŠé³å£°ããŒã¿ãåæããŠããã¹ãåŽã«è¿ããŸãããã®ããŒã¿ã®å ã¯ãµã³ããªã³ã°ã§ããããšãå€ãã§ãããFMé³æºã®ãããªæ³¢åœ¢åæã®ã¿ã«ãã£ãŠçæãããããšããããŸãããªãŒãã£ãªãã©ã°ã€ã³ããšãã§ã¯ããšããŠæ©èœããå Žåã¯ãDAWããå å·¥åã®ãªãŒãã£ãªããŒã¿ãšå å·¥ãæ瀺ããMIDIã¡ãã»ãŒãžãªã©ããªãŒãã£ãªãã©ã°ã€ã³ã«éãããŠããã®ã§ããã©ã°ã€ã³ã¯ããã«åçš®ã®å å·¥åŠçãå ããŠãã¹ãåŽã«è¿ããŸãïŒMIDIããŒã¿ãåãåã£ãŠMIDIããŒã¿ãè¿ããããªããšãã§ã¯ãããèããããŸãããããŸãç¡ãã§ãããïŒã | |
+![DAWäžã§æ¥œåšãšããŠåäœããVSTãã©ã°ã€ã³](audio-plugins-in-daw.png) | |
+äžè¬çã«ããªãŒãã£ãªãã©ã°ã€ã³ãã€ã³ã¹ãã¥ã«ã¡ã³ãïŒæ¥œåšïŒãšããŠæ©èœããå Žé¢ã§ã¯ãDAWãªã©ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã¹ãããMIDIã¡ãã»ãŒãžã®ãããªããã¡ã§ãªãŒãã£ãªãã©ã°ã€ã³ã«ãªã¯ãšã¹ããéãããŸããMIDIã¡ãã»ãŒãžã§ãªã¯ãšã¹ããåãåã£ãã€ã³ã¹ãã¥ã«ã¡ã³ãã¯ããã®å 容ã«æ²¿ã£ãŠé³å£°ããŒã¿ãåæããŠããã¹ãåŽã«è¿ããŸãããã®ããŒã¿ã®å ã¯ãµã³ããªã³ã°ã§ããããšãå€ãã§ãããFMé³æºã®ãããªæ³¢åœ¢åæã®ã¿ã«ãã£ãŠçæãããããšããããŸãããªãŒãã£ãªãã©ã°ã€ã³ããšãã§ã¯ããšããŠæ©èœããå Žåã¯ãDAWããå å·¥åã®ãªãŒãã£ãªããŒã¿ãšå å·¥ãæ瀺ããMIDIã¡ãã»ãŒãžãªã©ããªãŒãã£ãªãã©ã°ã€ã³ã«éãããŠããã®ã§ããã©ã°ã€ã³ã¯ããã«åçš®ã®å å·¥åŠçãå ããŠãã¹ãåŽã«è¿ããŸããMIDIããŒã¿ãåãåã£ãŠMIDIããŒã¿ãè¿ããããªããšãã§ã¯ããããã£ãŠãMIDIã¡ãã»ãŒãžã«äžå®ã®å å·¥ãæœããäžã§å¥ã®ã€ã³ã¹ãã¥ã«ã¡ã³ããã©ã°ã€ã³ã«æž¡ããŸãã | |
-## ãªãŒãã£ãªãã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ | |
-å€ãã®ãªãŒãã£ãªãã©ã°ã€ã³è£œåã¯ãè€æ°ã®ãã¬ãŒã ã¯ãŒã¯ã«å¯Ÿå¿ããŠããã®ã§ãããVSTãšAUãLADSPAã¯ããããå šãç°ãªãAPIã§ãããå ¬åŒã«æäŸãããSDKããã£ãŠããã䜿çšãããã®ã«ã€ããŠã¯ãéçºãå¥ã ã«è¡ãããšã«ãªããŸããLADSPAïŒv2ãLv2ïŒã¯ã¯ãã¹ãã©ãããã©ãŒã ã®æ¹åŒã§èšèšãããŠããŸãããLADSPAã¯Linuxèµ·æºã®ãã¯ãããžãŒã§ãããçŸç¶ã»ãŒLinuxå°çšãšãªãã§ãããã | |
+## ãªãŒãã£ãªãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ãšSDK | |
-ãªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã§ã¯ãäžè¬çã«ããªãŒãã£ãªI/Oã«çŽæ¥äŸåããããšã¯ãããŸããããªãŒãã£ãªå ¥åããªãŒãã£ãªåºåãã¹ããªãŒãã³ã°ãããã¡ãšããŠè¡šçŸãããå€ãã¯åãªãã¡ã¢ãªã¢ãã¬ã¹ãžã®ãã€ã³ã¿ãŒã§ãããã®ãããè€æ°ãã©ãããã©ãŒã ããµããŒããããã©ã°ã€ã³æ©æ§ã§ããã³ã¢éšåã¯ç¹ã«ãã©ãããã©ãŒã åºæã®å®è£ ãå«ãããšãªãã¯ãã¹ãã©ãããã©ãŒã ã§èšèšãããŠããã®ãäžè¬çã§ãã | |
- | |
-æšä»ã§ã¯åŸè¿°ããJUCEã®ãããªã¯ãã¹ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯@<fn>{cross-plugin-fx}ã®ã©ã€ãã©ãªãååšããŠãããèªåã§åå¥ã«ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ãéçºããçç±ããªãããã€ãããã®åçšã©ã€ãã©ãª@<fn>{juce-gplv3}ãå°å ¥ã§ããã®ã§ããã°ããããæãæã£åãæ©ããããããŸããã | |
- | |
-//footnote[cross-plugin-fx][ã¯ãã¹ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ãšããèªå¥ã¯äžè¬ã«ã¯äœ¿ãããŠããªãã®ã§ãããåã«ãã¯ãã¹ãã©ãããã©ãŒã ããšæžãã ãã§ã¯æ¬è³ªãæããŠãããšã¯èšãé£ãã®ã§ã察象ãéå®ããè¡šçŸãè©Šã¿ãŠããŸã] | |
- | |
-//footnote[juce-gplv3][JUCEã¯GPL v3ã§å ¬éãããŠããã®ã§ãGPLv3äºæã®ããªãŒãœãããŠã§ã¢ãšããŠãã©ã°ã€ã³ãå ¬éããå Žåã¯åé¡ã«ãªããŸãããããã以å€ã®ç¶æ³ã§ã¯åçšã©ã€ã»ã³ã¹ãè³Œå ¥ããããšã«ãªããŸã] | |
+ãã®ç¯ã§ã¯DAWã®ãŠãŒã¶ãŒãç®ã«ãããªãŒãã£ãªãã©ã°ã€ã³èŠæ Œãããã€ãæ¹ããŠçŽ¹ä»ããŸããããããã®æè¡çãªè©³çŽ°ã«ã€ããŠã¯ãæ¬æžã§è©³ãã解説ããããšã¯ãããŸãããåçš®ãªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã«ã€ããŠéçºè èŠç¹ã§åèã«ãªãæžç±ãšããŠãè±èªåã§ã¯ããWill Pirlkeè "Designing Audio Effect Plugins in C++: For AAX, AU, and VST3 with DSP Theory" ãæããããŸããçè ããã以äžã«è©³ããæžç±ã«ã¯ééããããšããªãã®ã§ãæ°ã«ãªãèªè ã«ã¯åæžããèŠãããŸãã | |
-### äžè¬çãªãªãŒãã£ãªãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ | |
- | |
-(1) VST | |
+### VST2, VST3 | |
ãããããªãŒãã£ãªãã©ã°ã€ã³ãšåŒã°ãããã®ã®ãªãã§æãããã¥ã©ãŒã§ããããã®ã§ããSteinbergããããã©ãšã¿ãªã»ãœãããŠã§ã¢ãšããŠå ¬éããŠãããã®ã§ãããçŸåšã§ã¯GPL v3ãšåçšã®ãã¥ã¢ã«ã©ã€ã»ã³ã¹ã§é åžãããŠããŸãããã€ãŠã¯WindowsãšMacã®ã¿ãµããŒããããŠããã®ã§ããã2019幎çŸåšã§ã¯LinuxããµããŒããããŠããŸãã | |
VSTã¯v2ãæãæ®åããŠããã®ã§ãããæ¢ã«SDKããå ¬éåæ¢ãããŠããŠãæ°èŠéçºã¯v3ãæ³å®ãããŠããŸãããã£ãšããVST v2ãæ¢ã«ããŠã³ããŒãããŠããéçºè ãã䜿ãç¶ããããšã¯èããããŸãããDAWã®äžçã§ã¯å€ããœãããŠã§ã¢ããã£ãšäœ¿ãç¶ããããããšãå€ãããã®ãããªãŠãŒã¶ãŒãã¿ãŒã²ããã«ãããªãŒãã£ãªãã©ã°ã€ã³ãåŒãããããŠé·æã®ãµããŒãã匷ããããå¯èœæ§ããããPython v2ãšPython v3ã®ããã«å€ããã®ããã£ãšæ®ãç¶ããå¯èœæ§ã¯ãããªãã«ãããšçè ã¯æªæ¥ãæ³åããŠããŸãã | |
-VSTã«ã¯VST-GUIãšããã³ã³ããŒãã³ããååšããŠããã®ã§ãããããã¯ãããŸã§ãªãã·ã§ã³ã§ããGUIéšåã¯äžè¬çãªããã°ã©ãã³ã°ã®æµåã«åŸããé³å£°åŠçããåãé¢ããŠäœæããããšãæšå¥šãããŸãã | |
+VSTã«ã¯VST4GUIãšããã³ã³ããŒãã³ããååšããŠããã®ã§ãããããã¯ãããŸã§ãªãã·ã§ã³ã§ããGUIéšåã¯äžè¬çãªããã°ã©ãã³ã°ã®æµåã«åŸããé³å£°åŠçããåãé¢ããŠäœæããããšãæšå¥šãããŸãã@<fn>{vst4gui-independent} | |
+ | |
+//footnote[vst4gui-independent][å®ã®ãšããVST4GUIã¯VSTããå®å šã«ç¬ç«ããŠãããããšãã°LV2ãªãŒãã£ãªãã©ã°ã€ã³ã§ã䜿ãããŠããŸãã] | |
-(2) AU (Audio Unit) | |
+### AU (Audio Unit) v2 / v3 | |
AUã¯Apple補åã®OSïŒmacOS / iOSïŒããµããŒãããŠãããªãŒãã£ãªãã©ã°ã€ã³ã®ä»æ§ã§ããAppleã®ç¬èªè·¯ç·ã§ãããä»ã®OSã§ã¯å©çšã§ããŸããããOSã®SDKã®ã¿ã§æäŸã§ããããšããã£ãŠããããŸããŸãªãã©ã°ã€ã³ã«ãã£ãŠãµããŒããããŠããŸãã | |
AUã«ã¯ããŒãžã§ã³2ãšããŒãžã§ã³3ããããäž¡è ã¯å€§ããç°ãªãç¹åŸŽããã£ãŠããŸããAUv3ã¯AppExtensionãšããŠç¬ç«ããã»ã¹ã§ãåäœããããã«ãªã£ãŠããŸããã€ã³ããã»ã¹ã§ãåäœããã¢ãŒããããããã§ããããªãŒãã£ãªãã©ã°ã€ã³éçºè ã«ãšã£ãŠå€§ããªåé¡ã«ãªãã®ã¯ãApp Storeã§App ExtensionãšããŠé åžãããã®ã¯ç¬ç«ããã»ã¹ã§åäœãããã®ã«ãªããšããç¹ã§ããç¬ç«ããã»ã¹ã§åäœãããšããããšã¯ãã¡ã¢ãªã®èªã¿æžããèªåšã«è¡ããªãããšã«ãªããããã©ãŒãã³ã¹ã®å£åãæžå¿µãããŸããå®éãMac App Storeã§é åžãããŠããDAWã¯ïŒ2019幎ã®æ¬çš¿å·çæç¹ã§ïŒLogic Proãããããç¡ãããã§ãã | |
-(3) LADSPA / LADSPA v2 (Lv2) | |
+### LV2 | |
-LADSPA v2ïŒLv2ïŒã¯äž»ã«Linuxäžã§VSTãAUã®ãããªãã©ã°ã€ã³èŠæ Œãçå®ããŠå®çŸãããã®ã§ããISCã©ã€ã»ã³ã¹ã§æäŸãããŠããã®ã§ãAUãšåæ§ã«è¿œå ã³ã¹ããæ°ã«ããã«äœ¿çšã§ããã®ã§ãããLinuxããµããŒãããäŒæ¥ãå°ãªããããäž»ã«Linuxã®OSSãšã³ã·ã¹ãã ã®äžã§ArdourãLMMSãQTractorãªã©ã§äœ¿ãããŠããŸããåçšDAWã§ãBitwig StudioãTracktion Waveformãªã©ã§ã¯éšåçã«ãµããŒãããŠãããã®ããããŸããLV2ããµããŒãããŠããåçšDAWã¯å®ã®ãšããã»ãšãã©ãããŸãããããã¯LinuxãµããŒããå å®ããŠããªãããšããããŸãããLV2ã®ä»æ§ãããè€éã§ãµããŒããç ©éã«ãªããšããããšãããããã§ãã | |
+LV2ã¯äž»ã«Linuxäžã§VSTãAUã®ãããªãã©ã°ã€ã³èŠæ Œãçå®ããŠå®çŸãããã®ã§ããISCã©ã€ã»ã³ã¹ã§æäŸãããŠããã®ã§ãAUãšåæ§ã«è¿œå ã³ã¹ããæ°ã«ããã«äœ¿çšã§ããã®ã§ãããLinuxããµããŒãããäŒæ¥ãå°ãªããããäž»ã«Linuxã®OSSãšã³ã·ã¹ãã ã®äžã§ArdourãLMMSãQTractorãªã©ã§äœ¿ãããŠããŸããåçšDAWã§ãBitwig StudioãTracktion Waveformãªã©ã§ã¯éšåçã«ãµããŒãããŠãããã®ããããŸããLV2ããµããŒãããŠããåçšDAWã¯å®ã®ãšããã»ãšãã©ãããŸãããããã¯LinuxãµããŒããå å®ããŠããªãããšããããŸãããLV2ã®ä»æ§ãããè€éã§ãµããŒããç ©éã«ãªããšããããšãããããã§ãã@<fn>{lv2-developers-guide} | |
+//footnote[lv2-developers-guide][LV2ã«ã€ããŠã¯çè ãå人èªãLV2ãªãŒãã£ãªãã©ã°ã€ã³éçºè ã¬ã€ããã§è©³ãããŸãšããŠãããŸãã] | |
-### ãªãŒãã£ãªãã©ã°ã€ã³éçºèšèª | |
-ããã°ã©ãã³ã°ã«ããããªãŒãã£ãªåŠçã®äžçã¯ããç¹æ®ãªç©ºéã§ããå³ãããªã¢ã«ã¿ã€ã èŠä»¶ãæºè¶³ããããã«ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ããã«ãå šãŠã®ã¹ã¬ãããåæ¢ãããŠã¡ã¢ãªãååããããããªåŠçãããå®è¡æã«å¿ èŠã«ãªã£ããä»®æ³ãã·ã³ã³ãŒãããã€ãã£ãã³ãŒãã«æéããããŠã³ã³ãã€ã«ãããJITã®ãããªåŠçã¯åããŠããªããšãããŠããŸãããã®ãããJavaã.NETã®ãããªä»®æ³ãã·ã³æè¡ãå ¥ã蟌ãããšãã»ãŒãããŸãã@<fn>{vstnet}ã | |
+## ã¯ãã¹ãªãŒãã£ãªãã©ã°ã€ã³éçºSDK | |
-//footnote[vstnet][VST2 SDKã.NET APIåããã ãã®VST.NETãšãããããžã§ã¯ãããããŸãããããã¯GCã«ããé 延ãå容ãããšããåæã§äœããããã®ã§ã] | |
+### ã¯ãã¹ãªãŒãã£ãªãã©ã°ã€ã³éçºSDKã®å¿ èŠæ§ | |
-ãã®ããããªãŒãã£ãªãã©ã°ã€ã³éçºã«ãããŠã¯ãC++ããäžè¬çã«ã¯ãã€ãã£ãã³ãŒããšããŠã³ã³ãã€ã«æžã¿ã®å®è¡ãã€ããªãçæããç¹æ®ãªèšèªããã³éçºããŒã«ã䜿ãããŸãããã®æèã§ããç»å Žããã®ãLLVMã§ããAPLïŒaudio programming languageïŒã§ããã䜿ãããŠããŸããåãLLVMèšèªã®ç³»èã§ãç¬èªã®å®è¡ã¢ãžã¥ãŒã«åœ¢åŒããã¡JITãåºæ¬ãšããJuliaãªã©ã¯äŒŒãŠéãªãåé¡ã§ãããšãããŸã@<fn>{julia-aot}ã | |
+å€ãã®ãªãŒãã£ãªãã©ã°ã€ã³è£œåã¯ãè€æ°ã®ãã¬ãŒã ã¯ãŒã¯ã«å¯Ÿå¿ããŠããã®ã§ãããVSTãšAUãLV2ã¯ããããå šãç°ãªãAPIã§ãããå ¬åŒã«æäŸãããSDKããã£ãŠããã䜿çšãããã®ã«ã€ããŠã¯ãéçºãå¥ã ã«è¡ãããšã«ãªããŸããLV2ã¯ã¯ãã¹ãã©ãããã©ãŒã ã®æ¹åŒã§èšèšãããŠããŸãããLV2ã¯Linuxèµ·æºã®ãã¯ãããžãŒã§ãããçŸç¶ã»ãŒLinuxå°çšãšãªãã§ãããã | |
-//footnote[julia-aot][Juliaã¯AOTã§ãåäœãããããªã®ã§ãAOTã§å®çšäžåé¡ãªããã°ããã¯é害ã§ã¯ãªããããããŸããã] | |
+ãªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã§ã¯ãäžè¬çã«ããªãŒãã£ãªI/Oã«çŽæ¥äŸåããããšã¯ãããŸããããªãŒãã£ãªå ¥åããªãŒãã£ãªåºåãã¹ããªãŒãã³ã°ãããã¡ãšããŠè¡šçŸãããå€ãã¯åãªãã¡ã¢ãªã¢ãã¬ã¹ãžã®ãã€ã³ã¿ãŒã§ãããã®ãããè€æ°ãã©ãããã©ãŒã ããµããŒããããã©ã°ã€ã³æ©æ§ã§ããã³ã¢éšåã¯ç¹ã«ãã©ãããã©ãŒã åºæã®å®è£ ãå«ãããšãªãã¯ãã¹ãã©ãããã©ãŒã ã§èšèšãããŠããã®ãäžè¬çã§ãã | |
-ãªãŒãã£ãªããã°ã©ã éçºèšèªã®äŸãšããŠã¯ãFaustãExtemporeãšãã£ããã®ãæããããŸããJUCEã®éçºå ã§ããROLIã2018幎ã«SOULãšããèšèªãã¢ããŠã³ã¹ããŠããããããSDKãå ¬éãããããšãæåŸ ãããŸãããŸããæ±çšèšèªã§ãzigãªã©ã¯ãªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³éçºã念é ã«çœ®ããŠèšèšãããŠããŸãã@<fn>{v} | |
+åçš®ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããããããªãŒãã£ãªI/OãMIDI I/OãšäŒŒããããªããã¡ã§ãã©ãã©ãªã®ã§ãããåºæ¬çãªæ©èœèŠä»¶ã¯é¡äŒŒããŠãããå€ãã®ãã©ã°ã€ã³ã§ã¯åŠçã®å ±éåãå¯èœãªãã®ã§ããããšãã°ãã©ã°ã€ã³åŽã¯ãVSTã§ããã°IAudioProcessorã€ã³ã¿ãŒãã§ãŒã¹ã®`process`é¢æ°ãAUã§ããã° `AUInternalRenderBlock`é¢æ°ãLADSPAãLV2ã®`run()`é¢æ°ã¯ãæŠãåæ§ã®åŠçãè¡ããŸãïŒãã¹ãåŽã«ã¯ãã¹ãåŽã®APIãã©ã€ãã©ãªããããŸãïŒããã®ãããïŒå¿ ãããã¯ãã¹ãã©ãããã©ãŒã ãšããããã§ã¯ãããŸãããïŒè€æ°ã®ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ããã«ãã§ãããããªãã«ãããŒã«ãããã©ã°ã€ã³ã«ããããªãŒãã£ãªåŠçã®å ±éåãå¯èœã«ããã©ã€ãã©ãªãç»å ŽããŸããã | |
-//footnote[v][ä»ã«ã¯Vèšèªãªã©ãno JIT, no GCã§ãªãŒãã£ãªéçºãšã®çžæ§ãè¯ãããã§ããã宣äŒåã ãã匷ãèšèªã§ãããšããåŽé¢ãããã®ã§ãããã§ã¯è泚ã§ã®èšåã«ãšã©ããŸãã] | |
+ãã®ããšãããã¯ãã¹ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯@<fn>{cross-plugin-fx}ã®SDKãããã€ãç»å ŽããŠããŸãããèªåã§åå¥ã«ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ãéçºããçç±ããªãããã€ãããã®åçšã©ã€ãã©ãª@<fn>{juce-gplv3}ãå°å ¥ã§ããã®ã§ããã°ããããæãæã£åãæ©ããããããŸããã | |
+ | |
+//footnote[cross-plugin-fx][ã¯ãã¹ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ãšããèªå¥ã¯äžè¬ã«ã¯äœ¿ãããŠããªãã®ã§ãããåã«ãã¯ãã¹ãã©ãããã©ãŒã ããšæžãã ãã§ã¯æ¬è³ªãæããŠãããšã¯èšãé£ãã®ã§ã察象ãéå®ããè¡šçŸãè©Šã¿ãŠããŸã] | |
+//footnote[juce-gplv3][ããšãã°JUCEã¯GPL v3ã§å ¬éãããŠããã®ã§ãGPLv3äºæã®ããªãŒãœãããŠã§ã¢ãšããŠãã©ã°ã€ã³ãå ¬éããå Žåã¯åé¡ã«ãªããŸãããããã以å€ã®ç¶æ³ã§ã¯åçšã©ã€ã»ã³ã¹ãè³Œå ¥ããããšã«ãªããŸã] | |
-### ã¯ãã¹ãªãŒãã£ãªãã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ | |
+### ã¯ãã¹ãªãŒãã£ãªãã©ã°ã€ã³éçºSDKã®å ·äœäŸ | |
-åçš®ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããããããªãŒãã£ãªI/OãMIDI I/OãšäŒŒããããªããã¡ã§ãã©ãã©ãªã®ã§ãããåºæ¬çãªæ©èœèŠä»¶ã¯é¡äŒŒããŠãããå€ãã®ãã©ã°ã€ã³ã§ã¯åŠçã®å ±éåãå¯èœãªãã®ã§ããããšãã°ãã©ã°ã€ã³åŽã¯ãVSTã§ããã°IAudioProcessorã€ã³ã¿ãŒãã§ãŒã¹ã®`process`é¢æ°ãAUã§ããã° `AUInternalRenderBlock`é¢æ°ãLADSPAãLV2ã®`run()`é¢æ°ã¯ãæŠãåæ§ã®åŠçãè¡ããŸãïŒãã¹ãåŽã«ã¯ãã¹ãåŽã®APIãã©ã€ãã©ãªããããŸãïŒããã®ãããïŒå¿ ãããã¯ãã¹ãã©ãããã©ãŒã ãšããããã§ã¯ãããŸãããïŒè€æ°ã®ãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ããã«ãã§ãããããªãã«ãããŒã«ãããã©ã°ã€ã³ã«ããããªãŒãã£ãªåŠçã®å ±éåãå¯èœã«ããã©ã€ãã©ãªããããã€ãç»å ŽããŸããã | |
+æ¬æžã¯ã·ãŒã±ã³ãµãŒãšã³ãžã³ã®äœãæ¹ã«ã€ããŠè§£èª¬ããã®ãäž»ç®çãªã®ã§ããã©ã°ã€ã³ã®éçºã®ã¿ã察象ãšããã©ã€ãã©ãªããã¬ãŒã ã¯ãŒã¯ã¯æ¬æ¥ã®è©±é¡ã®å¯Ÿè±¡å€ãªã®ã§ãããããããå«ããŠããã€ã玹ä»ããŸãã | |
(1) JUCEã¯ROLIãéçºããŠããã¯ãã¹ãªãŒãã£ãªãã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ã§ããã®çš®ã®ãã¬ãŒã ã¯ãŒã¯ã§æãæåãªãã®ã§ããããVST (2, 3)ãšAUã§ã³ãŒããå ±éåã§ã@<fn>{ladspa-host}ãããããã®ãã©ã°ã€ã³ãã©ãŒãããã«åãããããã±ãŒãžã®ãã«ããèªåçã«è¡ããGUIã®ã¢ãžã¥ãŒã«ãå ¬éããŠããŸããåçš®ãã©ã°ã€ã³ãã©ãŒãããã«åããããããžã§ã¯ããã¡ã€ã«ãèªåçæããIntroJucerãšããããŒã«ã䟿å©ã ã£ãïŒçŸåšã¯ProjucerïŒãšããããšããéžã°ããŠããäžå ã§ããããã§ãã | |
-//footnote[ladspa-host][JUCEã§ã¯LADSPAãã¹ãããã«ãã§ãããšãããŠããŸããããã¹ãã®ã¿ã§ãã©ã°ã€ã³ã®ãã«ãã¯ãµããŒããããŠããããã³ãã¥ããã£ã®æå¿ãDSSIãLV2ãµããŒããå®çŸããŠãããšããã®ãçŸç¶ã§ãã] | |
+//footnote[ladspa-host][JUCEã§ã¯LADSPAãã¹ãããã«ãã§ãããšãããŠããŸããããã¹ãã®ã¿ã§ãã©ã°ã€ã³ã®ãã«ãã¯ãµããŒããããŠãããããŸãLV2ã«ã¯å¯Ÿå¿ããŠããªãã®ã§ãã³ãã¥ããã£ã®æå¿ãDSSIãLV2ãã©ã°ã€ã³éçºã®ãµããŒããå®çŸããŠãããšããã®ãçŸç¶ã§ãã] | |
-(2) WDLã¯ReaperãéçºããŠããCockosãzlibã©ã€ã»ã³ã¹ã§å ¬éããŠããã¯ãã¹ãªãŒãã£ãªãã¬ãŒã ã¯ãŒã¯éçºã©ã€ãã©ãªã§ããå®ã®ãšããçŸåšã§ã¯æŽŸçãããžã§ã¯ãã§ããiPlug2ãã¡ã€ã³ã¹ããªãŒã ãããã¯æå 端ã«è¿ããšèšããã§ãããïŒiPlug2ã¯WDL-OLãšããWDLã®æŽŸçãããžã§ã¯ãããããã«æŽŸçãããã®ã§ãïŒãããããªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã«å ããŠGUIã¢ãžã¥ãŒã«ãçµã¿èŸŒãŸããŠããŸãã | |
+(2) iPlug2ã¯ReaperãéçºããŠããCockosãzlibã©ã€ã»ã³ã¹ã§å ¬éããŠããã¯ãã¹ãªãŒãã£ãªãã¬ãŒã ã¯ãŒã¯éçºã©ã€ãã©ãªã§ããWDLããäœè ãç¬èªã«çºå±ããããã®ã§ãçŸåšã§ã¯WDLããåºãç¥ãããŠããŸããããããªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã«å ããŠGUIã¢ãžã¥ãŒã«ãçµã¿èŸŒãŸããŠããŸãã | |
-æ¬æžã§ã¯æ¬¡ç« 以éãã·ãŒã±ã³ãµãŒãšã³ãžã³ã®äŸãšããŠtracktion_engineãé¡æãšããŠèªã¿é²ããŸãããããã¯JUCEã®ã¢ãžã¥ãŒã«ãšããŠäœæãããŠããã®ã§ããšãã©ãJUCEã®èšèšã«ã€ããŠèšåããªãã解説ããŠãããŸããããããVST3 SDKã䜿ãããããã¯AUã®å«ãŸããAudioToolboxã䜿ãã®ãããã¡ããäžè¬çã§ãã | |
+(3) DPF (DISTRHO Plugin Framework)ã¯äž»ã«LV2ïŒLV2, DSSI, LADSPA, VSTïŒããµããŒããããã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ã§ãLV2ã®APIããã¯çŽæçã«C++ã§éçºã§ãããšããç«ã¡äœçœ®ã§çšããããŠããŸãã | |
+ | |
+(4) 第1ç« ã§èšåãããªãŒãã£ãªããã°ã©ãã³ã°èšèªã®äžéšãããšãã°FAUSTãªã©ã¯ããªãŒãã£ãªãã©ã°ã€ã³ããã®ãŸãŸãã«ãã§ãããããªä»çµã¿ãæŽåãããŠããŸããåçšè£œåã§ã¯MATLABãªã©ããã®çšéã§å©çšå¯èœã§ãã | |
+ | |
+![ããŸããŸãªIDEã®ãããžã§ã¯ãããšã¯ã¹ããŒãã§ããProjucer](projucer-sshot.png) | |
+ | |
+æ¬æžã§ã¯æ¬¡ç« 以éãã·ãŒã±ã³ãµãŒãšã³ãžã³ã®äŸãšããŠTracktion Engineãé¡æãšããŠèªã¿é²ããŸãããããã¯JUCEã®ã¢ãžã¥ãŒã«ãšããŠäœæãããŠããã®ã§ããšãã©ãJUCEã®èšèšã«ã€ããŠèšåããªãã解説ããŠãããŸããããããVST3 SDKã䜿ãããããã¯AUã®å«ãŸããAudioToolboxã䜿ãã®ãããã¡ããäžè¬çã§ãã | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ãã¹ãéçºã«é¢é£ããŠããã1ã€ããã§çŽ¹ä»ããŠããããã®ããCarlaãšãããããžã§ã¯ãã§ããããã¯äž»ã«Linuxãã¹ã¯ãããã§åäœãããåäœã§ãé«æ©èœãªUIãåãããªãŒãã£ãªãã©ã°ã€ã³ãã¹ãã§ãVSTãLV2ããµããŒãããŠããã®ã§ãããå®éã«ã¯ã¯ãã¹ãã©ãããã©ãŒã ã®ã©ã€ãã©ãªãšããŠä»ã®DAWãçµã¿èŸŒãã§äœ¿ãããšãã§ããŸããLinuxã®æ¯èŒçæ°ããDAWã§ããZrythmã¯ãã®Carlaãçµã¿èŸŒãã§ããã該åœéšåã®éçºã³ã¹ãã軜æžãããŠããŸãã | |
### ãªãŒãã£ãªãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ã®äŸåé¢ä¿ | |
@@ -81,80 +86,202 @@ LADSPA v2ïŒLv2ïŒã¯äž»ã«Linuxäžã§VSTãAUã®ãããªãã©ã°ã€ã³èŠæ Œ | |
äžè¬çã«ããªãŒãã£ãªãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ãã®ãã®ã¯ããªãŒãã£ãªI/Oã«äŸåããªãããã¡ã§å®è£ å¯èœã§ããVST3SDKãLADSPA/Lv2ãããªãŒãã£ãªããŒã¿ã®åŠçã¯ãã€ãé åã®éåã察象ãšããŠè¡ãããŸããå å·¥çµæããªãŒãã£ãªããã€ã¹ã«æµã蟌ãå¿ èŠã¯ç¡ãã®ã§ãã | |
-JUCEã®ãããªçµ±åãªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³éçºãã¬ãŒã ã¯ãŒã¯ã§ã¯ãç¹ã«äŸåé¢ä¿ãåãé¢ãå¿ èŠã¯ãªãã®ã§ããããªãŒãã£ãªI/Oãæ ã`juce_audio_devices`ãšãªãŒãã£ãªãã©ã°ã€ã³ã®å®è£ ãæ ã`juce_audio_processors`ã¯å¥ã®ã¢ãžã¥ãŒã«ãšããŠæ§æãããŠããŸããéã«ããã°ãJUCEã¯åãªããªãŒãã£ãªãã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ãšããããã¯çµ±åçãªé³æ¥œã¢ããªã±ãŒã·ã§ã³éçºãã¬ãŒã ã¯ãŒã¯ãªã®ã§ãJUCEã«ããå šãŠã®æ©èœããªãŒãã£ãªãã©ã°ã€ã³éçºã«å¿ èŠãšããããã§ã¯ãããŸããããç¹ã«ãã¹ãéçºã§æçšãªæ©èœãšãã©ã°ã€ã³éçºã«å¿ é ã®æ©èœã«ã¯ã倧ããªéãããããŸãã | |
+åŸè¿°ããJUCEã®ãããªã¯ãã¹ãã©ãããã©ãŒã ã®ãªãŒãã£ãªéçºãã¬ãŒã ã¯ãŒã¯ã§ã¯ãç¹ã«äŸåé¢ä¿ãåãé¢ãå¿ èŠã¯ãªãã®ã§ããããªãŒãã£ãªI/Oãæ ã`juce_audio_devices`ãšãªãŒãã£ãªãã©ã°ã€ã³ã®å®è£ ãæ ã`juce_audio_processors`ã¯å¥ã®ã¢ãžã¥ãŒã«ãšããŠæ§æãããŠããŸããJUCEã¯åãªããªãŒãã£ãªãã©ã°ã€ã³éçºãã¬ãŒã ã¯ãŒã¯ãšããããã¯çµ±åçãªé³æ¥œã¢ããªã±ãŒã·ã§ã³éçºãã¬ãŒã ã¯ãŒã¯ãªã®ã§ãJUCEã«ããå šãŠã®æ©èœããªãŒãã£ãªãã©ã°ã€ã³éçºã«å¿ èŠãšããããã§ã¯ãããŸããããç¹ã«ãã¹ãéçºã§æçšãªæ©èœãšãã©ã°ã€ã³éçºã«å¿ é ã®æ©èœã«ã¯ã倧ããªéãããããŸãã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã®åŠçã«æ±ããããã®ã¯ããªã¢ã«ã¿ã€ã ã§ãåŠçåºæ¥ãçšåºŠã«çŽ°ååããããåãªãã¹ããªãŒã ãããã¡ã®å å·¥ã§ãããããããã¹ãããåŒã³åºããããã®ã§ãããããèªãããªã¢ã«ã¿ã€ã ã®ã¹ã¬ããã管çãããããããšããããŸããã | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã®åŠçã«æ±ããããã®ã¯ããªã¢ã«ã¿ã€ã ã§ãåŠçåºæ¥ãçšåºŠã«çŽ°ååããããåãªãã¹ããªãŒã ãããã¡ã®å å·¥ã§ãããããããã¹ãããåŒã³åºããããã®ã§ãããããèªãããªã¢ã«ã¿ã€ã ã®ã¹ã¬ããã管çãããããããšããããŸããããã¡ããããã©ã°ã€ã³éçºã§ã¯ããã¹ãåŽãçšæããŠããããªã¢ã«ã¿ã€ã æ§ãå°ç¡ãã«ããªããããªããã°ã©ãã³ã°ãæ±ããããŸãããããã¯éçºãã¬ãŒã ã¯ãŒã¯ã«ãåœãŠã¯ãŸããŸãã | |
ãã¹ãåŽã®æ©èœãšããŠãããªã¢ã«ã¿ã€ã ã¹ã¬ããã®çšæãªã©ã¯ã¢ããªã±ãŒã·ã§ã³åŽãè¡ãã°ããããšã§ãããªãŒãã£ãªãããã¡ã®é©åãªåãæž¡ããããã©ãããã©ãŒã äŸåã®ããæ¹ã§ãã©ã°ã€ã³ãåæãããåçã«ããŒããããããæ©èœãããã©ã°ã€ã³ãã¹ãããµããŒãããAPIãšããŠã¯æåŸ ãããŸãããã©ãããã©ãŒã åºæã®å®è£ ãæ±ããããŸãããæšæºAPIã§å®çŸã§ããç¯å²ãšãããã§ãããã | |
+ | |
+## ãªãŒãã£ãªãã©ã°ã€ã³ãšã€ã³ã¹ã¿ã³ã¹ã®ID | |
+ | |
+MIDIã«ãã£ãŠé³æ¥œãè¡šçŸããŠããé ã¯ãé³è²èšå®ã«çžåœããã®ã¯ããã°ã©ã ã»ãã§ã³ãžãšåŒã°ããåœä»€ã§ããããã®åœä»€ã§å®éã«æå®ãããé³è²ã¯ãæ¥ç¶ãããŠããMIDIåºåããã€ã¹ã«ãã£ãŠç°ãªããã®ã§ããããã ããGeneral MIDIïŒGMïŒãªã©ã®æšæºã§ã¯ãããã°ã©ã ã»ãã§ã³ãžã®æå®å€ãé³è²ãããçšåºŠèŠå®ããŠãããGMæºæ ã®æ¥œæ²ã§ããã°GMæºæ ã®MIDIããã€ã¹ã§æŠãäœæè ã®æå³éãã«æ¥œæ²ãåçã§ããŸããã | |
+ | |
+MIDIã®èŠå®ããé³è²ã¯çªå·ã§èå¥ããçšåºŠã®è¡šçŸåãããããŸãããã©ã®ç°å¢ã§ãåäžã®é³å£°ãåçŸããããã«ã¯ããµã³ããªã³ã°ãªã©ã«åºã¥ããªãŒãã£ãªãã©ã°ã€ã³ãªã©ã楜åšãšããŠäœ¿çšããå¿ èŠããããŸããçŸä»£çãªDAWã«ãããŠã¯ãé³è²èšå®ã¯MIDIãã©ãã¯ããšã«ãïŒæ¬¡ã«èª¬æããã«ãŒãã£ã³ã°ã«ãã£ãŠæ¥ç¶æžã¿ã®ïŒãªãŒãã£ãªãã©ã°ã€ã³ãæå®ããŠãããã楜åšãšããŠäœ¿çšããã®ãäžè¬çã§ãã | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã¯ãäžè¬çã«ã¯äžæèå¥åïŒãŠããŒã¯IDïŒã§ããããã¯ãããååšããªããã©ã°ã€ã³æ©æ§ãIDã®ç¡ããã©ã°ã€ã³ã«ã€ããŠã¯ååã§èå¥ãããŸããååã§ã倧æµã®å Žåã¯èå¥ãå¯èœã§ãããåãååããã€äººéããåŸãããã«ãåãååã®ãã©ã°ã€ã³ãååšããããšãããåŸãŸããäžæèå¥åã«ã¯éåžžUUIDãããã·ã¥æååã®äžéšãªã©ãã»ãŒè¡çªããªãããã®ãçšããããŸããããå°ãåå§çãªDAWã ãšããªãŒãã£ãªãã©ã°ã€ã³ã®ãã¡ã€ã«ãã¹ã§èå¥ãããããšããããŸãã | |
+ | |
+å®éã«æ¥œæ²å¶äœããå Žé¢ã§ã¯ã1ã€ã®ãã©ã°ã€ã³ã«ã€ããŠè€æ°ã®ã€ã³ã¹ã¿ã³ã¹ããã©ãã¯ããšãããã¯åããã©ãã¯ã§ãã«ãŒãã£ã³ã°æ¬¡ç¬¬ã§2ã€ä»¥äžçæãããããšããããŸãã楜æ²äžã§ã¯ã©ã®ãã©ã°ã€ã³ã®ã€ã³ã¹ã¿ã³ã¹ã«å¯Ÿãããã©ã¡ãŒã¿ãŒèšå®ãã«ãŒãã£ã³ã°ã®æ¥ç¶ããèå¥ããå¿ èŠããããããã€ã³ã¹ã¿ã³ã¹IDã¯ãã©ã°ã€ã³IDãšã¯å¥ã«ç®¡çããå¿ èŠããããŸãã | |
+ | |
+### è£è«: é©åãªãªãŒãã£ãªãã©ã°ã€ã³ã®èå¥æ¹æ³ | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ããã¡ã€ã«åã§èå¥ããŠãããšãPCç°å¢ã移åãããšéããªãããšããããšã«ãªã£ãŠããŸãã®ã§ããããŸã§è£å®çãªæ å ±ãšããŠæ¥œæ²ããŒã¿ã«å«ããçšåºŠã«ããã¹ãã§ããã¡ãªã¿ã«ããªãŒãã£ãªãã©ã°ã€ã³ãã¹ãã«ãã£ãŠã¯ãã¡ã€ã«ãã¹ããããŸã§ãã¹ã®ãã³ãæ å ±ãšããŠå«ããŠãããšããããšããããŸãïŒæ¬æžã§åºŠã ç»å ŽããTracktion Engineããã®ããã«ãªã£ãŠããŸãïŒã | |
+ | |
+çè ã®ç§èŠãšããŠã¯ãããŒã«ã«ã®ãã¡ã€ã«ãã¹ã«ã¯å人ã®ç°å¢ãç¹å®ããæ å ±ãå«ãŸããŠããå¯èœæ§ãããã®ã§ïŒããšãã°å¿åã®äœæ²è ãšããŠæ¥œæ²ããŒã¿ãã€ã³ã¿ãŒãããäžã§å ¬éããŠããŠãããã®ããŒã¿ã«`c:\\Users\\atsushi\\VST3 Plugins`ãšãããã¹ãå«ãŸããŠããã°ãååã`atsushi`ã§ããããšãå ¬ç¥æ å ±ã«ãªã£ãŠããŸããŸãïŒãããŒã«ã«ãã¹ã¯å¯èœãªéã楜æ²ããŒã¿ã«å«ãã¹ãã§ã¯ãããŸããã | |
+ | |
## ãªãŒãã£ãªãã©ã°ã€ã³ã®æ¥ç¶ | |
### ã«ãŒãã£ã³ã°ïŒãããïŒ | |
-åºæ¬çãªãªãŒãã£ãªãã©ã°ã€ã³ã®äœ¿ããæ¹ã¯1ã€ã®ãã¹ããš1ã€ã®ãã©ã°ã€ã³ã®é¢ä¿ã§ãããé³æ¥œå¶äœè ãå®éã«GUIäžã§ç®ã«ããã®ã¯ãè€æ°ã®ãªãŒãã£ãªãã©ã°ã€ã³ããã§ãŒã³ç¶ã«ç¹ãã£ãããã¡ã§æ¬¡ã ã«åŠçãããŠãæçµçã«ãªãŒãã£ãªåºåããã€ã¹ã«éä¿¡ãããããšããæµãã§ããå®éã«ã¯ããã¹ããã²ãšã€ã®ãªãŒãã£ãªãã©ã°ã€ã³ããåŠççµæãåãåããšããã¹ãã¯ãã®çµæããã®ãŸãŸæ¬¡ã®ãªãŒãã£ãªãã©ã°ã€ã³ã«é次çã«æµããŸãããã®é£éçãªåŠçããªãŒãã£ãªã®ã«ãŒãã£ã³ã°ãšèšããŸãã | |
+åºæ¬çãªãªãŒãã£ãªãã©ã°ã€ã³ã®äœ¿ããæ¹ã¯1ã€ã®ãã¹ããš1ã€ã®ãã©ã°ã€ã³ã®é¢ä¿ã§ãããé³æ¥œå¶äœè ãå®éã«GUIäžã§ç®ã«ããã®ã¯ãè€æ°ã®ãªãŒãã£ãªãã©ã°ã€ã³ããã§ãŒã³ç¶ã«ç¹ãã£ãããã¡ã§æ¬¡ã ã«åŠçãããŠãæçµçã«ãªãŒãã£ãªåºåããã€ã¹ã«éä¿¡ãããããšããæµãã§ããå®éã«ã¯ããã¹ããã²ãšã€ã®ãªãŒãã£ãªãã©ã°ã€ã³ããåŠççµæãåãåããšããã¹ãã¯ãã®çµæããã®ãŸãŸæ¬¡ã®ãªãŒãã£ãªãã©ã°ã€ã³ã«é次çã«æµããŸãããã®é£éçãªåŠçã¯ãªãŒãã£ãªã®ã«ãŒãã£ã³ã°ãšåŒã°ããŸãããŸãããªãŒãã£ãªãã©ã°ã€ã³ãæ¥ç¶ãããå šäœçãªæ§é ã¯ãªãŒãã£ãªïŒããŒãïŒã°ã©ããšåŒã°ããŸãã | |
ã«ãŒãã£ã³ã°ã¯ãç¹ã«GUIã§è¡šç€ºããããšåãããããã®ã§ãããDAWããæž¡ããããªãŒãã£ãªå ¥åããã³MIDIå ¥åãã²ãšã€ã²ãšã€ã®ãªãŒãã£ãªãã©ã°ã€ã³ããããŠãªãŒãã£ãªåºåããã³MIDIåºåããããŒãããšãªãããŒãã°ã©ããšããŠè¡šãããŸãã次ã®ç»åã¯Terraãããžã§ã¯ã@<fn>{terra}ã®å ¬åŒãµã€ãã«å«ãŸãããªãŒãã£ãªã°ã©ãã®ã¹ã¯ãªãŒã³ã·ã§ããã§ãã | |
-//image[TerraScreenShot][Terraã®ãªãŒãã£ãªã°ã©ãïŒå ¬åŒã¹ã¯ãªãŒã³ã·ã§ããïŒ][scale=0.7] | |
- | |
//footnote[terra][https://github.com/hotwatermorning/Terra/] | |
ã²ãšã€ã®ããŒãã®åºåãè€æ°ã®ããŒãã«æž¡ãããããšãããã°ãè€æ°ã®ããŒãããã®å ¥åãã²ãšã€ã®ãªãŒãã£ãªãã©ã°ã€ã³ã§åŠçãããããšããããŸããæçµçãªåºåå ããèšå®æ¬¡ç¬¬ã§è€æ°ã®ãªãŒãã£ãªããã€ã¹ã«éä¿¡ã§ããããšãããã§ãããããã®éšåã¯ã·ãŒã±ã³ãµãŒãšã³ãžã³ã«ãã£ãŠç°ãªããåçŽãªãªã¹ãã«ãªã£ãŠããããšãå€ãã§ãããã·ãŒã±ã³ãµãŒãšã³ãžã³ãç¹åŸŽãåºãéšåã§ããããŸããããšãã°audiomultiãšããé³æ¥œå¶äœãœãããŠã§ã¢ã§ã¯ãªãŒãã£ãªãã©ã°ã€ã³ã®ããŒããæè»ã«ãããã§ããUIãåããŠãããšå®£äŒããŠããŸã@<fn>{audiomulti-platforms}ã | |
//footnote[audiomulti-platforms][æ®å¿µãªããååšããã®ã¯WindowsçãšMacçã®ã¿ã§ãã] | |
+//image[TerraScreenShot][Terraã®ãªãŒãã£ãªã°ã©ãïŒå ¬åŒã¹ã¯ãªãŒã³ã·ã§ããïŒ][scale=0.7] | |
+ | |
### ãã£ã³ãã«ãšãªãŒãã£ãªãã¹ | |
ããããã®ãªãŒãã£ãªãã©ãã¯ã«ã¯ã**ãªãŒãã£ãªãã¹**(audio bus)ãšåŒã°ãããªãŒãã£ãªãã£ã³ãã«å¥ã®ãªãŒãã£ãªã¹ããªãŒã ã®åºå ¥ãå£ãçšæãããŸããã¢ãã©ã«ãªã1ã€ãã¹ãã¬ãªãªã2ã€ãambisonic察å¿ã®ãªãŒãã£ãªåºåã§ããã°å€æ°ãããŸããäžè¬çã«ã¯ããªãŒãã£ãªãã©ã°ã€ã³åŽã«ãã¹ãæ¥ç¶ã§ããããŒãããããŸãããã¹ãã¬ãªã®å·ŠåŽããªãŒãã£ãªå ¥åããŒã1ã«ãå³åŽããªãŒãã£ãªå ¥åããŒã2ã«æ¥ç¶ãã®ãããªããã¡ã«ãªããŸããããŒã¿ãªãŒãšã³ã³ãŒããŒã®ããã«ãã³ãæ¯ãåãããšãã§ã¯ããããã®ä»çµã¿ã掻çšããŸãããªããŒãããã£ã¬ã€ã§ãå·Šå³ã®åºããæ¹ãã«ã¹ã¿ãã€ãºã§ãããããããŸããã | |
-è«ççã«ã¯ãã¹ãã¬ãªåºåã®ããŒããšambisonicãªã©ã®ãµã©ãŠã³ããã£ã³ãã«å¯Ÿå¿ã®ããŒãã¯ãå¥åã®ãã®ãšããŠååšãããã®ã§ãããããäŒçµ±çã«ãªãŒãã£ãªãã©ã°ã€ã³ã¯ã¹ãã¬ãªãã£ã³ãã«ãåæãšããŠéçºãããŠãããã®ã§ãããã¹ãã¬ãªåºåã«ã®ã¿å¯Ÿå¿ãããã®ãã»ãšãã©ã§ããããããå ã®ããŒã¿ãªãŒãšã³ã³ãŒããŒã®ãããªãšãã§ã¯ãã§ããã°ãšãããããã£ã¹ããŒã·ã§ã³ãªã©å€ãã®ãšãã§ã¯ãããããã¯ã€ã³ã¹ãã¥ã«ã¡ã³ããã©ã°ã€ã³ã§ã¯ãå·Šå³åãå 容ã®æ³¢åœ¢ãåºåããŠãããããã¯ãã®ãŸãŸãµã©ãŠã³ããã£ã³ãã«ã§äœ¿ã£ãŠãæ¯éããããŸãããå®éããã©ã°ã€ã³åŽã§ãµã©ãŠã³ãå ¥åã«å¯ŸããŠã¯ã¹ãã¬ãªæå®ãšåæ§ã®å ¥åºåãåŠçããã®ã¯äžè¬çã§ããã@<fn>{halion} | |
+è«ççã«ã¯ãã¹ãã¬ãªåºåã®ããŒããš3DãªãŒãã£ãªãªã©ã®å€ãã£ã³ãã«å¯Ÿå¿ã®ããŒãã¯ãå¥åã®ãã®ãšããŠååšãããã®ã§ãããç¹ã«VRãµããŒããªã©ã§3DãªãŒãã£ãªã®å¯Ÿå¿èŠæ±ãé«ãŸã£ãŠããã§ãããçŸä»£ã§ã¯ãã¹ãã¬ãªã«åºå®ãããªãé©åãªãªãŒãã£ãªãã¹ã®ãµããŒãã¯éèŠã§ãã | |
+ | |
+ãã£ãšããäŒçµ±çã«ãªãŒãã£ãªãã©ã°ã€ã³ã¯ã¹ãã¬ãªãã£ã³ãã«ãåæãšããŠéçºãããŠãããã®ã§ãããã¹ãã¬ãªåºåã«ã®ã¿å¯Ÿå¿ãããã®ãã»ãšãã©ã§ãããå ã®ããŒã¿ãªãŒãšã³ã³ãŒããŒã®ãããªãšãã§ã¯ãã§ããã°ãšãããããã£ã¹ããŒã·ã§ã³ãªã©å€ãã®ãšãã§ã¯ãããããã¯ã€ã³ã¹ãã¥ã«ã¡ã³ããã©ã°ã€ã³ã§ã¯ãå·Šå³åãå 容ã®æ³¢åœ¢ãåºåããŠãããããã¯ãã®ãŸãŸãµã©ãŠã³ããã£ã³ãã«ã§äœ¿ã£ãŠãæ¯éããããŸãããå®éããã©ã°ã€ã³åŽã§ãµã©ãŠã³ãå ¥åã«å¯ŸããŠã¯ã¹ãã¬ãªæå®ãšåæ§ã®å ¥åºåãåŠçããã®ã¯äžè¬çã§ããã@<fn>{halion} | |
//footnote[halion][ããšãã°Steinberg HALionã®ãã«ããã£ã³ãã«ãšãã§ã¯ãã¯ãã®ããã«ããã¥ã¡ã³ãã§èª¬æãããŠããŸãã] | |
-ãããã®ãªãŒãã£ãªãã©ã°ã€ã³ã®ããŒãã®ãæ¥ç¶ããšã¯ãå ·äœçã«ã¯ãªãŒãã£ãªã¹ããªãŒã ã®å ¥åºåã«äœ¿ããããããã¡ã®ãã€ã³ã¿ãŒãèšå®ããããšããããšã§ããå€å žçãªãã¹ã¯ãããã®DAWã§ããã°ããã¹ãåŽã§ã¡ã¢ãªãããã¡ãçšæããŠããã®ãã€ã³ã¿ãŒãçŽæ¥ãã©ã°ã€ã³åŽã«æž¡ãã ãã§äºè¶³ããã§ãããã | |
+ãããã®ãªãŒãã£ãªãã©ã°ã€ã³ã®ããŒãã®ãæ¥ç¶ãã¯ãåºæ¬çã«ã¯åãªã芳念äžã®ãã®ã§ããããªãŒãã£ãªã¹ããªãŒã ã®å ¥åºåã«äœ¿ããããããã¡ã®ãã€ã³ã¿ãŒãèšå®ããããšãããã®ããããŸããLV2ãã©ã°ã€ã³ã®ä»çµã¿ã§ã¯ãããå¿ é ã«ãªããŸãããã ãããã§ã¯ãã¹ãåŽã¯ãªã³ã°ãããã¡ã®ãã€ã³ã¿ãåçã«æž¡ãããã空ããŠãããããã¡ãåçã«äœ¿ãåããšãã£ãæé©åãè¡ããªããçã®æªãä»çµã¿ã§ãã | |
-äžæ¹ã§ãã¢ãã€ã«OSãã¢ãã³ãªãã¹ã¯ãããç°å¢ã§ã¯ããã¹ãããã°ã©ã ãšããããããŒãããããã©ã°ã€ã³ããããã»ã¹ãšããŠã¯å¥ç©ºéã§åäœããŠããå¯èœæ§ããããŸãããã©ã°ã€ã³ãã¯ã©ãã·ã¥ããŠããã¹ãåŽãå·»ãæ·»ããé£ã£ãŠèœã¡ãããšããªãèšèšã«ããããã®ä»çµã¿ãªã®ã§ããããã®å Žåããã®äž¡è ã®éã§ã¯ãå ±æã¡ã¢ãªã®ã¿ãããŒã¿ã®åãæž¡ãã«å©çšå¯èœã«ãªãã®ã§ãå Žåã«ãã£ãŠã¯ãªãŒãã£ãªãããã¡ãªã³ã°ã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããããšã«ãªããŸãã | |
+ããã«ãLV2ã«ã¯ãªãŒãã£ãªããŒãã®èŠ³å¿µãç¡ãå šãŠãããŒãã§ãããšããèšèšäžããªãŒãã£ãªãã¹ãé©åã«å€å¥ã»èª¿æŽã§ããªããšããåé¡ããããŸããããã¯3DãªãŒãã£ãªã®éèŠãé«ãŸã以åãããæ¢ã«ã¢ãã©ã«ãã©ã°ã€ã³ãšã¹ãã¬ãªãã©ã°ã€ã³ã®éãã§åé¡ã«ãªã£ãŠããŸãããLV2ä»æ§èšèšè ãéçºã¡ã³ããŒã§ããLV2ã®DAWã§ããArdourã§ã¯ãã¢ãã©ã«ãã©ã°ã€ã³ãã¹ãã¬ãªãã£ã³ãã«ã«æ¥ç¶ãããšãã¯ãå éšã§ã€ã³ã¹ã¿ã³ã¹ã2ã€çæããŠãã©ã¡ãŒã¿ãŒå€æŽãªã©ã2ã€åæã«è¡ããããªããã¯ã§å¯Ÿå¿ããŠããŸãããVST3ã§ã¯ãã¹ããšãã©ã°ã€ã³ã§ãªãŒãã£ãªãã¹èª¿æŽã®ããŽã·ãšãŒã·ã§ã³ãè¡ããããã©ã°ã€ã³ã®é©çšã¯ãã®èª¿æŽã«åºã¥ããŠçæããããããã¡æ§é ãæž¡ãããã®ã§ããã®ãããªåé¡ã¯çããŸããã | |
+ãŸãããã€ã³ã¿ãŒãåºå®ããæ¹åŒã¯ãå€å žçãªãã¹ã¯ãããã®DAWã§ããã°ããã¹ãåŽã§ã¡ã¢ãªãããã¡ãçšæããŠããã®ãã€ã³ã¿ãŒãçŽæ¥ãã©ã°ã€ã³åŽã«æž¡ãã ãã§äºè¶³ããŸãããäžæ¹ã§ãã¢ãã€ã«OSãã¢ãã³ãªãã¹ã¯ãããç°å¢ã§ã¯ããã¹ãããã°ã©ã ãšããããããŒãããããã©ã°ã€ã³ããããã»ã¹ãšããŠã¯å¥ç©ºéã§åäœããŠããå¯èœæ§ããããŸãããã©ã°ã€ã³ãã¯ã©ãã·ã¥ããŠããã¹ãåŽãå·»ãæ·»ããé£ã£ãŠèœã¡ãããšããªãèšèšã«ããããã®ä»çµã¿ãªã®ã§ããããã®å Žåããã®äž¡è ã®éã§ã¯ãå ±æã¡ã¢ãªã®ã¿ãããŒã¿ã®åãæž¡ãã«å©çšå¯èœã«ãªãã®ã§ãå Žåã«ãã£ãŠã¯ãªãŒãã£ãªãããã¡ãªã³ã°ã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããããšã«ãªããŸãã | |
-## ãªãŒãã£ãªãã©ã°ã€ã³ã®äžè¬çãªåŠç | |
+## ãªãŒãã£ãªãã©ã°ã€ã³ã®æ©èœ | |
-ãªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã¯ããã€ãååšããŸããããããã®æ©æ§ã«ã€ããŠãã次ã®ãããªæ©èœã»åŠçããµããŒãããŠããããšãæåŸ ãããŸãã | |
+ãªãŒãã£ãªãã©ã°ã€ã³æ©æ§ã¯ããã€ãååšããŸããããããã®æ©æ§ã«ã€ããŠãã次ã®åç¯ã§ç€ºããããªæ©èœã»åŠçããµããŒãããŠããããšãæåŸ ãããŸãã | |
-(1)ã¯ãšãªãŒ | |
+### ã€ã³ã¹ããŒã«ãããŠãããã©ã°ã€ã³ã®åæ | |
ãªãŒãã£ãªãã©ã°ã€ã³ãã¹ãã¯ããŠãŒã¶ãŒã®ç°å¢ã«ã€ã³ã¹ããŒã«ãããŠãããªãŒãã£ãªãã©ã°ã€ã³ãåæããŸããå žåçãªæåãšããŠã¯ãã·ã¹ãã äžã®ç¹å®ã®ãã¹ïŒããšãã°VSTã§ããã°`c:\Program Files\VSTPlugins`ãªã©ïŒã«ã€ã³ã¹ããŒã«ãããŠãããã©ã°ã€ã³ãåæãããŸããéçºäžã§ããã°éçºçšã®ãã©ã°ã€ã³ã ããåæãããå Žåããããç°å¢å€æ°ã§ãªãŒããŒã©ã€ãã§ãããã©ã°ã€ã³æ©æ§ããããŸãã | |
ãã©ã°ã€ã³ã®åæã¯ãããªãã«æéã³ã¹ãããããäœæ¥ã§ããããŸãDAWäžã§ãã©ã°ã€ã³ãåæãããããªæäœã¯é »ç¹ã«åŒã³åºãããŸãããã®ãããå€ãã®DAWã§ã¯ãã©ã°ã€ã³ãåæããçµæããã£ãã·ã¥ããŸãããŸãããªãŒãã£ãªãã©ã°ã€ã³ãã¹ãåŽã¯è€æ°ã®ãã©ã°ã€ã³æ©æ§ããµããŒãããŠããã®ãäžè¬çã§ãã | |
-(2)ããŒãã»ã¢ã³ããŒã | |
+ãªãŒãã£ãªãã©ã°ã€ã³ãã¹ãäžã®UIã«ãã©ã°ã€ã³ãåæããããšããŠãŒã¶ãŒã¯ãã©ã°ã€ã³ãéžæããŠãã©ãã¯ã®ãã©ã°ã€ã³ãªã¹ãã«è¿œå ããã§ãããããããã¯ããæè»ãªã«ãŒãã£ã³ã°ãæå®ã§ããDAWããã©ã°ã€ã³ãã¹ãã§ããã°ããã©ã°ã€ã³ãã«ãŒãã£ã³ã°ã§ããããã«ããŒãã®æ¥ç¶ã調æŽããããã«ãªãã§ãããã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ãã¹ãäžã®UIã«ãã©ã°ã€ã³ãåæããããšããŠãŒã¶ãŒã¯ãã©ã°ã€ã³ãéžæããŠæäœããããšããŸãããããã¯ã楜æ²ããŒã¿ã§ãªãŒãã£ãªãã©ã°ã€ã³ãæå®ãããŠããããããŒãæã«ãã®ãã©ã°ã€ã³ãããŒãããããšããã§ãããã | |
+### ã€ã³ã¹ã¿ã³ã¹ã®çæã»å©çšã»ç Žæ£ | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã¯ãäžè¬çã«ã¯äžæèå¥åïŒãŠããŒã¯IDïŒã§ããããã¯ãããååšããªããã©ã°ã€ã³æ©æ§ãIDã®ç¡ããã©ã°ã€ã³ã«ã€ããŠã¯ååã§èå¥ãããŸããååã§ã倧æµã®å Žåã¯èå¥ãå¯èœã§ãããåãååããã€äººéããåŸãããã«ãåãååã®ãã©ã°ã€ã³ãååšããããšãããåŸãŸããäžæèå¥åã«ã¯éåžžUUIDãããã·ã¥æååã®äžéšãªã©ãã»ãŒè¡çªããªãããã®ãçšããããŸããããå°ãåå§çãªDAWã ãšããªãŒãã£ãªãã©ã°ã€ã³ã®ãã¡ã€ã«ãã¹ã§èå¥ãããããšããããŸãã | |
+ãã©ã°ã€ã³ã®ã€ã³ã¹ã¿ã³ã¹ã®ã©ã€ããµã€ã¯ã«ã¯ãã©ã®ãã¬ãŒã ã¯ãŒã¯ã§ãããã次ã®ãããªæºåãç¶æ é·ç§»ãåæã«äœãããŠããŸãã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã«ã¯ãäžè¬çã«ã¯ãã€ãã£ãã³ãŒãã®åçã©ã€ãã©ãªãå«ãŸããŠããããã¹ãåŽã¯ãã©ã°ã€ã³ãåçã«ããŒãããŠå®è¡ã§ããä»çµã¿ãå¿ èŠã«ãªããŸããå€å žçãªãã¹ã¯ãããç°å¢ã§ã¯æ¯èŒçç°¡åã§ãWindowsã§ããã°`LoadLibrary()`ãUnixç³»OSã§ããã°`dlopen()`ã䜿çšããŠããŒãããããšã«ãªãã§ããããäžæ¹ã§ãOSã«ãã£ãŠã¯ãã©ã°ã€ã³ããã¹ãã«ãšã£ãŠãå€éšããã°ã©ã ãã«ãªãããšãããããã®å Žåã¯ãã©ãããã©ãŒã åºæã®æ¹æ³ã§ããŒããããããšããããŸããmacOSãiOSã®App Extensionãªã©ãããã«åœãŠã¯ãŸããŸãã | |
+(1)ããŒãã»ã¢ã³ããŒã | |
-(3)ãããã¡ã®æºå | |
+ãã£ãããã©ã°ã€ã³ããã©ãã¯ã«è¿œå ããããããã®ãã©ã°ã€ã³ãDAWã«ããŒããããŸãããããã¯ã楜æ²ããŒã¿ã§ãªãŒãã£ãªãã©ã°ã€ã³ãæå®ãããŠããããããŒãæã«ãã®ãã©ã°ã€ã³ãããŒãããããšããã§ãããã | |
-åç¯ã§èª¬æããéãããªãŒãã£ãªãã©ã°ã€ã³ã¯ãéåžžã¯1ã€ã®ãã©ãã¯ã«å¯ŸããŠè€æ°æå®ãããŸãããã©ãã¯ã®ãªãŒãã£ãªãã©ã°ã€ã³èšå®ã¯ãäžè¬çã«ã¯è€æ°ã®ãã©ã°ã€ã³ãç¹ãåçŽãªäžæ¹åã®ãªã¹ãã«ãªã£ãŠããŸãããããã®ãªãŒãã£ãªãã¹ãããªãŒãã£ãªãã©ã°ã€ã³ã®ããŒãã«æ¥ç¶ããåŠçãå¿ èŠã«ãªããŸããäœãã©ãã«æ¥ç¶ãããã¯ãã¹ããæå®ããããšã«ãªããŸãã | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã«ã¯ãäžè¬çã«ã¯ãã€ãã£ãã³ãŒãã®åçã©ã€ãã©ãªãå«ãŸããŠããããã¹ãåŽã¯ãã©ã°ã€ã³ãåçã«ããŒãããŠå®è¡ã§ããä»çµã¿ãå¿ èŠã«ãªããŸããå€å žçãªãã¹ã¯ãããç°å¢ã§ã¯æ¯èŒçç°¡åã§ãWindowsã§ããã°`LoadLibrary()`ãUnixç³»OSã§ããã°`dlopen()`ã䜿çšããŠããŒãããããšã«ãªãã§ããããäžæ¹ã§ãOSã«ãã£ãŠã¯ãã©ã°ã€ã³ããã¹ãã«ãšã£ãŠãå€éšããã°ã©ã ãã«ãªãããšãããããã®å Žåã¯ãã©ãããã©ãŒã åºæã®æ¹æ³ã§ããŒããããããšããããŸããmacOSãiOSã®App Extensionã®ä»çµã¿ã䜿ãAUv3ãªã©ãããã«åœãããŸãã | |
+ | |
+(2)ãããã¡ã®æºå | |
+ | |
+åç¯ã§èª¬æããéãããªãŒãã£ãªãã©ã°ã€ã³ã¯ãéåžžã¯1ã€ã®ãã©ãã¯ã«å¯ŸããŠè€æ°æå®ãããŸãããã©ãã¯ã®ãªãŒãã£ãªãã©ã°ã€ã³èšå®ã¯ãäžè¬çã«ã¯è€æ°ã®ãã©ã°ã€ã³ãç¹ãåçŽãªäžæ¹åã®ãªã¹ãã«ãªã£ãŠããŸãããããã®ãªãŒãã£ãªãã¹ãããªãŒãã£ãªãã©ã°ã€ã³ã®ããŒãã«æ¥ç¶ããåŠçãå¿ èŠã«ãªããŸããäœãã©ãã«æ¥ç¶ãããã¯ãã¹ããæå®ããããšã«ãªããŸããåè¿°ã®éãããªãŒãã£ãªãã¹ã®æŠå¿µãååšããªãLV2ãšååšããVST3ã§ã¯ãããã§æåŸ ãããåŠçãã ãã¶ç°ãªããŸãã | |
ãããã¡ã®æ¥ç¶ãå¿ èŠãªã®ã¯ãªãŒãã£ãªã¹ããªãŒã ã ãã§ã¯ãããŸãããã³ã³ãããŒã«ãã©ã¡ãŒã¿ãŒã®ããåãã«ããå°çšã®ãããã¡ãçšæãããŸããVSTi (Instrument) ãªã©ã¯ããªãŒãã£ãªã¹ããªãŒã ã§ã¯ãªãã³ã³ãããŒã«ãã©ã¡ãŒã¿ãŒãåãåã£ãŠãªãŒãã£ãªã¹ããªãŒã ãçæããŸãã | |
-(4)ã¢ã¯ãã£ããŒãã»ãã£ã¢ã¯ãã£ããŒã | |
+(3)ã¢ã¯ãã£ããŒãã»ãã£ã¢ã¯ãã£ããŒã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã«ããã¹ããªãŒã ã®å å·¥ã¯ãããã©ãŒãã³ã¹äžã®çç±ãããåªå 床ã®é«ããªãŒãã£ãªã¹ã¬ããã§è¡ãããã®ãäžè¬çã§ãããã®å ŽåããªãŒãã£ãªãã©ã°ã€ã³ç¬èªã®ã¹ã¬ããã§åŸ æ©ãããåæãããããããšã¯ãªããšããããšã«ãªããŸãã䜿çšããŠããªãç¶æ ã®ãªãŒãã£ãªãã©ã°ã€ã³ã®åŠçãèµ°ããããŸãŸã«ããŠããã®ã¯ã³ã³ãã¥ãŒã¿ãŒãªãœãŒã¹ã®ç¡é§é£ãã§ãããç¬èªã®ã¹ã¬ããã§å¶åŸ¡ããããšã¯ã§ããªãã®ã§ãåçŽã«ãã©ã°ã€ã³ã®ã¹ã€ããã§æå¹ã»ç¡å¹ãåãæ¿ããŠãç¡å¹ã®ãšãã¯äœãå å·¥ããã«åŠçãå®äºããŠåŒã³åºãå ã«åž°ãããã«ããŸãããããå®çŸããã®ãã¢ã¯ãã£ããŒãåŠçã§ããåŠçãšãã£ãŠãåã«ãã©ã°ãåãæ¿ããã ããããããŸããã | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã«ããæŒå¥äžã®ã¹ããªãŒã ã®å å·¥ã¯ããªã¢ã«ã¿ã€ã å¶çŽã«ãããåªå 床ã®é«ããªãŒãã£ãªã¹ã¬ããã§è¡ãããã®ãäžè¬çã§ãããã®å ŽåããªãŒãã£ãªãã©ã°ã€ã³ç¬èªã®ã¹ã¬ããã§åŸ æ©ãããåæãããããããšã¯ãªããšããããšã«ãªããŸãã䜿çšããŠããªãç¶æ ã®ãªãŒãã£ãªãã©ã°ã€ã³ã®ãªã¢ã«ã¿ã€ã åŠçãèµ°ããããŸãŸã«ããŠããã®ã¯ã³ã³ãã¥ãŒã¿ãŒãªãœãŒã¹ã®ç¡é§é£ãã§ãããç¬èªã®ã¹ã¬ããã§å¶åŸ¡ããããšã¯ã§ããªãã®ã§ãåçŽã«ãã©ã°ã€ã³ã®ã¹ã€ããã§æå¹ã»ç¡å¹ãåãæ¿ããŠãç¡å¹ã®ãšãã¯äœãå å·¥ããã«åŠçãå®äºããŠåŒã³åºãå ã«åž°ãããã«ããŸãããããå®çŸããã®ãã¢ã¯ãã£ããŒãåŠçã§ããåŠçãšãã£ãŠããå€ãã®ãã©ã°ã€ã³ã§ã¯åã«å éšçãªç¶æ ãã©ã°ãåãæ¿ããã ããããããŸããã | |
-(5)å å·¥åŠç | |
+(4)å å·¥åŠç | |
ãããŸã§æºåãæŽã£ããããããããã¹ããšã®ãªãŒãã£ãªã¹ããªãŒã ã®ããåããå¯èœã«ãªããŸããããã§äœãè¡ããã¯ãã©ã°ã€ã³æ¬¡ç¬¬ã§ãããªãŒãã£ãªã¹ããªãŒã ã®åŠçã¯ãªã¢ã«ã¿ã€ã ã§è¡ãããå¿ èŠãããã®ã§ãããŸãè€éãªåŠçã¯è¡ããŸãããäžè¬çã«ã¯ã1åã®åŒã³åºãã§å šããŒãã®å ¥åãåŠçããããšã«ãªããŸãããŸããªãŒãã£ãªãã©ã°ã€ã³ã¯é£çµããŠããã®ã§ãè€æ°ã®ãã©ã°ã€ã³ãå šãŠåŠçãå®äºãããŸã§ã«ã¯ããããªãã®æéããããããšã«ãªããŸãã | |
-ã¡ãªã¿ã«ãå å·¥åŠçãšãããã¡æºåã¯å¥ã ã®äœæ¥ãšããŠæ±ãããŠããŸããããã¹ãåŽã§ã®ãããã¡ãªã³ã°ã®å®è£ ã«ãã£ãŠã¯ãå å·¥åŠçã®åã«å¿ ããããã¡èšå®ãåŒã³åºãããããã«å®è£ ããããããããŸããããã®ãããªãã©ã°ã€ã³æ©æ§ã«ã€ããŠã¯ããªãŒãã£ãªãã©ã°ã€ã³åŽã¯ãããåæãšããŠèšèšããå¿ èŠããããŸããLADSPAãLV2ã¯å å·¥åŠç`run()`ã®åã«ãããã¡ã`connect_port()`ã§æå®ããã®ã§ãããšãã°ãªã³ã°ãããã¡ã§æ¯åå é ãã€ã³ã¿ã移åããå Žåã«ã¯ãæ¯å`connect_port()`ã®åŒã³åºããå¿ èŠã«ãªããŸããVST3ã§ã¯å å·¥åŠçã®åŒã³åºãããšã«ãããã¡ãåŒæ°ãšããŠæž¡ãããã®ã§ç¡é¢ä¿ã§ãã | |
+ã¡ãªã¿ã«ãå å·¥åŠçãšãããã¡æºåã¯å¥ã ã®äœæ¥ãšããŠæ±ãããŠããŸããããã¹ãåŽã§ã®ãããã¡ãªã³ã°ã®å®è£ ã«ãã£ãŠã¯ãå å·¥åŠçã®åã«å¿ ããããã¡èšå®ãåŒã³åºãããããã«å®è£ ããããããããŸããããã®ãããªãã©ã°ã€ã³æ©æ§ã«ã€ããŠã¯ããªãŒãã£ãªãã©ã°ã€ã³åŽã¯ãããåæãšããŠèšèšããå¿ èŠããããŸããLV2ã¯å å·¥åŠç`run()`ã®åã«ãããã¡ã`connect_port()`ã§æå®ããã®ã§ãããšãã°ãªã³ã°ãããã¡ã§æ¯åå é ãã€ã³ã¿ã移åããå Žåã«ã¯ãæ¯å`connect_port()`ã®åŒã³åºããå¿ èŠã«ãªããŸããVST3ã§ã¯å å·¥åŠçã®åŒã³åºãããšã«ãããã¡ãåŒæ°ãšããŠæž¡ãããã®ã§ç¡é¢ä¿ã§ãã | |
-(6)ã¢ã³ããŒã | |
+(5)ã¢ã³ããŒã | |
ãã©ã°ã€ã³ã®åŠçãå šãŠçµãã£ãŠããã©ã°ã€ã³ãäžèŠã«ãªã£ãããã¡ã¢ãªäžããã¢ã³ããŒãããŸãïŒæ¬¡ã®äœ¿çšã«åããŠããŒããã£ã±ãªãã«ããŠãããããããŸããïŒã | |
+### ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã©ã¡ãŒã¿ãŒãšstate | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã®èª¿æŽã¯ãçæ³çã«ã¯ãªãŒãã£ãªãã©ã°ã€ã³ãã©ã¡ãŒã¿ãŒã®ã¿ã§è¡šçŸã§ããããšãæãŸããã§ãããå¿ ããããããå®çŸåºæ¥ãªãå ŽåããããŸããããšãã°âŠ | |
+ | |
+- ãªãŒãã£ãªãã©ã°ã€ã³äœè ããDAWãçµç±ããŠãŠãŒã¶ãŒã«ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ãããããªãã»åŠšå®³ãããã®ã§ããã©ã¡ãŒã¿ãŒã®ååãå€ãå ¬éããããªããšããå Žå | |
+- ãã©ã¡ãŒã¿ãŒã®ããŒãžã§ã³ãäžãã£ãããšã§äžäœäºææ§ãªã©ãç¶æã§ããªããªããåãªãååãšå€ã ãã§ã¯ååã«æå³ãè¡šçŸã§ããªããªã£ããããå Žå@<fn>{param-backward-compat} | |
+- å€æŽããªã¢ã«ã¿ã€ã ã«åæ ã§ããªãçšåºŠã«é·å€§ãªåŠçã䌎ãå Žå | |
+- ãã©ã°ã€ã³æ©æ§ãæ°å€ä»¥å€ã®ãã©ãŒãããããµããŒãããŠããªããããã©ã°ã€ã³åŽã§ãŠãŒã¶ãŒèšå®ãå¿ èŠã«ãªãå Žå | |
+- ãµã³ããªã³ã°ããŒã¿ãªã©ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãã«ã¯å·šå€§ãããããŒã¿ã®åãæž¡ããå¿ èŠã«ãªãå Žå | |
+ | |
+//footnote[param-backward-compat][å®ã®ãšãããçè ããããã話ãèããããšããããšããçšåºŠã§ãæ¬åœã«ãã©ã¡ãŒã¿ãŒã§è¡šçŸã§ããªãããšãªã®ãã¯çåã®äœå°ã倧ãã«ãããšããã§ãã] | |
+ | |
+ç¹ã«ãæååããŒã¿ã«é¢ããŠã¯ãDAWåŽã®ãã¢ãããŒã«çã§å ¥åãããUIãæ§ç¯ããã®ããšããåé¡ããããŸããããªã¢ã«ã¿ã€ã ã§ãªãŒãã£ãªããŒã¿ãåŠçããªããšãããªãã®ã«ãã®äžã§æååãåŠçã§ããã®ããšããåé¡ãããããšãããåºæ¬çã«æååã¯ãµããŒããããã¹ãã§ã¯ãªããšããããŸããåæå€ãªã©ã®äœ¿ã£ãŠä»£æ¿ããããæ¹ãæšå¥šããããšããã§ãã | |
+ | |
+ãã®ãããªå Žåã§ãããªãŒãã£ãªãã©ã°ã€ã³ãšãã¹ãã®éã§æ å ±ãããåãã§ããããã«ãäžè¬çãªãã©ã°ã€ã³æ©æ§ã§ã¯stateïŒç¶æ ïŒãšåŒã°ãããã€ããªããŒã¿ãååŸã»èšå®ã§ããããã«ãªã£ãŠããŸãã | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã®èšèšãDAWã®èšèšã«ãããŠãstateã䜿ãå Žåã«äžè¬çã«æ³šæãã¹ãããšã¯ãstateã¯MIDIã®ã³ã³ãããŒã«ãã§ã³ãžãäžè¬çãªãã©ã¡ãŒã¿ãŒãšã¯ç°ãªããéåžžã¯ãã¡ã€ã«I/Oãªã©ã䌎ãå¯èœæ§ããããäžè¬çã«ã¯æŒå¥åœä»€ãšããŠãã©ãã¯ã®åçéäžã§å€æŽã§ããããã«ã¯äœãããŠããªããšããç¹ã§ãããã©ã°ã€ã³éçºè ã¯ãstateãæ²å šäœãéããŠåºå®ãšãªãé³è²èšå®ãªã©ã«ä»éãããã®ãšããŠäœ¿ãã¹ãã§ããããã¹ãéçºè ã¯ãstateã®å€æŽããªã¢ã«ã¿ã€ã åŠçäžã«çºçããããšã¯ãªãããšåæã«ã§ããŸãã | |
+ | |
+ | |
+## é«åºŠãªè©±é¡ | |
+ | |
+ãã®ç¯ã§ã¯ãããŸã§åãäžããªãã£ãããçšåºŠé«åºŠãªè©±é¡ãããã€ãåãäžããŠãããŸãã | |
+ | |
+### ãã©ã°ã€ã³æ¬äœãšãã©ã°ã€ã³GUIã®ã€ã³ã¿ã©ã¯ã·ã§ã³ | |
+ | |
+æ¬æžã§ã¯DAWã®æ©èœãå®çŸããããã®GUIæ§æèŠçŽ ã«ã€ããŠã¯æ±ããŸããããã·ãŒã±ã³ãµãŒãšã³ãžã³ãããã©ã°ã€ã³ã®GUIãåŒã³åºããã管çãããããå Žé¢ã§çããè«žåé¡ã«ã€ããŠã¯ããçšåºŠè«ããŠãããŸãã | |
+ | |
+DAWã§ãªãŒãã£ãªãã©ã°ã€ã³ãããŒããããããã®åŸãã©ãã¯ã®ç·šéç»é¢ã§GUIãéããŠãã©ã¡ãŒã¿ãŒã調æŽããäœæ¥ãå¯èœã«ãªããŸããå žåçãªDAWã®æåãšããŠã¯ããŠãŒã¶ãŒãGUIãéã床ã«ãã®GUIãç¬ç«ãããŠã£ã³ããŠãšããŠè¡šç€ºãããäžè¬çãªã¢ããªã±ãŒã·ã§ã³ã®ãŠã£ã³ããŠãšã¯ããç°ãªãèŠåã«åŸã£ãŠåäœããŸããããšãã°ESCããŒãæŒãã ãã§ãŠã£ã³ããŠãéãããããŸãïŒDAWã«ãããŸãïŒããŠã£ã³ããŠãéããå Žåã§ããGUIã®ã©ã€ãã©ãªã¯å床ãŠã£ã³ããŠãéãæ瀺ãåºããšãã«çŽã¡ã«è¡šç€ºã§ããããã«ãããŒãããããŸãŸã®ç¶æ ãããããŸããããã¡ã¢ãªãæ©ãéæŸããããã«å ±æã©ã€ãã©ãªãDAWããã»ã¹ããã¢ã³ããŒããããããããŸããã | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã§ã¯GUIãæäŸãããã®ãäžè¬çã§ããããªãŒãã£ãªãã©ã°ã€ã³ã®ã©ã€ãã©ãªã³ãŒãã«ãã©ã°ã€ã³ã®ãšãã£ã¿ãŒGUIã衚瀺ããã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ãããŠããã°ãDAWã¯ãããããŒãããŠè¡šç€ºããŸããäžæ¹ã§ããã©ã°ã€ã³ã«ã¯GUIãæäŸããªããšããéžæè¢ãããããã®å Žåã§ããã©ã°ã€ã³ããµããŒããããã©ã¡ãŒã¿ãŒã®ãªã¹ããªã©ã®æ å ±ãããã°ãããããæäœéã®GUIãèªåçã«äœæã§ããŸãã | |
+ | |
+ãããäžè¬çãªGUIã¢ããªã±ãŒã·ã§ã³ãããžãã¯ãšãã¥ãŒãåé¢ããããã«ããã©ã°ã€ã³ã®GUIãšãã©ã°ã€ã³ã®ãªãŒãã£ãªåŠçã³ãŒãã¯åé¢ããŠããã®ãããã¹ã姿ã§ãããªãŒãã£ãªãã©ã°ã€ã³ãã¬ãŒã ã¯ãŒã¯ã¯å€ããå°ãªãããããAPIã«ãã£ãŠåŒ·å¶ããŸãã | |
+ | |
+VST3, AU, LV2ã®ãã¡ãæã匷å¶åããã£ããããŠããã®ã¯LV2ã§ããªãŒãã£ãªãã©ã°ã€ã³æ¬äœã®å ±æã©ã€ãã©ãªãšãã©ã°ã€ã³GUIã®å ±æã©ã€ãã©ãªã¯å¥ã ã«`dlopen()`ã§ããŒããããŸããã©ã€ãã©ãªãšããŠå¥ã ã«ããŒããããã®ã§ããã»ã©æå³çã«åãçµãã ãããªãéããæãŸãããªãUIãšããžãã¯ã®ã³ãŒãã®æ··åã¯çããŸãããGUIãšãã©ã°ã€ã³æ¬äœã®éã®ããåãã¯ããã¹ããšãã©ã°ã€ã³ã®éã®ããåããšåæ§ã«ããã©ã°ã€ã³ã®ããŒããéããŠè¡ãããŸãïŒäœ¿çšããAPIã¯LV2 UIæ¡åŒµãæäŸããç¬èªã®ãã®ã§ãïŒã | |
+ | |
+VST3ã¯ãããŸã§å³ããã§ããŠããŸããããŸããã©ã°ã€ã³ã®ã€ã³ã¹ã¿ã³ã¹ã«å¯Ÿãããã©ã¡ãŒã¿ãŒã®ååŸã»èšå®ãªã©ããµããŒãããVST-MAã®ã³ã³ããŒãã³ãã®ã€ã³ã¿ãŒãã§ãŒã¹`IEditController`ãå®è£ ããŠããã®ã¡ã³ããŒã§ãã`createView()`é¢æ°ãè¿ã`IPlugView`ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããããšã§ãGUIæ©èœãå®çŸããŸãããã©ã°ã€ã³ã®ç¶æ ãæäœããå Žåã¯ã`IPlugView`ãããã®`IEditController`ã®APIãçµç±ããŠè¡ãããšãæåŸ ãããŸãã | |
+ | |
+AUãå³ãããªãããã©ã°ã€ã³GUIã¯`AUViewController`ã®ãµãã¯ã©ã¹ãšããŠå®çŸ©ããããšã«ãªããŸããããã¯AUãã©ã°ã€ã³ã®ã€ã³ã¹ã¿ã³ã¹ãšãªã`AUAudioUnit`ãçæãã`createAudioUnit`ã¡ãœãããå®è£ ããããšã«ããªãã®ã§ãå®è³ªçã«éUIããžãã¯ãã©ãã ãåé¢ããããã¯éçºè ã®èœå次第ãšè©äŸ¡ã§ããã§ãããã | |
+ | |
+JUCEã¯VST3ãAUã®ã¢ãããŒãã«è¿ãããã©ã°ã€ã³éçºè ã¯`AudioProcessor`ã¯ã©ã¹ãã掟çããèªåã®ãã©ã°ã€ã³ãå®è£ ããéçšã§ããã®ã¡ã³ããŒé¢æ°`createEditor()`ãã`AudioProcessorEditor`ãã掟çããèªåã®ãã©ã°ã€ã³UIã®ã€ã³ã¹ã¿ã³ã¹ãè¿ãããšã«ãªããŸããããã«ã¯APIã«ããé©åãªçžããç¡ãã`AudioProcessor`ã`AudioProcessorEditor`ã®ã€ã³ã¹ã¿ã³ã¹ãåç §ããªãããã«ã³ãŒãã£ã³ã°ããã®ã¯ãã©ã°ã€ã³éçºè ã®èªå·±è²¬ä»»ã§ãã | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã«ã¯ãäžè¬çãªGUIã¢ããªã±ãŒã·ã§ã³ãããããã«å€§ããªããã©ã°ã€ã³ã®ã³ãŒããšGUIã®ã³ãŒãããã¡ããšåé¢ããã¹ãçç±ããããŸããããã¯çåæéã®éãã§ããGUIã¯DAWãã衚瀺ããæ瀺ãåããªãéãã€ã³ã¹ã¿ã³ã¹çæããå¿ èŠããªããå€ãã®å Žåã¯ãã®ãã©ãã¯ã®ç·šéäœæ¥ãçµãã«æŒå¥ã§ããããšã«ãªããŸãããŠã£ã³ããŠãéããŠããéã ãããžãã¹ããžãã¯ãçããŠããã°ããããšãããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ãšã¯ããã®ç¹ã§ã ãã¶åæãç°ãªãããã§ãã | |
+ | |
+### ãã¹ãGUIãšãã©ã°ã€ã³GUIã®ã€ã³ã¿ã©ã¯ã·ã§ã³ | |
+ | |
+ãã©ã°ã€ã³æ¬äœãšãã©ã°ã€ã³UIã®é¢ä¿ãåçŽã§ã¯ãããŸããããDAWãªã©ã®ãã©ã°ã€ã³ãã¹ãããã©ã°ã€ã³ã®UIã衚瀺ããå Žé¢ãåçŽã§ã¯ãããŸããã | |
+ | |
+ãŸãå žåçãªåé¡ãšããŠãå žåçãªDAWã¯ãªãŒãã£ãªãã©ã°ã€ã³ãã€ã³ããã»ã¹ã§ããŒããã@<fn>{inproc-explained-later}ãããåãã¢ããªã±ãŒã·ã§ã³ã®ããã»ã¹ã®äžã§è€æ°ã®ãã©ã°ã€ã³ã®ã©ã€ãã©ãªãåçã«ããŒããããããšã«ãªããŸãããããããã®ãã©ã°ã€ã³ããäºãã«åäžã¢ããªã±ãŒã·ã§ã³ã®äžã§å ±åãåŸãªãã©ã€ãã©ãªãåç §ããŠãããã©ããªãã§ãããã?ãçµæã¯ãã®ã©ã€ãã©ãªæ¬¡ç¬¬ã§ããããã¡ããšåäœããªãå¯èœæ§ãé«ãã§ãããã | |
+ | |
+//footnote[inproc-explained-later][ãã®è©³çŽ°ã«ã€ããŠã¯ç¯ãæ¹ããŠè«ããŸãã] | |
+ | |
+ããã¯Linuxãã¹ã¯ãããç°å¢ã§ã¯ãã§ã«å ·äœçãªåé¡ãšãªã£ãŠããŸãããããGTK2, GTK3, Qt4, Qt5ã®æä»çãªé¢ä¿ã§ããGTK3ã¯ç¹ã«ãã©ã°ã€ã³UIåŽã§ã¢ããªã±ãŒã·ã§ã³ã«ãŒããç¬èªã«ç¢ºç«ããéšåãDAWåŽã®ã¢ããªã±ãŒã·ã§ã³ã«ãŒãã®ååšãšçžå®¹ããªãããã§ãããã®ããã2020幎ã®æ¬çå·çæç¹ã§ã¯ãLinuxãã¹ã¯ãããã§ã¯X11ãçŽæ¥æäœããããã«ããŠãäœèšãªUIãã¬ãŒã ã¯ãŒã¯ã䜿ããªãããšãçæ³ãšãããŠããã®ãçŸç¶ã§ãã | |
+ | |
+### ãªãŒãã£ãªã°ã©ããå®çŸããæè¡ | |
+ | |
+æ¬æžã§ãã³ãã³èšåããŠããTracktion Engineã§ã¯ã2020幎ã«æ°æ©èœã®ç®çãšããŠ`tracktion_graph`ãšããæ°ãããªãŒãã£ãªã°ã©ãã®ã¢ãžã¥ãŒã«ãéçºãããŠããããã®ç¥èŠã2020幎ã®Audio Developers Conferenceã®ã»ãã·ã§ã³ãšããŠçºè¡šãããŸãã@<fn>{tracktion-graph-video}ãããããªãŒãã£ãªã°ã©ãã®èšèšãšå®è£ ã«é¢ããç¥èŠã®è©°ãŸã£ãå 容ã ã£ãã®ã§ãããã§ãããã€ãã®åé¡ãåãäžããŸãã | |
+ | |
+//footnote[tracktion-graph-video][youtubeã§"Introducing Tracktion Graph: A Topological Processing Library for Audio"ãšããåç»ãæ€çŽ¢ãããšã»ãã·ã§ã³åç»ãåºãŠããŸãã] | |
+ | |
+#### DAG | |
+ | |
+ãªãŒãã£ãªã°ã©ããåçŽãªçŽç·çãªãªã¹ãã ãã§ã¯ãªãå Žåãã©ã®ãã©ã°ã€ã³ã®ã©ã®ãã£ã³ãã«ïŒããŒããã©ãã«ç¹ãã£ãŠããããè¡šçŸããããŒã¿ã¢ãã«ãå¿ èŠã«ãªããŸããå®éã«ã¯ããã©ã°ã€ã³ã ãã§ã¯ãªãããªãŒãã£ãªå ¥åãMIDIå ¥åãèµ·ç¹ãšããŠããªãŒãã£ãªãã©ã°ã€ã³çŸ€ãçµãŠããªãŒãã£ãªåºåãMIDIåºå@<fn>{audio-graph-midi-output}ãçµç¹ãšããæ§é ã§ããããã¯æ å ±å·¥åŠã§ã¯æåéå·¡åã°ã©ãïŒdirected acyclic graph, DAGïŒãšåŒã°ãããã®ã§ããããããŒãã®ããŒããä»ã®ããŒãã®ããŒãã«æ¥ç¶ããããããèµ·ç¹ããçµç¹ãŸã§äžè²«ããŠåãã£ãŠããæ§é ã«ãªããŸãã | |
+ | |
+//footnote[audio-graph-midi-output][ãã®å ŽåãMIDIåºåãšã¯æçµçãªåºåã®ããšã§ãããMIDIã·ãŒã±ã³ã¹ãå å·¥ããŠæ¬¡ã®ãªãŒãã£ãªãã©ã°ã€ã³ã«åŠçããããã®ã¯å«ãŸããŸãããããã¯äžè¬çãªãã©ã°ã€ã³ã®åºåããŒãé¡ã§ãã] | |
+ | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã§ã€ã³ãé©åã«åŠçãããããã«ã¯ããã®ã°ã©ããæ£ããæ§æãããŠããå¿ èŠããããŸãäžéšã®ããŒãã®åããéã«ãªã£ãŠããããã«ãŒãæ§é ãäœãããŠããŸã£ãŠããããããšãæ£ããåŠçã§ããªããªã£ãŠããŸãããã§ããééã£ãã°ã©ãã®ãŸãŸãªãŒãã£ãåŠçãéå§ããŠããŸããšãæ°žä¹ ã«ãŒãã«é¥ã£ãŠããªãŒãºããããšã«ãªããŸãã | |
+ | |
+DAGã®æ£ãããæ€èšŒããªããåŠçãã¹ãããŒãã®é åºãæ§ç¯ããæ¹æ³ãšããŠãæ·±ãåªå æ€çŽ¢ (depth-first search)ãšå¹ åªå æ¢çŽ¢ ïŒbreadth-first searchïŒãšããã¢ã«ãŽãªãºã ãç¥ãããŠããŸãããªãŒãã£ãªãã©ã°ã€ã³ã®ã«ãŒãã£ã³ã°ã®å Žåã¯ããªãŒãã£ãªåºåïŒããã³ååšããå Žåã¯MIDIåºåïŒãã«ãŒãããŒããšããã°ã©ããæ§ç¯ããå¿ èŠããããŸãã | |
+ | |
+#### ãªãŒãã£ãªã°ã©ãã®åçãªå€æŽãšã¿ã€ãã³ã°è£æ£ | |
+ | |
+ãªãŒãã£ãªã°ã©ãã«æ²¿ã£ãŠæŒå¥åŠçãé²ããšããã®éçšã§ç¹å®ã®ãªãŒãã£ãªã°ã©ãã®ããŒãã§é 延ãçºçããããããã®ãŸãŸæçµçãªåºåãŸã§é 延ãšãªã£ãŠãã©ãã¯å šäœãé 延ããããšã«ãªããŸããé 延ã®çºçãã®ãã®ã¯é¿ããããªãåé¡ã§ããããã®åœ±é¿ãå°ããæããããã«å éšçã«ããŒãããšã«é 延æ å ±ãããããŠãããŠãä»ã®ãã©ãã¯ãšå調çã«å šäœãé 延ããããããªåŠçãã·ãŒã±ã³ãµãŒãšã³ãžã³ã®å éšã§å¿ èŠã«ãªããŸãã | |
+ | |
+äžæ¹ã§ããªãŒãã£ãªã°ã©ãã¯ãŠãŒã¶ãŒãæå¹ã»ç¡å¹ãåãæ¿ãããé åãçµã¿æ¿ãããããããšããããããã¯çŸåšé²è¡åœ¢ã§é²ãã§ããæŒå¥åŠçã«åœ±é¿ããŸããç¹ã«é 延æ å ±ã«ã€ããŠã¯å šãŠã®ããŒãã§ææ¡ã§ããå¿ èŠãããã ãã§ãªããå€æŽåãšå€æŽåŸã®ã°ã©ãã§äžè²«æ§ã®ããæ å ±ãæã£ãŠããªããã°ãªããªãããšãã£ãå®è£ äžã®èª²é¡ãçºçããããšã§ããããéåããªããªãŒãã£ãªã°ã©ãã®ãã¬ã€ã€ãŒãå®çŸããããã«ã¯ããããã£ãè€éãªåé¡ã«åãçµãå¿ èŠããããŸãã | |
+ | |
+### ãã©ã°ã€ã³ãµã³ãããã¯ã¹æ©æ§ | |
+ | |
+ãã©ã°ã€ã³æ©æ§ãšãããã®ã¯ãDAWã«éãããœãããŠã§ã¢ã®ã¯ã©ãã·ã¥ãåŒãèµ·ãããããããŸããã¢ãã€ã³æ©æ§ãšã¯ãå¥ã ã®éçºè ã«ãã£ãŠäœããããã¹ãã¢ããªã±ãŒã·ã§ã³ãšãã©ã°ã€ã³ãç¹å®ã®ã€ã³ã¿ãŒãã§ãŒã¹ã«æ²¿ã£ãŠåäœãããã®ã§ãããããã«ã¯æåããäœããã®éœéœ¬ãçºçãããã ãã§ãªããéçºãç¶ç¶ããŠå®è£ ãå€ãã£ãŠããéçšã§ããããŸã§ã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ãªãå®è£ ã«äŸåããŠåäœããŠããéšåãªã©ãåäœããªããªããããããå®è¡æã«ãã¹ãã¢ããªã±ãŒã·ã§ã³ãšããŠã¯ã©ãã·ã¥ããããã§ãã | |
+ | |
+Google Chromeãæµè¡ããæåã®ãã£ããã¯ããã©ãŠã¶ã®åŠçé床ãããããšãªãããWebãµã€ãããšã«ããã»ã¹ãåé¢ããŠãããããŒãžã®åŠçã§ãã©ãŠã¶ãã¯ã©ãã·ã¥ããŠãå šäœãšããŠã¯åäœãç¶ããä»çµã¿ã§ãŠãŒã¶ããªãã£ãåäžãããããã§ãããFirefoxããããŠChromeã®ãããªããã»ã¹åé¢ãå®è£ ããŸããã | |
+ | |
+DAWãåŸå¹Žã®Webãã©ãŠã¶ã®ããã«ããã¯ã©ãã·ã¥ããŸããããã®å€ãã¯ããã»ã¹åé¢ãå®è£ ãããŠããªãããã§ããDAWã§ãããã»ã¹åé¢ããã°è¯ãã®ã§ã¯ãªãã§ãããã?ãå®éã以éã§èšåããã¢ãã³ãªDAWã®äžéšã¯ããã»ã¹åé¢ãå®è£ ããŠããŸããäžæ¹ã§ããã¯å®è£ ã³ã¹ãããããäœæ¥ã§ããããã€æ§èœé¢ã§ç ç²ããšããªãèšèšã§ããOSSã®DAWã§ããArdourã§ã¯ãããã»ã¹åé¢ã¯å®è£ ããªããšæèšããŠããŸã@<fn>{ardour-crash-protection}ã | |
+ | |
+//footnote[ardour-crash-protection][Why doesn't Ardour offer "plugin crash protection" ? ãšããé¡ã§èšäºãå ¬éãããŠããã®ã§ãWebã§æ€çŽ¢ããŠã¿ãŠãã ããã] | |
+ | |
+ããã»ã¹ãåé¢ããŠå ·äœçã«ç ç²ã«ãªãã®ã¯ããªã¢ã«ã¿ã€ã æ§èœã§ããDAWã®ããã»ã¹å ã§å šãŠã®ãã©ã°ã€ã³ã®åŠçãå®çµããå Žåãšæ¯ã¹ãŠãããã»ã¹åãæ¿ãã䌎ããµã³ãããã¯ã¹æ¹åŒã«ãªããšãããã»ã¹éã®CPUã³ã³ããã¹ãã¹ã€ãããçºçããŸããããã1件ãããæ°åããç§ããããšãããŠããŠ@<fn>{old-context-switch-paper}ãArdourã®èšäºã«ããæ°åããã®ãŸãŸåŒçšãããšãããšãã°128ãã©ãã¯ã§384ãã©ã°ã€ã³ã®éã§ã³ã³ããã¹ãã¹ã€ãããçºçãããšã768件ã®åãæ¿ãåŠçã ãã§7.7ã23ããªç§ã®é 延ã«ãªããŸãããªãŒãã£ãªé 延ã®èš±å®¹å€ãããã10ããªç§ã ãšèãããšãããã ãã§ãå³ããã®ã¯ç¢ºãã§ãã | |
+ | |
+//footnote[old-context-switch-paper][åè¿°ã®Ardourã®èšäºãããªã³ã¯ãããŠããã®ã§ããã2010幎é ã®è³æã«äŸæ ããŠããŸãã] | |
+ | |
+ãã£ãšãããªã¢ã«ã¿ã€ã æ§ãæ¬åœã«åé¡ã«ãªãå Žé¢ã¯ã©ã€ãããã©ãŒãã³ã¹æãªã©ã«éãããŠãããããã ããçç±ã«ãµã³ãããã¯ã¹ã®æçšæ§ãåŠå®ããã®ã¯åŠ¥åœã§ã¯ãããŸããã100ãã©ãã¯ãã®æ§æã«ãªã£ãŠãããšããã©ãã¯ã¡ã€ãã³ã°æã«ã¯ãã©ãã¯ã®ããªãŒãºã䜵çšããªããäœæ²ããã®ãäžè¬çãªã®ã§ãå®éã«çºçããã³ã³ããã¹ãã¹ã€ããã®æ°ãå°ãªããªããŸããããã§DAWãèœã¡ãŠæã¡èŸŒã¿äœæ¥ã®å 容ãæ¶ããŠãªããªãå¯èœæ§ãå°ãããªããªããååã«ããçç±ã«ãªããŸãã | |
+ | |
+ãµã³ãããã¯ã¹æ©æ§ã¯ããã€ãã®DAWã§å®è£ ãããŠããŸããããã®å ·äœçãªæ¹æ³ã¯ããã€ãèããããŸããåèå®è£ ãšããŠBitwig StudioãèŠãŠã¿ãŸãããã | |
+ | |
+![Bitwig Studio 3.2ã®ãã©ã°ã€ã³ãµã³ãããã¯ã¹èšå®](bitwig-studio-sandboxing.png) | |
+äžçªå·Šããé ã«ãDAWã®ã€ã³ããã»ã¹ã§åäœããã¢ãŒãããã©ã°ã€ã³ã ããå šãŠã²ãšãŸãšãã«ããŠåŠçããã¢ãŒãã補é è å¥ã«ãã©ã°ã€ã³ããŸãšããŠåŠçããã¢ãŒãããã©ã°ã€ã³ã®è£œåããšã«ãŸãšããŠåŠçããã¢ãŒãããããŠå šãŠã®ãã©ã°ã€ã³ã»ã€ã³ã¹ã¿ã³ã¹ãåå¥ã®ããã»ã¹ã§åäœãããã¢ãŒãããšãªã£ãŠããŸãããããã©ã°ã€ã³ãã¯ã©ãã·ã¥ãããšããã©ããŸã§å·»ã蟌ãã§ã¯ã©ãã·ã¥ããããéžæããŠããããšã«ãªããŸããããããã®å¡ã®äžã§çºçããåãæ¿ãã¯CPUã®ã³ã³ããã¹ãã¹ã€ããã«ã¯ãªããªãã®ã§ãããã§åççãªç¯å²ããŠãŒã¶ãŒãéžæã§ããããšã«ãªããŸãã | |
+Tracktion Waveform11ã¯å¥ã®ããæ¹ã§å¯ŸåŠããŠããŸããWaveform11ã«ã¯Bitwigã®ãããªãµã³ãããã¯ã¹èšå®ã¯ãããŸããã以åã®ããŒãžã§ã³ã§ã¯ããã©ã°ã€ã³ãã¯ã©ãã·ã¥ãããšDAWãã¯ã©ãã·ã¥ããŠããŸãããWaveform11ã§ã¯ãããªãŒãã£ãªãšã³ãžã³ãããªã»ããã§ããããã«ãªããŸããããã©ã°ã€ã³ãã¯ã©ãã·ã¥ãããš"Audio Engine crashed"ãšãããšã©ãŒã¡ãã»ãŒãžããã€ã¢ãã°è¡šç€ºããããªã»ãããããŸã§ã¯é³å£°åŠçãäœãè¡ãããŸãããããã§ãDAWã¯çãæ®ã£ãŠããã®ã§ãåŒãç¶ãç·šéäœæ¥ã¯å¯èœãªç¶æ ã§ãããªã»ããããã¿ã³1ã€ã§åæç¶æ ã«ãªãã ãã§ãããã©ã°ã€ã³ããšã®ã³ã³ããã¹ãã¹ã€ããã¯çºçããŸããã | |
+Bitwigã®ã¢ãããŒãã¯æè»ã§ãããæ©èœãè±å¯ãªã®ã§æåŸ éãã«åäœããªãå¯èœæ§ã¯ããã§ãããããã®ä»£ãããæŒå¥äžã«ã¯ã©ãã·ã¥ããŠãäžéšã®ãã©ãã¯ãç¡é³ã«ãªãã ãã§åŒãç¶ãæŒå¥ã§ããïŒãããããªãïŒã®ã¯é åçãããããŸãããçè ã¯Tracktionã®ã¢ãããŒãã§ãåååççãªäœæ¥ã«ãªããšèããç«å Žã§ãã | |
+æåŸã«ããããŸã§ãäœåºŠãèšåããŠããŸããããAndroidãiOSãMac App Storeã¢ããªã±ãŒã·ã§ã³ã®ãããªç°å¢ã§ã¯ããã©ã°ã€ã³ãå¿ ç¶çã«å¥ããã»ã¹äžã§åäœããããšã«ãªãããïŒBitwig Studioã§ããã°ãã©ã°ã€ã³ããšããã©ã°ã€ã³ã€ã³ã¹ã¿ã³ã¹ããšã®ãµã³ãããã¯ã¹ã§ãïŒãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ãšããŠãããã§è«ããŠãããµã³ãããã¯ã¹ã®ã¢ãã«ã匷å¶ãããããšã«ãªããŸãããããã®ç°å¢ã§ã¯ãªã¢ã«ã¿ã€ã æ§èœã«ãã€ãã¹åœ±é¿ãåºãããšã¯é¿ããããªãã§ãããã | |
diff --git a/4-sequencer-engine.md b/4-sequencer-engine.md | |
index 6f0d53f..1c7b88e 100644 | |
--- a/4-sequencer-engine.md | |
+++ b/4-sequencer-engine.md | |
@@ -10,6 +10,8 @@ DAWã®ç®çã¯é³æ¥œããŒã¿ãäœæããããšã§ããé³æ¥œããŒã¿ã« | |
ãããã£ãçŸç¶ãèžãŸããŠããŸãã¯SMFãã©ã®ãããªæ§é ã«ãªã£ãŠããããææ¡ããŠãããããSMFã®ç¯å²ãè¶ ããããŒã¿éšåã«ã€ããŠè«èãç¶ããŸãããã | |
+ã¡ãªã¿ã«ãæ¬æžã®ç¬¬1çã¯2019幎ã«å·çããããã®ã§ãããæ¬ç¬¬2çã®å·çæç¹ã§ãã2020幎12æã¯ããã®é åã§ã¯ããéæž¡æã«ãã£ãŠããMIDI 2.0ä»æ§ã¯æ£åŒçãå ¬éãããããããã«åºã¥ãæ°ããSMFã«çžåœããä»æ§ã¯ãŸã å ¬éãããŠããªãããšããç¶æ³ã§ããæ¬çã§ã¯åŒãç¶ããMIDI 2.0ã§ã«ããŒãããé åã«ã€ããŠã¯SMFã®ç¯å²ãè¶ ããããŒã¿ãšããŠèšåããŸãã | |
+ | |
### SMFæ§é ãšMIDIã®ããŒã¿ | |
äžè¬ã«ãé³æ¥œã¯è€æ°ã®ããŒãã«åãããŠæ§æãããŠããŸããããã¯ããããäŒçµ±çãªç解ã§ãã£ãŠã空éã«ãªããžã§ã¯ããé 眮ããŠãäºãã®åé¿ãªã©ãèæ ®ããŠé²é³ãããšããèãæ¹ã«åºã¥ããŠãé³ããèãããšãå¿ ãããé³æ¥œãããŒãã§åããã®ã¯çµ¶å¯Ÿçãªèãæ¹ã§ã¯ãªãã®ã§ãã@<fn>{objects-based-audio}ãDTMã®ç¯çã§ããã°ãããåé¡ãªãã§ãããã | |
@@ -56,50 +58,43 @@ SMFã®ç¯å²ã§é³æ¥œããŒã¿ãè¡šçŸã§ããã®ã§ããã°ãããŒã¿ä¿ | |
//footnote[vocaloid-v2][以åã«ãèšåããŸããããVocaloid v2ã®ä¿å圢åŒ`.vsq`ãã¡ã€ã«ã¯å®æ ãšããŠã¯SMFã§ãã] | |
-(1) ãªãŒãã£ãªãã©ã°ã€ã³ã®æ¡åŒµãã©ã¡ãŒã¿ãŒ | |
- | |
-MIDIã€ãã³ãã¯MIDIé³æºãå¶åŸ¡ããããã®ãã®ã§ããããMIDIèŠæ Œã«çžãããªãåçš®DAWã®ã·ãŒã±ã³ãµãŒãšã³ãžã³ã§ã¯ããªãŒãã£ãªãã©ã°ã€ã³ãäžè¬çã«åä¿¡ã§ããMIDIã¡ãã»ãŒãžã«å ããŠãMIDIã«éå®ãããªããã©ã¡ãŒã¿ãŒãéãããšãåºæ¥ããã®ããããŸãããããå¯èœãã©ããã¯ãªãŒãã£ãªãã©ã°ã€ã³ãã©ãŒããã次第ã§ããAUã«ã¯ãã©ã¡ãŒã¿ãŒã»ããªãŒãšãããã©ã¡ãŒã¿ãŒå®çŸ©æ§é ãããããã®ããªãŒã«åºã¥ããŠãã©ã°ã€ã³ã®ç¶æ ãã€ãã³ãã§æäœã§ããŸãã | |
+(1)é³æºã®æ å ± | |
-(2)ãªãŒãã¡ãŒã·ã§ã³ã®è¡šçŸæ¹æ³ | |
- | |
-MIDIã€ãã³ããã³ã³ãããŒã«ã»ãã©ã¡ãŒã¿ãŒã®å€åã¯ãMIDIæšæºä»æ§ã«ãããŠã¯ã¹ã«ã©ãŒããŒã¿ïŒå€ã®çŽæ¥æå®ïŒã§è¡šçŸãããããããŸããã§ããããçŽç·ããµã€ã³ã«ãŒãã®ãããªãã¯ã¿ãŒã«ããé£ç¶çãªå€ã®å€åãæå®ããã»ãããããŒã¿éãšããŠã¯ãã£ãšå°ããã£ãããå€æŽãç°¡åã«æå®ã§ãããããŸãããã®ãããªè¡šçŸã¯ãªãŒãã£ãªãã©ã°ã€ã³ã®ã³ã³ãããŒã«ãã©ã¡ãŒã¿ãŒãDAWã®ãªãŒãã¡ãŒã·ã§ã³ã®äžçš®ãšããŠè¡šçŸãããŸããæŒå¥èšé²ããMIDIãã©ã¡ãŒã¿ãŒã®å€åãã¹ã«ã©ãŒããŒã¿ã§åžãäžããŠèšé²ãããããåçãããšãã圢æ ã®ãªãŒãã¡ãŒã·ã§ã³ãäžè¬çã§ããã®å Žåã¯ã¹ã«ã©ãŒããŒã¿éšåã¯ãã®é©çšéšåãšã¯å¥ã«ããŒã¿ããã€ããšã«ãªãã§ãããã | |
+MIDIã«ãã£ãŠé³æ¥œãè¡šçŸããŠããé ã¯ãé³è²èšå®ã«çžåœããã®ã¯ããã°ã©ã ã»ãã§ã³ãžãšåŒã°ããåœä»€ã§ããããã®åœä»€ã§å®éã«æå®ãããé³è²ã¯ãæ¥ç¶ãããŠããMIDIåºåããã€ã¹ã«ãã£ãŠç°ãªããã®ã§ããããã ããGeneral MIDIïŒGMïŒãªã©ã®æšæºã§ã¯ãããã°ã©ã ã»ãã§ã³ãžã®æå®å€ãé³è²ãããçšåºŠèŠå®ããŠãããGMæºæ ã®æ¥œæ²ã§ããã°GMæºæ ã®MIDIããã€ã¹ã§æŠãäœæè ã®æå³éãã«æ¥œæ²ãåçã§ããŸããã | |
-(3) 察象MIDIåºåãã£ã³ãã«ã®å©çšæ¹æ³ | |
+MIDIã®èŠå®ããé³è²ã¯çªå·ã§èå¥ããçšåºŠã®è¡šçŸåãããããŸãããã©ã®ç°å¢ã§ãåäžã®é³å£°ãåçŸããããã«ã¯ããµã³ããªã³ã°ãªã©ã«åºã¥ããªãŒãã£ãªãã©ã°ã€ã³ãªã©ã楜åšãšããŠäœ¿çšããå¿ èŠããããŸããçŸä»£çãªDAWã«ãããŠã¯ãé³è²èšå®ã¯MIDIãã©ãã¯ïŒãã€ã³ã¹ãã¥ã«ã¡ã³ã¿ã«ãã©ãã¯ïŒããšã«ãïŒã«ãŒãã£ã³ã°ã«ãã£ãŠæ¥ç¶æžã¿ã®ïŒãªãŒãã£ãªãã©ã°ã€ã³ãæå®ããŠãããã楜åšãšããŠäœ¿çšããã®ãäžè¬çã§ãã | |
-MIDIã¡ãã»ãŒãžã®ã¹ããŒã¿ã¹ãã€ãã«ã¯ãã£ã³ãã«æå®ãä»éããŸããããã®éšåã¯ãæ¬æ¥ãªã1ãã£ã³ãã«ããã°è¶³ããã¯ãã§ããä»®æ³ã€ã³ã¹ãã¥ã«ã¡ã³ããäžå¿ãšãããªãŒãã£ãªãã©ã°ã€ã³ã®äžçã§ãããã°ãã°æŽ»çšãããŸããå ·äœçã«ã¯ã楜åšãšãªããã©ã°ã€ã³ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ã¯1ã€ãããªããšããŠãããã®äžã§8ãã£ã³ãã«ã»ã©ã®å ¥åã¹ããããååšããŠãããããã®ãã£ã³ãã«ãDAWã«ããã1ãã£ã³ãã«ã®ãµããŒããšããŠæ¥ç¶ã§ããããã«å®è£ ãããããšã§ãè€æ°ã®ãã©ã°ã€ã³ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªã1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã§å ¥åã®å šãŠãåæããããã«ããŠãåŠçè² è·ãäœæžããããšãåºæ¥ãŸãã | |
+åã ã®ãªãŒãã£ãªãã©ã°ã€ã³ã¯ãåã«MIDIã®ããã°ã©ã ãã§ã³ãžã®ããã«æ°å€ãæå®ããã ãã§ã¯èå¥ã§ããŸãããããã¡ã€ã«ãã¹ãçšããŠããŸããšãäœæãããšãã®PCç°å¢ãšã¯å¥ã®PCç°å¢ã«ãã¡ã€ã«ãã³ããŒããŠéãããåçã§ããªããªã£ãŠããŸããMIDI以äžã«æ¥œæ²ã®åçŸæ§ããªããªã£ãŠããŸããŸãããªãŒãã£ãªãã©ã°ã€ã³ã®æå®ã«ã¯èå¥åãçšããããŸãããªãŒãã£ãªãã©ã°ã€ã³ã®èå¥åã«ã€ããŠã¯ã第3ç« ã§èª¬æããéãã§ãã | |
-KontaktãOmnisphereãRoland SoundCanvas VAãªã©ãããããç·åé³æºã§ã¯ãå€ãããããå®è£ ãããŠããŸãã | |
+ãŸãã第3ç« ã§èª¬æããstateããé³æºã®ãã©ã¡ãŒã¿ãŒãšäžŠãã§éèŠãªèšå®é ç®ãšãªããŸãããã©ã¡ãŒã¿ãŒã®èšå®ã«ã€ããŠã¯MIDIã¡ãã»ãŒãžïŒã«é¡ããæŒå¥åœä»€ïŒã®äžéšãšããŠä¿åã§ããŸããããã以äžã®é³æºã®èª¿æŽé ç®ã¯stateãšããŠDAWã«ãã£ãŠèªã¿æžããããŸããèªã¿æžããšãã£ãŠããããã¯é³æ¥œããŒã¿ãã¡ã€ã«ã®ã»ãŒããããŒãã§ã®ã¿äœ¿ãããæ©èœã§ã¯ãããŸããããã©ã°ã€ã³UIã衚瀺ããå Žåã«ããŒããããããã©ã°ã€ã³UIãéããæã«ã»ãŒããããããããšããããŸãã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã¯MIDIã®è¡šçŸåãè¶ ããé³æ¥œè¡šçŸãå®çŸããããã«éçºããããã®ã§ãããã·ãŒã±ã³ãµãŒãšã³ãžã³ããªãŒãã£ãªãã©ã°ã€ã³ããã¹ããšããŠæäœããå¿ èŠããããŸãã | |
+DAWã«ãã£ãŠã¯ããªãŒãã£ãªãã©ã°ã€ã³ã®ä»ã«ãSF2ãµãŠã³ããã©ã³ããSFZãã¡ã€ã«ãªã©ãæå®ããã ãã§ãããæ軜ã«æ¥œåšãæå®ã§ãããã®ãååšããŸããããšãã°ã第3ç« ã§çŽ¹ä»ããCarlaã¯ãå éšçã«SFZeroãªã©ããã³ãã«ããŠããŠãSFZããã©ã°ã€ã³ããŒãã®äžçš®ãšããŠæ±ãããšãã§ããŸããZrythmãããã掻çšããŠããµãŠã³ããã©ã³ãããã©ã°ã€ã³ã®ä»£ããã«é³æºãšããŠæå®ã§ããŸãããã®ãããªå Žåã¯ãé³æºã®æå®ãå°ãã ãã·ã³ãã«ãªãã®ã«ãªãã§ãããã | |
-### ãªãŒãã£ãªãã©ã°ã€ã³ã®èå¥åãšåå | |
+![ããŸããŸãªãã©ã°ã€ã³ãšæ¥œåšãã©ãŒãããããµããŒãããCarla](carla-sshot.png) | |
-MIDIã«ãã£ãŠé³æ¥œãè¡šçŸããŠããé ã¯ãé³è²èšå®ã«çžåœããã®ã¯ããã°ã©ã ã»ãã§ã³ãžãšåŒã°ããåœä»€ã§ããããã®åœä»€ã§å®éã«æå®ãããé³è²ã¯ãæ¥ç¶ãããŠããMIDIåºåããã€ã¹ã«ãã£ãŠç°ãªããã®ã§ããããã ããGeneral MIDIïŒGMïŒãªã©ã®æšæºã§ã¯ãããã°ã©ã ã»ãã§ã³ãžã®æå®å€ãé³è²ãããçšåºŠèŠå®ããŠãããGMæºæ ã®æ¥œæ²ã§ããã°GMæºæ ã®MIDIããã€ã¹ã§æŠãäœæè ã®æå³éãã«æ¥œæ²ãåçã§ããŸããã | |
+(2)ãªãŒãã£ãªãã©ã°ã€ã³ã®æ¡åŒµãã©ã¡ãŒã¿ãŒ | |
-MIDIã®èŠå®ããé³è²ã¯çªå·ã§èå¥ããçšåºŠã®è¡šçŸåãããããŸãããã©ã®ç°å¢ã§ãåäžã®é³å£°ãåçŸããããã«ã¯ããµã³ããªã³ã°ãªã©ã«åºã¥ããªãŒãã£ãªãã©ã°ã€ã³ãªã©ã楜åšãšããŠäœ¿çšããå¿ èŠããããŸããçŸä»£çãªDAWã«ãããŠã¯ãé³è²èšå®ã¯MIDIãã©ãã¯ïŒãã€ã³ã¹ãã¥ã«ã¡ã³ã¿ã«ãã©ãã¯ïŒããšã«ãïŒã«ãŒãã£ã³ã°ã«ãã£ãŠæ¥ç¶æžã¿ã®ïŒãªãŒãã£ãªãã©ã°ã€ã³ãæå®ããŠãããã楜åšãšããŠäœ¿çšããã®ãäžè¬çã§ãã | |
+MIDIã€ãã³ãã¯MIDIé³æºãå¶åŸ¡ããããã®ãã®ã§ããããMIDIèŠæ Œã«çžãããªãåçš®DAWã®ã·ãŒã±ã³ãµãŒãšã³ãžã³ã§ã¯ããªãŒãã£ãªãã©ã°ã€ã³ãäžè¬çã«åä¿¡ã§ããMIDIã¡ãã»ãŒãžã«å ããŠãMIDIã«éå®ãããªããã©ã¡ãŒã¿ãŒãéãããšãåºæ¥ããã®ããããŸãããããå¯èœãã©ããã¯ãªãŒãã£ãªãã©ã°ã€ã³ãã©ãŒããã次第ã§ããAUã«ã¯ãã©ã¡ãŒã¿ãŒã»ããªãŒãšãããã©ã¡ãŒã¿ãŒå®çŸ©æ§é ãããããã®ããªãŒã«åºã¥ããŠãã©ã°ã€ã³ã®ç¶æ ãã€ãã³ãã§æäœã§ããŸãã | |
-第3ç« ã§ã説æãããšãããåã ã®ãªãŒãã£ãªãã©ã°ã€ã³ã¯ãåã«MIDIã®ããã°ã©ã ãã§ã³ãžã®ããã«æ°å€ãæå®ããã ãã§ã¯èå¥ã§ããŸãããããã¡ã€ã«ãã¹ãçšããŠããŸããšãäœæãããšãã®PCç°å¢ãšã¯å¥ã®PCç°å¢ã«ãã¡ã€ã«ãã³ããŒããŠéãããåçã§ããªããªã£ãŠããŸããMIDI以äžã«æ¥œæ²ã®åçŸæ§ããªããªã£ãŠããŸããŸãããªãŒãã£ãªãã©ã°ã€ã³ã®æå®ã«ã¯èå¥åãçšããããŸãã | |
+ã¡ãªã¿ã«ãMIDI 2.0ã§ã¯ãRPNã«å¯ŸããNRPNã®ããã«ãCCã«å¯Ÿãããã³ããŒå®çŸ©ã®CCã®ãããªãã®ãèŠå®ã§ããŸããMIDI 2.0ã§ã¯çšèªãå€æŽãããRPNã¯Registered ControllerãšãªããNRPNã§äœ¿ãããŠããnon-registeredãšããèªå¥ã¯Assignableãšããåèªã«ãªããAssignable Controllerãšããååã«ãªããŸããããŸããããŒãå¥ã³ã³ãããŒã©ãŒãšããæŠå¿µãæ°ããå®çŸ©ãããããŒãããšã«CCã®å€ãæå®ã§ããããã«ãªããŸããã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ããã¡ã€ã«åã§èå¥ããŠãããšãPCç°å¢ã移åãããšéããªãããšããããšã«ãªã£ãŠããŸãã®ã§ããããŸã§è£å®çãªæ å ±ãšããŠæ¥œæ²ããŒã¿ã«å«ããçšåºŠã«ããã¹ãã§ããã¡ãªã¿ã«ããªãŒãã£ãªãã©ã°ã€ã³ãã¹ãã«ãã£ãŠã¯ãã¡ã€ã«ãã¹ããããŸã§ãã¹ã®ãã³ãæ å ±ãšããŠå«ããŠãããšããããšããããŸãïŒæ¬æžã§åºŠã ç»å ŽããTracktion Engineããã®ããã«ãªã£ãŠããŸãïŒã | |
+MIDI 2.0ã§ã¯ããã«ããŒãåœä»€ã®å±æ§ãšããæŠå¿µãæ°ããå®çŸ©ãããããŒãããšã«é³ã®è¡šæ ãªã©ãå€æŽã§ãããããããã¢ãŒãã£ãã¥ã¬ãŒã·ã§ã³ã®æ©èœããµããŒããããããã«ãªããŸããããŽã©ãŒã«ã«ã·ã³ã»ãµã€ã¶ãŒã®ãã¬ã·ãã¹ããªãŒãã³ãã¹ãã®ã¿ãŒã®ãã¥ãŒãããããã³ã°ãšãã£ãæŠå¿µãããã®å±æ§ã«ãã£ãŠè¡šçŸã§ããããã«ãªããŸããKontakt KSPãSFZãã¡ã€ã«ã§ã¯ããããããŒã¹ã€ããã«ãã£ãŠå®çŸããŠããŸããããããããããã¯ãäžèŠã«ãªããŸãã | |
-çè ã®ç§èŠãšããŠã¯ãããŒã«ã«ã®ãã¡ã€ã«ãã¹ã«ã¯å人ã®ç°å¢ãç¹å®ããæ å ±ãå«ãŸããŠããå¯èœæ§ãããã®ã§ïŒããšãã°å¿åã®äœæ²è ãšããŠæ¥œæ²ããŒã¿ãã€ã³ã¿ãŒãããäžã§å ¬éããŠããŠãããã®ããŒã¿ã«`c:\\Users\\atsushi\\VST3 Plugins`ãšãããã¹ãå«ãŸããŠããã°ãååã`atsushi`ã§ããããšãå ¬ç¥æ å ±ã«ãªã£ãŠããŸããŸãïŒãããŒã«ã«ãã¹ã¯å¯èœãªéã楜æ²ããŒã¿ã«å«ãã¹ãã§ã¯ãããŸããã | |
+(3)ãªãŒãã¡ãŒã·ã§ã³ã®è¡šçŸæ¹æ³ | |
-### ãªãŒãã£ãªãã©ã°ã€ã³ã®ãã©ã¡ãŒã¿ãŒãšstate | |
+MIDIã€ãã³ããã³ã³ãããŒã«ã»ãã©ã¡ãŒã¿ãŒã®å€åã¯ãMIDIæšæºä»æ§ã«ãããŠã¯ã¹ã«ã©ãŒããŒã¿ïŒå€ã®çŽæ¥æå®ïŒã§è¡šçŸãããããããŸããã§ããããçŽç·ããµã€ã³ã«ãŒãã®ãããªãã¯ã¿ãŒã«ããé£ç¶çãªå€ã®å€åãæå®ããã»ãããããŒã¿éãšããŠã¯ãã£ãšå°ããã£ãããå€æŽãç°¡åã«æå®ã§ãããããŸãããã®ãããªè¡šçŸã¯ãªãŒãã£ãªãã©ã°ã€ã³ã®ã³ã³ãããŒã«ãã©ã¡ãŒã¿ãŒãDAWã®ãªãŒãã¡ãŒã·ã§ã³ã®äžçš®ãšããŠè¡šçŸãããŸããæŒå¥èšé²ããMIDIãã©ã¡ãŒã¿ãŒã®å€åãã¹ã«ã©ãŒããŒã¿ã§åžãäžããŠèšé²ãããããåçãããšãã圢æ ã®ãªãŒãã¡ãŒã·ã§ã³ãäžè¬çã§ããã®å Žåã¯ã¹ã«ã©ãŒããŒã¿éšåã¯ãã®é©çšéšåãšã¯å¥ã«ããŒã¿ããã€ããšã«ãªãã§ãããã | |
-ïŒãã©ã¡ãŒã¿ãŒããªãŒã®æ§æã«ã€ããŠã¯ç¬¬3ç« ã§æžãŸãã?ïŒ | |
+(4) 察象MIDIåºåãã£ã³ãã«ã®å©çšæ¹æ³ | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã®èª¿æŽã¯ãçæ³çã«ã¯ãªãŒãã£ãªãã©ã°ã€ã³ãã©ã¡ãŒã¿ãŒã®ã¿ã§è¡šçŸã§ããããšãæãŸããã§ãããå¿ ããããããå®çŸåºæ¥ãªãå ŽåããããŸããããšãã°âŠ | |
+MIDIã¡ãã»ãŒãžã®ã¹ããŒã¿ã¹ãã€ãã«ã¯ãã£ã³ãã«æå®ãä»éããŸããããã®éšåã¯ãæ¬æ¥ãªã1ãã£ã³ãã«ããã°è¶³ããã¯ãã§ããä»®æ³ã€ã³ã¹ãã¥ã«ã¡ã³ããäžå¿ãšãããªãŒãã£ãªãã©ã°ã€ã³ã®äžçã§ãããã°ãã°æŽ»çšãããŸããå ·äœçã«ã¯ã楜åšãšãªããã©ã°ã€ã³ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ã¯1ã€ãããªããšããŠãããã®äžã§8ãã£ã³ãã«ã»ã©ã®å ¥åã¹ããããååšããŠãããããã®ãã£ã³ãã«ãDAWã«ããã1ãã£ã³ãã«ã®ãµããŒããšããŠæ¥ç¶ã§ããããã«å®è£ ãããããšã§ãè€æ°ã®ãã©ã°ã€ã³ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªã1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã§å ¥åã®å šãŠãåæããããã«ããŠãåŠçè² è·ãäœæžããããšãåºæ¥ãŸãã | |
-- ãªãŒãã£ãªãã©ã°ã€ã³äœè ããDAWãçµç±ããŠãŠãŒã¶ãŒã«ãªããŒã¹ãšã³ãžãã¢ãªã³ã°ãããããªãã»åŠšå®³ãããã®ã§ããã©ã¡ãŒã¿ãŒã®ååãå€ãå ¬éããããªããšããå Žå | |
-- ãã©ã¡ãŒã¿ãŒã®ããŒãžã§ã³ãäžãã£ãããšã§äžäœäºææ§ãªã©ãç¶æã§ããªããªããåãªãååãšå€ã ãã§ã¯ååã«æå³ãè¡šçŸã§ããªããªã£ããããå Žå@<fn>{param-backward-compat} | |
-- å€æŽããªã¢ã«ã¿ã€ã ã«åæ ã§ããªãçšåºŠã«é·å€§ãªåŠçã䌎ãå Žå | |
-- ãµã³ããªã³ã°ããŒã¿ãªã©ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãã«ã¯å·šå€§ãããããŒã¿ã®åãæž¡ããå¿ èŠã«ãªãå Žå | |
+KontaktãOmnisphereãRoland SoundCanvas VAãªã©ãããããç·åé³æºã®å€ãã§ããããå®è£ ãããŠããŸãã | |
-//footnote[param-backward-compat][å®ã®ãšãããçè ããããã話ãèããããšããããšããçšåºŠã§ãæ¬åœã«ãã©ã¡ãŒã¿ãŒã§è¡šçŸã§ããªãããšãªã®ãã¯çåã®äœå°ã倧ãã«ãããšããã§ãã] | |
+ãªãŒãã£ãªãã©ã°ã€ã³ã¯MIDIã®è¡šçŸåãè¶ ããé³æ¥œè¡šçŸãå®çŸããããã«éçºããããã®ã§ãããã·ãŒã±ã³ãµãŒãšã³ãžã³ããªãŒãã£ãªãã©ã°ã€ã³ããã¹ããšããŠæäœããå¿ èŠããããŸãã | |
-ãã®ãããªå Žåã§ãããªãŒãã£ãªãã©ã°ã€ã³ãšãã¹ãã®éã§æ å ±ãããåãã§ããããã«ãå€ãã®ãã©ã°ã€ã³æ©æ§ã§ã¯stateïŒç¶æ ïŒãšåŒã°ãããã€ããªããŒã¿ãååŸã»èšå®ã§ããããã«ãªã£ãŠããŸãã | |
+äžã€æ³šæãã¹ãããšã§ããããã®ãããªå€ãã£ã³ãã«ããµããŒãã§ããŠããã®ã¯VST2ã®ã¿ã§ãVST3ã§ã¯MIDIãµããŒããåé€ãããããããµããŒãã§ããªããªã£ãŠãããšããããŠããŸããSteinbergã«éçºè ã®ãã£ãŒãããã¯ãšããŠå¯ããããŠãããå®éã«çè ãJUCEããŒã¹ã®ãããžã§ã¯ãã§VST3ãšããŠãšã¯ã¹ããŒããããã©ã°ã€ã³ã§ãæ©èœããŸããã§ãã@<fn>{pr-adlplug}ã | |
-ãªãŒãã£ãªãã©ã°ã€ã³ã®èšèšãDAWã®èšèšã«ãããŠãstateã䜿ãå Žåã«äžè¬çã«æ³šæãã¹ãããšã¯ãstateã¯MIDIã®ã³ã³ãããŒã«ãã§ã³ãžãäžè¬çãªãã©ã¡ãŒã¿ãŒãšã¯ç°ãªããéåžžã¯ãã©ãã¯ã®åçéäžã§å€æŽããããšã¯ã§ããªããšããç¹ã§ããstateã¯æ²å šäœãéããŠåºå®ãšãªãé³è²èšå®ãªã©ã«ä»éãããã®ãšããŠäœ¿ãã¹ãã§ãã | |
+//footnote[pr-adlplug][ADLplugãšããFMé³æºãšãã¥ã¬ãŒã¿ãŒã®ãã©ã°ã€ã³ãããžã§ã¯ãã«çè ãéã£ãpull requestã§è©³çŽ°ãèŠãããŸãã] | |
### ã¢ãã³ãªæ¥œæ²ããŒã¿ã¢ãã«ã®æ§é äŸ | |
@@ -201,11 +196,11 @@ MIDIä»æ§ã§ã¯ãåæã«çºé³ã§ãããã£ã³ãã«ã16ããç¡ãã | |
DAWã«éãããããŒã¿ãç·šéããGUIã䌎ãã¢ããªã±ãŒã·ã§ã³ã§ã¯ãäŒçµ±çã«ã¯ãã¥ãŒãšããžãã¯ã®åé¢ãå®çŸããŠããããšãçæ³ãšãããŠããŸããããããããå°ãçºå±ãããšãMVCãMVVMãšãã£ãæœè±¡çãªã³ãŒãã®åœ¹å²åæ ãéçºã¢ãã«ãšããŠæå±ãããããã«ãªã£ãŠããŸããã | |
-ããã¯å°ããªã¢ããªã±ãŒã·ã§ã³ã§ã¯æ¯èŒç容æã«å®çŸããŠããããšã§ãããã¢ããªã±ãŒã·ã§ã³ãã¯ãã¹ãã©ãããã©ãŒã ã§åäœããããšã«äŸ¡å€ãåºãŠããè¿å¹Žã§ã¯ãããã¹ããšãã£ã¿ãŒãªã©å€§èŠæš¡ãªã³ãŒãããŒã¹ããã€ã¢ããªã±ãŒã·ã§ã³ã«ãããŠãã³ãŒãã®åé¢ãå®çŸããŠããŸãããGUIã«ãããŠïŒãããã¯CUIã§ãïŒãã©ãããã©ãŒã äŸåã®ã¬ã€ã€ãŒã«ã¢ã¯ã»ã¹ããã®ã¯ãããå¿ é ãªã®ã§ããã©ãããã©ãŒã ããã¬ãŒã ã¯ãŒã¯ã«äŸåããéšåã¯åãé¢ããŠç°å¢ããšã«å®è£ ããããšããã¢ãããŒããæ¡ãããããšãå€ãã§ãã | |
+ããã¯å°ããªã¢ããªã±ãŒã·ã§ã³ã§ã¯æ¯èŒç容æã«å®çŸããŠããããšã§ãããã¢ããªã±ãŒã·ã§ã³ã®æ¹ä¿®ã³ã¹ãã«æ³šç®ãéãŸã£ãããã¯ãã¹ãã©ãããã©ãŒã ã§åäœããããšã«äŸ¡å€ãåºãŠããè¿å¹Žã§ã¯ãããã¹ããšãã£ã¿ãŒãªã©å€§èŠæš¡ãªã³ãŒãããŒã¹ããã€ã¢ããªã±ãŒã·ã§ã³ã«ãããŠãã³ãŒãã®åé¢ãå®çŸããŠããŸãããå€æ©èœãªã¢ããªã±ãŒã·ã§ã³ã®UIã«ãããŠãã©ãããã©ãŒã äŸåã®ã¬ã€ã€ãŒã«ã¢ã¯ã»ã¹ããã®ã¯ãããå¿ é ãªã®ã§ããã©ãããã©ãŒã ããã¬ãŒã ã¯ãŒã¯ã«äŸåããéšåã¯åãé¢ããŠç°å¢ããšã«å®è£ ããããšããã¢ãããŒããæ¡ãããããšãå€ãã§ãã | |
GUIéšåãããçšåºŠã¯ãã©ãããã©ãŒã ç¬ç«ã®ããã¡ã§å®è£ ã§ããã®ã§ãã@<fn>{xplat-gui}ããã®ç¯ã§ã¯ãããŸã§å€§æãããªè©±ã«èžã¿èŸŒãã®ã¯é¿ããããå°ãæœè±¡åãããDAWã®ã³ãŒãç·šæã念é ã«çœ®ããŠç¶ããŸãã | |
-//footnote[xplat-gui][ããšãã°Gtk+ãQt, Electron, Xamarin.Formsã¯ã¯ãã¹ãã©ãããã©ãŒã ã§åäœããŸãããã¢ãã€ã«éå®ãªãReact Native, FlutterïŒå®å®çïŒãªã©ããããŸãã] | |
+//footnote[xplat-gui][ããšãã°Gtk+ãQt, Electron, Swing, Xamarin.Formsã¯ã¯ãã¹ãã©ãããã©ãŒã ã§åäœããŸãããã¢ãã€ã«éå®ãªãReact Native, FlutterïŒå®å®çïŒãªã©ããããŸãã] | |
DAWã®èšèšã«ãããŠãGUIäžã§ãã©ãã¯äžã«é³ç¬Šãè¿œå ãããããµã³ããªã³ã°ãè¿œå ãããããããšãã£ãæäœã¯ãæœè±¡çãªã¢ãã«ãšããŠè¡šçŸã§ããŸããGUIãšããŠå®éã«ãã©ãã¯ã®å 容ãã¬ã³ããªã³ã°ããã®ã¯GUIã¬ã€ã€ãŒã®ä»äºã§ããããŠãŒã¶ãŒãããããŒããè¿œå ããåœä»€ãå±ãããæã«å®éã«ãã©ãã¯ã«ããŒããè¿œå ããããã³ããŒãåæ¶ãšãã£ãæäœãïŒã¡ã€ã³ã¡ãã¥ãŒããã§ããããŠã¹æäœããã§ããïŒå®è¡ããããšãã£ãæ©èœã¯ãGUIããç¬ç«ããŠèšèšã»å®è£ ã§ããŸãã | |
@@ -234,7 +229,3 @@ GUIããç¬ç«ããã·ãŒã±ã³ãµãŒãšã³ãžã³ã§ããã°ããããŸã§ | |
- ãã¢ãããŒã«ã®ã°ãªãããžã®ã¹ãããèšå®ïŒæ¥œæ²ã«æé©åããŠããã®ãããããªããã補äœè ã®å¥œã¿ãããããªãïŒ | |
æ¬ç« ã§ãã³ãã³ç»å ŽããTracktion Engineã§ã¯ããããã®æ å ±ã¯æŠãä¿åãããŸãããããã®æ å ±é ç®ã®èšèšã¯é£ããããããžã§ã¯ãã®ãã¡ã€ã«ã¯ãããŸã§äœæ¥è åãã®ãã¡ã€ã«ã§ãã£ãŠæ å ±äº€æçšã§ã¯ãªãããšå²ãåã£ãŠãããšãèããããŸãããã ãå®éã®ãšãããããžã§ã¯ãã®å 容ã«çµ¶å¯Ÿãã¡ã€ã«ãã¹ãå«ãŸããŠããããããšãåãäœæ¥è ã§ããå¥ã®PCç°å¢ã«ã³ããŒããŠäœæ¥ããããšãã§ããªããªãã®ã§ããã¡ã€ã«ãã¹ã¯çžå¯Ÿäœçœ®ã§ä¿åãããªã©ã®é æ ®ã¯å¿ããªãããã«ããããšããã§ãã | |
- | |
- | |
- | |
- | |
diff --git a/articles/postfix.re b/articles/postfix.re | |
index 4d6e28f..365f26c 100644 | |
--- a/articles/postfix.re | |
+++ b/articles/postfix.re | |
@@ -1,6 +1,8 @@ | |
= ããšãã | |
+== 第1çããšãã | |
+ | |
ã·ãŒã±ã³ãµãŒãšã³ãžã³ã§äœ¿çšãããŠããæè¡ã«ã€ããŠãå š4ç« ã§ä¿¯ç°çã«èª¬æããŠããŸãããGUIæ©æ§ãªã©å·šå€§ãªæ§æèŠçŽ ã«ã€ããŠãªã空çœãæ®ãããŸãŸã§ã¯ãããŸããããããé€ããŠãå æ¬çãªå 容ã§ãããèªã¿é²ããã®ããªããªã倧å€ãªäœæ¥ã§ãã£ãããšæããŸãããšãŠã詳现ã«äžå¯§ã«èª¬æã§ãããšã¯æããŸãããããŸãã¯å šäœå³ãæãããããšããæ¬æžã®ç®çã¯ããçšåºŠå®çŸã§ããããšæããŸãã | |
@@ -8,3 +10,13 @@ | |
çè ã¯ãŸã ãªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³éçºã®äžçã«é£ã³èŸŒãã ã°ããã§æ¥ãæµ ããæ¬æžãæžãçµãããšãããŸã§æéãè²»ãããŠãããªãååãªç¥èŠããã£ãŠè©³è¿°ã§ããªãã£ãããšãå°ãªããããããŸããããŸã幎æãçµãŠãããæ·±ã¿ã®ãã解説ãæžããããã«ãªããããç¥èŠãèããŠãããããšæããŸãã | |
+ | |
+== 第2çããšãã | |
+ | |
+ | |
+第1çãçºè¡ããŠãã1幎匷ãçµéããŸããããªãŒãã£ãªéçºã«ã¯é£ãããããã¯ãå€ãããŸãçè ãã©ã¡ãããšããã°ã¢ããªã±ãŒã·ã§ã³ããã©ã°ã€ã³ãéçºããããã°ã©ããŒã§ã¯ãªãããšããã£ãŠãããããäžè¶³ããŠããç¥èã ããã§ãããå°ããã€ç¥èãåãŸã£ãŠããŠãããæ¯ãè¿ã£ãŠçŽãã¹ãç®æãæ¢ããŠçŽãããšèããä»åæ¬æžã®æ¹èšã«èžã¿åããŸããã | |
+ | |
+ | |
+ | |
+第1çã§ã¯ãŸã ååã«äœç³»çã«æ¬æžãç·šæã§ããŠããããããŸããŸãªãããã¯ãéå€ã«æŸãäžããŠããã®ã«å¯ŸããŠã第2çã¯æ¢ã«çµã¿ç«ãŠãç·šæã«å 容ãããé©åã«ãã£ããããããã«å 容ã䞊ã¹æ¿ããªãããæ°ãã«èšåããŠããããæè¡äžã®èª²é¡ã»è«ç¹ãè¿œå ããŸãããæ¢ã«æ¬çã§ããŸã ãŸã æ¹åã®äœå°ãããã€ããããšèããŠããŸãããããã¯æ¬¡ããŒãžã§ã³ã®èª²é¡ãšããŠã²ãšãŸãããã§çã眮ãããšæããŸãã | |
+ | |
diff --git a/postfix.md b/postfix.md | |
index 33f4a77..3a2f3d2 100644 | |
--- a/postfix.md | |
+++ b/postfix.md | |
@@ -1,7 +1,14 @@ | |
# ããšãã | |
+## 第1çããšãã | |
+ | |
ã·ãŒã±ã³ãµãŒãšã³ãžã³ã§äœ¿çšãããŠããæè¡ã«ã€ããŠãå š4ç« ã§ä¿¯ç°çã«èª¬æããŠããŸãããGUIæ©æ§ãªã©å·šå€§ãªæ§æèŠçŽ ã«ã€ããŠãªã空çœãæ®ãããŸãŸã§ã¯ãããŸããããããé€ããŠãå æ¬çãªå 容ã§ãããèªã¿é²ããã®ããªããªã倧å€ãªäœæ¥ã§ãã£ãããšæããŸãããšãŠã詳现ã«äžå¯§ã«èª¬æã§ãããšã¯æããŸãããããŸãã¯å šäœå³ãæãããããšããæ¬æžã®ç®çã¯ããçšåºŠå®çŸã§ããããšæããŸãã | |
çè ã¯ãŸã ãªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³éçºã®äžçã«é£ã³èŸŒãã ã°ããã§æ¥ãæµ ããæ¬æžãæžãçµãããšãããŸã§æéãè²»ãããŠãããªãååãªç¥èŠããã£ãŠè©³è¿°ã§ããªãã£ãããšãå°ãªããããããŸããããŸã幎æãçµãŠãããæ·±ã¿ã®ãã解説ãæžããããã«ãªããããç¥èŠãèããŠãããããšæããŸãã | |
+## 第2çããšãã | |
+ | |
+第1çãçºè¡ããŠãã1幎匷ãçµéããŸããããªãŒãã£ãªéçºã«ã¯é£ãããããã¯ãå€ãããŸãçè ãã©ã¡ãããšããã°ã¢ããªã±ãŒã·ã§ã³ããã©ã°ã€ã³ãéçºããããã°ã©ããŒã§ã¯ãªãããšããã£ãŠãããããäžè¶³ããŠããç¥èã ããã§ãããå°ããã€ç¥èãåãŸã£ãŠããŠãããæ¯ãè¿ã£ãŠçŽãã¹ãç®æãæ¢ããŠçŽãããšèããä»åæ¬æžã®æ¹èšã«èžã¿åããŸããã | |
+ | |
+第1çã§ã¯ãŸã ååã«äœç³»çã«æ¬æžãç·šæã§ããŠããããããŸããŸãªãããã¯ãéå€ã«æŸãäžããŠããã®ã«å¯ŸããŠã第2çã¯æ¢ã«çµã¿ç«ãŠãç·šæã«å 容ãããé©åã«ãã£ããããããã«å 容ã䞊ã¹æ¿ããªãããæ°ãã«èšåããŠããããæè¡äžã®èª²é¡ã»è«ç¹ãè¿œå ããŸãããæ¢ã«æ¬çã§ããŸã ãŸã æ¹åã®äœå°ãããã€ããããšèããŠããŸãããããã¯æ¬¡ããŒãžã§ã³ã®èª²é¡ãšããŠã²ãšãŸãããã§çã眮ãããšæããŸãã | |
diff --git a/preface.md b/preface.md | |
index d668977..b909e74 100644 | |
--- a/preface.md | |
+++ b/preface.md | |
@@ -53,3 +53,13 @@ DAWã«ã¯ããŸããŸãªæ©èœãå«ãŸãããã®äžã«ã¯ããšãã°ãœãŒ | |
æ¬æžã¯ããã®ãããªæ¡ä»¶ã§çµã蟌ãŸããDAWçã«ãããã·ãŒã±ã³ãµãŒãšã³ãžã³ãžã®èå³ãããèªè ãäž»ãªå¯Ÿè±¡ãšããŠããŸããèªè ã¯ãããã®ç¥èãåŸãããšã§ãããããžã«ã«ã«DAWã®ãã¯ããçµãã ãããã©ã°ã€ã³ãæ§ç¯ããããããã«ã¯ãªãŒãã³ãœãŒã¹ã®DAWãèªåã§æ¹è¯ãããDAWãèªäœã§ããããã«ãªãããšã§ãããâŠãšããã®ãæ¬æžã®çãã§ãã | |
+## æ¬æžã®æ§æ | |
+ | |
+æ¬æžã¯4ã€ã®ç« ããæãç«ã£ãŠããŸãã | |
+ | |
+- 第1ç« ã¯æ¬æžã察象ãšããDAWã®ã·ãŒã±ã³ãµãŒãšã³ãžã³ã®äœçœ®ä»ããšæè¡èŠçŽ ãç·è«çã«æŠèª¬ãã以éã®ç« ã®å 容ãã·ãŒã±ã³ãµãŒãšã³ãžã³ã®ã©ã®éšåã«é¢é£ããããç¹ãã§ãããŸãã | |
+- 第2ç« ã¯ãªãŒãã£ãªããã³MIDIããã€ã¹ãžã®ãã€ãã£ãã¢ã¯ã»ã¹ãšãããããã¯ãåãåºããŠåãäžããŸãã | |
+- 第3ç« ã¯é³æºãšããŠéèŠãªäœçœ®ãå ãããªãŒãã£ãªãã©ã°ã€ã³ã«ã€ããŠãäž»ã«ãã©ã°ã€ã³ããã¹ãããåŽã®èŠ³ç¹ã§å¿ èŠã«ãªãæè¡ç課é¡ãè«ããŸãã | |
+- 第4ç« ã¯ãªãŒãã£ãªãµã³ãã«ãšMIDIã·ãŒã±ã³ã¹ã«ãã楜æ²ãã©ãã¯ã®ç·šæãåºæ¬ãšããŠãããŒã¿ã¢ãã«ã«å«ããã¹ãæ å ±ã楜æ²ã®æéæ å ±ã®æ§é ãç·šéã»å å·¥åŠçãåçåŠçã«çšããããæè¡ãªã©ã«ã€ããŠèšåããŸãã | |
+ | |
+æåŸã«ä»é²ãšããŠãæ¬æžã®ç¹ã«ç¬¬4ç« ã§è§£èª¬ãããããªæ©èœãå®çŸããŠããTracktion Engineã«ã€ããŠããã®æ§æã¢ãžã¥ãŒã«ãæŠèŠ³ã§ããããã«è§£èª¬ããè¡šãå ããŸããã |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment