-
Notifications
You must be signed in to change notification settings - Fork 48
/
602.srt
4825 lines (3541 loc) · 106 KB
/
602.srt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:00:00.506 --> 00:00:10.706 A:middle
[ Silence ]
00:00:11.206 --> 00:00:11.886 A:middle
>> Good morning everyone.
00:00:12.496 --> 00:00:14.316 A:middle
My name is Tony Guetta
and I'm the Manager
00:00:14.316 --> 00:00:15.576 A:middle
in the Core Audio
group at Apple.
00:00:15.716 --> 00:00:17.186 A:middle
And today, I'm going
to talk to you about,
00:00:17.186 --> 00:00:21.356 A:middle
What's New in Core
Audio for iOS.
00:00:21.476 --> 00:00:23.706 A:middle
We're going to begin with a
very high level overview of some
00:00:23.756 --> 00:00:25.466 A:middle
of the new audio
features in iOS 7.
00:00:25.626 --> 00:00:28.106 A:middle
And for the majority of this
session, we're going to talk--
00:00:28.106 --> 00:00:30.556 A:middle
spend our time focused on one
new technology in particular
00:00:30.766 --> 00:00:32.305 A:middle
that we think you're going
to be very excited about.
00:00:32.625 --> 00:00:34.896 A:middle
So, let's dive in to the
list of new features.
00:00:35.906 --> 00:00:39.756 A:middle
First is Audio Input Selection
and with input selection,
00:00:39.886 --> 00:00:41.986 A:middle
your application now has
the ability to specify
00:00:41.986 --> 00:00:44.696 A:middle
which audio input it would like
to use in certain situations.
00:00:44.736 --> 00:00:48.506 A:middle
So for example, if the user had
a wired headset plugged into his
00:00:48.506 --> 00:00:50.706 A:middle
or her device, but your
app wanted to continue
00:00:50.706 --> 00:00:52.396 A:middle
to use the built-in
microphone for input,
00:00:52.636 --> 00:00:55.506 A:middle
you now have the
capability to control that.
00:00:56.166 --> 00:00:58.436 A:middle
With input selection, you can
also choose which microphone
00:00:58.436 --> 00:01:00.456 A:middle
that you'd like to use on
our multi-mic platforms
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:00:58.436 --> 00:01:00.456 A:middle
that you'd like to use on
our multi-mic platforms
00:01:00.996 --> 00:01:03.426 A:middle
and on devices that support
it such as the iPhone 5.
00:01:03.846 --> 00:01:04.616 A:middle
You can take advantage
00:01:04.616 --> 00:01:06.136 A:middle
of microphone beam
forming processing
00:01:06.636 --> 00:01:08.846 A:middle
to set an effective
microphone directivity
00:01:08.976 --> 00:01:12.096 A:middle
by specifying a polar pattern
such as cardioid or subcardioid.
00:01:14.716 --> 00:01:17.176 A:middle
We've made some enhancements
to multichannel audio on iOS 7.
00:01:17.556 --> 00:01:19.536 A:middle
And through the use of
the AVAudioSession API,
00:01:20.236 --> 00:01:22.266 A:middle
you can now discover the
maximum number of input
00:01:22.266 --> 00:01:23.446 A:middle
and output channels
that are supported
00:01:23.446 --> 00:01:25.656 A:middle
by the current audio route
as well as being able
00:01:25.656 --> 00:01:29.096 A:middle
to specify your preferred number
of input and output channels.
00:01:29.096 --> 00:01:31.006 A:middle
For audio outputs
supported such as HDMI,
00:01:31.906 --> 00:01:33.786 A:middle
you can obtain audio
channel labels
00:01:33.786 --> 00:01:35.806 A:middle
which associate a
particular audio channel
00:01:36.126 --> 00:01:38.196 A:middle
with the description of a
physical speaker location
00:01:38.196 --> 00:01:41.486 A:middle
such as front left, front
right, center and so on.
00:01:43.236 --> 00:01:44.916 A:middle
We've added some
extensions to Open AL
00:01:44.916 --> 00:01:47.886 A:middle
to enhance the gaming audio
experience in iOS 7 starting
00:01:47.886 --> 00:01:51.036 A:middle
with the ability to specify a
spatialization rendering quality
00:01:51.086 --> 00:01:52.376 A:middle
on a per-sound source basis.
00:01:53.126 --> 00:01:54.046 A:middle
Now, you might use this
00:01:54.046 --> 00:01:56.196 A:middle
to specify a very high
quality rendering algorithm
00:01:56.196 --> 00:01:58.146 A:middle
for the important sound
sources in your game.
00:01:58.396 --> 00:02:00.066 A:middle
But a less CPU intensive
algorithm
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:01:58.396 --> 00:02:00.066 A:middle
But a less CPU intensive
algorithm
00:02:00.066 --> 00:02:02.036 A:middle
for those less importance
sound sources in your game.
00:02:03.576 --> 00:02:04.816 A:middle
We've also made some
improvements
00:02:04.816 --> 00:02:06.996 A:middle
to our high quality
spatialization
00:02:06.996 --> 00:02:07.676 A:middle
rendering algorithm.
00:02:08.326 --> 00:02:10.366 A:middle
And also added the ability
to support rendering
00:02:10.366 --> 00:02:12.356 A:middle
to multichannel output
hardware when it's available.
00:02:13.326 --> 00:02:15.016 A:middle
Finally, we've added
an extension
00:02:15.016 --> 00:02:16.116 A:middle
to allow capturing the output
00:02:16.116 --> 00:02:18.166 A:middle
of the current Open AL
3D rendering context.
00:02:18.666 --> 00:02:22.666 A:middle
We've added time-pitch
capabilities to Audio Queue.
00:02:22.916 --> 00:02:25.496 A:middle
So your application can now
control the speed up and slow
00:02:25.496 --> 00:02:27.266 A:middle
down of Audio Queue
playback both in terms
00:02:27.266 --> 00:02:28.576 A:middle
of time and in frequency.
00:02:31.276 --> 00:02:34.176 A:middle
We've enhanced the security
around audio recording in iOS 7
00:02:34.546 --> 00:02:37.456 A:middle
and we now require explicit user
approval before your application
00:02:37.456 --> 00:02:38.336 A:middle
can do audio input.
00:02:38.966 --> 00:02:40.166 A:middle
Now, the reason for
doing this is
00:02:40.166 --> 00:02:42.146 A:middle
to prevent a malicious
application from being able
00:02:42.146 --> 00:02:43.876 A:middle
to record a user without
him or her knowing it.
00:02:45.046 --> 00:02:46.976 A:middle
The way that this works
is very similar to the way
00:02:46.976 --> 00:02:49.876 A:middle
that the location service's
permission mechanism works.
00:02:49.876 --> 00:02:50.976 A:middle
In that the user is presented
00:02:50.976 --> 00:02:53.206 A:middle
with a model dialog
requesting his or her permission
00:02:53.206 --> 00:02:54.096 A:middle
to use the audio input.
00:02:54.486 --> 00:02:58.006 A:middle
The decision is made on
per-application basis
00:02:58.076 --> 00:02:59.196 A:middle
and it is a one-time decision.
00:02:59.726 --> 00:03:01.976 A:middle
However, if you'd like to
go in and change your mind
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:02:59.726 --> 00:03:01.976 A:middle
However, if you'd like to
go in and change your mind
00:03:01.976 --> 00:03:03.206 A:middle
at a later time,
you can always go
00:03:03.206 --> 00:03:04.816 A:middle
into the Settings
application to do that.
00:03:06.666 --> 00:03:08.776 A:middle
Until the user has given
your application permission
00:03:08.776 --> 00:03:11.186 A:middle
to use audio input, you
will get silence so you need
00:03:11.186 --> 00:03:12.276 A:middle
to be prepared to handle that.
00:03:12.276 --> 00:03:15.876 A:middle
Now, what actually triggers
the dialog from being presented
00:03:15.876 --> 00:03:17.976 A:middle
to the user is an attempt
by your application
00:03:17.976 --> 00:03:20.626 A:middle
to use an audio session
category that would enable input
00:03:20.626 --> 00:03:22.546 A:middle
such as the record
category or play and record.
00:03:23.596 --> 00:03:26.076 A:middle
However, if you'd
like to have control
00:03:26.076 --> 00:03:27.856 A:middle
over when the user is
presented with his dialog
00:03:28.016 --> 00:03:29.966 A:middle
so that it can happen
at a more opportune time
00:03:29.966 --> 00:03:32.256 A:middle
for your application,
we've added some API
00:03:32.446 --> 00:03:35.426 A:middle
and AVAudioSession for
you to be able to do that.
00:03:38.226 --> 00:03:39.976 A:middle
Finally, just a note on
the AudioSession API.
00:03:40.426 --> 00:03:42.766 A:middle
As we mentioned at last year's
conference, the C version
00:03:42.766 --> 00:03:45.316 A:middle
of the AudioSession API is
officially being deprecated
00:03:45.316 --> 00:03:46.086 A:middle
in iOS 7.
00:03:46.326 --> 00:03:48.386 A:middle
So, we hope that over the
course of the past year,
00:03:48.576 --> 00:03:50.416 A:middle
you've all had the opportunity
to move your applications
00:03:50.416 --> 00:03:52.286 A:middle
over to using the
AVAudioSession API.
00:03:55.696 --> 00:03:57.976 A:middle
So, here is a summary of the
features that we just discussed.
00:03:57.976 --> 00:04:00.116 A:middle
We're not going to spend anymore
time today going over any
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:03:57.976 --> 00:04:00.116 A:middle
We're not going to spend anymore
time today going over any
00:04:00.116 --> 00:04:01.446 A:middle
of these topics in
any more detail.
00:04:01.616 --> 00:04:03.326 A:middle
So, if you have any
questions about these
00:04:03.416 --> 00:04:05.636 A:middle
or like a more detailed
overview of any of these items,
00:04:06.026 --> 00:04:08.036 A:middle
we encourage you to come by
our labs either later today
00:04:08.316 --> 00:04:10.106 A:middle
or tomorrow morning and
we'd be happy to discuss
00:04:10.106 --> 00:04:10.936 A:middle
with you in more detail.
00:04:11.666 --> 00:04:14.046 A:middle
I'd also encourage you to have
a look at the documentation
00:04:14.046 --> 00:04:16.046 A:middle
in the various header files
that I outlined in the course
00:04:16.046 --> 00:04:17.276 A:middle
of going through
each of these topics.
00:04:18.276 --> 00:04:21.526 A:middle
So for the remainder of this
session, we're going to focus
00:04:21.526 --> 00:04:23.546 A:middle
on one new technology in
particular that again,
00:04:23.856 --> 00:04:25.406 A:middle
we think you're going
to be very excited about
00:04:25.406 --> 00:04:28.046 A:middle
and that's Inter-App Audio.
00:04:28.516 --> 00:04:29.926 A:middle
So what is Inter-App Audio?
00:04:30.286 --> 00:04:32.856 A:middle
Well, as the name implies,
00:04:32.856 --> 00:04:34.996 A:middle
Inter-App Audio provides
the ability to stream audio
00:04:34.996 --> 00:04:36.406 A:middle
between applications
in real-time.
00:04:36.756 --> 00:04:39.326 A:middle
So, if you have a really cool
effects application and you want
00:04:39.326 --> 00:04:40.806 A:middle
to integrate that into
your DAW application,
00:04:40.906 --> 00:04:42.726 A:middle
you now have the
ability to do that.
00:04:43.266 --> 00:04:46.146 A:middle
We've built Inter-App Audio on
top of existing Core Audio APIs
00:04:46.146 --> 00:04:47.986 A:middle
so it should be very
easy for you to integrate
00:04:47.986 --> 00:04:49.776 A:middle
into your existing applications
00:04:49.776 --> 00:04:52.616 A:middle
and deploy quickly
to the app store.
00:04:52.616 --> 00:04:54.326 A:middle
Because it's built into
the operating system,
00:04:54.526 --> 00:04:56.776 A:middle
the solution is very efficient
with zero additional latency
00:04:57.296 --> 00:05:00.026 A:middle
and should provide for a stable
platform for the evolution
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:04:57.296 --> 00:05:00.026 A:middle
and should provide for a stable
platform for the evolution
00:05:00.026 --> 00:05:00.796 A:middle
of the feature over time.
00:05:01.706 --> 00:05:03.476 A:middle
Now, before we get into any
of the technical details
00:05:03.476 --> 00:05:06.406 A:middle
of how Inter-App Audio works,
I'd like to invite up Alec
00:05:06.636 --> 00:05:09.106 A:middle
from the GarageBand
team to give you a demo.
00:05:09.181 --> 00:05:11.181 A:middle
[ Applause ]
00:05:11.256 --> 00:05:16.566 A:middle
>> Thanks Tony.
00:05:17.056 --> 00:05:17.476 A:middle
Am I up?
00:05:17.766 --> 00:05:17.986 A:middle
>> Yeah.
00:05:18.416 --> 00:05:22.996 A:middle
>> My name is Alec, I am a
product designer for GarageBand
00:05:22.996 --> 00:05:26.296 A:middle
and Logic and I'm going to
switch over here to my iPad.
00:05:27.106 --> 00:05:30.496 A:middle
So, what I want to do today
is give a quick demonstration
00:05:30.546 --> 00:05:33.876 A:middle
about how we have been working
with the development version,
00:05:33.876 --> 00:05:36.016 A:middle
kind of a sneak peek into
a development version
00:05:36.016 --> 00:05:38.976 A:middle
of GarageBand and how we're
doing some experiments
00:05:39.096 --> 00:05:40.096 A:middle
with Inter-App Audio.
00:05:40.936 --> 00:05:43.946 A:middle
So, what I have up here is
just a simple FourTrack song
00:05:43.946 --> 00:05:45.736 A:middle
in GarageBand, I'm going
to play a little bit
00:05:45.736 --> 00:05:47.396 A:middle
so you can get an idea
of what it sounds like.
00:05:47.396 --> 00:05:47.936 A:middle
[ Music ]
00:05:47.936 --> 00:05:56.386 A:middle
OK. So the first thing
I want to do is I want
00:05:56.386 --> 00:05:58.556 A:middle
to add a little keyboard
part to this.
00:05:59.056 --> 00:06:01.736 A:middle
But instead of using one
of the built-in instruments
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:05:59.056 --> 00:06:01.736 A:middle
But instead of using one
of the built-in instruments
00:06:01.736 --> 00:06:05.946 A:middle
in GarageBand, I want to use
an instrument, on the system
00:06:05.946 --> 00:06:07.216 A:middle
that is not part of GarageBand.
00:06:07.216 --> 00:06:08.806 A:middle
So to do that, I'm going to go
00:06:08.806 --> 00:06:10.666 A:middle
out to the GarageBand
instrument browser.
00:06:10.776 --> 00:06:13.356 A:middle
Now, what we see here are
the instruments that ship
00:06:13.356 --> 00:06:15.096 A:middle
with GarageBand,
part of GarageBand.
00:06:15.576 --> 00:06:17.976 A:middle
And then we have a new
icon here, Music Apps.
00:06:18.266 --> 00:06:22.536 A:middle
I'm going to tap on that and
we see the icons of other apps
00:06:22.536 --> 00:06:26.466 A:middle
on the system which
are audio apps.
00:06:26.516 --> 00:06:30.116 A:middle
So, I'm going to click on
sampler one here and we'll see
00:06:30.116 --> 00:06:32.556 A:middle
that the sampler launches
in the background.
00:06:33.126 --> 00:06:36.976 A:middle
Now here it with the UI in the
foreground and we can hear it.
00:06:37.936 --> 00:06:39.906 A:middle
Now, you see there's a
transport here and that's,
00:06:39.906 --> 00:06:42.626 A:middle
this transport is remotely
controlling the transport
00:06:42.626 --> 00:06:43.386 A:middle
of GarageBand.
00:06:43.556 --> 00:06:45.456 A:middle
So, when I press the record
button, what we're going
00:06:45.456 --> 00:06:48.716 A:middle
to hear is a count off from
GarageBand and then the track
00:06:48.716 --> 00:06:53.856 A:middle
that I just played and I'll
record over the top of it.
00:06:54.356 --> 00:07:01.376 A:middle
[ Music ]
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:06:54.356 --> 00:07:01.376 A:middle
[ Music ]
00:07:01.876 --> 00:07:03.236 A:middle
Brilliant musical passage.
00:07:04.816 --> 00:07:07.996 A:middle
So now, if I-- if you look up at
this transport again you'll see
00:07:07.996 --> 00:07:09.736 A:middle
that there's a GarageBand icon.
00:07:10.366 --> 00:07:12.916 A:middle
When I tap on that
icon, I switch back
00:07:12.916 --> 00:07:16.756 A:middle
to the GarageBand application
and now, in the tracks view,
00:07:17.126 --> 00:07:20.456 A:middle
a new track has been added
with this little keyboard part
00:07:20.456 --> 00:07:26.846 A:middle
that I played we
can listen to it.
00:07:26.936 --> 00:07:30.346 A:middle
[Background Music] And
add some keyboard to it.
00:07:30.346 --> 00:07:30.896 A:middle
[ Music ]
00:07:30.896 --> 00:07:33.746 A:middle
So, that was bringing audio
from another application,
00:07:33.746 --> 00:07:35.986 A:middle
controlling that
application in its interface,
00:07:35.986 --> 00:07:37.486 A:middle
and recording that
in GarageBand.
00:07:38.096 --> 00:07:39.626 A:middle
The next thing I
want to do is I want
00:07:39.626 --> 00:07:43.066 A:middle
to process an input
from GarageBand.
00:07:43.066 --> 00:07:47.736 A:middle
So, I'm going to put on my
little guitar here and we'll go
00:07:47.736 --> 00:07:50.896 A:middle
to the guitar amp in GarageBand.
00:07:51.426 --> 00:07:53.516 A:middle
Now, this guitar
amp is part of--
00:07:53.516 --> 00:07:57.466 A:middle
one of the instruments built
in the GarageBand and I'm going
00:07:57.466 --> 00:07:59.856 A:middle
to turn on input monitoring
so I can hear myself.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:08:00.616 --> 00:08:04.886 A:middle
[Background Music] You
guys got it out there?
00:08:07.456 --> 00:08:10.076 A:middle
It's a little phase switch.
00:08:13.456 --> 00:08:15.586 A:middle
OK. Or we're going to--
00:08:15.586 --> 00:08:18.176 A:middle
there you go, that's
more rock and roll.
00:08:18.686 --> 00:08:21.186 A:middle
OK. So, that's a
good sound right?
00:08:21.186 --> 00:08:23.316 A:middle
That's using the guitar
app from GarageBand.
00:08:23.316 --> 00:08:25.456 A:middle
What I want to do though
is I want to process it
00:08:25.626 --> 00:08:27.476 A:middle
with another effect
on my system.
00:08:27.926 --> 00:08:31.426 A:middle
So again, I'm going to go into
the input settings in GarageBand
00:08:31.426 --> 00:08:32.416 A:middle
and if you see about halfway
00:08:32.416 --> 00:08:34.466 A:middle
down this list, it
says Effect App.
00:08:34.466 --> 00:08:38.076 A:middle
I'm going to tap on that and
we can see a list of apps
00:08:38.076 --> 00:08:40.525 A:middle
on my system that are
effects so I'm going
00:08:40.525 --> 00:08:42.046 A:middle
to click on this Audio Delay.
00:08:42.905 --> 00:08:45.606 A:middle
[Music] So, there is the delay
00:08:45.656 --> 00:08:47.366 A:middle
but it's not really
the settings I want.
00:08:47.496 --> 00:08:51.276 A:middle
So, I'm going to tap on
the Effect icon and switch
00:08:51.276 --> 00:08:52.546 A:middle
to the Effects Interface.
00:08:53.086 --> 00:08:54.636 A:middle
I'm going to take the feedback
00:08:54.636 --> 00:08:58.356 A:middle
down here a little
bit and the mix.
00:08:59.016 --> 00:08:59.196 A:middle
[Music] OK.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:09:00.266 --> 00:09:04.836 A:middle
So that's a little bit better.
00:09:04.836 --> 00:09:06.726 A:middle
So now, what I'm doing
is I'm taking the input
00:09:07.296 --> 00:09:09.316 A:middle
through GarageBand, sending
it out to this effect
00:09:09.686 --> 00:09:11.476 A:middle
and bringing it back
on to GarageBand.
00:09:12.226 --> 00:09:13.676 A:middle
Then I can hit record.
00:09:13.676 --> 00:09:14.256 A:middle
[ Music ]
00:09:14.256 --> 00:09:54.026 A:middle
Now, if we switch back
to the tracks view,
00:09:55.626 --> 00:09:57.406 A:middle
we can see that new
region has been recorded
00:09:57.406 --> 00:09:59.606 A:middle
in GarageBand and if I play.
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:10:00.106 --> 00:10:03.576 A:middle
[ Music ]
00:10:04.076 --> 00:10:08.566 A:middle
There is the source
with the delay added
00:10:08.676 --> 00:10:10.676 A:middle
to it recorded in
the GarageBand.
00:10:14.816 --> 00:10:17.626 A:middle
So that's just the
quick overview
00:10:17.626 --> 00:10:19.536 A:middle
of how we're doing some
experiments inside this
00:10:19.536 --> 00:10:21.096 A:middle
development version
of GarageBand
00:10:21.186 --> 00:10:24.056 A:middle
with the new Inter-App
Audio APIs.
00:10:24.056 --> 00:10:25.976 A:middle
And next, we're going
to bring up Doug
00:10:25.976 --> 00:10:27.996 A:middle
to give you a little more
detail about how some
00:10:28.136 --> 00:10:36.726 A:middle
of the stuff works
under the hood.
00:10:36.726 --> 00:10:36.793 A:middle
[ Applause ]
00:10:36.793 --> 00:10:39.286 A:middle
>> Thank you Alec.
00:10:39.286 --> 00:10:42.096 A:middle
Hi, my name is Doug Wyatt, I'm a
plumber in the Core Audio group.
00:10:42.686 --> 00:10:44.896 A:middle
I'd like to present to
you some of the details
00:10:44.896 --> 00:10:46.776 A:middle
of the Inter-App Audio APIs.
00:10:48.376 --> 00:10:52.956 A:middle
So, conceptually here, we
have two kinds of applications
00:10:52.956 --> 00:10:54.746 A:middle
which we call the
host application
00:10:55.146 --> 00:10:56.476 A:middle
and the node application.
00:10:57.296 --> 00:10:58.536 A:middle
The fundamental distinction
00:10:58.536 --> 00:11:01.556 A:middle
between these two
applications is that the host is
WEBVTT
X-TIMESTAMP-MAP=MPEGTS:181083,LOCAL:00:00:00.000
00:10:58.536 --> 00:11:01.556 A:middle
between these two
applications is that the host is
00:11:01.556 --> 00:11:04.066 A:middle
where we ultimately
want the audio coming
00:11:04.066 --> 00:11:06.296 A:middle
from the node application
to end up.
00:11:06.296 --> 00:11:09.766 A:middle
So, GarageBand in this
example was a host application.
00:11:09.766 --> 00:11:12.626 A:middle
It was receiving audio from
the sampler application
00:11:13.066 --> 00:11:15.256 A:middle
and from the delay
effect application.
00:11:15.816 --> 00:11:18.396 A:middle
So, given these two
kinds of applications,
00:11:18.916 --> 00:11:20.256 A:middle
we're going to look at APIs
00:11:20.256 --> 00:11:22.776 A:middle
for how node applications
can register themselves
00:11:22.776 --> 00:11:26.306 A:middle
with the system and how host
applications can discover those
00:11:26.306 --> 00:11:27.916 A:middle
registered node applications.
00:11:28.816 --> 00:11:32.206 A:middle
We'll look at how
host applications can
00:11:32.206 --> 00:11:35.766 A:middle
of initiate connections through
the system to node applications.
00:11:35.766 --> 00:11:38.476 A:middle
And once those connections
are established,
00:11:38.846 --> 00:11:41.476 A:middle
the two applications can stream
audio between each other.
00:11:41.846 --> 00:11:45.986 A:middle
But, again, primarily the
destination has to be the host