The peerSynth tutorial

Welcome! Welcome to the peerSynth tutorial. Just step thru the topics and you will discover all details of the peerSynth concept. Have fun!

Step: 1

The first Sound

You like to hear your first peerSynth Sound? OK, nothing else is that easy:

After installing peerSynth run peerSynth.exe. You see your own instrument in the left corner of the peerSynth field. Just press on the blue line in the slider at the bottom of your instrument...

(If you running peerSynth the first time you are asked to setup the Audio-Engine).

Hear the result! This is your keyboard! At this time the sound is only monophonic but wait: In a few minutes you will play polyphonic sound with that new controller. Move the mouse while pressing a mouse button. The pitch is changing. Press right mouse-button. You hear that the sound holds now. Move the blue lights in the black effect-fields and "throw" them away. Hear the effects. You can change S/B Faders on the right hand of the fields. See and hear the new behaviour of the balls.

After that sound experience now is the time for an closer look at all the peerSynth features:


Step: 2

Play with OSC

You can either play your instrument in OSC Mode or File Mode. OSC Mode uses internal Oscillators to generate a monophonic sound. Switch to OSC Mode by pressing the <OSC> Button.

Pitch

The main pitch of the DCO can be controlled with the slider as you has seen in step 1. The Slider can also be controlled by the mouse wheel. Each line inside the sliders field is one octave. But relax: This is only a hint. You don`t have to play well tuned ;-)

Hold the Sound

The Sound keeps running if you press it with the right mouse-button. The Sliders light changes to a double line.

Attack and Release Time

Use the <A> and <R> Fader (above the slider) to change the attack and release time of the tone.

You can control the OSC by using MIDI.


Step: 3

Play with Files

You can either play your instrument in monophonic OSC Mode or polyphonic File Mode. Switch to File Mode by pressing the <File> Button.

Choosing a Source File

After pressing the <File> button the first time or pressing <...> button you have to choose a WAV or MP3 Mono or Stereo-File that will be your sound source. Each channel of a stereo file will be processed independent. Please do not choose a too big file (less 1MB). Choose e.g. short drum, instrumental or vocal phrases. Because of copyright reasons, please choose only your own generated files or the demo source files that comes with the peerSynth installation (Folder _peersounds). Or record and use your own live sound by pressing the <Record-Live-Input> button in the toolbar. After choosing the file it is automatically added to the database.

Playing with the file

You can control the Pitch/Volume and Attack/Release of the Sample File the same as in OSC Mode. The sound is automatically looped at the end of the file if you press the right mouse button. Note that each new mouse click will start a new voice. If you loop a voice with the right mouse button and then choose another file the old file will be still running. Just switch to OSC Mode to stop all running files. For experts: Note the cool fades on switching OSC and File-Modes!


Step: 4

The Effects

After generating a Sound in OSC or File Mode it is serially processed by three independent effects.

Each effect can be controlled by X/Y controllers (The blue balls ). But it is not a normal X/Y controller: It is a physical model of a ball in a cave or a bowl. The top <S> slider beside the field controls the speed of the ball and the right <B> slider will turn the field into a bowl and then you have an auto centered system. Throw the light with the mouse. Fast movements of the mouse will make fast movements of the light. Alternative you can use midi-events to control the light. This X/Y PM-Controller is an invention of the buero </stelkens> in 2001.

To test the effects please increase Release time or switch to Hold-Mode as it is described in OSC Mode.

Modulator

The Sound of the OSC or Sample Files can be modulated with the Modulator field. It is a very deep combination of ringmodulation and/or a granular synthesis/pitch shift effect. Try it. If you are using File Mode and moving the ball to the middle of the field the pitch-shifter effect is switched off.

Scratch-Delay & Feed

You know how to scratch your records? Try the peerSynth Scratch-Delay! The effect is a digital simulation of a stereo analogue tape delay. By using the ball you can change the left (X) and right (Y) tape length and speed. Increase the <Feed> Fader on the right to increase the delay feedback.

Scratch-Loops

If you press on the <Feed> label you can adjust a never ending delay feedback.

Now you can generate short sequences with the Scratch-Delay: Use short source sounds by reducing release time. Then choose a ball position in the scratch delay field. Then play the first tone. After that play another tone. And so on. Hear the sequence! By moving the scratch delay you can change the speed of the sequence. Applying this, changes the stored sequence to a really crazy inferno. To clear the loop just move the Fader to the bottom.

Volume & Pan

You can image what that means! Try it with the <S> and <B> Faders. And use it together with loops generated by the Scratch-Delay.

Near/Far Fader

Changeing the "distance" of the Sound by using the <Far> Fader. In some cases this fader is automatically changed if you enable LTSDM Mode (Latency to Sound Distance Mapping).


Step: 5

Prepare a connection (about the Options)

Would you like now to contact other peers and share the fun? Please read the following step to prepare your peerSynth connection to the world!

Feel free to share the peerSynth Software!

Please provide your future peerSynth peers with the peerSynth Software. Just feel free to copy to and share the whole package with your friends.

The Options

To setup peerSynth for playing with other peers please go to Edit | Options or press the <Options> Button in the Toolbar first.

Enter Session- and Nic-Name (required)

Now you have to select an unique Session and Nic-Name.

Go to the <Session> tab. Enter a Name of the current Session (e.g. cooljam) and press <Add date>. After that select your Nic-Name. These names are not only for identification in the network but they are also used to structure your database and log files. So please choose them with care! If you can't make up your mind now, no problem: All options can be changed during a running session. If you wish you may pick a new color for your instrument to provide better identification. Also this may be done during a running session.

About Me

If you wish that your peers receive more information about you, please enter them into <About Me> tab. Note: This data is not required but it is usefull for the peers to identify and/or contact you after a session (e.g. via mail)


Skip the other tabs now. They are discussed later in the tutorial.
Step: 6

Connect a peer

Now you are prepared for your first connection! You see the Name and Session Information at the top of your instrument. If you press <?> Button more information,which you have entered in the options are displayed. Press <C> to pick a new color for your instrument.

Firewall installed?

If you have a firewall installed (e.g. WinXP) please disable it (unsecure!) or create a new rule to allow the following TCP/IP Port to go thru: 2270. Otherwise the peerSynth TCP/IP packets from the peers are rejected by the firewall and peer connections are refused: No one can connect you!

To create a new rule in the WinXP firewall please follow the red steps. First open your modem or network connection dialogue:

Step 1
Step 2

Step 3

Step 4



Make a connection

Please go to Network|Connect to peerSynth Network or press the <Connect> button in the toolbar. Please read carefully the <Security and Privacy Notes> tab inside the dialogue. There are two ways how to connect to an existing Network or single peer: via the free public Session Server or via a private schedule!


Join the public Network by connecting to the Session Server

peerSynth provides you with the ability to access a free public session server hosted by the büro </stelkens>.

You can login to that server by pressing the left button. After that your info that you entered in the option dialogue will be passed encrypted to the public peersynth session server. After that you will see a list of all peers that are online at the moment. Now you are able to chat and connect them. Be aware that other peers join your session during jamming!

Please read carefully the hints inside the upcoming window:



To connect to a peer that have also join the public network and is online at the moment just select him out of the first list and press <Connect> button. If you like you can leave the window open while jamming. If you like to delete your entry in the list, please use <Log Out and Close> button.

Join or create a private Network

May be someone has provided you with an IP address or Host Name (DNS, DynDNS) (e.g. via Phone/E-Mail/Chat) of a machine with a running peerSynth application. This is also the best way to connect inside a LAN or WLAN where fixed IPs are known. Please enter the address and press <Connect>.

Another private or public way to find peers for jamming is to provide other peers with your Network address or (Dyn)DNS Name. For that please follow the instructions during the dialogue. Just keep peerSynth running with an open internet connection and wait until the invited people connect to your address which you provided to them. Start jamming when you see a new instrument is appearing!

Connection Error?

If a network error occurs the related instrument is automatically closed. If you wonder what has happened take a look at the log file.


Step: 7

Playing together

As soon a connection is established a new instrument representing the new peer is born inside peerSynth. This is a so called user-representation and this instrument will reflects all actions the peer does on its own instrument. So each peer is eating your CPU-Power because they got an own DSP-Thread to generate the sound. Please go to Window| Show/Hide DSP Info to get an impression what's going on inside the audio path of your peerSynth instance.

You got that idea? Here you see a scheme that illustrates the idea for three interconnected peers:

Each of the peerSynth network players is represented in each local peerSynth instance as a user with his/her own interface and sound synthesis unit(module). This means, for example, that if three users are connected via peerSynth then 3 user interfaces and 3 sound synthesis units are produced by each running peerSynth instance.

All static information like the Host name or email-address can be seen if you press the <?> button. Try to change your color by pressing <C> button until you have a nice overview about the session. All information are stored inside the session log.

Start jamming!

If you see a new instrument start carefully with some jamming action. Don't overload the jam! Hear carefully what the other peer does! Make music not an acoustical war!

Transferring Files

Once you change to file mode and choose a sample file you will notice that your source file is automatically distributed to the connected peers. The same happens if the peer uses a new source file. You will see the files appearing in the database window. But if peerSynth finds this file already in its database the file is not transferred again. That is a great feature to increase performance and save connection bandwidth.

Using the peerSounds

If you use one of the peerSounds (this is a sound library with nearly 300 exquisite sounds that comes with peerSynth installation) the sounds are not distributed because your peer has the same library installed. Just choose them in the folder named <_peersounds> in your database folder or choose it with the help of the database window.

More than one peer

As soon as you connect to other peers during a running session they will also be added with a new instrument. There is no theoretical limit of the possible amounts of connections, but jamming with more than 10 peers could be a acoustical nightmare (or not?). Anyway: If you connect to a peer who has already a session running (e.g. with 3 more peers) you will automatically be connected to that peer!

Asymmetrical musical Networks

If you don't like a peer just close his instrument using the <C> button. The peer will be disconnected from your peerSynth but not from the whole session. That means: You and your peers can create asymmetrical musical networks! peerSynth is the first session system that supports that!

(By the way: The author don't know if that feature makes much musical sense but anyway: He believes that asymmetrical musical networks can be a topic of further interesting research! For further discussion please refer to his ICMC paper)

Chat to peers

Use Window| Show/Hide Chat Window to open the chat window. Just type in your text and it will be send to the other peers. If you like to make a private conversation with only one peer just select him from the listbox. The chat is automatically stored in the session log.


Step: 8

Session Hierarchy

You have noticed that until now you can`t play the peers instruments.

