doc/xcode_frameworks.rst: add simple swift example
[aubio.git] / doc / xcode_frameworks.rst
1 .. _xcode-frameworks-label:
2
3 Using aubio frameworks in Xcode
4 -------------------------------
5
6 `Binary frameworks`_ are available and ready to use in your XCode project, for
7 `iOS`_ and `macOS`_.
8
9 #. Download and extract the corresponding ``framework.zip`` file from the `Download`_ page
10
11 #. Select **Build Phases** in your project setting and unfold **Link Binary with Libraries**
12
13 #. Add *AudioToolbox* and *Accelerate* system frameworks (or make sure they are listed)
14
15 #. Add ``aubio.framework`` from the unzipped ``framework.zip``
16
17 #. Include the aubio header in your code:
18
19   * in C/C++:
20
21   .. code-block:: c
22
23     #include <aubio/aubio.h>
24
25   * in Obj-C:
26
27   .. code-block:: obj-c
28
29     #import <aubio/aubio.h>
30
31   * in Swift:
32
33   .. code-block:: swift
34
35     import aubio
36
37 Using aubio from swift
38 ......................
39
40 Here is a short example showing how to read a sound file in swift:
41
42
43   .. code-block:: swift
44
45     import aubio
46
47     let path = Bundle.main.path(forResource: "example", ofType: "mp4")
48     if (path != nil) {
49         let hop_size : uint_t = 512
50         let a = new_fvec(hop_size)
51         let b = new_aubio_source(path, 0, hop_size)
52         var read: uint_t = 0
53         var total_frames : uint_t = 0
54         while (true) {
55             aubio_source_do(b, a, &read)
56             total_frames += read
57             if (read < hop_size) { break }
58         }
59         print("read", total_frames, "frames at", aubio_source_get_samplerate(b), "Hz")
60         del_aubio_source(b)
61         del_fvec(a)
62     } else {
63         print("could not find file")
64     }
65
66
67 .. _Binary frameworks: https://aubio.org/download
68 .. _iOS: https://aubio.org/download#ios
69 .. _macOS: https://aubio.org/download#osx
70 .. _Download: https://aubio.org/download