Advanced Gtk+ Sequencer

Developer's Book

JoŽl Kršhemann

Copyright (C) JoŽl Kršhemann.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".


Dedication

This book is dedicated to my friend.

Table of Contents

Foreword
1. The application context
Implementations and their interfaces
The config property
The file property
The application mutex
2. XML Input/Output
Writing XML files
Reading XML files
3. Multi-/Super-threaded tree
The main loop interface
Threads in general
Pulling threads of thread pool
Worker-threads to do tic-less parallelism
Asynchronously destroy objects
Poll for file descriptors
Launching tasks
Mutex and condition manager
4. The soundcard and sequencer interface
Gathering PCM information of soundcard
5. AgsAudio a container of AgsChannel
AgsNotation and AgsNote
AgsAutomation and AgsAcceleration
AgsRecallID and AgsRecyclingContext
Dealing with recalls
Open audio files
6. Your tree linked with AgsChannel
The pattern
Linking overview
Limitations
Hands-On
7. The recycling tree
Add and remove audio signal
8. Your audio data in AgsAudioSignal
9. Effects
Play/recall context
Hands-On instantiating an effect
AgsRecallContainer
AgsRecallAudio context
AgsRecallChannel context
AgsRecallAudioRun context
AgsRecallChannelRun context
The basic lifecycle of an effect
A closer look at effects
10. AgsRecall implementations
11. Thread-safe audio ports
Get and set values
12. Putting all together
A. GNU Free Documentation License
B. Related projects

List of Tables

6.1. AGS network layer table

List of Examples

1.1. Thread application context
1.2. Audio application context
1.3. Get config value
1.4. The application context :file property
1.5. The application mutex
2.1. Writing XML
2.2. Reading XML
3.1. Starting threads
3.2. Pulling threads of thread-pool
4.1. PCM information from AgsSoundcard
5.1. Using AgsAudio
6.1. Adding AgsPattern
6.2. Prerequisites
6.3. Thread-Unsafe way
6.4. Multithread-Safe way
7.1. AgsRecycling and AgsAudioSignal
9.1. Creating AgsRecallContainer
9.2. Creating AgsEchoAudio
9.3. Creating AgsEchoChannel
9.4. Creating AgsEchoAudioRun
9.5. Creating AgsEchoChannelRun
12.1. Simple pattern sequencer with master playback