[Stk] STK Repository structure

Stephen Sinclair sinclair at music.mcgill.ca
Wed Oct 9 07:58:03 PDT 2013


Hi Ariel,

Wouldn't a more direct approach to be to have a compiler target that
produces a Framework bundle that can be dropped into an iOS project?
I think this should be achievable.

Steve



On Wed, Oct 9, 2013 at 4:34 PM, Ariel Elkin <arielelkin at gmail.com> wrote:
> Hi Steve,
>
> There's several reasons for which a reorganisation would be helpful, especially for iOS developers:
>
> If an iOS developer drags and drops the current STK release (v4.4.4) into Xcode, dozens and dozens of build errors start stemming from various STK files which are redundant on iOS or incompatible with it.
>
> For example, TCPClient is superseded by Apple's Foundation's networking classes, and RtAudio, RtWvOut, etc. are superseded by Apple's Core Audio audio layer classes.
>
> These are all the STK's files that are redundant on iOS:
>
> Multithreading:
>         • Thread.h
>         • Thread.cpp
>         • Mutex.h
>         • Mutex.ccp
> Networking:
>         • UdpSocket.h
>         • UdpSocket.cpp
>         • Socket.h
>         • Socket.cpp
>         • TcpClient.h
>         • TcpClient.cpp
>         • TcpServer.h
>         • TcpServer.cpp
> File I/O:
>         • InetWvOut.h
>         • InetWvOut.cpp
>         • InetWvIn.h
>         • InetWvIn.cpp
> Audio Layer setup:
>         • RtAudio.h
>         • RtAudio.cpp
>         • RtMidi.h
>         • RtMidi.cpp
>         • RtWvIn.h
>         • RtWvIn.cpp
>         • RtWvOut.h
>         • RtWvOut.cpp
>         • RtError.h
> In rawwaves/
>         • makefun.c
>         • makemidi.c
>         • makewav.c
>         • sine.c
>
> See https://github.com/arielelkin/STK-on-iOS
>
> In the current state of the repository, an iOS developer has to manually select and remove each of the above files, because ALL of the STK's source files are in the /src and /include folder.
>
> Which is why I suggest moving those files to a /Utilities folder, and the core STK audio files to a /STK folder.
>
> Then there's the current /projects folder, containing awesome projects but which don't run on iOS due to their dependence on RtAudio. That frustrates an iOS developer. Hence my suggestion to group projects within the /projects according to the platform they run on.
>
> So the directory changes I'm proposing would not only make it easier to support iOS, it would make it easier to support other platforms too!
>
> Ariel
>
>
> On 9 Oct 2013, at 3:37pm, Stephen Sinclair wrote:
>
>> Hi Ariel,
>>
>> I think this deserves a response, but I think the reason no one is
>> jumping at it is that it's not clear why a re-organization is
>> necessary.  That doesn't necessarily mean it's a bad idea, just that
>> it doesn't seem obvious to me.
>>
>> For example, what is it about moving source files to different
>> directories that would make it easier for supporting iOS?
>>
>> Steve
>>
>>
>> On Tue, Oct 8, 2013 at 2:04 AM, Ariel Elkin <arielelkin at gmail.com> wrote:
>>> Great to see the STK git repository is coming along!
>>>
>>> I think that something that would really improve the STK's support for iOS, AND make it easier to create ports for other platforms, is if we clearly separate the STK's audio classes from the STK's helper classes. Classes solely dedicated to audio purposes (e.g. Sitar, PRCRev, etc.) should be grouped in their directory. The STK's helper classes, such as those for networking (e.g. Socket, TcpClient) multithreading (e.g. Mutex), or audio layer setup (e.g. RtAudio), should be in separate directories.
>>>
>>> I thought about this directory structure:
>>>
>>> STK/Classes                     <-- All the audio classes, both .h and .cpp (e.g. Guitar, Mandolin, Twang)
>>> STK/Rawwaves            <-- All the raw waves
>>> Utilities/Networking    <-- All the networking classes
>>> Utilities/IO                    <-- All the file I/O classes (e.g. RtAudio)
>>> Utilities/Multithreading
>>> Demo/OSX
>>> Demo/Windows
>>> Demo/iOS
>>>
>>> Let me know if you have comments or suggestions!
>>>
>>> Ariel
>>>
>>> _______________________________________________
>>> Stk mailing list
>>> Stk at ccrma.stanford.edu
>>> http://ccrma-mail.stanford.edu/mailman/listinfo/stk
>>>
>>>
>>
>> _______________________________________________
>> Stk mailing list
>> Stk at ccrma.stanford.edu
>> http://ccrma-mail.stanford.edu/mailman/listinfo/stk
>
>
>



More information about the Stk mailing list