Allow Manipulation

But you and your peers can allow manipulation of the owned instrument by checking Synth|Allow Manipulation or pressing the <Allow manipulation> button in the toolbar. If you check that option your peers are allowed to play also with your instrument. To indicate that the balls inside the effect controllers start glowing. You will see their changes on your own instrument and their changes are automatically updated to all of your representations.

Hierarchy

So when all peers in a session allow or not allow manipulation then there is no hierarchy in that network, but if someone allows and someone not a hierarchy is born. Please feel free to experiment with different constellations!


Step: 9

What is LTSDM?

LTSDM means Latency to Sound Distance Mapping. What the hell is that? To understand that lets talk a bit about latency:

The latency problem

Destructive time lags or so-called latency, occur during collective music making over asynchronous networks in all real time projects. Other musical network projects sidestep this problem since they don't establish a real time connection, but only exchange data as files after they have been created. Further latency issues in real time systems arise in the use of networked live sequencers where relative time information (as opposed to absolute) is carried over the network. A local sequencer takes over the time-correct execution of musical events.

The hope for lower Internet latencies in the near future, if at all, be fulfilled only with Internet connections based within large institutions. For the independent computer musician like you, access to high-speed networks like ATM or Internet2, remains, in general, inaccessible. Considering the observations of the before mentioned approaches to musical real time collaboration, the author of peerSynth therefore considers it of little use to ignore or avoid latency problems. Rather, through the author's synthesizer concept, the existence of latency is taken into account as a given.

