Create a Module

From Linewaves
Jump to navigation Jump to search

Anyone can contribute to LINEWAVES by creating a new module

LINEWAVES is developed and maintained by a volunteer community of coders and educators. The process to contribute is simple:

  1. Create an account. Once your account is created, log in.
  2. Read the instructions below carefully.
  3. At the bottom of the page, type in a title and click the Create Page button.
  4. Create a new module using the template provided.
  5. When you're finished, notify the site admin (info [at] and they will review your contribution.
  6. Let the admin know whether you'd like your module to be locked (only you can edit your module) or unlocked (others can edit/add to it).

If at any point you have a question, feel free to write to the site admin: info [at]

Getting Started

You must have a LINEWAVES account and be logged in to create a new module. Click here to create an account. Log in using the link in the upper right corner (or click here). You do not need an account to view content on the site.

In order to make LINEWAVES an accessible resource for as many users as possible, modules must conform to consistent guidelines across the site. Review the modules already on the site in order to get a better idea of how to structure your contribution. A successful module teaches a single, focused musical concept using a handful of specific programming techniques. More complex lesson plans may be best approached as a sequence of multiple modules. Your title should be short and descriptive.

Constructing your Module

When you click Create Page below (not yet--read first!), a new page in the Wiki will be created using that name. Make sure your name is original (view the list of all modules here). When the page first opens, you will see a text window with the page source code. Scroll to the bottom and click Save Page. Once you have saved the page, you can freely toggle between the visual editor and the source code editor by using the Edit and Edit source tabs at the top of the page.

By default, your page is formatted using the LINEWAVES template. This includes typical module features such as paragraphs of text, blocks of code, an infobox, images, links, etc. You should replace the sample material with your own content. Your module can be longer or shorter than the template. Instructions and explanatory notes to the module author (i.e. you) are given in italics; these should be deleted before publishing your module.

Working with MediaWiki

LINEWAVES runs on a platform called MediaWiki. If you have edited Wikipedia before, you will find the workflow to be very similar. There are many resources online that can help you create, edit, and format using the MediaWiki markdown language. This page is a good place to start.

In addition to the static content on each page (i.e. your code, your lesson text, your images, etc.), modules are organized using two MediaWiki elements called Categories and Properties. The template lists categories at the bottom of the page in the source code, and the properties in the info box at the top. For the most part, the template is set up so that you can replace existing categories and properties in place (usually, you will not have to change the categories; only the properties). The following paragraph describes these elements in more detail. If you have questions, feel free to reach out to the admin (info [at]

Categories are used to describe the general type of page and/or module. Properties are used to describe features of the module with respect to specific qualities. For example, upon creation each module page is a member of the category Module. Some of these modules are also tutorials, which means they are members of the category Tutorial. By contrast, properties include things like the programming language used or the music topic covered. One module's property Language might be Python, and another module's property Music Topic might be Key Signatures. This video series covers these concepts in detail.

Linking up with the Community

In addition to following the conventions listed above and in the template, make sure to use existing categories and properties whenever possible. This helps make it easier for users to find your module when searching by category or property. You can review the list of current categories, and the list of current properties.

Also, make sure to link to relevant programming tutorials whenever you mention a new concept or technique. For example, if you ask users to perform a list comprehension, name the technique explicitly in the text ("Next, we use a list comprehension to...") and link to a tutorial on list comprehensions. When possible, link to internal tutorials. Otherwise, you can link to free, reputable online sources such as w3schools. You should also link to installation and config instructions for specialized libraries and other tools.

Creating a Module

Once you have read through the instructions above, type a name for your new module in the box below. Double-check that the name is not already in use. When you click Create Page, a new module with that name will be created using the LINEWAVES template (see above). Click Save at the bottom of the page (this will create a placeholder page using the template), and you can begin to create and edit your module.

When you're done (or if you have any questions in the meantime), contact the site admin: info [at]

Good luck and have fun!