Misc: Tips for building tables

Building complex tables can be a bit tricky at first. This article describes various techniques and tips that can help you create nice-looking tables using either the complex table syntax or the simple table syntax.

General restrictions with wiki tables

  • You cannot insert [[include]] elements in any type of table (simple or complex).

Table class (CSS)

If you want your table to extend the width of the window, you should specify the class "main-table" in the code, so that the CSS style sheet for this wiki can properly control it. Example of table header line:

[[table class="main-table" style="border-collapse: collapse; margin: 0 0px"]]

Original table (problematic to lay out smoothly)

One big problem with the wiki syntax is it currently does not support "colspan" settings. So if you want a table with columns where one row spans the whole thing, like a title (see below), the only way to do it is with separate tables, set to be the same width.

One good trick when creating long, complex tables like this is to put a couple newlines between tables in the source while you're working on things. This makes it easier to find each table (row) when editing. When all the bits and pieces look good, you can then remove all the new lines to "put the table" together again. Note how I've used 1 newline between the two closely-related rows, and 3 newlines between each set of 2 to make it easier to find each set.

Another good trick, whether you have newlines or not, is to insert XML-style comments between each set of 2. View the source for this page to see some examples of this.

Table with temporary spaces between each separate "row table":
RTC Model 010: LF1 - Dual LFOs - 32 GE RTP

1 Env: Env On/Off [1] 016 Min:+0000 Max:+0001 - - Switch 1
Turns Envelope 1 On/Off.

2 Env: Env Type [1] 016 Min:+0000 Max:+0101 Val:+0022 - -
Allows you to choose any CC (or Velocity, Tempo, Pitch Bend, Duration etc.) for Envelope 1. Note that because the first six items are "special", the actual CC value is offset by "6". So to specify CC 16 (Ribbon), you would set the value to +0022, as shown here ? then you will see the CC 016 number automatically displayed in each associated parameter name. Note: some of the first six ?special settings? may not be valid depending on other internal settings of the GE.
Finished table with temporary spaces removed:
RTC Model 010: LF1 - Dual LFOs - 32 GE RTP
1 Env: Env On/Off [1] 016 Min:+0000 Max:+0001 - - Switch 1
Turns Envelope 1 On/Off.
2 Env: Env Type [1] 016 Min:+0000 Max:+0101 Val:+0022 - -
Allows you to choose any CC (or Velocity, Tempo, Pitch Bend, Duration etc.) for Envelope 1. Note that because the first six items are "special", the actual CC value is offset by "6". So to specify CC 16 (Ribbon), you would set the value to +0022, as shown here ? then you will see the CC 016 number automatically displayed in each associated parameter name. Note: some of the first six ?special settings? may not be valid depending on other internal settings of the GE.

Using "invisible" tables as spacers

Another technique, when you actually want to have spaces between parts of a table, is to use an invisible table of one row between the other table pieces, that has no border, no background colors, no text, but simply specifies a height attribute for the cell. This can give you more control over the exact amount of space between the pieces, as shown in the following example. To see the invisible table part, you would need to edit this page and view the code.

text text
text text
text text
text text
text text
text text
text text
text text

Using nested table technique

You can embed an entire complex table inside a single [[cell]] of any other complex table. In this technique, we create a virtual "row" by creating a cell containing a long description that applies to one or more parameters, and then we embed a smaller table with the GE#/min/max/value/switchSliderAssignment cells inside the start of the cell containing the long description. (Although in the table's "header row" we put the embedded table after the text of the table heading.)

The cell padding arguments cause the embedded table to have padding too, but this doesn't really look all that bad. Note that for the embedded table, we change the width argument to a simple 100%, because it's parent table already has an absolute width of 700px. Also note the extra padding in the parent cell that contains the embedded table.

Also note how you can use subtle color highlighting for the embedded table.

RTC Model 010: LF1 - Dual LFOs - 32 GE RTP

No. GE RT PARAM MIN MAX VALUE ASSIGN
1 Env: Env On/Off [1] 016 Min:+0000 Max:+0001 - - Switch 1

Turns Envelope 1 On/Off.

2 Env: Env Type [1] 016 Min:+0000 Max:+0101 Val:+0022 - -

Allows you to choose any CC (or Velocity, Tempo, Pitch Bend, Duration etc.) for Envelope 1. Note that because the first six items are "special", the actual CC value is offset by "6". So to specify CC 16 (Ribbon), you would set the value to +0022, as shown here ? then you will see the CC 016 number automatically displayed in each associated parameter name. Note: some of the first six ?special settings? may not be valid depending on other internal settings of the GE.

3 Env: Start Level [1] 016 Min:+0000 Max:+0099 Ctr:+0050 Slider 1
4 Env: Attack Time [1] 016 Min:+0000 Max:+0099 Ctr:+0050 Slider 3
5 Env: Attack Lvl [1] 016 Min:+0000 Max:+0099 Ctr:+0050 Slider 2
6 Env: Decay Time [1] 016 Min:+0000 Max:+0099 Ctr:+0050 Slider 3
7 Env: Sustain Lvl [1] 016 Min:+0000 Max:+0099 Ctr:+0050 Slider 1
8 Env: Rel. Time [1] 016 Min:+0000 Max:+0099 Val:+0000 - -
9 Env: Rel. Level [1] 016 Min:+0000 Max:+0099 Ctr:+0050 Slider 1

The Envelope Level and Time parameters (3-9) are set the way they need to be for the particular LFO Waveform that is being created (Triangle, Sawtooth, Square). They generally should not be adjusted from their default settings. Their Slider assignments will also vary depending on the Waveform being created. Certain of the Level parameters will be grouped together on the "LFO Min" and "LFO Max" Sliders, and certain of the Time parameters will be grouped together on the "LFO Rate (Fine)" Slider ? see the ?Waveform Reference? Table at the end of this section.

Using simple table technique

This last technique uses the simple table syntax. Downside is that you cannot control cell widths nearly as accurately, nor can you have a nice white background for the entire table (unless we change the CSS for the simple table elements accordingly). However, the source code is clean, fast to edit, fairly easy to read, and the cell widths will automatically balance out based on the longest cell content throughout the entire table.

The big disadvantage of this technique is that multi-line text in a "cell" is pretty difficult to work with, and you cannot put things like bullet lists or numbered lists inside a "cell". So depending on how complex your cell contents are likely to be, you might be forced to use the complex table syntax.

RTC Model 010: LF1 - Dual LFOs - 32 GE RTP
1 Env: Env On/Off [1] 016 Min:+0000 Max:+0001 - - Switch 1
Turns Envelope 1 On/Off.
2 Env: Env Type [1] 016 Min:+0000 Max:+0101 Val:+0022 - -
Allows you to choose any CC (or Velocity, Tempo, Pitch Bend, Duration etc.) for Envelope 1. Note that because the first six items are "special", the actual CC value is offset by "6". So to specify CC 16 (Ribbon), you would set the value to +0022, as shown here ? then you will see the CC 016 number automatically displayed in each associated parameter name. Note: some of the first six ?special settings? may not be valid depending on other internal settings of the GE.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License