Running simultaneous Scream instances
Scream is designed to work as a robust part of your seismic network. By default, it uses the configuration file scream.ini to set itself up automatically when restarted. However, in certain circumstances you may want to run two or more instances of Scream simultaneously on the same computer, with different configurations.
This “how-to” describes some situations where you may need to do this, and explains how to set up the system to work with multiple Screams.
Situations requiring more than one Scream
- A single instance of Scream can only record in one data format. If you want to record in several formats simultaneously, you will need to be running as many instances of Scream as there are data formats to be recorded.
- When recording data, Scream will use its internal stream buffer to sort out-of-sequence data as far as possible. This means that if a gap occurs, Scream will stop recording data until either the gap is filled, or the stream buffer is filled with new data. Only then will it write out the data. If you want to use a large stream buffer for monitoring, but expect there to be gaps or out-of-sequence data, you will need to use one instance of Scream (with a small stream buffer) for recording, and a separate instance (with a larger buffer) for monitoring.
- You may want to run one instance of Scream constantly in the background, and use a second instance to monitor the incoming signals from time to time.
Using separate configuration files
You can run Scream with any configuration file you like using the command-line option /i. For example, to make Scream use the defaults in the file C:screamrecorder.ini, you would issue the command
If you make changes to the configuration of this Scream instance and quit, it will write out the new configuration to this file instead of to scream.ini.
You may find it useful to create a short-cut or script which calls Scream with this command-line option. Using Microsoft Windows XP:
- Open the directory containing the program file scream.exe.
- Right-click on the scream.exe icon, and select Create shortcut from the pop-up menu.
- The short-cut will appear in the same directory with a default name. If you like, you can rename it by right-clicking and selecting Renamefrom the pop-up menu.
- Right-click on the short-cut and select Properties.
- In the Target: box, add the /i:configuration-file
command-line option to the end of the command line, after the quotation
marks, and leaving a space. Replace configuration-file
with the full path name of the file you want to use.
- Click OK, and test the short-cut by double-clicking on it. If you have not created the configuration file already, Scream should launch as if for the first time, bringing up the Setup window and the on-line tutorial.
- Make any changes you need in the Setup window, and exit this instance of Scream by closing the main window.
- Check that the new configuration file has been written at the path you chose.
- Move the short-cut to your working directory or onto the desktop.If you want to place the short-cut on your Start menu, first right-click
on the Start button and select Open to bring up the menu in a directory window, and navigate to the folder you want to use:
The short-cut can now be moved into this directory.
- If you put the short cut in the Programs ? Startup folder, the short-cut will be launched automatically when you restart. You can launch any number of Scream instances automatically in this way, each with its own configuration file.
Communicating between Scream instances
In most cases where you are running several Scream instances, you will want them to be able to pass data between each other. You can do this using your computer’s loopback network interface, which uses IP addresses in the range 127.0.0.1 – 127.255.255.255. The steps below will let you use two Scream instances to process and view data coming in over the computer’s serial interface. If you want to make this setup launch automatically when you log in, you should make sure that the various instances of Scream are launched in the right order.
- Launch Scream, and configure it (if necessary) to receive data streams from your seismic instrumentation, either from other Scream servers or over a serial link. This Scream is going to receive data, and perhaps record it in real time. We will set up another Scream instance later for viewing the data.By default, this Scream will listen on all local serial ports at a baud rate you specify. If you want any serial ports to be available to other instances of Scream, select (none) as the baud rate for these ports (in the Com Ports tab of the Setup window) and save your changes before starting any more Screams.
- Choose Windows → Network Control from the main window.
- Click on the My Server tab.
- Right-click beneath Clients in the upper table, and select Add….
- Enter the IP address and port 127.255.255.255:1568.The IP address 127.255.255.255 means “broadcast to all local clients listening on this port”. If you are running more than 2 Scream instances, you must use this IP address to receive all the data. If you use the more common 127.0.0.1 address, only one Scream client will be able to connect.You may use any port number above 1024 as long as it is not being used by another application. By default, Scream listens on port 1567 for data from your seismic network. This is what the first instance of Scream will be doing. The second instance of Scream will also need to receive data, but only from the first one, so we must use a different port number for it: here, 1568.
- Check the Transmit data from local Com ports box.
- Follow the steps above to create a new instance of Scream with a different configuration file, and run it.
- Open the Network Control window on the new instance of Scream, and click on the My Client tab.
- In the Port used for all network communications box, type 1568, or the port number you used in step 5.
- Check the Receive UDP Data box. The local loopback should now be active, and if data are coming in over the local serial ports, you should see it appearing.
- Configure the second instance of Scream as required.
Passing on data received over the network
By default, a Scream server will not pass on data which it received over the network, but only from the local serial ports. This is done to prevent infinite loops occurring where Scream servers simply bounce data from one to another, using up all the available bandwidth. However, if you are using two Scream instances on the same machine, you will normally want the second instance to see all the data sources recorded by the first one. To do this, you will need to launch the server with the command line option /nettx, e.g.
scream /nettx /i:C:screamserver.ini
You can create a short-cut or script which runs this command, as detailed above. To prevent loops from being created accidentally, you should omit this option from the client instance.