--- web/trunk/www.linuxsampler.org/api/draft-linuxsampler-protocol.txt 2006/12/15 21:46:48 974 +++ web/trunk/www.linuxsampler.org/api/draft-linuxsampler-protocol.txt 2006/12/29 20:27:15 1006 @@ -4,7 +4,7 @@ LinuxSampler Developers C. Schoenebeck Internet-Draft Interessengemeinschaft Software Intended status: Standards Track Engineering e. V. -Expires: June 18, 2007 December 15, 2006 +Expires: July 2, 2007 December 29, 2006 LinuxSampler Control Protocol @@ -33,7 +33,7 @@ The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. - This Internet-Draft will expire on June 18, 2007. + This Internet-Draft will expire on July 2, 2007. Copyright Notice @@ -52,7 +52,7 @@ -Schoenebeck Expires June 18, 2007 [Page 1] +Schoenebeck Expires July 2, 2007 [Page 1] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -68,132 +68,148 @@ Table of Contents - 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 5 - 2. Versioning of this specification . . . . . . . . . . . . . . . 6 - 3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 7 - 4. Focus of this protocol . . . . . . . . . . . . . . . . . . . . 8 - 5. Communication Overview . . . . . . . . . . . . . . . . . . . . 9 - 5.1. Request/response communication method . . . . . . . . . . 9 - 5.1.1. Result format . . . . . . . . . . . . . . . . . . . . 10 - 5.2. Subscribe/notify communication method . . . . . . . . . . 12 - 6. Description for control commands . . . . . . . . . . . . . . . 14 - 6.1. Ignored lines and comments . . . . . . . . . . . . . . . . 14 - 6.2. Configuring audio drivers . . . . . . . . . . . . . . . . 14 - 6.2.1. Getting amount of available audio output drivers . . . 15 - 6.2.2. Getting all available audio output drivers . . . . . . 15 + 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 5 + 2. Versioning of this specification . . . . . . . . . . . . . . 6 + 3. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7 + 4. Focus of this protocol . . . . . . . . . . . . . . . . . . . 8 + 5. Communication Overview . . . . . . . . . . . . . . . . . . . 9 + 5.1. Request/response communication method . . . . . . . . . . 9 + 5.1.1. Result format . . . . . . . . . . . . . . . . . . . . 10 + 5.2. Subscribe/notify communication method . . . . . . . . . . 12 + 6. Description for control commands . . . . . . . . . . . . . . 14 + 6.1. Ignored lines and comments . . . . . . . . . . . . . . . 14 + 6.2. Configuring audio drivers . . . . . . . . . . . . . . . . 14 + 6.2.1. Getting amount of available audio output drivers . . 15 + 6.2.2. Getting all available audio output drivers . . . . . 15 6.2.3. Getting information about a specific audio output - driver . . . . . . . . . . . . . . . . . . . . . . . . 15 + driver . . . . . . . . . . . . . . . . . . . . . . . 15 6.2.4. Getting information about specific audio output - driver parameter . . . . . . . . . . . . . . . . . . . 16 - 6.2.5. Creating an audio output device . . . . . . . . . . . 20 - 6.2.6. Destroying an audio output device . . . . . . . . . . 21 - 6.2.7. Getting all created audio output device count . . . . 22 - 6.2.8. Getting all created audio output device list . . . . . 22 - 6.2.9. Getting current settings of an audio output device . . 22 - 6.2.10. Changing settings of audio output devices . . . . . . 24 - 6.2.11. Getting information about an audio channel . . . . . . 25 + driver parameter . . . . . . . . . . . . . . . . . . 16 + 6.2.5. Creating an audio output device . . . . . . . . . . . 20 + 6.2.6. Destroying an audio output device . . . . . . . . . . 21 + 6.2.7. Getting all created audio output device count . . . . 22 + 6.2.8. Getting all created audio output device list . . . . 22 + 6.2.9. Getting current settings of an audio output device . 22 + 6.2.10. Changing settings of audio output devices . . . . . . 24 + 6.2.11. Getting information about an audio channel . . . . . 25 6.2.12. Getting information about specific audio channel - parameter . . . . . . . . . . . . . . . . . . . . . . 26 - 6.2.13. Changing settings of audio output channels . . . . . . 28 - 6.3. Configuring MIDI input drivers . . . . . . . . . . . . . . 29 - 6.3.1. Getting amount of available MIDI input drivers . . . . 30 - 6.3.2. Getting all available MIDI input drivers . . . . . . . 30 + parameter . . . . . . . . . . . . . . . . . . . . . . 26 + 6.2.13. Changing settings of audio output channels . . . . . 28 + 6.3. Configuring MIDI input drivers . . . . . . . . . . . . . 29 + 6.3.1. Getting amount of available MIDI input drivers . . . 30 + 6.3.2. Getting all available MIDI input drivers . . . . . . 30 6.3.3. Getting information about a specific MIDI input - driver . . . . . . . . . . . . . . . . . . . . . . . . 31 + driver . . . . . . . . . . . . . . . . . . . . . . . 31 6.3.4. Getting information about specific MIDI input - driver parameter . . . . . . . . . . . . . . . . . . . 32 - 6.3.5. Creating a MIDI input device . . . . . . . . . . . . . 34 - 6.3.6. Destroying a MIDI input device . . . . . . . . . . . . 35 - 6.3.7. Getting all created MIDI input device count . . . . . 36 + driver parameter . . . . . . . . . . . . . . . . . . 32 + 6.3.5. Creating a MIDI input device . . . . . . . . . . . . 34 + 6.3.6. Destroying a MIDI input device . . . . . . . . . . . 35 + 6.3.7. Getting all created MIDI input device count . . . . . 36 -Schoenebeck Expires June 18, 2007 [Page 2] +Schoenebeck Expires July 2, 2007 [Page 2] Internet-Draft LinuxSampler Control Protocol December 2006 - 6.3.8. Getting all created MIDI input device list . . . . . . 36 - 6.3.9. Getting current settings of a MIDI input device . . . 37 - 6.3.10. Changing settings of MIDI input devices . . . . . . . 38 - 6.3.11. Getting information about a MIDI port . . . . . . . . 38 + 6.3.8. Getting all created MIDI input device list . . . . . 36 + 6.3.9. Getting current settings of a MIDI input device . . . 37 + 6.3.10. Changing settings of MIDI input devices . . . . . . . 38 + 6.3.11. Getting information about a MIDI port . . . . . . . . 38 6.3.12. Getting information about specific MIDI port - parameter . . . . . . . . . . . . . . . . . . . . . . 39 - 6.3.13. Changing settings of MIDI input ports . . . . . . . . 41 - 6.4. Configuring sampler channels . . . . . . . . . . . . . . . 42 - 6.4.1. Loading an instrument . . . . . . . . . . . . . . . . 42 - 6.4.2. Loading a sampler engine . . . . . . . . . . . . . . . 43 - 6.4.3. Getting all created sampler channel count . . . . . . 44 - 6.4.4. Getting all created sampler channel list . . . . . . . 44 - 6.4.5. Adding a new sampler channel . . . . . . . . . . . . . 44 - 6.4.6. Removing a sampler channel . . . . . . . . . . . . . . 45 - 6.4.7. Getting amount of available engines . . . . . . . . . 46 - 6.4.8. Getting all available engines . . . . . . . . . . . . 46 - 6.4.9. Getting information about an engine . . . . . . . . . 47 - 6.4.10. Getting sampler channel information . . . . . . . . . 48 - 6.4.11. Current number of active voices . . . . . . . . . . . 51 - 6.4.12. Current number of active disk streams . . . . . . . . 51 - 6.4.13. Current fill state of disk stream buffers . . . . . . 52 - 6.4.14. Setting audio output device . . . . . . . . . . . . . 53 - 6.4.15. Setting audio output type . . . . . . . . . . . . . . 53 - 6.4.16. Setting audio output channel . . . . . . . . . . . . . 54 - 6.4.17. Setting MIDI input device . . . . . . . . . . . . . . 55 - 6.4.18. Setting MIDI input type . . . . . . . . . . . . . . . 56 - 6.4.19. Setting MIDI input port . . . . . . . . . . . . . . . 56 - 6.4.20. Setting MIDI input channel . . . . . . . . . . . . . . 57 - 6.4.21. Setting channel volume . . . . . . . . . . . . . . . . 58 - 6.4.22. Muting a sampler channel . . . . . . . . . . . . . . . 58 - 6.4.23. Soloing a sampler channel . . . . . . . . . . . . . . 59 + parameter . . . . . . . . . . . . . . . . . . . . . . 39 + 6.3.13. Changing settings of MIDI input ports . . . . . . . . 41 + 6.4. Configuring sampler channels . . . . . . . . . . . . . . 42 + 6.4.1. Loading an instrument . . . . . . . . . . . . . . . . 42 + 6.4.2. Loading a sampler engine . . . . . . . . . . . . . . 43 + 6.4.3. Getting all created sampler channel count . . . . . . 44 + 6.4.4. Getting all created sampler channel list . . . . . . 44 + 6.4.5. Adding a new sampler channel . . . . . . . . . . . . 44 + 6.4.6. Removing a sampler channel . . . . . . . . . . . . . 45 + 6.4.7. Getting amount of available engines . . . . . . . . . 46 + 6.4.8. Getting all available engines . . . . . . . . . . . . 46 + 6.4.9. Getting information about an engine . . . . . . . . . 47 + 6.4.10. Getting sampler channel information . . . . . . . . . 48 + 6.4.11. Current number of active voices . . . . . . . . . . . 51 + 6.4.12. Current number of active disk streams . . . . . . . . 51 + 6.4.13. Current fill state of disk stream buffers . . . . . . 52 + 6.4.14. Setting audio output device . . . . . . . . . . . . . 53 + 6.4.15. Setting audio output type . . . . . . . . . . . . . . 53 + 6.4.16. Setting audio output channel . . . . . . . . . . . . 54 + 6.4.17. Setting MIDI input device . . . . . . . . . . . . . . 55 + 6.4.18. Setting MIDI input type . . . . . . . . . . . . . . . 56 + 6.4.19. Setting MIDI input port . . . . . . . . . . . . . . . 56 + 6.4.20. Setting MIDI input channel . . . . . . . . . . . . . 57 + 6.4.21. Setting channel volume . . . . . . . . . . . . . . . 58 + 6.4.22. Muting a sampler channel . . . . . . . . . . . . . . 58 + 6.4.23. Soloing a sampler channel . . . . . . . . . . . . . . 59 6.4.24. Assigning a MIDI instrument map to a sampler - channel . . . . . . . . . . . . . . . . . . . . . . . 60 - 6.4.25. Resetting a sampler channel . . . . . . . . . . . . . 61 - 6.5. Controlling connection . . . . . . . . . . . . . . . . . . 61 - 6.5.1. Register front-end for receiving event messages . . . 61 + channel . . . . . . . . . . . . . . . . . . . . . . . 60 + 6.4.25. Adding an effect send to a sampler channel . . . . . 61 + 6.4.26. Removing an effect send from a sampler channel . . . 62 + 6.4.27. Getting amount of effect sends on a sampler channel . 63 + 6.4.28. Listing all effect sends on a sampler channel . . . . 63 + 6.4.29. Getting effect send information . . . . . . . . . . . 64 + 6.4.30. Altering effect send's audio routing . . . . . . . . 65 + 6.4.31. Resetting a sampler channel . . . . . . . . . . . . . 66 + 6.5. Controlling connection . . . . . . . . . . . . . . . . . 66 + 6.5.1. Register front-end for receiving event messages . . . 66 6.5.2. Unregister front-end for not receiving event - messages . . . . . . . . . . . . . . . . . . . . . . . 62 - 6.5.3. Enable or disable echo of commands . . . . . . . . . . 63 - 6.5.4. Close client connection . . . . . . . . . . . . . . . 63 - 6.6. Global commands . . . . . . . . . . . . . . . . . . . . . 64 - 6.6.1. Current number of active voices . . . . . . . . . . . 64 - 6.6.2. Maximum amount of active voices . . . . . . . . . . . 64 - 6.6.3. Reset sampler . . . . . . . . . . . . . . . . . . . . 64 - 6.6.4. General sampler informations . . . . . . . . . . . . . 65 - 6.7. MIDI Instrument Mapping . . . . . . . . . . . . . . . . . 65 - 6.7.1. Create a new MIDI instrument map . . . . . . . . . . . 66 - 6.7.2. Delete one particular or all MIDI instrument maps . . 67 + messages . . . . . . . . . . . . . . . . . . . . . . 67 + 6.5.3. Enable or disable echo of commands . . . . . . . . . 68 + 6.5.4. Close client connection . . . . . . . . . . . . . . . 68 + 6.6. Global commands . . . . . . . . . . . . . . . . . . . . . 69 + 6.6.1. Current number of active voices . . . . . . . . . . . 69 -Schoenebeck Expires June 18, 2007 [Page 3] +Schoenebeck Expires July 2, 2007 [Page 3] Internet-Draft LinuxSampler Control Protocol December 2006 - 6.7.3. Get amount of existing MIDI instrument maps . . . . . 67 - 6.7.4. Getting all created MIDI instrument maps . . . . . . . 68 - 6.7.5. Getting MIDI instrument map information . . . . . . . 68 - 6.7.6. Renaming a MIDI instrument map . . . . . . . . . . . . 69 - 6.7.7. Create or replace a MIDI instrument map entry . . . . 69 - 6.7.8. Getting ammount of MIDI instrument map entries . . . . 72 + 6.6.2. Maximum amount of active voices . . . . . . . . . . . 69 + 6.6.3. Reset sampler . . . . . . . . . . . . . . . . . . . . 69 + 6.6.4. General sampler informations . . . . . . . . . . . . 70 + 6.6.5. Getting global volume attenuation . . . . . . . . . . 70 + 6.6.6. Setting global volume attenuation . . . . . . . . . . 71 + 6.7. MIDI Instrument Mapping . . . . . . . . . . . . . . . . . 71 + 6.7.1. Create a new MIDI instrument map . . . . . . . . . . 72 + 6.7.2. Delete one particular or all MIDI instrument maps . . 73 + 6.7.3. Get amount of existing MIDI instrument maps . . . . . 73 + 6.7.4. Getting all created MIDI instrument maps . . . . . . 74 + 6.7.5. Getting MIDI instrument map information . . . . . . . 74 + 6.7.6. Renaming a MIDI instrument map . . . . . . . . . . . 75 + 6.7.7. Create or replace a MIDI instrument map entry . . . . 75 + 6.7.8. Getting ammount of MIDI instrument map entries . . . 78 6.7.9. Getting indeces of all entries of a MIDI - instrument map . . . . . . . . . . . . . . . . . . . . 73 - 6.7.10. Remove an entry from the MIDI instrument map . . . . . 73 - 6.7.11. Get current settings of MIDI instrument map entry . . 74 - 6.7.12. Clear MIDI instrument map . . . . . . . . . . . . . . 76 - 7. Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . 77 - 8. Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 - 8.1. Number of sampler channels changed . . . . . . . . . . . . 86 - 8.2. Number of active voices changed . . . . . . . . . . . . . 86 - 8.3. Number of active disk streams changed . . . . . . . . . . 86 - 8.4. Disk stream buffer fill state changed . . . . . . . . . . 87 - 8.5. Channel information changed . . . . . . . . . . . . . . . 87 - 8.6. Total number of active voices changed . . . . . . . . . . 87 - 8.7. Miscellaneous and debugging events . . . . . . . . . . . . 88 - 9. Security Considerations . . . . . . . . . . . . . . . . . . . 89 - 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 90 - 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 91 - Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 92 - Intellectual Property and Copyright Statements . . . . . . . . . . 93 + instrument map . . . . . . . . . . . . . . . . . . . 79 + 6.7.10. Remove an entry from the MIDI instrument map . . . . 79 + 6.7.11. Get current settings of MIDI instrument map entry . . 80 + 6.7.12. Clear MIDI instrument map . . . . . . . . . . . . . . 82 + 7. Command Syntax . . . . . . . . . . . . . . . . . . . . . . . 83 + 8. Events . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 + 8.1. Number of audio output devices changed . . . . . . . . . 94 + 8.2. Audio output device's settings changed . . . . . . . . . 94 + 8.3. Number of MIDI input devices changed . . . . . . . . . . 94 + 8.4. MIDI input device's settings changed . . . . . . . . . . 95 + 8.5. Number of sampler channels changed . . . . . . . . . . . 95 + 8.6. Number of active voices changed . . . . . . . . . . . . . 95 + 8.7. Number of active disk streams changed . . . . . . . . . . 96 + 8.8. Disk stream buffer fill state changed . . . . . . . . . . 96 + 8.9. Channel information changed . . . . . . . . . . . . . . . 96 + 8.10. Total number of active voices changed . . . . . . . . . . 97 + 8.11. Number of MIDI instrument maps changed . . . . . . . . . 97 + 8.12. MIDI instrument map information changed . . . . . . . . . 97 + 8.13. Number of MIDI instruments changed . . . . . . . . . . . 98 + 8.14. MIDI instrument information changed . . . . . . . . . . . 98 + 8.15. Miscellaneous and debugging events . . . . . . . . . . . 99 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 100 + 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 101 + 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 102 + Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 103 + Intellectual Property and Copyright Statements . . . . . . . . . 104 @@ -204,23 +220,7 @@ - - - - - - - - - - - - - - - - -Schoenebeck Expires June 18, 2007 [Page 4] +Schoenebeck Expires July 2, 2007 [Page 4] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -276,7 +276,7 @@ -Schoenebeck Expires June 18, 2007 [Page 5] +Schoenebeck Expires July 2, 2007 [Page 5] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -332,7 +332,7 @@ -Schoenebeck Expires June 18, 2007 [Page 6] +Schoenebeck Expires July 2, 2007 [Page 6] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -388,7 +388,7 @@ -Schoenebeck Expires June 18, 2007 [Page 7] +Schoenebeck Expires July 2, 2007 [Page 7] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -444,7 +444,7 @@ -Schoenebeck Expires June 18, 2007 [Page 8] +Schoenebeck Expires July 2, 2007 [Page 8] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -500,7 +500,7 @@ -Schoenebeck Expires June 18, 2007 [Page 9] +Schoenebeck Expires July 2, 2007 [Page 9] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -556,7 +556,7 @@ -Schoenebeck Expires June 18, 2007 [Page 10] +Schoenebeck Expires July 2, 2007 [Page 10] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -612,7 +612,7 @@ -Schoenebeck Expires June 18, 2007 [Page 11] +Schoenebeck Expires July 2, 2007 [Page 11] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -668,7 +668,7 @@ -Schoenebeck Expires June 18, 2007 [Page 12] +Schoenebeck Expires July 2, 2007 [Page 12] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -724,7 +724,7 @@ -Schoenebeck Expires June 18, 2007 [Page 13] +Schoenebeck Expires July 2, 2007 [Page 13] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -780,7 +780,7 @@ -Schoenebeck Expires June 18, 2007 [Page 14] +Schoenebeck Expires July 2, 2007 [Page 14] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -836,7 +836,7 @@ -Schoenebeck Expires June 18, 2007 [Page 15] +Schoenebeck Expires July 2, 2007 [Page 15] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -892,7 +892,7 @@ -Schoenebeck Expires June 18, 2007 [Page 16] +Schoenebeck Expires July 2, 2007 [Page 16] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -948,7 +948,7 @@ -Schoenebeck Expires June 18, 2007 [Page 17] +Schoenebeck Expires July 2, 2007 [Page 17] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1004,7 +1004,7 @@ -Schoenebeck Expires June 18, 2007 [Page 18] +Schoenebeck Expires July 2, 2007 [Page 18] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1060,7 +1060,7 @@ -Schoenebeck Expires June 18, 2007 [Page 19] +Schoenebeck Expires July 2, 2007 [Page 19] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1116,7 +1116,7 @@ -Schoenebeck Expires June 18, 2007 [Page 20] +Schoenebeck Expires July 2, 2007 [Page 20] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1172,7 +1172,7 @@ -Schoenebeck Expires June 18, 2007 [Page 21] +Schoenebeck Expires July 2, 2007 [Page 21] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1228,7 +1228,7 @@ -Schoenebeck Expires June 18, 2007 [Page 22] +Schoenebeck Expires July 2, 2007 [Page 22] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1284,7 +1284,7 @@ -Schoenebeck Expires June 18, 2007 [Page 23] +Schoenebeck Expires July 2, 2007 [Page 23] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1340,7 +1340,7 @@ -Schoenebeck Expires June 18, 2007 [Page 24] +Schoenebeck Expires July 2, 2007 [Page 24] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1396,7 +1396,7 @@ -Schoenebeck Expires June 18, 2007 [Page 25] +Schoenebeck Expires July 2, 2007 [Page 25] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1452,7 +1452,7 @@ -Schoenebeck Expires June 18, 2007 [Page 26] +Schoenebeck Expires July 2, 2007 [Page 26] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1508,7 +1508,7 @@ -Schoenebeck Expires June 18, 2007 [Page 27] +Schoenebeck Expires July 2, 2007 [Page 27] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1564,7 +1564,7 @@ -Schoenebeck Expires June 18, 2007 [Page 28] +Schoenebeck Expires July 2, 2007 [Page 28] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1620,7 +1620,7 @@ -Schoenebeck Expires June 18, 2007 [Page 29] +Schoenebeck Expires July 2, 2007 [Page 29] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1676,7 +1676,7 @@ -Schoenebeck Expires June 18, 2007 [Page 30] +Schoenebeck Expires July 2, 2007 [Page 30] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1732,7 +1732,7 @@ -Schoenebeck Expires June 18, 2007 [Page 31] +Schoenebeck Expires July 2, 2007 [Page 31] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1788,7 +1788,7 @@ -Schoenebeck Expires June 18, 2007 [Page 32] +Schoenebeck Expires July 2, 2007 [Page 32] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1844,7 +1844,7 @@ -Schoenebeck Expires June 18, 2007 [Page 33] +Schoenebeck Expires July 2, 2007 [Page 33] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1900,7 +1900,7 @@ -Schoenebeck Expires June 18, 2007 [Page 34] +Schoenebeck Expires July 2, 2007 [Page 34] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -1956,7 +1956,7 @@ -Schoenebeck Expires June 18, 2007 [Page 35] +Schoenebeck Expires July 2, 2007 [Page 35] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2012,7 +2012,7 @@ -Schoenebeck Expires June 18, 2007 [Page 36] +Schoenebeck Expires July 2, 2007 [Page 36] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2068,7 +2068,7 @@ -Schoenebeck Expires June 18, 2007 [Page 37] +Schoenebeck Expires July 2, 2007 [Page 37] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2124,7 +2124,7 @@ -Schoenebeck Expires June 18, 2007 [Page 38] +Schoenebeck Expires July 2, 2007 [Page 38] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2180,7 +2180,7 @@ -Schoenebeck Expires June 18, 2007 [Page 39] +Schoenebeck Expires July 2, 2007 [Page 39] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2236,7 +2236,7 @@ -Schoenebeck Expires June 18, 2007 [Page 40] +Schoenebeck Expires July 2, 2007 [Page 40] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2292,7 +2292,7 @@ -Schoenebeck Expires June 18, 2007 [Page 41] +Schoenebeck Expires July 2, 2007 [Page 41] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2348,7 +2348,7 @@ -Schoenebeck Expires June 18, 2007 [Page 42] +Schoenebeck Expires July 2, 2007 [Page 42] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2404,7 +2404,7 @@ -Schoenebeck Expires June 18, 2007 [Page 43] +Schoenebeck Expires July 2, 2007 [Page 43] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2460,7 +2460,7 @@ -Schoenebeck Expires June 18, 2007 [Page 44] +Schoenebeck Expires July 2, 2007 [Page 44] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2516,7 +2516,7 @@ -Schoenebeck Expires June 18, 2007 [Page 45] +Schoenebeck Expires July 2, 2007 [Page 45] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2572,7 +2572,7 @@ -Schoenebeck Expires June 18, 2007 [Page 46] +Schoenebeck Expires July 2, 2007 [Page 46] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2628,7 +2628,7 @@ -Schoenebeck Expires June 18, 2007 [Page 47] +Schoenebeck Expires July 2, 2007 [Page 47] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2684,7 +2684,7 @@ -Schoenebeck Expires June 18, 2007 [Page 48] +Schoenebeck Expires July 2, 2007 [Page 48] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2740,7 +2740,7 @@ -Schoenebeck Expires June 18, 2007 [Page 49] +Schoenebeck Expires July 2, 2007 [Page 49] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2796,7 +2796,7 @@ -Schoenebeck Expires June 18, 2007 [Page 50] +Schoenebeck Expires July 2, 2007 [Page 50] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2852,7 +2852,7 @@ -Schoenebeck Expires June 18, 2007 [Page 51] +Schoenebeck Expires July 2, 2007 [Page 51] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2908,7 +2908,7 @@ -Schoenebeck Expires June 18, 2007 [Page 52] +Schoenebeck Expires July 2, 2007 [Page 52] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -2964,7 +2964,7 @@ -Schoenebeck Expires June 18, 2007 [Page 53] +Schoenebeck Expires July 2, 2007 [Page 53] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3020,7 +3020,7 @@ -Schoenebeck Expires June 18, 2007 [Page 54] +Schoenebeck Expires July 2, 2007 [Page 54] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3076,7 +3076,7 @@ -Schoenebeck Expires June 18, 2007 [Page 55] +Schoenebeck Expires July 2, 2007 [Page 55] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3132,7 +3132,7 @@ -Schoenebeck Expires June 18, 2007 [Page 56] +Schoenebeck Expires July 2, 2007 [Page 56] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3188,7 +3188,7 @@ -Schoenebeck Expires June 18, 2007 [Page 57] +Schoenebeck Expires July 2, 2007 [Page 57] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3244,7 +3244,7 @@ -Schoenebeck Expires June 18, 2007 [Page 58] +Schoenebeck Expires July 2, 2007 [Page 58] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3300,7 +3300,7 @@ -Schoenebeck Expires June 18, 2007 [Page 59] +Schoenebeck Expires July 2, 2007 [Page 59] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3356,7 +3356,7 @@ -Schoenebeck Expires June 18, 2007 [Page 60] +Schoenebeck Expires July 2, 2007 [Page 60] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3365,7 +3365,289 @@ -6.4.25. Resetting a sampler channel +6.4.25. Adding an effect send to a sampler channel + + The front-end can create an additional effect send on a specific + sampler channel by sending the following command: + + CREATE FX_SEND [] + + Where is the respective sampler channel number as + returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" + (Section 6.4.4) command, that is the sampler channel on which the + effect send should be created on, is a number between + 0..127 defining the MIDI controller which can alter the effect send + level and is an optional argument defining a name for the + effect send entity. The name does not have to be unique. + + By default, that is as initial routing, the effect send's audio + channels are automatically routed to the last audio channels of the + sampler channel's audio output device, that way you can i.e. first + increase the amount of audio channels on the audio output device for + having dedicated effect send output channels and when "CREATE + FX_SEND" is called, those channels will automatically be picked. You + can alter the destination channels however with "SET FX_SEND + AUDIO_OUTPUT_CHANNEL" (Section 6.4.30). + + Note: Create effect sends on a sampler channel only when needed, + because having effect sends on a sampler channel will decrease + runtime performance, because for implementing channel effect sends, + separate (sampler channel local) audio buffers are needed to render + and mix the voices and route the audio signal afterwards to the + master outputs and effect send outputs (along with their respective + effect send levels). A sampler channel without effect sends however + can mix its voices directly into the audio output devices's audio + buffers and is thus faster. + + Possible Answers: + + "OK[]" - + + in case a new effect send could be added to the sampler + channel, where reflects the unique ID of the newly + created effect send entity + + + + + + +Schoenebeck Expires July 2, 2007 [Page 61] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + + "ERR::" - + + when a new effect send could not be added, i.e. due to invalid + parameters + + Examples: + + C: "CREATE FX_SEND 0 91 'Reverb Send'" + + S: "OK[0]" + + C: "CREATE FX_SEND 0 93" + + S: "OK[1]" + +6.4.26. Removing an effect send from a sampler channel + + The front-end can remove an existing effect send on a specific + sampler channel by sending the following command: + + DESTROY FX_SEND + + Where is the respective sampler channel number as + returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" + (Section 6.4.4) command, that is the sampler channel from which the + effect send should be removed from and is the respective + effect send number as returned by the "CREATE FX_SEND" + (Section 6.4.25) or "LIST FX_SENDS" (Section 6.4.28) command. + + Possible Answers: + + "OK" - + + on success + + "ERR::" - + + in case it failed, providing an appropriate error code and + error message + + Example: + + C: "DESTROY FX_SEND 0 0" + + S: "OK" + + + + + + +Schoenebeck Expires July 2, 2007 [Page 62] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + +6.4.27. Getting amount of effect sends on a sampler channel + + The front-end can ask for the amount of effect sends on a specific + sampler channel by sending the following command: + + GET FX_SENDS + + Where is the respective sampler channel number as + returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" + (Section 6.4.4) command. + + Possible Answers: + + The sampler will answer by returning the number of effect sends on + the given sampler channel. + + Example: + + C: "GET FX_SENDS 0" + + S: "2" + +6.4.28. Listing all effect sends on a sampler channel + + The front-end can ask for a list of effect sends on a specific + sampler channel by sending the following command: + + LIST FX_SENDS + + Where is the respective sampler channel number as + returned by the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" + (Section 6.4.4) command. + + Possible Answers: + + The sampler will answer by returning a comma separated list with + all effect sends' numerical IDs on the given sampler channel. + + Examples: + + C: "LIST FX_SENDS 0" + + S: "0,1" + + C: "LIST FX_SENDS 1" + + S: "" + + + + +Schoenebeck Expires July 2, 2007 [Page 63] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + +6.4.29. Getting effect send information + + The front-end can ask for the current settings of an effect send + entity by sending the following command: + + GET FX_SEND INFO + + Where is the sampler channel number as returned by + the "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4) + command and reflects the numerical ID of the effect send + entity as returned by the "CREATE FX_SEND" (Section 6.4.25) or "LIST + FX_SENDS" (Section 6.4.28) command. + + Possible Answers: + + The sampler will answer by sending a separated list. Each + answer line begins with the settings category name followed by a + colon and then a space character and finally the info + character string to that setting category. At the moment the + following categories are defined: + + + + NAME - + + name of the effect send entity + + AUDIO_OUTPUT_ROUTING - + + comma separated list which reflects to which audio channel + of the selected audio output device each effect send output + channel is routed to, e.g. "0,3" would mean the effect + send's output channel 0 is routed to channel 0 of the audio + output device and the effect send's output channel 1 is + routed to the channel 3 of the audio output device (see "SET + FX_SEND AUDIO_OUTPUT_CHANNEL" (Section 6.4.30) for details) + + The mentioned fields above don't have to be in particular order. + + Example: + + C: "GET FX_SEND INFO 0 0" + + S: "NAME: Reverb Send" + + "AUDIO_OUTPUT_ROUTING: 2,3" + + + + + +Schoenebeck Expires July 2, 2007 [Page 64] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + + "." + +6.4.30. Altering effect send's audio routing + + The front-end can alter the destination of an effect send's audio + channel on a specific sampler channel by sending the following + command: + + SET FX_SEND AUDIO_OUTPUT_CHANNEL + + + Where is the sampler channel number as returned by the + "ADD CHANNEL" (Section 6.4.5) or "LIST CHANNELS" (Section 6.4.4) + command, reflects the numerical ID of the effect send + entity as returned by the "CREATE FX_SEND" (Section 6.4.25) or "LIST + FX_SENDS" (Section 6.4.28) command, is the numerical ID + of the effect send's audio channel which should be rerouted and + is the numerical ID of the audio channel of the selected + audio output device where should be routed to. + + Note that effect sends can only route audio to the same audio output + device as assigned to the effect send's sampler channel. Also note + that an effect send entity does always have exactly as much audio + channels as its sampler channel. So if the sampler channel is + stereo, the effect send does have two audio channels as well. Also + keep in mind that the amount of audio channels on a sampler channel + might be dependant not only to the deployed sampler engine on the + sampler channel, but also dependant to the instrument currently + loaded. However you can (effectively) turn an i.e. stereo effect + send into a mono one by simply altering its audio routing + appropriately. + + Possible Answers: + + "OK" - + + on success + + "WRN::" - + + if audio output channel was set, but there are noteworthy + issue(s) related, providing an appropriate warning code and + warning message + + "ERR::" - + + in case it failed, providing an appropriate error code and + error message + + + +Schoenebeck Expires July 2, 2007 [Page 65] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + + Example: + + C: "SET FX_SEND AUDIO_OUTPUT_CHANNEL 0 0 0 2" + + S: "OK" + +6.4.31. Resetting a sampler channel The front-end can reset a particular sampler channel by sending the following command: @@ -3410,9 +3692,7 @@ - - -Schoenebeck Expires June 18, 2007 [Page 61] +Schoenebeck Expires July 2, 2007 [Page 66] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3468,7 +3748,7 @@ -Schoenebeck Expires June 18, 2007 [Page 62] +Schoenebeck Expires July 2, 2007 [Page 67] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3524,7 +3804,7 @@ -Schoenebeck Expires June 18, 2007 [Page 63] +Schoenebeck Expires July 2, 2007 [Page 68] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3580,7 +3860,7 @@ -Schoenebeck Expires June 18, 2007 [Page 64] +Schoenebeck Expires July 2, 2007 [Page 69] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3618,6 +3898,60 @@ The mentioned fields above don't have to be in particular order. Other fields might be added in future. +6.6.5. Getting global volume attenuation + + The client can ask for the current global sampler-wide volume + attenuation by sending the following command: + + GET VOLUME + + Possible Answers: + + The sampler will always answer by returning the optional dotted + floating point coefficient, reflecting the current global volume + attenuation. + + Note: it is up to the respective sampler engine whether to obey that + global volume parameter or not, but in general all engines SHOULD use + + + +Schoenebeck Expires July 2, 2007 [Page 70] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + + this parameter. + +6.6.6. Setting global volume attenuation + + The client can alter the current global sampler-wide volume + attenuation by sending the following command: + + SET VOLUME + + Where should be replaced by the optional dotted floating + point value, reflecting the new global volume parameter. This value + might usually be in the range between 0.0 and 1.0, that is for + attenuating the overall volume. + + Possible Answers: + + "OK" - + + on success + + "WRN::" - + + if the global volume was set, but there are noteworthy issue(s) + related, providing an appropriate warning code and warning + message + + "ERR::" - + + in case it failed, providing an appropriate error code and + error message + 6.7. MIDI Instrument Mapping The MIDI protocol provides a way to switch between instruments by @@ -3633,16 +3967,16 @@ By default, that is when the sampler is launched, there is no map, thus the sampler will simply ignore all program change messages. The front-end has to explicitly create at least one map, add entries to + the map and tell the respective sampler channel(s) which MIDI + instrument map to use, so the sampler knows how to react on a given -Schoenebeck Expires June 18, 2007 [Page 65] +Schoenebeck Expires July 2, 2007 [Page 71] Internet-Draft LinuxSampler Control Protocol December 2006 - the map and tell the respective sampler channel(s) which MIDI - instrument map to use, so the sampler knows how to react on a given program change message on the respective sampler channel, that is by switching to the respectively defined engine type and loading the respective instrument. See command "SET CHANNEL MIDI_INSTRUMENT_MAP" @@ -3688,17 +4022,17 @@ S: "OK[1]" + C: "ADD MIDI_INSTRUMENT_MAP" + -Schoenebeck Expires June 18, 2007 [Page 66] +Schoenebeck Expires July 2, 2007 [Page 72] Internet-Draft LinuxSampler Control Protocol December 2006 - C: "ADD MIDI_INSTRUMENT_MAP" - S: "OK[5]" 6.7.2. Delete one particular or all MIDI instrument maps @@ -3748,7 +4082,9 @@ -Schoenebeck Expires June 18, 2007 [Page 67] + + +Schoenebeck Expires July 2, 2007 [Page 73] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3804,7 +4140,7 @@ -Schoenebeck Expires June 18, 2007 [Page 68] +Schoenebeck Expires July 2, 2007 [Page 74] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3860,7 +4196,7 @@ -Schoenebeck Expires June 18, 2007 [Page 69] +Schoenebeck Expires July 2, 2007 [Page 75] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3916,7 +4252,7 @@ -Schoenebeck Expires June 18, 2007 [Page 70] +Schoenebeck Expires July 2, 2007 [Page 76] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -3972,7 +4308,7 @@ -Schoenebeck Expires June 18, 2007 [Page 71] +Schoenebeck Expires July 2, 2007 [Page 77] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4028,7 +4364,7 @@ -Schoenebeck Expires June 18, 2007 [Page 72] +Schoenebeck Expires July 2, 2007 [Page 78] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4084,7 +4420,7 @@ -Schoenebeck Expires June 18, 2007 [Page 73] +Schoenebeck Expires July 2, 2007 [Page 79] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4140,7 +4476,7 @@ -Schoenebeck Expires June 18, 2007 [Page 74] +Schoenebeck Expires July 2, 2007 [Page 80] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4196,7 +4532,7 @@ -Schoenebeck Expires June 18, 2007 [Page 75] +Schoenebeck Expires July 2, 2007 [Page 81] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4252,7 +4588,7 @@ -Schoenebeck Expires June 18, 2007 [Page 76] +Schoenebeck Expires July 2, 2007 [Page 82] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4308,7 +4644,7 @@ -Schoenebeck Expires June 18, 2007 [Page 77] +Schoenebeck Expires July 2, 2007 [Page 83] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4345,7 +4681,15 @@ subscribe_event = - CHANNEL_COUNT + AUDIO_OUTPUT_DEVICE_COUNT + + / AUDIO_OUTPUT_DEVICE_INFO + + / MIDI_INPUT_DEVICE_COUNT + + / MIDI_INPUT_DEVICE_INFO + + / CHANNEL_COUNT / VOICE_COUNT @@ -4353,23 +4697,39 @@ / BUFFER_FILL + + + +Schoenebeck Expires July 2, 2007 [Page 84] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + / CHANNEL_INFO + / MIDI_INSTRUMENT_MAP_COUNT + + / MIDI_INSTRUMENT_MAP_INFO + + / MIDI_INSTRUMENT_COUNT + + / MIDI_INSTRUMENT_INFO + / MISCELLANEOUS / TOTAL_VOICE_COUNT unsubscribe_event = + AUDIO_OUTPUT_DEVICE_COUNT + / AUDIO_OUTPUT_DEVICE_INFO + / MIDI_INPUT_DEVICE_COUNT -Schoenebeck Expires June 18, 2007 [Page 78] - -Internet-Draft LinuxSampler Control Protocol December 2006 + / MIDI_INPUT_DEVICE_INFO - - CHANNEL_COUNT + / CHANNEL_COUNT / VOICE_COUNT @@ -4379,12 +4739,28 @@ / CHANNEL_INFO + / MIDI_INSTRUMENT_MAP_COUNT + + / MIDI_INSTRUMENT_MAP_INFO + + / MIDI_INSTRUMENT_COUNT + + / MIDI_INSTRUMENT_INFO + / MISCELLANEOUS / TOTAL_VOICE_COUNT map_instruction = + + + +Schoenebeck Expires July 2, 2007 [Page 85] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + MIDI_INSTRUMENT SP midi_map SP midi_bank SP midi_prog SP engine_name SP filename SP instrument_index SP volume_value @@ -4416,15 +4792,6 @@ AVAILABLE_ENGINES - - - - -Schoenebeck Expires June 18, 2007 [Page 79] - -Internet-Draft LinuxSampler Control Protocol December 2006 - - / AVAILABLE_MIDI_INPUT_DRIVERS / MIDI_INPUT_DRIVER SP INFO SP string @@ -4443,6 +4810,13 @@ / AUDIO_OUTPUT_DRIVER_PARAMETER SP INFO SP string SP string SP key_val_list + + +Schoenebeck Expires July 2, 2007 [Page 86] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + / AUDIO_OUTPUT_DEVICES / MIDI_INPUT_DEVICES @@ -4472,15 +4846,6 @@ / ENGINE SP INFO SP engine_name - - - - -Schoenebeck Expires June 18, 2007 [Page 80] - -Internet-Draft LinuxSampler Control Protocol December 2006 - - / SERVER SP INFO / TOTAL_VOICE_COUNT @@ -4497,6 +4862,21 @@ / MIDI_INSTRUMENT_MAP SP INFO SP midi_map + / FX_SENDS SP sampler_channel + + + + + +Schoenebeck Expires July 2, 2007 [Page 87] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + + / FX_SEND SP INFO SP sampler_channel SP fx_send_id + + / VOLUME + set_instruction = AUDIO_OUTPUT_DEVICE_PARAMETER SP number SP string '=' @@ -4515,8 +4895,13 @@ / MIDI_INSTRUMENT_MAP SP NAME SP midi_map SP map_name + / FX_SEND SP AUDIO_OUTPUT_CHANNEL SP sampler_channel SP fx_send_id + SP audio_channel_index SP audio_channel_index + / ECHO SP boolean + / VOLUME SP volume_value + create_instruction = AUDIO_OUTPUT_DEVICE SP string SP key_val_list @@ -4527,20 +4912,23 @@ / MIDI_INPUT_DEVICE SP string + / FX_SEND SP sampler_channel SP midi_ctrl + + / FX_SEND SP sampler_channel SP midi_ctrl SP fx_send_name + reset_instruction = + CHANNEL SP sampler_channel + clear_instruction = -Schoenebeck Expires June 18, 2007 [Page 81] + +Schoenebeck Expires July 2, 2007 [Page 88] Internet-Draft LinuxSampler Control Protocol December 2006 - CHANNEL SP sampler_channel - - clear_instruction = - MIDI_INSTRUMENTS SP midi_map / MIDI_INSTRUMENTS SP ALL @@ -4551,6 +4939,8 @@ / MIDI_INPUT_DEVICE SP number + / FX_SEND SP sampler_channel SP fx_send_id + load_instruction = INSTRUMENT SP load_instr_args @@ -4584,17 +4974,17 @@ / SOLO SP sampler_channel SP boolean + / MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map + -Schoenebeck Expires June 18, 2007 [Page 82] +Schoenebeck Expires July 2, 2007 [Page 89] Internet-Draft LinuxSampler Control Protocol December 2006 - / MIDI_INSTRUMENT_MAP SP sampler_channel SP midi_map - / MIDI_INSTRUMENT_MAP SP sampler_channel SP NONE / MIDI_INSTRUMENT_MAP SP sampler_channel SP DEFAULT @@ -4631,6 +5021,8 @@ / MIDI_INSTRUMENT_MAPS + / FX_SENDS SP sampler_channel + load_instr_args = filename SP instrument_index SP sampler_channel @@ -4644,7 +5036,7 @@ -Schoenebeck Expires June 18, 2007 [Page 83] +Schoenebeck Expires July 2, 2007 [Page 90] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4695,16 +5087,20 @@ number - volume_value = + midi_ctrl = -Schoenebeck Expires June 18, 2007 [Page 84] +Schoenebeck Expires July 2, 2007 [Page 91] Internet-Draft LinuxSampler Control Protocol December 2006 + number + + volume_value = + dotnum / number @@ -4717,6 +5113,10 @@ number + fx_send_id = + + number + engine_name = string @@ -4733,6 +5133,10 @@ stringval + fx_send_name = + + stringval + param_val_list = param_val @@ -4741,6 +5145,14 @@ param_val = + + + +Schoenebeck Expires July 2, 2007 [Page 92] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + string / stringval @@ -4756,7 +5168,43 @@ -Schoenebeck Expires June 18, 2007 [Page 85] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Schoenebeck Expires July 2, 2007 [Page 93] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4766,7 +5214,82 @@ This chapter will describe all currently defined events supported by LinuxSampler. -8.1. Number of sampler channels changed +8.1. Number of audio output devices changed + + Client may want to be notified when the total number of audio output + devices on the back-end changes by issuing the following command: + + SUBSCRIBE AUDIO_OUTPUT_DEVICE_COUNT + + Server will start sending the following notification messages: + + "NOTIFY:AUDIO_OUTPUT_DEVICE_COUNT:" + + where will be replaced by the new number of audio output + devices. + +8.2. Audio output device's settings changed + + Client may want to be notified when changes were made to audio output + devices on the back-end by issuing the following command: + + SUBSCRIBE AUDIO_OUTPUT_DEVICE_INFO + + Server will start sending the following notification messages: + + "NOTIFY:AUDIO_OUTPUT_DEVICE_INFO:" + + where will be replaced by the numerical ID of the audio + output device, which settings has been changed. The front-end will + have to send the respective command to actually get the audio output + device info. Because these messages will be triggered by LSCP + commands issued by other clients rather than real time events + happening on the server, it is believed that an empty notification + message is sufficient here. + +8.3. Number of MIDI input devices changed + + Client may want to be notified when the total number of MIDI input + devices on the back-end changes by issuing the following command: + + SUBSCRIBE MIDI_INPUT_DEVICE_COUNT + + Server will start sending the following notification messages: + + + + + +Schoenebeck Expires July 2, 2007 [Page 94] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + + "NOTIFY:MIDI_INPUT_DEVICE_COUNT:" + + where will be replaced by the new number of MIDI input + devices. + +8.4. MIDI input device's settings changed + + Client may want to be notified when changes were made to MIDI input + devices on the back-end by issuing the following command: + + SUBSCRIBE MIDI_INPUT_DEVICE_INFO + + Server will start sending the following notification messages: + + "NOTIFY:MIDI_INPUT_DEVICE_INFO:" + + where will be replaced by the numerical ID of the MIDI + input device, which settings has been changed. The front-end will + have to send the respective command to actually get the MIDI input + device info. Because these messages will be triggered by LSCP + commands issued by other clients rather than real time events + happening on the server, it is believed that an empty notification + message is sufficient here. + +8.5. Number of sampler channels changed Client may want to be notified when the total number of channels on the back-end changes by issuing the following command: @@ -4780,7 +5303,7 @@ where will be replaced by the new number of sampler channels. -8.2. Number of active voices changed +8.6. Number of active voices changed Client may want to be notified when the number of voices on the back- end changes by issuing the following command: @@ -4789,13 +5312,22 @@ Server will start sending the following notification messages: + + + + +Schoenebeck Expires July 2, 2007 [Page 95] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + "NOTIFY:VOICE_COUNT: where will be replaced by the sampler channel the voice count change occurred and by the new number of active voices on that channel. -8.3. Number of active disk streams changed +8.7. Number of active disk streams changed Client may want to be notified when the number of streams on the back-end changes by issuing the following command: SUBSCRIBE @@ -4809,17 +5341,9 @@ where will be replaced by the sampler channel the stream count change occurred and by the new number of - - - -Schoenebeck Expires June 18, 2007 [Page 86] - -Internet-Draft LinuxSampler Control Protocol December 2006 - - active disk streams on that channel. -8.4. Disk stream buffer fill state changed +8.8. Disk stream buffer fill state changed Client may want to be notified when the buffer fill state of a disk stream on the back-end changes by issuing the following command: @@ -4836,7 +5360,7 @@ Section 6.4.13 as if the "GET CHANNEL BUFFER_FILL PERCENTAGE" (Section 6.4.13) command was issued on this channel. -8.5. Channel information changed +8.9. Channel information changed Client may want to be notified when changes were made to sampler channels on the back-end by issuing the following command: @@ -4845,6 +5369,14 @@ Server will start sending the following notification messages: + + + +Schoenebeck Expires July 2, 2007 [Page 96] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + "NOTIFY:CHANNEL_INFO:" where will be replaced by the sampler channel the @@ -4854,7 +5386,7 @@ rather than real time events happening on the server, it is believed that an empty notification message is sufficient here. -8.6. Total number of active voices changed +8.10. Total number of active voices changed Client may want to be notified when the total number of voices on the back-end changes by issuing the following command: @@ -4863,22 +5395,101 @@ Server will start sending the following notification messages: + "NOTIFY:TOTAL_VOICE_COUNT: + + where will be replaced by the new number of all currently + active voices. + +8.11. Number of MIDI instrument maps changed + + Client may want to be notified when the number of MIDI instrument + maps on the back-end changes by issuing the following command: + + SUBSCRIBE MIDI_INSTRUMENT_MAP_COUNT + + Server will start sending the following notification messages: + + "NOTIFY:MIDI_INSTRUMENT_MAP_COUNT:" + where will be replaced by the new number of MIDI instrument + maps. +8.12. MIDI instrument map information changed + Client may want to be notified when changes were made to MIDI + instrument maps on the back-end by issuing the following command: + SUBSCRIBE MIDI_INSTRUMENT_MAP_INFO + + Server will start sending the following notification messages: -Schoenebeck Expires June 18, 2007 [Page 87] + + + + + +Schoenebeck Expires July 2, 2007 [Page 97] Internet-Draft LinuxSampler Control Protocol December 2006 - "NOTIFY:TOTAL_VOICE_COUNT: + "NOTIFY:MIDI_INSTRUMENT_MAP_INFO:" - where will be replaced by the new number of all currently - active voices. + where will be replaced by the numerical ID of the MIDI + instrument map, for which information changes occurred. The front- + end will have to send the respective command to actually get the MIDI + instrument map info. Because these messages will be triggered by + LSCP commands issued by other clients rather than real time events + happening on the server, it is believed that an empty notification + message is sufficient here. + +8.13. Number of MIDI instruments changed + + Client may want to be notified when the number of MIDI instrument + maps on the back-end changes by issuing the following command: + + SUBSCRIBE MIDI_INSTRUMENT_COUNT + + Server will start sending the following notification messages: + + "NOTIFY:MIDI_INSTRUMENT_COUNT: " + + where is the numerical ID of the MIDI instrument map, in + which the nuber of instruments has changed and will be + replaced by the new number of MIDI instruments in the specified map. + +8.14. MIDI instrument information changed + + Client may want to be notified when changes were made to MIDI + instruments on the back-end by issuing the following command: + + SUBSCRIBE MIDI_INSTRUMENT_INFO + + Server will start sending the following notification messages: + + "NOTIFY:MIDI_INSTRUMENT_INFO: " + + where will be replaced by the numerical ID of the MIDI + instrument map, in which a MIDI instrument is changed. and + specifies the location of the changed MIDI instrument in + the map. The front-end will have to send the respective command to + actually get the MIDI instrument info. Because these messages will + be triggered by LSCP commands issued by other clients rather than + real time events happening on the server, it is believed that an + empty notification message is sufficient here. -8.7. Miscellaneous and debugging events + + + + + + +Schoenebeck Expires July 2, 2007 [Page 98] + +Internet-Draft LinuxSampler Control Protocol December 2006 + + +8.15. Miscellaneous and debugging events Client may want to be notified of miscellaneous and debugging events occurring at the server by issuing the following command: @@ -4924,7 +5535,12 @@ -Schoenebeck Expires June 18, 2007 [Page 88] + + + + + +Schoenebeck Expires July 2, 2007 [Page 99] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -4980,7 +5596,7 @@ -Schoenebeck Expires June 18, 2007 [Page 89] +Schoenebeck Expires July 2, 2007 [Page 100] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -5036,7 +5652,7 @@ -Schoenebeck Expires June 18, 2007 [Page 90] +Schoenebeck Expires July 2, 2007 [Page 101] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -5092,7 +5708,7 @@ -Schoenebeck Expires June 18, 2007 [Page 91] +Schoenebeck Expires July 2, 2007 [Page 102] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -5148,7 +5764,7 @@ -Schoenebeck Expires June 18, 2007 [Page 92] +Schoenebeck Expires July 2, 2007 [Page 103] Internet-Draft LinuxSampler Control Protocol December 2006 @@ -5204,5 +5820,5 @@ -Schoenebeck Expires June 18, 2007 [Page 93] +Schoenebeck Expires July 2, 2007 [Page 104]