The author's software peerSynth's basic idea is to make a gauging of latency possible by changing the synthesized sound of a multi-user software instrument, depending on the current latency situation occurring in connections to the other users.

Enable LTSDM

You can enable this feature by checking Synth|Enable/Disable LTSDM.

Through the help of a constantly updated, automated measurement of the RTT (Round Trip Time with a high resolution ping), the individual latency of your own peerSynth instance to the connected instances is determined. These diverging values can then be interpreted as musical parameters and influence the sound of each representation: You will hear a peer comes nearer if the ping time is short. He disappears in a virtual room if its ping time increases.

This process can be interpreted as an individual "perspective" in relationship to the other users, similar to, for example, a 3-D multi-player action game. In this case, the game does not look the same for each player - the individual user sees only the chosen perspective, including the representations of other users. With peerSynth, the user cannot actively alter his/her "perspective" of the other users but is instead continually introduced to new "perspectives" resulting from the ever-changing properties of Internet latency.

In this way, the property of the medium is represented directly in the sound of the instrument, enabling the players to adapt their performance accordingly.

For further discussion to that fantastic theme refer to the author's ICMC paper or his doctor thesis (sorry only in German) and its footnotes.


Step: 10

The Database

The database is the heart of the peerSynths file management. It allows you to have full and prestructured access to your and the sessions source files, log file, session recordings, live recordings and other files.

