|
1 | 1 | <refentry id="sequ">
|
2 | 2 | <indexterm id="IndexSequ"><primary>sequ</primary></indexterm>
|
3 |
| - <refentryinfo><title>Instrument Control:Sensing and Control</title></refentryinfo> |
| 3 | + <refentryinfo><title>Instrument Control:Sensing and |
| 4 | +Control</title></refentryinfo> |
4 | 5 | <refmeta>
|
5 | 6 | <refentrytitle>sequ</refentrytitle>
|
6 | 7 | </refmeta>
|
7 | 8 |
|
8 | 9 | <refnamediv>
|
9 | 10 | <refname>sequ</refname>
|
10 | 11 | <refpurpose>
|
11 |
| - A software variant of a sequencer unit |
| 12 | + Emulate a hardware sequencer |
12 | 13 | </refpurpose>
|
13 | 14 | </refnamediv>
|
14 | 15 |
|
15 | 16 | <refsect1>
|
16 | 17 | <title>Description</title>
|
17 | 18 | <para>
|
18 |
| - Generates a seqence of events with controls on forward or |
19 |
| - backward, anf optional mutation or random choise. |
| 19 | + Uses a collection of arrays to generate a sequence of events |
| 20 | + with variable tempo that can be played in forward, reverse, back |
| 21 | + and forth, and random directions. The max length of the arrays |
| 22 | + is 128, and it can be scaled dynamically. Permutational playback |
| 23 | + modes feature randomization, probability and other algorithms. |
20 | 24 | </para>
|
21 | 25 | </refsect1>
|
22 | 26 | <refsect1>
|
23 | 27 | <title>Syntax</title>
|
24 |
| - <synopsis>kres <command>sequ</command> initriff[], iinstr[], idata[], kbpm, klen [, kmode] [, kverbos] |
| 28 | + <synopsis>kres <command>sequ</command> irhythm[], iinstr[], idata[], kbpm, klen [, kmode] [, kstep] [, kverbose] |
25 | 29 | </synopsis>
|
26 | 30 | </refsect1>
|
27 | 31 |
|
28 | 32 | <refsect1>
|
29 | 33 | <title>Initialization</title>
|
30 | 34 | <para>
|
31 |
| - <emphasis>initriff</emphasis> - array of lengths of the |
32 |
| - underlyig riff in beats. The array length is the maximum length of |
33 |
| - the sequence and shouk be less than 65. |
| 35 | + <emphasis>irhythm</emphasis> - array of durations in |
| 36 | + in beats. The actual duration is determined by these values divided |
| 37 | + by the current BPM. |
34 | 38 | </para>
|
35 | 39 | <para>
|
36 |
| - <emphasis>iinstr</emphasis> - array of instrument numbers to |
37 |
| - schedule when the sequencer triggers an evemnt. An instrument of |
38 |
| - zero means do nothing. |
| 40 | + <emphasis>iinstr</emphasis> - array of instrument numbers scheduled |
| 41 | + per step. An instrument number zero does nothing. It skips the note |
| 42 | + associated with the step and produces a silence for that note's duration. |
39 | 43 | </para>
|
40 | 44 | <para>
|
41 |
| - <emphasis>idata</emphasis> - array of p4 parameters to the |
42 |
| - iinstr calls. This can be pitch information, in cps or midinote |
43 |
| - number or oher use. |
| 45 | + <emphasis>idata</emphasis> - array of p4 values to the |
| 46 | + associated iinstr step. Typically, one would specify pitch |
| 47 | + information in cps, or MIDI note number; but the arbitrary list |
| 48 | + of p4 data values could have other uses in the called iinstr. |
44 | 49 | </para>
|
45 | 50 | </refsect1>
|
46 | 51 |
|
|
50 | 55 | <emphasis>kbpm</emphasis> - speed of looping in beats per minute.
|
51 | 56 | </para>
|
52 | 57 | <para>
|
53 |
| - <emphasis>klen</emphasis> - length of the active part of the sequence, |
| 58 | + <emphasis>klen</emphasis> - length of the active part of the |
| 59 | + sequence (starting from step 0). |
54 | 60 | </para>
|
55 | 61 | <para>
|
56 |
| - <emphasis>kmode</emphasis> - control for the sequencer. A value |
57 |
| - of 0 (default) loops forward through the riff, calling the |
58 |
| - associated instrument on triggering. |
| 62 | + <emphasis>kmode</emphasis> - control the sequencer playback. A value |
| 63 | + of 0 (default) loops forward through the sequence, calling the |
| 64 | + associated instrument on each step. Other modes are |
| 65 | + supported. (See below). |
59 | 66 | </para>
|
60 | 67 | <para>
|
61 |
| - <emphasis>kverbose</emphasis> - if non zero prints messages |
62 |
| - about the internal state changes. Default is zero |
| 68 | + Current playback options for <emphasis>kmode</emphasis> are: |
| 69 | + |
| 70 | + <itemizedlist> |
| 71 | + <listitem><para>0 - forward loop</para></listitem> |
| 72 | + <listitem><para>n>0 - forward loop with a mutation every n |
| 73 | +events</para></listitem> |
| 74 | + <listitem><para>-1 - backward loop</para></listitem> |
| 75 | + <listitem><para>-2 - back and forth</para></listitem> |
| 76 | + <listitem><para>-3 - random events</para></listitem> |
| 77 | + <listitem><para>-4 - play the entire sequence forward one time |
| 78 | +and stop</para></listitem> |
| 79 | + <listitem><para>-5 - play the entire sequence backward one time |
| 80 | +and stop</para></listitem> |
| 81 | + <listitem><para>-6 - reset</para></listitem> |
| 82 | + </itemizedlist> |
| 83 | + </para> |
| 84 | + <para> |
| 85 | + <emphasis>kstep</emphasis> - if non zero, replace the irhythm array |
| 86 | +with k-rate triggers. These could be from a MIDI keyboard or any other |
| 87 | +krate controller. |
| 88 | + Default is zero. |
63 | 89 | </para>
|
64 | 90 | <para>
|
65 |
| - <emphasis>kres</emphasis> - gives the index of the event created |
66 |
| - for the current k-cycle, or -1 if no event happened. |
| 91 | + <emphasis>kverbose</emphasis> - if non zero, prints messages |
| 92 | + about the internal state changes. Default is zero. |
67 | 93 | </para>
|
68 | 94 | <para>
|
69 |
| - <emphasis>sequ</emphasis> is a complex opcode that generates a |
70 |
| - sequence of instrument events in various orders, controlled by |
71 |
| - kmode. |
| 95 | + <emphasis>kres</emphasis> - gives the index of the event created |
| 96 | + for the current k-cycle, or -1 if no event happened. |
72 | 97 | </para>
|
73 | 98 |
|
74 | 99 | <note>
|
75 | 100 | <para>
|
76 |
| - values of <emphasis>kmode</emphasis> currently implemented are: |
77 |
| - |
78 |
| - <itemizedlist> |
79 |
| - <listitem><para>0 - forward loop</para></listitem> |
80 |
| - <listitem><para>n>0 - forward loop with a mutation every n events</para></listitem> |
81 |
| - <listitem><para>-1 - backward loop</para></listitem> |
82 |
| - <listitem><para>-2 - pause</para></listitem> |
83 |
| - <listitem><para>-3 - random events</para></listitem> |
84 |
| - <listitem><para>-5 - reset</para></listitem> |
85 |
| - </itemizedlist> |
86 |
| - |
87 |
| - Note also that while the arrays are i-time the values of the |
88 |
| - entris are read a k-rate wen used. This means that using global |
89 |
| - i-rate vectors and it is possible with care to change note |
90 |
| - details at performance time. |
| 101 | +While the irhythm, iinstr, and idata, arrays are i-time, the values of the |
| 102 | + entries are read at k-rate when used. This means that by using |
| 103 | +global |
| 104 | + i-rate vectors, it is possible (with care) to change the specific |
| 105 | +values and other |
| 106 | + details at performance time. |
91 | 107 | </para>
|
92 | 108 | </note>
|
93 | 109 | </refsect1>
|
94 | 110 |
|
95 |
| - <!-- <refsect1> --> |
96 |
| - <!-- <title>Example</title> --> |
97 |
| - <!-- <para> --> |
98 |
| - <!-- Here is an example of the sequ opcode. It uses the file <ulink url="examples/sequ.csd"><citetitle>sequ.csd</citetitle></ulink> --> |
99 |
| - <!-- <example> --> |
100 |
| - <!-- <title>Example of the sequ opcode.</title> --> |
101 |
| - <!-- <xi:include href="examples-xml/sequ.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/> --> |
102 |
| -a <!-- </example> --> |
103 |
| - <!-- </para> --> |
104 |
| - <!-- </refsect1> --> |
105 |
| - |
| 111 | + <refsect1> |
| 112 | + <title>Example</title> |
| 113 | + <para> |
| 114 | + Here is an example of the sequ opcode. It uses the file <ulink url="examples/sequ1.csd"><citetitle>sequ1.csd</citetitle></ulink> |
| 115 | + <example> |
| 116 | + <title>Example of the sequ opcode.</title> |
| 117 | + <xi:include href="examples-xml/sequ.csd.xml" xmlns:xi=" |
| 118 | +https://us-west-2.protection.sophos.com?d=w3.org&u=aHR0cDovL3d3dy53My5vcmcvMjAwMS9YSW5jbHVkZSIv&i=NWYxNzBkMDNiNTVmZGEwZmIyNjczYmRm&t=Yk01Y2t6MmdSQUZjY3NsMkpBNDNPOHFnRzdtSEg2VXQ0NEhzSzBET0VGOD0=&h=383cb261e7354609a248f1d6b4767d0b> |
| 119 | +a </example> |
| 120 | + </para> |
| 121 | + </refsect1> |
| 122 | +
|
106 | 123 | <!-- <refsect1> -->
|
107 | 124 | <!-- <title>See Also</title> -->
|
108 | 125 | <!-- <para> -->
|
109 | 126 | <!-- <link linkend="foobar"><citetitle>foobarmetro</citetitle></link>, -->
|
110 | 127 | <!-- </para> -->
|
111 | 128 | <!-- </refsect1> -->
|
112 |
| - |
| 129 | +
|
113 | 130 | <refsect1>
|
114 | 131 | <title>Credits</title>
|
115 | 132 | <para>Written by &namejohn;</para>
|
|
0 commit comments