Magazine Archive

Home -> Magazines -> Issues -> Articles in this issue -> View

Software Support

Hints, Tips & News From The World Of Music Software

Article from Sound On Sound, December 1992


STEINBERG



EXCHANGING SEQUENCER DATA IN REAL TIME

Sometimes it is not possible to exchange songs between sequencers by using the MIDI file option. For example, if your sequencer cannot transfer the data in a form that Cubase can read (such as a MS-DOS formatted disk), then the simplest method is to transfer the data in real time. It may at first seem that the thing to do is to connect the MIDI Out of one sequencer to the MIDI In of the receiver. This does work, but it is not necessarily the best way of doing things. This method works if you send both the note data and MIDI clock and MTC, but because the MIDI clock and MTC both have a higher priority in the MIDI system (or should have) they tend to push your notes out of the way.

A better approach is to connect the pair of sequencers in an out-in/out-in loop — ie. the Out from each sequencer is connected to the In of the other — and use Cubase as the master clock for the other sequencer. MIDI clock or MTC goes down one MIDI cable to drive the second sequencer, while the performance data of the song comes down the other cable into Cubase. You must put the other sequencer into external sync mode — ask it not to send any sync data itself, and remember to turn MIDI thru off on one or both sequencers. Press record on Cubase — after its count in it will go into record, and send sync to the other sequencer. The other sequencer then locks up to the incoming clocks, plays the song, and the performance data comes back to Cubase and is recorded.

All that remains is to sort the events on to different tracks according to their MIDI channels, which is easily done with the Remix Track option from the Structure menu. One last point: it may seem a good idea to crank up the tempo and get the job done fast. Unfortunately there is a drawback. The MIDI spec defines to within 1% the speed of transmission of MIDI data. The faster you send the data, the more the chance of your notes being moved around, by the (usually relatively insignificant) time quantisation effects of MIDI. Once you have tested that a few bars are being transmitted correctly, go back, set Cubase's tempo down to 30.000 bpm, put the kettle on and have a well earned rest. It takes a little longer to do, but works rather better.

SOUND BANKS FOR SATELLITE

It is not possible to load a Sound Bank into Satellite unless it has specifically been saved in a certain format by one of the Steinberg Synthworks programs. You cannot simply use the Dump Utility to download the sound parameters from a synth to a file and then load it into Satellite as a bank. The reason is simple: each synth manufacturer has their own format, and so does Satellite, so if we think of these formats as different languages then the only way to translate them for Satellite is by using the various Steinberg Synthworks.

DR. T's KCS



This month we're going to take a look at how to deal with control sequences and some of the various event types that can be used with them. Many users don't take full advantage of the possibilities of control sequences, but many powerful things can be done with comparatively little effort. In short, control sequences are used to control how other sequences play back; a simple case is where sections of the piece which are on separate sequences are chained together to form a larger piece. This can, of course, be done just as effectively within Song Mode (Amiga users or Atari users prior to Version 4.0) or SongEdit (Atari users of Version 4.0 and above) but control sequences provide some interesting possibilities which cannot be readily achieved with either of those operation modes. In addition, some very complex music structures can be built up using nested control sequences. This allows users to develop a highly individual approach to music which would be difficult or impossible on other systems.

Let's look at a simple control structure first: here are two very different control sequences that do exactly the same thing:

Seq 1, Song 1a
MSR-BT: ST EVNT TIME CH TYP NOTE VEL DUR
1-1: 1 1 0 ST 2 0 1
5-1: 1 2 1536 ST 3 0 1
9-1: 1 3 1536 ST 4 0 1
13-1: 1 4 1536 DE

Seq 1, Song 1b
MSR-BT: ST EVNT TIME CH TYP NOTE VEL DUR
1-1: 1 1 0 ST 2 0 1W
1-1: 1 2 0 ST 3 0 1W
1-1: 1 3 0 ST 4 0 1W
1-1: 1 4 0 DE


In these examples, a piece is being constructed out of three sequences, each of which is four bars long. Looking at the first example, we see that Sequence 2 starts on the first beat of bar 1, at bar 5 Sequence 3 is started, and finally at bar 9, Sequence 4 (note that the values under Time assume a ppqn of 96). The second example, though it looks very different, does exactly the same thing; the important difference is in the use of the Wait statement at the end of the line. This prevents the following line from being executed until the first one has finished playing, however, attention must be paid to the state of the final DE event in each sequence. You must always ensure that all your sequences have a trailing DE event and that its position is correct, otherwise unexpected results will occur.

For example, if we imagine that while Sequences 2, 3, and 4 contain only four bars-worth of actual data, the final DE event could well be at a different point, say bar 17. The first example will play as intended because you are issuing specific start times for the sequences; the second will not as the triggering of subsequent sequences is dependent on the previous one finishing. What you'll get is a load of 'dead air' between one sequence and the next. You should also set the Repeat Time of the control sequence to 1 — actually this is not a hard and fast rule, but it will prevent nasty surprises such as this following example demonstrates:

Seq 1, Song 2a
MSR-BT: ST EVNT TIME CH TYP NOTE VEL DUR
1-1: 1 1 0 ST 2 0 1
1-1: 1 2 0 ST 3 0 1
1-1: 1 3 0 ST 4 0 1
1-1: 1 4 0 DE

Seq 1, Song 2b
MSR-BT: ST EVNT TIME CH TYP NOTE VEL DUR
1-1: 1 1 0 ST 2 0 1
1-1: 1 2 0 ST 3 0 1
1-1: 1 3 0 ST 4 0 1
5-1: 1 4 1536 DE


In this example, we have a drum pattern in Sequence 2, a bass line in 3 and string pad in 4, all of which are four bars long. Our intention is to start them off at the same time and have them repeating. If Repeat Time is set to 99 (ie. play forever) and we started off the first example, KCS would indeed start all three sequences off as specified, but because the final DE event is on the same time step as the start time it would continuously re-trigger, playing virtually instantaneously — the resulting racket is best left to the imagination! The second example is better because the final DE event provides the necessary breathing space to allow the looping to work correctly, although in general you should avoid this practice. More on control sequences next month.


More from these topics


Browse by Topic:

Computing

Sequencing



Previous Article in this issue

Sample Shop


Publisher: Sound On Sound - SOS Publications Ltd.
The contents of this magazine are re-published here with the kind permission of SOS Publications Ltd.


The current copyright owner/s of this content may differ from the originally published copyright notice.
More details on copyright ownership...

 

Sound On Sound - Dec 1992

Feature

Previous article in this issue:

> Sample Shop


Help Support The Things You Love

mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.

If you value this resource, you can support this project - it really helps!

Donations for November 2024
Issues donated this month: 0

New issues that have been donated or scanned for us this month.

Funds donated this month: £44.00

All donations and support are gratefully appreciated - thank you.


Magazines Needed - Can You Help?

Do you have any of these magazine issues?

> See all issues we need

If so, and you can donate, lend or scan them to help complete our archive, please get in touch via the Contribute page - thanks!

Please Contribute to mu:zines by supplying magazines, scanning or donating funds. Thanks!

Monetary donations go towards site running costs, and the occasional coffee for me if there's anything left over!
muzines_logo_02

Small Print

Terms of usePrivacy