Show the database browser

Go to Window|Show/Hide Database Browser. The Browser appears and shows all the files that are stored in the database folder on your hard-disk.

The first _peersounds folder contains the peersynth sound library with hundreds of cool sounds. Just doubleclick on the names to use the sounds

Database structure

Topmost folder inside the database folder is the session folder named after the current session. Next folders are named after the peers nic-names. Then comes the file group (e.g. log, source, session recording, live recording, unknown) and on the last level the files themselves.

Database folder: The storing place

If you choose a source file in file mode the file is automatically copied under your session and nic- name and send to the peers. If you receive such a file from a peer it is automatically stored under the peers nic-name. Each transfer is documented in the log file. The place of the database folder on your harddisk can be changed by opening the options dialogue (Edit|options <database> tab). Please copy the _peersound folder manually into your new folder if you changing the database folder.

Using the buttons

First select a file or folder than press:

  • Filter: Shows only current and existing Sessions and Peers.
  • Use File: The same as switching to file mode.
  • Play File: Play (Preview) File - Note: This will be recorded during session recording
  • Show File: The File is executed. Use this e.g. to show the log file with the explorer.
  • Send File: Send the file without using it. You can use this or use...
  • Send Folder: Send a complete folder. This is useful if you plan a session where source files should be send before jamming starts.
  • Cancel Send: Cancel any sending task. Button resets after a few seconds.
  • Import File: Imports any file into the Database. If you like to send the peers any file type (e.g. sending them applications, text etc) use this button.
  • Delete: Deletes a file from the database. You can also use the windows explorer to delete folder or files from your database folder. But don`t worry: If some file is needed again (e.g. a peer likes to use it as a source file) it is automatically transferred and stored into the database again.

Step: 11

Record a Session
(registered version)

You like to record your session to a mp3 file and share that file with your peers? Then go to Synth|Record Session or press the <Session Record> button on the toolbar. The file is automatically named and inserted into the database. After recording you can send the file to your peers or use it as a sample source.


Step: 12

Record from Live-Input
(registered version)

Parallel to your session you are able to record a mp3 file direct from the live inputs of your soundcard. This is useful to generate new sample sources during jamming or to send the peers voice messages.

Automatically use of live recordings

Please adjust input level with the help of the I/O Level Window (Go to Window| Show/Hide I/O Levels).

Please go to edit|options <Live Record> tab. If the box is checked the recorded file will be automatically used for playing after recording. This means that the file will be send to your peers direct after recording!

Adjust the Monitor Level

You can route the input signal to the peerSynth outputs by increasing monitor level. The unmuted Monitor Signal is also captured during Session Recording. If you don't want that, please set Monitor Level to "Mute".


Step: 13

Using MIDI
(registered version)

If you plan to use peerSynth together with sequencers or other MIDI applications that run together on the same computer you need a Loop back device driver like the freeware "HUBI'S MIDI LOOPBACK DEVICE V2.5" that you might find on the internet (see e.g. http://www.hitsquad.com/)

Choosing MIDI-Devices

Go to edit|options <MIDI> tab and choose a MIDI-In and/or MIDI-Out Device. Now you are ready to receive and send MIDI data.

Using MIDI

The instruments recognize standard MIDI data each at their own channel. Press <?> to find out the current MIDI-Channel of each instrument and its fixed MIDI-Controller assignment (take a look at the marquee label). If you attach a MIDI-Keyboard you can play peerSynth like a synthesizer or sampler. Try it!

The MIDI Channels

The MIDI Channel 1 is reserved for the local instrument. All other instruments have higher channels. For example: There are two peers connected. Your instrument receives and sends MIDI-Data on MIDI-Channel 1. peer No. 1 on MIDI-Channel 2 and peer No. 2 on MIDI-Channel 3.The peers instruments can only receive MIDI-Data if the peer allows manipulation on his instrument.


Step: 14

The Log-File

Every action besides the pure jamming activities is stored in the session log file. This is a simple HTML-File that you find in your database in the log folder. You can doubleclick the file to view it with your favorite web browser.

Consider the log file as a kind of musical score of your sessions.

If you create a new session by changing the session name there will be a new creation of the log file. You can send the log file to your peers or distribute it in the internet just by uploading it to your web-site.

If you have trouble with your internet connection just take a look at the log file to find out what kind of network error occured.