Copyright © 1996-2013 William B. Ackerman
Sdlets me type subcalls directly, but it's confusing!
-normal_video. How can put it in an icon or initialization file?
all 8calls involving diamonds, from a thar?
Sdso fussy with apostrophes? Why can't I just type lockers choice?
Sdso fussy with spaces in call names? Can I just type inroll circulate?
Don't call it.
You may find that
Sd is more user-friendly than
particularly if you are having trouble with sessions or abridgement
files. It will show you the startup options more clearly. You can type
Sd the same way you type at
Sdtty. It just
looks different. During the
Sd startup screen, you may want to
look at the help text for each item before using it. Click on the
question mark in the upper right corner, and then click on the item of
interest. This may help explain what is going on.
Anything that you set up with
Sd can be used with
First, it is better to do this in Sd, not Sdtty, even if you use Sdtty for normal writing. See the previous question.
Sessions are used to keep track of the levels, sequence numbers, and similar things for the various workshops, dances, and conventions you might be writing material for. You can create a session for each workshop, and then select the session each time you start the program.
You must have an “initialization file” to use sessions. It is easy to
create one. If you don't have one,
Sdtty will print
this whenever it starts up:
You do not have a session control file. If you want to create one, give the command "initialize session file".
Do that. This is a command to
Sd/Sdtty itself – do not give this
command at a command (DOS) window. Then exit from
start it again. Some sample sessions will now be active.
Once sessions are active and are presented during startup, you can use
them by clicking on the desired session in
Sd, or typing its
Sdtty. The level, output file name, starting sequence
number, and header title will be set for you.
If you want to create a new session, click or type the item labeled "(create a new session)". You will be asked for the level. Enter that. You will then be asked for the file name. We recommend giving a "+" sign. This will cause all sequences to be written to a file with a name based on the current date. You will then be asked for the header title. This will be printed at the top of every sequence written for that session.
First, it is better to do this in Sd, not Sdtty, even if you use Sdtty for normal writing. See the previous two questions.
Abridge lists are used for writing material for a class or workshop, using only the calls that the class knows at any given time.
To set up a session with abridgement, start Sd. In the startup screen, click "write list". The "abridgement file name" will light up. Fill it in with the name of the file you want to use with that session. ("abridge.txt" is not a very creative name.) Remember that file name. Then double-click "no session" and double-click the level that you want.
Start Sd again. Click "use abridged list", and fill in the same file name (again! sorry!) Then double-click "create new session" and double-click the level. A popup will appear, for the output file name. Change it to a single "+" sign, unless you are a masochist. (Or a "*" sign if you prefer, and if you know the difference.) Click "accept". A new popup asks for the session title. Enter it (e.g. "my C2 group") and click "accept". You are now in business.
Edit the file (it's in the "C:\Sd" directory) to delete calls, as you teach the group. Whenever you start Sd or Sdtty, it should offer the new session. It will read the abridgement file and act accordingly.
See the manual, under “abridgement”, for detailed instructions on how to maintain an abridge list.
If you really want to do the initial setup in Sdtty, it could be accomplished with:
sdtty -write_list my_group_list.txt c2 sdtty -abridge my_group_list.txt c2 Type the number associated with "create a new session". Type a "+" sign, or whatever file name you want. Type the session title.
First, you must be using the “sessions” feature. When running either Sd or Sdtty, the title bar of the window will show the sequence number at the start of the current run of the program, and the sequence number right now. The title might look like "Sdtty C3 AACE (12:22)" The first number in parentheses gives the number with which the current run started, and the second number shows the current sequence number. In this example, 10 sequences have been written during the current run.
The reconcile operation is like resolving, but it puts the generated calls someplace other than at the end of the sequence. This is useful if you have a clever getout at the end of the sequence, and you want it to be the resolve, but people don't have their partners and corners. This lets you retroactively modify the sequence so that the clever getout will work.
Note first that this operation may only be invoked when the setup is suitable waves, two-faced lines, or a circle, so that it can figure out whether you want a, right and left grand, left allemande, promenade, or at-home getout. If the setup is an 8-chain, it can't tell. In that case, either do a touch or a left touch, to tell the program that you really want a right and left grand or allemande left, respectively. Then, after the reconcile operation is complete, you can erase that extra call.
The reconcile operation is very similar in behavior to resolve, except that the program needs to know the insertion point. Rather than searching for the first resolve as soon as you give the command, the reconcile operation lets you set the insertion point before searching. Select raise reconcile point or lower reconcile point to set it. A dotted line will be displayed showing where in the sequence the generated calls will be placed. When this is in the right place, select find another to find the first reconcile. You can change the insertion point at any time.
Reconciles are extremely difficult to find—much harder than resolves. To avoid frustration, make the insertion point be at a place where the setup is very simple and a large number of calls are legal. We recommend making the insertion point be at a place where the setup is in waves. Remember that, if the insertion point is at an hourglass, the program has to find a random sequence of up to three calls that goes from an hourglass to another hourglass while miraculously performing the required permutation.
At any point in a sequence you can give the keep picture command. The picture at that point will be preserved, both in the working display, and in the final file. The glyphs in the file might not look very nice, especially if a variable-width font is used, but it should be enough to tell whether the dancers are in the right formation.
If in doubt about how to enter some complex call, type part of the call and a question mark. For example, if you want to know how to modify the star turn on a chain reaction, type chain reac?. Then, following its hint, type tion, turn the star 1/2.
Sdlets me type subcalls directly, but it's confusing!
You may have heard that
Sd lets you type complex calls directly,
using brackets, as in catch [motivate] 3. This is true, but you
may find it unwieldy, especially if you have been using
and are accustomed to entering things piecemeal. You can still do it
that way. Remember to type <anything>, not just <any>. For
example, type catch <anything> 3. (Not sure about that? Type
catch?) Then type the motivate.
If you are having really serious problems like this, use
Sd instead of
Sdtty. Look at the menu and see how it wants things to be spelled.
-normal_video. How can put it in an icon or initialization file?
You have (or can create) an initialization file, which is “C:\sd\sd.ini”.
If you put options in it, you will get those options every time you run
Sdtty. If you don't have such a file, give the
command initialize session file to
create it. Then edit it. Use a plain text editor such as Emacs or
Notepad—do not use a word processor. You will see a section called
“[Options]”. Add whatever options you like. Do not put hyphens in front
of options in this file. For example:
[Options] <-- you will probably find that these new_style_filename <-- two lines are already present normal_video color_by_couple
All of this works the same under Windows or Linux, except that, under Linux, the location of the “sd.ini” file will be wherever you installed the program.
You can also create Windows icons that run the program with specific
options, such that the options will depend on which icon you operate.
To do this, make a copy of whichever icon from the
Sd group in
the Start Menu is closest to what you want. How this works depends on
exactly what version of Windows you have, but it generally involves
right-clicking the icon, or going to Start->Settings->Taskbar->Start
Menu Programs->Advanced. Either way, you should be able to copy and
paste it, and right-click it to rename it or edit its properties. Put
the copied icon wherever you want—desktop, Start Menu, or wherever.
Rename it to whatever you want. Then edit its properties. When editing
its properties, you can change the icon that is displayed, and you can
add options by selecting the “shortcut” tab. On the “target” line,
you will see something like “C:\sd\sdtty.exe” perhaps followed by some
options. Change those to whatever you want. Put hyphens in front of
all options when editing an icon. For example, “C:\sd\sdtty.exe
-single_click c1” or “C:\sd\sdtty.exe -color_by_couple -session 2”.
The latter would always select whatever session 2 means in your
initialization file, complete with its title, level, and file name.
Users have different preferences about how big they want the
Sd window size to be. Furthermore, graphics resolution
settings can vary significantly. By default,
Sd makes an
arbitrary decision about this, which is generally 780 x 560 pixels.
If this doesn't suit you or your graphics hardware, you can change
it with the “window_size” option. Follow the option with
2 numbers separated by a lower case “x” but no whitespace,
You can put that line into the “[Options]” section of your initialization file, which is C:\sd\sd.ini, so that section might look like
[Options] new_style_filename window_size 1000x720
Doing so will affect every copy of Sd on your computer. If you want to have different icons to start Sd, and you want to control the window size separately for each icon, follow the instructions in the “command-line options” section of the manual.
New style file names are names like “13aug05_c1.txt” if you use sessions with the "+" file name generation mechanism, or “sequence_c1.txt” if you don't. The old style names are like “13aug05.c1” or “sequence.c1”. The part after the period is called the "extension". When using Windows or some other operating systems, it is very helpful for files to have a correct extension, and ".txt" is the right extension for these files. For example, attaching files in email messages is sometimes facilitated by having the ".txt" extension.
Newly created session files use new style names. Older session files may use old style names. If you don't use a session file, you get old style names, though this may change in the future.
If you already have a session file, and you want to change it over to new style names, give the command change to new style filename right after starting the program.
When you change to new style file names, no previously written files will be renamed. Only newly created files will have the new names.
Sd has no complex interactions with other software, and does not
need to “register itself” as an installed program. As such, it will
not appear on the menu for uninstalling software. If you want to
uninstall it, all you need to do is delete the C:\sd folder, and delete
whatever startup icons you may have placed.
Edit (with a plain text editor such as Emacs or Notepad—do not use a
word processor) the initialization file C:\sd\sd.ini. If you don't have
such a file, give the command initialize session file to
create it. Then edit it. You will see a section called “[Accelerators]”
with things like
f3 pick random call
In that line, “f3” means function key 3. (That is the line that makes function key 3 perform the “pick random call” operation. You can change it if you want.)
You can add lines to this section to define “hot keys” that specify calls, concepts, or commands. Since I don't like to type “concentric”, my file contains
az concentric cz cross concentric caz single concentric
These define alt-Z as “concentric”, control-Z as “cross concentric”, and control-alt-Z as “single concentric”. Prefix letters of a, s, c, and ca denote alt, shift, control, and control-alt, respectively. After that, a plain letter or digit denotes that key. A combination like f6 denotes that function key. When defining function keys, you may use the s prefix, or no prefix at all, to get shift-function-key or plain-function key. With letters or digits, you must use some combination of alt or control. (You can't define just c as a hot key for concentric—it would make it impossible to type circulate.)
First, read the previous section. Abbreviations are defined somewhat like hot keys, but they don't take effect the instant you press the key. You have to press <ENTER>, just as for any call or concept. Also, they don't involve meta or control modifiers. They can be multiple letters long, just like call names, but they must be one word.
Now find the “[Abbreviations]” section of sd.ini, with things like
u U-turn back rlt right and left thru
This means that you can type rlt as if it were a call. It will be expanded to the full call in the transcript file. (Yes, those abbreviations are actually there.) You can add things like
p pass thru
Sorry, but doing so would make it impossible to process session descriptors in the initialization file.
As of version 36.63, there are two new startup options, that can be put in your initialization file (sd.ini), startup icons, startup scripts, or on the command line. They are “use_magenta” and “use_cyan”. These lighten the red and blue checker colors, respectively. Remember to put a hypen in front of an option in an icon or on the command line, but not in the initialization file.
If you select the abort command, the program will abort the sequence (but not exit). It will go back to the startup menu to allow you to start another sequence. It will ask for confirmation first.
The program only recognizes the designators boys and girls. The only exception is the call ladies chain. Of course, you can use whatever designation you want when calling.
The call that you want is heads single rotate 1/4 while the others <anything>, as in heads single rotate 1/4 while the others [swing thru]. At C1 there is no other rotate call available, so it does the right thing automatically. But at C2 and above, the call rotate is legal in its own right as a plain 4-person call. If you start a sequence by telling the heads to do some legal 4-person call, they will go into the middle and do it. You have to alert Sd that you want the special action by saying ... while the others ....
What "boys" (or girls, heads, sides, etc.) means is more complicated than most people realize. The designators take on different meanings in different contexts—boys run, boys trade, boys kickoff, boys hinge, boys u-turn-back, boys press ahead, have to be handled differently. The general rule for a plain boys <some call that doesn't have special properties> is to find the largest setups that are compact and free of holes or distortions, and do the call in each of those setups. From parallel BBGG waves, there are two such setups—two miniwaves of two people each. Sd can do a boys hinge from there, because it can do a hinge in each of those two-person setups. But it can't do boys circulate or boys swing thru.
In the setup of this example, the only compact setups that are free of holes or distortions are the four individual people, so the only calls that can be done that way are one-person calls like 1/4 right or U-turn back.
There is another concept, boys do your part cross over circulate that handles things like this. It has each boy do the call in the entire 8-person setup. If they can each do it without running into each other or the girls, it's legal.
Of course you probably don't need to use such picky language in calling. The dancers will understand what you mean by boys cross over circulate.
This situation is often ambiguous, so you need to say single veer left or single veer right. Whether you need to say this when calling is up to you.
No. The Callerlab definitions say that, unless in a thar or alamo, this is a 4-person call. It is not grand unless you say so. If you believe that just saying remake the column might confuse the dancers, don't do it.
Yes they can, if only the centers stepped. What happens when some, but not all, people step to right (or left) hands can be confusing. Here is how it works: Whenever anyone steps to a (mini) wave, they always take right hands unless the caller said “left”, in which case they take left hands. This is true even if the result (because of other people who didn't need to step) is a wave of the other handedness. The call then proceeds in whatever handedness the resultant wave has, except that, if the caller said left, the resultant setup must be a left-handed wave.
You can say crazy any hand remake, or evenly mirror crazy remake, or evenly left crazy remake.
They are center diamond, middle (intermediate) diamond, and outside diamond. The word "intermediate" in parentheses is there to prevent any possible ambiguity on the written sequence. The words you use are up to you. You are responsible for making clear to the dancers which diamond you mean.
Below about C3A, you don't need to type the "(intermediate)". Just type "middle" followed by <enter> or <tab>, and command completion will finish it for you.
all 8calls involving diamonds, from a thar?
diamond circulate or
flip the diamond?
Because your dancers are smarter than
Sd. You need to give the
all 8 (diamonds) concept, to tell
the program what you want. You probably don't need to say that to the dancers.
This is the setup that you would get after, for example, 1/2 acey deucey from waves. There will be a center wave of 6. To designate those people, say center 1x6, or the more specific designators center wave of 6, center line of 6, or center column of 6. The designator center 6 designates different people—all but the two people at the very ends of that wave. So you can say things like center wave of 6 grand swing thru. You probably don't need to call it that way—the dancers will know what you mean if you say center 6 grand swing thru.
The same situation occurs after sets in motion but hold the column. Use the designator center column of 6.
The program considers plenty always to have the outsides quarter right. There is a call plenty, ends go as you are that gets the action that you probably want.
Just like that: boys start quarter thru, or boys start 1/4 thru (either spelling is accepted.) The <ANYONE> start concept has the indicated people do their own part of the first part of the call, after which the others join them. You give a person indicator like boys in place of the <ANYONE>. Or, if you like, you may literally type the <ANYONE>, complete with angle brackets. The program will then ask for the person indicator.
Sd with the menu and mouse, you must find the concept listed
under <ANYONE> start, not boys start.
They are intended principally for designating 6 people. To designate 2 or 4 people, terms like sides or head girls are sufficient. To designate 6 people, use something like (from columns) first 3 are tandems of 3, peel and trail or (from lines) leftmost 3 are couples of 3, pass the ocean.
Start the sequence with the heads start command, and give the call promenade halfway, come in to the middle and [right and left thru], or whatever call you want. That call must be in square brackets, as shown. The comma is optional. You can also do promenade halfway, while the others [right and left thru], or promenade 3/4, while the others [right and left thru], or 1/4. In all cases the people who do the call in brackets will be in the middle, and the others will be as couples on the outside.
Remembering all this isn't easy. Just type prom followed by a
question mark, and
Sd will remind you of what to do.
Just type it. But there is no call press ahead and trade. You must say girls press ahead followed by girls trade.
If you are in a promenade setup, type something like sides lead for a pinwheel. The program will give you a rough guess of how far it thought the dancers promenaded before doing the call. You can also do ends pinwheel or centers pinwheel from applicable formations such as tidal lines.
The short answer to the question is that you type “chain reaction, turn the star 1/2”, or “motivate, don't turn the star”, or something similar.
But the more important question is: “How do you know that?”. There
are many common ways of modifying calls, and many ways of expressing
those modifications in words.
Sd is not known for its deep
understanding of colloquial English. How do you know what the required
Type part of the call, immediately followed by a question mark. If you type “motiv?” you will see
motivate, don't turn the star motivate, turn the star 1/4 motivate, turn the star 1/2 motivate, turn the star 3/4 motivate motivate, don't turn the star but <ANYTHING> motivate, turn the star 1/4 but <ANYTHING> motivate, turn the star 1/2 but <ANYTHING> motivate, turn the star 3/4 but <ANYTHING> motivate but <ANYTHING>
This should tell you what you need to know. At that point you can type “ate, don't turn the star”. (Remember, you already typed “motiv”.)
Suppose the “<ANYTHING>” piques your curiosity. This is a modification for the final centers' cast off 3/4. Try it. Issue the call “motivate but <anything>”. The upper case is optional. You will be prompted for a subsidiary call. Type “2/3 recycle”. You will then see “motivate but [2/3 recycle]”. You could also have entered the call exactly that way. Whenever the “?” printout shows “<ANYTHING>”, you can type a subcall instead, in square brackets. Not angle brackets.
You can also experiment with things by giving the “allow modifications” command and then trying the call, but this method is somewhat unwieldy. If you type
allow modifications motivate
You will be asked about modifying the initial circulate, the star turn, and the final cast off 3/4.
By the way, if you don't want to type commas or apostrophes, that's OK. They're optional. Capitalization is also optional. But subsidiary calls must be in square brackets.
Say centers work 7/8 load the boat. Telling people to do only part of a call is generally done in terms of fractions, not number of parts. 3-1/2 of the 4 parts of “Load the Boat” is 7/8ths of it. You want just the centers to obey that, so you use the centers work meta-concept, followed by the concept (7/8) that you want them to obey.
Notwithstanding contemporary social and political sensibilities,
Sd considers the boys' part of this call to be a press back. We
apologize to, and sympathize with, the dancers at a recent C4 weekend
who believed that everyone should should press ahead on this call.
Sd also considers the boys' part of M.C.P. to be a press ahead. Sorry.
The best way is to say centers are as couples here comes the
judge. For every couples/tandem-type concept, there is also an
<anyone> are <concept> version of it. For example, center 6
are tandem threesome 1/4 solid. So you could say centers are as couples here
comes the judge. The “all” word is often spoken but is never typed in to
There is also a meta-concept <anyone> work <concept> that you can use. It has the designated people do the call with the concept while the others do it normally. However, it is a much more problematical and difficult meta-concept. When the concept is a couples/tandem-type concept, “are” is usually better than “work”.
The answer is essentially the same as for the previous question. When the concept is stable or fractional stable, there is also an <anyone> are <concept> version of it. As with the previous question, “are” is preferable to “work”.
In all concepts that can specify either lines or waves, the “waves” version has an implicit assume waves operation in it. Under normal circumstances, this means that the live people can make use of the assumption of waves in order to decide how to start the call.
For example, in normal columns, split phantom waves in roll circulate, which is equivalent to split phantom lines, assume waves, in roll circulate, is legal, since the phantom in-roller's location can be deduced from the wave assumption.
The call split phantom lines in roll circulate is illegal from columns because the facing direction of the phantom in-roller is unknown.
If you have this problem, try giving the phantom concept, as in phantom tandem or whatever. The program needs to know exactly how to pair people into tandems or couples, which may require the use of some concept to specify the matrix or the details of the geometry.
Because there's no such call. You should be using split trade circulate. Similarly, you should use split trade couple up instead of magic couple up, and cross walk and dodge instead of magic walk and dodge.
The <anyone> trade call is extremely complex, because it has to
allow the people trading to be nonadjacent. This means that
<anyone> trade is not just an instance of the <anyone>
concept applied to the call trade.
Sd tries to allow you
to type everything all on one line. It sometimes fails in this case.
If something like boys trade doesn't work when typed together, try
typing the boys designator, pressing <ENTER>, and then typing
the trade call.
The call to click on is <ANYONE> squeeze, followed by centers.
Squeeze is a call that takes a designator, telling those people to do it. The difference between that and the use of the centers concept with the plain call squeeze is rather subtle. Humans may have no trouble knowing what to do, but Sd has a difficult time with it. There are other calls (like trade) that have a similar problem. You must use the <ANYONE> squeeze call.
It is much simpler just to type "centers squeeze". The parser in Sdtty and Sd is designed to resolve ambiguities such as this; the menu mechanism of Sd can't do it. Even if you are using Sd and prefer the mouse-and-menu mechanism, typing what you want is a good way to proceed when problems like this arise.
Just like that. Type, for example, same sex disconnected swing thru. Each sex does that call in their disconnected setup.
How about flip the diamond and circle 1/4? How do I tell the program whether it's a 4 person or an 8 person call?
The program recognizes a call [anything] and circle N/4. It tries the “anything” call first with just the centers, and with all 8 people if that fails, so it should work in either case. You can type the fraction as 1/4, 1/2, 3/4, 2/4, or “full”.
As with all calls of this sort, the “official” name of the call
uses angle brackets to indicate something that gets filled in:
<ANYTHING> and circle <N/4>. You can literally enter the call
that way. (If using
Sd and the menu, that's the way you have
to enter it. Calls starting with things in angle brackets are
alphabetized at the end of the call menu, but before the concepts.)
If you enter the call that way, the program will ask you about the
things that need to be filled in.
<anything> and circle <n/4> how many? 2 subsidiary call switch the line
But a much easier way is to type everything directly. Remember that, while angle brackets are used in the “official” name of the call, you use square brackets when you type subcalls. And you just type numbers and similar things directly.
[switch the line] and circle 1/2
How do you know that that call is available?
Sd has many calls
with tricky syntax like that. It will usually accept what you want to
type. But there are many tricky areas. If you are confused, the right
thing is to type part of the call, followed by a question mark.
Sometimes the following confusing thing happens. You want to do a shadow box couple up, so you type:
shadow box [couple up]
and all you get is
shadow box [couple up] (129 matches, type ! or ? for list)
so you do so, and get
shadow box [couple up] and a quarter more shadow box [couple up] and cross shadow box [couple up] and roll shadow box [couple up] and sweep <N/4> shadow box [couple up] and the <ANYONE> roll shadow box [couple up] and <N/4> more shadow box [couple up] by golly shadow box [couple up] er's cover up but <ANYTHING> shadow box [couple up] like a couple up shadow box [couple up] the k but <ANYTHING> shadow box [couple up] the key shadow box [couple up] the windmill, outsides <ANYTHING> shadow box [couple up] with the flow
and you wonder “Why won't it let me do a normal one?”
The issue is whether shadow box is a concept, or a call with a subcall. If it's a concept, you should just type shadow box couple up. But if it's a call that takes a subcall, you should use brackets. How do you know?
That isn't easy to answer. Where to draw the line isn't well
Sd makes decisions that may seem arbitrary.
There is no way to avoid this. Most things are obvious, of
course, like the as couples concept. And it should be fairly
obvious from usage that breaker [2/3 recycle] is a call with
a modifier. Why is that obvious? Because breaker N is a call,
and it is obvious that breaker [anything] just has the
anything replace some pre-existing part of the call.
Of course, anything that takes the modifier other than at the end, must be a call with a modifier, since concepts are always typed first. Hence [anything] and roll always uses brackets.
So, if you are having trouble of this sort, try adding brackets or leaving them out.
The program thinks it's a“boys work cross concentric”. Would typing the comma help?
No, don't type a comma. The program simply doesn't understand them.
Instead, separate the cross from the concentric by
pressing <ENTER> after the cross. Or, if using
select the two concepts from the menu separately. The program will put
in the comma, along with the word ALL.
In general, this is the way to resolve ambiguous combinations.
Sd has a rather fussy, but, we hope, serviceable nomenclature for
identifying people. (Remember that, when calling to live dancers, you
can take advantage of their common sense. They will generally figure
out what you mean from the context and from their experience. Computers
can't do that.)
The phrase outer pairs is used to specify these people, and center 4 to specify the others. Note that center 4 is not the same as centers. The designators centers and ends are meaningless in setups like this.
The center 4 do not need to be in a 2x2. In common-point diamonds or a common-point hourglass (the result of 6x2 acey deucey from facing diamonds or a facing hourglass) the people who collided can be designated as the outer pairs, and the others as the center 4.
You can also use designators like center line, center box, center diamond, and so on.
Sd defines this call in terms of 3/4 exchange the
diamonds and interlocked flip the diamond, and sets the roll
direction accordingly. We consider the Callerlab definition to be an
attempt to give precision to a definition that was never
intended to be precise. Accordingly, we consider attempts to deduce
roll direction from the Callerlab definition to be misguided.
See Sd Application Note 4.
Try saying (to the program, not necessarily to the dancers) initially common
spot. This tells
Sd to reassemble the different groups of people
after the first part of the call. Otherwise, it keeps the groups separate
through the whole call, which makes it much harder to figure out what is
No, no, 1000 times, no!
Sd, like many other computer programs,
is an attempt at approximating human knowledge and judgement. It really
doesn't come close.
No, no, 1000 times, no! While we attempt to enforce the “rules” of square
dancing accurately, there are many things that
Sd allows that are not
legal or appropriate. You should not use
Sd, or any other choreography
program, if you do not understand the level that you are calling. If you
call beyond your knowledge and ability, the dancers will notice.
It sure is. That is in the database to catch people who use the program carelessly. If you call it, get embarrassed, and complain to me, I will point you at this FAQ.
Sdso fussy with apostrophes? Why can't I just type lockers choice?
You can. You never need to type apostrophes or hyphens. You can type either lockers choice or locker's choice. You can type either tandem based triangles or tandem-based triangles.
Sdso fussy with spaces in call names? Can I just type inroll circulate?
As of version 36.63, you can type inroll circulate or outroll circulate, because they are in the database as special alternate spellings.
But in general, the parser (the part of the program that interprets your keystrokes as call and concept names) has a very hard job to do when it completes your input. That is, it lets you type fe w at Mainstream, and figures out that you meant ferris wheel. In order to do this, it must take clues from the spaces that you typed. Unlike apostrophes and hyphens, it can't make spaces optional.
You can always define your own “hot keys” (accelerator keys) or abbreviations for any calls.
When there is no “official” Callerlab spelling to go by, I use the principle that a call should be one word if the English phrase or word from which it was derived is one word. The “rigger” names are derived from “outrigger”, which is a single word. This seems to be compatible with the Callerlab spelling of things like crossfire and cross fold. “Crossfire” is a single word.
I realize that these decisions are not always straightforward or without controversy.
The new centers.
Sd re-evaluates people's positions
before deciding who should roll. We believe that this is usually the
more natural thing to do, but it is not automatically assumed.
Therefore, you may need to make that clear to the dancers by saying
something like “swing thru and the new centers roll.” Of course, if
you have the girls roll there will be no problem.
Yes. People's positions are not re-evaluated after the hinge. We believe that this the right way of handling this sort of thing in general. There are exceptions, such as tap the centers, but those are best left as exceptions rooted in history.
You try to circulate in 3x1 triangles, by typing 3x1 triangles circulate. It doesn't allow it.
So you try leaving off the circulate and typing a question mark. You get
3x1 triangles? 3x1 triangles are solid 3x1 triangles are solid <N/4> trianglesome 3x1 triangles are trianglesome 3x1 triangles are trianglesome <N/4> solid
What happened to plain 3x1 triangles?
The reason is that the call is known to
Sd as 3x1 triangle
circulate, without the s. That is, it is the 3x1 variant of the
call triangle circulate.
Now this fussiness about spelling, some of which you may not agree with
at all, can be extremely annoying. When you run into problems like
this, try typing a little less, followed by a question mark. Most of
the annoying spelling habits of
Sd occur at the ends of words.
So if you tried just
triang, you might get
3x1 triang? 3x1 triangles are solid 3x1 triangles are solid <N/4> trianglesome 3x1 triangles are trianglesome 3x1 triangles are trianglesome <N/4> solid 3x1 triangular boxes 3x1 triangle 3x1 triangle circulate
Sd recognizes the call line to line but <anything>. The <anything>
replaces the final pass in. (Note that this is an exception to the general
principle that but calls replace the last thing done in the center. This
is one of a handful of exceptions that are justified by longstanding usage.)
Suppose you didn't know that. You do the usual thing—type something like line to l?. It will list
line to line line to line but <ANYTHING>
Of course, when you see the “<ANYTHING>”, you know that you can type square brackets with a call inside.
Sd allows you to replace that circulate with anything, but does
not single out “add an extra circulate” for special treatment. To
make modifications of this type, give the allow modifications
command. This tells the program that you want to do something complex
to the next call (and only that call.) After giving that command, type
along, or swing along, or [split recycle] along, or
whatever. The program will then ask you about substitutions. It will
The ``column circulate'' can be replaced. Do you want to replace it?
Type “y”. Just the letter, without <ENTER>. Then type the replacement call. It might be twice circulate, or grand cross back, or remake the column, or invert the column, or whatever.
When the program asks about things you don't want to replace (it does this a lot),
type “n”. When using
Sd instead of
Sdtty, there will be a popup
The concept add (and follow it by, which is identical) is followed by two calls. It performs the first call (first in textual order, that is) after the second. For example:
add roll swing thru
does a swing thru and roll.
You must type this on 3 lines: one with the “add” concept, and then each of the two calls on its own line. This is because “add” operates on two calls.
There is also a concept precede it by, which performs the first call before the second.
There is really only one context in which these concepts are sensible—they can be the subject of the piecewise, oddly, or evenly meta-concepts. For example:
piecewise add criss cross the deucey turn the key
will do a criss cross the deucey after each of the three parts of turn the key.
These concepts are among the situations in which the program does not attempt to print out the exact words that are appropriate to use when calling, but instead prints out an unambiguous description of what is supposed to happen. The exact words you should use depend on the context and on your judgement. You might say “piecewise add a criss cross the deucey, and turn the key,” or “do a criss cross the deucey after each part, and turn the key,” or something similar.
A very profound question. A lot of discussion went on among challenge callers over how these should be used. Of course, before computers were in common use, these sorts of things were used in an imprecise way, only in situations in which the meaning would be simple and obvious. As challenge choreography became more complex, it became necessary to work out a really precise meaning.
Initially <concept> always means to apply the concept to the first part. When you apply the centers concept to something, it means only the centers do it, as though they are the only people present. For example, on centers trade from waves, the centers trade with each other. The ends do not enter into their thinking. So initially centers recycle applies the centers concept to the first part or recycle. As such, the very center 2 are the ones who fold.
2G^ 3BV 1B> 2G> 1G> 4B> 2BV 3G^ 1GV 4B^ 1B^ 4GV 2B< 3G< 4G< 3B< initially centers, 2/3 recycle
Anyone start means that the designated people do the first part of the call, while the others wait. Then the ohers join in for the rest of the call. When doing the first part, they are aware of the whole setup. For example, from C1 phantoms, one could call girls start, 1/4 thru. The girls are aware of the rest of the setup (even though the boys aren't precisely where they need to be for a 1/4 thru) when they start the call. Everyone joins in after the first part.
3G> 2B^ 3BV 2G< 2G^ 2BV 3G^ 3BV 4G> 1B^ 1GV 4B^ 4GV 1B^ 4BV 1G< girls start 1/4 thru
So, on centers start, recycle, the centers are aware of the ends, and of the general setup that the ends make part of. The person in the center wave that is closer to the ends considers herself to be the “center” of the 4-person formation doing the recycle.
2G^ 3BV 1B> 2G> 3G> 2B> 1G^ 4BV 2B^ 3GV 1B^ 4GV 4B< 1G< 4G< 3B< centers start, 2/3 recycle
initially use ah so spin chain the gears
You must type this on 3 lines: one with the “use” concept, and then each of
the two calls on its own line. This is because the “use” concept operates
on two calls: the call to be used, and the call in which it is to be used.
(The “use” concept is like “checkpoint” in this regard.) Such concepts
are very hard for
Sd to understand, so you have to write them on
separate lines. That is, you must press <ENTER> after the concept and
then after each of the two calls.
Sd is very strongly oriented toward the heads pass the ocean
style of sequence openings. That is, you start with the heads or sides
doing some call, either by themselves in the center, or something like
split square thru 4.
Sd is somewhat unwieldy with calls
like all 4 ladies chain.
First, you have to give the startup command just as they are. This will leave the dancers in a squared set. Then, after doing the 4 ladies chain and whatever other thar/alamo/squared set calls you want, you may very well want to go into the more “normal” style of calling by having some people move in and pass the ocean or whatever. To do this, use the concept <anyone> move in and, and then then give the desired call.
The sequence might look like:
just as they are all 4 ladies chain heads move in and pass the ocean etc...
If you had the ladies chain 3/4, heads won't do. In that case, use the designator headliners or sideliners. These are also Challenge terms that Sd recognizes at Mainstream. They mean "whoever is facing head/side walls right now". When calling, you would presumably say All 4 ladies chain 3/4, *AT* the heads, square thru .... or whatever terminology you like to use.
This is really the same problem as the all 4 ladies chain problem of the previous question. You need to start the sequence with just as they are, then do the all four couples calls, and then have some people move in and ... to do the rest of the sequence.
There are two reasons, one very simple and one more serious. First, without knowing the facing directions of the phantoms, we can't tell where they went, so the live dancers don't know whether to leave room for them. If the ends were facing out of their split phantom lines, they would go into spots that require the centers to move outward. So it is necessary to give the assume facing lines or assume inverted lines command.
Even if this is done,
Sd still won't be able to figure out where the
phantoms went. The problem is that it is too hard to track them through
something as complicated as “pass three moving dancers and quarter in”.
Sd can track phantoms and sometimes it can't. For example,
it can do a split phantom lines hocus pocus from an 8-chain,
even though that's a C2 call and load the boat is “only” Plus.
When you run into a problem like this, give the with active phantoms
command after the assume command.
The concept with active phantoms, used after one of the assume concepts (either an explicit one like assume waves, or an implicit one like split phantom waves), effectively places invisible but otherwise intelligent dancers on the phantom spots, with facing directions deduced from the assumption. Those phantoms proceed through the entire call, interacting with each other and with the live dancers as necessary. If the call is impossible for the phantoms to do, or if illegal collisions occur between live dancers and phantoms, it is an error. At the end of the call, any live dancers or phantoms that come to the same spot may take right hands with each other, if that is appropriate for the call. Note that this is contrary to what dancers generally expect when working with phantoms.
Most of the types of assume concepts are sufficiently explicit that, if even a single live dancer is present in the setup, everyone's facing direction may be inferred. This is necessary for the with active phantoms concept, of course. For example, a single live dancer can determine the handedness of all the phantoms when assume two-faced lines is given. Two of the concepts are not sufficiently explicit for this, and may not be used with with active phantoms. They are assume general diamonds and assume general 1/4 tags. If you are going to use with active phantoms, you must give more detailed assumptions than these two, such as assume left 1/4 lines or assume facing diamonds.
You can put
Sd into a mode in which there is an implicit with
active phantoms whenever any assumption is made. The toggle
active phantoms command toggles (turns on or off) this mode. When in
Sd will not actually insert the text with active
phantoms after each assume concept.
Beware: The with active phantoms operation is almost never
the right thing. While callers certainly have different philosophies
on this subject, I have found that it is almost never necessary to use
this in order to make
Sd perform the material that top-notch
callers call. In nearly all cases, giving an appropriate assume
command is all that is required.
These are obscure designators that are only in dancers' vocabulary at
high challenge levels, but that
Sd makes available at all levels
for emergency operations. Head Corners are the Head Boys and Side Girls,
that is, the Head Boys and their original corners. Headliners are those
people facing the head walls at any given instant. Side Corners and Sideliners
Especially at very high levels, the resolver seems to take a longer time to find a resolve than one might expect. The reason is that it starts its resolve search looking only for “high quality” resolves, and throwing away huge numbers of “low quality” ones. It assumes that you would press F12 to throw away the low quality resolves anyway. So it is initially reluctant to show a lot of resolves. After it has shown all the high quality resolves it can, it lowers its standards and shows the ones that it skipped.
Things that make a resolve high in quality are brevity, short promenade distance, and avoidance of such things as extend, slip the clutch, and reverse single file promenade. The promenade distance criterion is only applied at C2 and above.
Mini-grand (right and left grand, but on the 3rd hand, promenade) can be
Sd's repertoire of resolves by giving the toggle
minigrand getouts command. You can also start the program (
Sdtty) with a command-line argument of "-minigrand_getouts", either
on the command line or in a script or Windows shortcut, or put the line
"minigrand_getouts" in the “[Options]” section of the "sd.ini" file.
I'm glad you asked. The Microsoft compiler is not of acceptably high quality for the compilation of Sd and Sdtty. Microsoft may know how to write software that aggressively propagates email viruses (here), and they may know how to write software that deletes competitors' products (here), and they may know how to write software that makes competing web browsers look defective (here), but they don't know how, or can't be bothered, to write compilers that generate correct code. Compilations of Sd and Sdtty have been observed to crash on “snag bits and pieces” from waves. At first this was believed to occur only with Visual C++ version 6, service pack 3, which caused me to revert to version 5.
The bug was eventually tracked down to incorrect restoration of the ECX register upon exit from a “switch” statement. Bugs of this type, in which the compiler generates incorrect object code without giving any warning or error message, are inexcusable. The bug was reported to Microsoft in detail on 17 December 2001. No reply or fix was forthcoming. Over a year later a followup message was sent to Microsoft management asking about it. They gave me their customer support website (http://support.microsoft.com) and phone number (800-936-5800). Both contact points want me to pay them money before I can even find out whether they intend to fix this bug.
The bug was subsequently observed with version 5 also, creating a serious problem, since those are the only Microsoft compilers that I have. As of Sd version 35, Gcc is used for the compilation of Sd/Sdtty for Windows. It has always been used for the Linux release, of course.
No version of Sd or Sdtty suffering from this Microsoft compiler bug was ever released—the code was modified to avoid the bug. But that is not a workable solution in the long run, since I don't know what other parts of the program could be getting compiled incorrectly.
computer: HP/Compaq Presario V3000 OS: Windows XP commercial editor: GNU Emacs 20.7.1 free development system: MingW 5.1.4 free compiler/linker: GCC 3.4.5 free compress utilities: Winzip 8.1 commercial Winzip Self Extractor 2.2 commercial gzip 1.2.4 free document preprocessor:texinfo 1999-03-26.17 free Postscript formatter: MiKTeX 2.9 free PDF formatter: MiKTeX 2.9 free HTML formatter: Perl 5.004-02 free Texi2html 1.51 free
Microsoft Frontpage is not used at any point in the preparation, so there is no danger of running afoul of Microsoft's licensing restrictions against making web pages that "disparage Microsoft, MSN, MSNBC, Expedia, or their products or services".
It sure is, in many cases. A worldwide network of hobby programmers who take pride in their work make vastly better products than big companies that are managed by a philosophy of getting the most possible money from the least possible work.