Automated panning and cancellation question

I want to do symetrical stereo pulsing effects on certain instruments but I dont really understand what I should be careful of doing to avoid cancellation…

For example, If I had two perfect sine wave instruments both starting from center and moving outwards to hard left and hard right then back to center to do this kind of symetrical stereo pulsing thing would I have any cancellation issues? It will be fine on headphones, but what about on a two speaker setup, or two speakers and a subwoofer?

Ive heard people talking about inverting thing to avoid cancellation. Presumably if one of the two sine instruments mentioned above was inverted then it would cancel the other out. Is that right?

Also, is this kind of symetrical stereo pulsing thing going to be ‘mono-compatible’?

sorry, its a noob question

you can do a superficial check for mono compatibility easily…put a “stereo expander” on the master, and move the slider all the way to the left, so it’s value sais “mono”. Then toggle on/off, compare. If the sound is very much quieter in the mix in mono mode than it would be without monoing, then you have probably made something problematic.

Out of phase with headphones means, sounds will seem to come from the behind. With speakers it can also give impression of sound coming from the surroundings instead of from the speaker’s direction. This is only in the sweet spot, though. When the listener is moving, the results he hears can kind of change depending on his position to the speakers. So having cancellation can make the result flaky. With mono compatibility, you make sure that the listener will hear somthing good as you intended independently from his position to the speakers. Maybe certain smartphones will also mix the sound to mono before playing on a single speaker.

I feel it is most probably okay to do a certain amount of “out of phaseness” under certain circumstances. It can bring a sensation of sounds coming from the surrounding of the speaker, or from the behind with headphones… First thing is, if the mono mix (stereo expander on master…) sounds okay and with similar clarity to the stereo mix, it will probably be good. Second is, don’t put freqs lower than 200-300 hz out of phase, because bass is most problematic when cancelling itself. There are plugins to mono the sound below a certain freq, and this is a recommendable thing to do.

How much the cancellation will kill is depending on the amount of the phase shift. 180° on a sine are like total cancel, but 90° will only partially cancel. When collapsed to mono, the 90° sound will still be heard but quieter. If there is movement in the sound, the result might sometimes be okay in mono even with strong phase shift, as the sound wouldn’t be out of phase all the time…

The “phase shift is evil” thing mostly comes from audio recording business I think. Like when you record some sound, and another where the first sound is bleeding into the mics, you can have problems with the delay that the first sound get’s flaky by cancellation of the second sound. The engineer might then try shifting the second source, so that the cancellation is more optimal and the first sound isn’t being messed with when things are mixed together.

Last but not least, if you put out of phase in electronic styles, you mostly do it to create stereo width. Maybe you will want to use another technique to create the width, that will not create as drastic phase shifts, like using the chorus or phaser…

hey, thanks these are great tips. I know what to try and avoid now.
Especially keeping the bass mono, how to do the mono compatibility check.
Interesting about the spatial effects that can be achieved with phase.

So, basically in a two speaker setup in which the speakers are pointing diagonally inwards towards the static listener who is in the sweet spot if two sines are played simultaneously panned hard left and hard right, one of them being inverted, there will be cancellation.

Similarly if one of the sines is pushed forward (or delayed) by exactly half a cycle this will be essentially the same as an inverted sine, causing cancellation. That is where there is a peak on one, there is a trough on the other.

This must apply to any sound which is inverted and played back at the same time as another version of itself which is uninverted. For example, a snare drum panned hard left and inverted played simultaneously with a snare drum panned hard right uninverted.

As for the subwoofer, always mono fat bass…although perhaps if the bass sound has some mid or high frequency elements it may be possible to separate and pan somewhat, but in general powerful bass sounds should stay mono, because the longer and higher amplitude waveforms of bass sounds are more prone to cancellation issues.

This is seriously cool, Im going to really try to take advantage of renoise panning automation from now on.

Im surprised people who make music dont take advantage of panning and spatial effects more, with sounds flying byfrom left to right or right to left, or even circling, with front to back effects going on, taking advantage of either dolby surround for speakers or precedence effect on headphones. I guess in a nightclub or sound system speaker setup it cannot be advantageous to do things in this way, but in a cinema or inside game audio, it will be advantageous to provide a more immersive expeerience:

“The precedence effect or law of the first wavefront is a binaural psychoacoustic effect. When a sound is followed by another sound separated by a sufficiently short time delay, listeners perceive a single auditory event; its perceived spatial location is dominated by the location of the first-arriving sound. The lagging sound also affects the perceived location. However, its effect is suppressed by the first-arriving sound.”

Apparently dolby has already figured out a system which can also do up and down, or in other words, height (floor and ceiling mounted speakers and precedence effect for headphones).

At any rate renoise already has dolby surround capabilities for cinema or game audio people.
Im going to expeiment with panning a lot from now on.
One thing I have noticed about renoise panning though, is that as it has 256 points, an even number, there cannot be a center point for panning, instead there are two, named 0L and 0R.

"Dolby Atmos is a new 3D surround sound technology that is marketed as spatial sound . Embraced as the successor of the traditional surround sound (5.1 and 7.1), Atmos is a lot more clever when sending sounds to your speaker system or headphones.
While traditional surround technologies use 5 or 7 separate channels to distribute sounds, Atmos doesn’t use channels at all. Instead, it creates a surround effect by mapping sounds to virtual locations in 3D space, which also adds height to the whole surround equation. This is why all high-end sound systems with Atmos support include a ceiling-mounted speaker (or a floor speaker that bounces the sound off the ceiling). This all makes for a smoother, more realistic surround sound, otherwise impossible via the traditional channel-based approach.

The Windows 10 Creators Update also added a separate Dolby Atmos feature called Dolby Atmos for headphones . Instead of using an Atmos-compatible receiver and a special speaker setup, Dolby Atmos for headphones uses a digital signal processor (DSP). In other words, it fetches sounds from your PC and mixes it digitally for an improved spatial sound.
While this doesn’t achieve the sound quality of the main Dolby Atmos technology (via receiver), it makes up for an improved positional sound experience with every headset, headphones or earbuds. It’s extremely helpful for games because it makes it easier to pinpoint where the sounds are coming from.

perhaps future sound systems will be able to somehow scan the room for shape and density, position of listeners ears…taking advantage of these things to create immersive spatial audio experience…or even if there are many listeners, scanning for position of ears in combination with many small, laser-pointer-like directed audio speakers so that no matter where you are in a concert hall, for example, or inside a car, all the concert goers or passengers will always be in the sweet spot…the future of audio is a crazy mesmerizing thing to think about, what will be possible, not only for spatial audio effects but also more and more complexity in the field of physical modelling sysnthesis - eventually with enough processing power to account for the resonance of every atom, and build impossible physical instruments such as ‘blue whale’ or ‘mountain earthquake’…such things

In sliding bars or in automation the range is from 50L to 0L, Center, 0R to 50L. That’s 51 + 1 + 51 values, 103 values in total (instead of 103 they could have been 129 values). It is still an odd number. The values 0L or 0R is not the same as the Center value. I guess it’s a way to add more values and follow in a rounded format, 51 and 51.

Thus, the Left (or Right) side is also odd, being able to easily locate a right center, 25L:

  • 50L to 26L (25 values)
  • 25L (1 value) equals 50% to the L
  • 24L to 0L (25 values)

If you use the panorama parameter to the note, it has a range from 0x00 to 0x80, that is 129 values, from 0 to 128 values, which is odd, with its center at 0x40, the same range as the volume, when 0x80 is the same as empty.

Renoise has adjusted these values in a convenient way.

Dolby Atmos can use up to 64 audio channels in the most complex cinema systems and 128 audio tracks. Nor would I call it an “intelligent system”, but more appropriate to distribute the sound, compared to Dolby Digital to DTS. The sound engineers will have to configure the audio tracks for this system, that is, there is a very wide work behind to correctly distribute all the sounds to cover all the space, the three dimensions. It is not something that the Dolby Atmos system does alone.

To avoid strange things when playing with the panorama, if you use a stereo sample, it is advisable to convert that stereo sample into mono. That is, use samples in mono. So no portion of negative phase.

Otherwise, you can do what @OopsIFly, use the Stereo Expander with the Expand value in “mono”. In I do not know what forum I read that in “mono” does not really act as a mono, but as something that approaches.

O.K, sorry for the misunderstanding. I assumed the panning slider had 256 values without checking it properly.

103 values is great, as an odd number, no problem to find perfect centre, centre right, centre left as you said.

Is this the standard? Why was the decision to have 103 points in the track panning, but 129 points in the panning effect command made?

Also, I think the autopan command doesnt work properly…doesnt cycle in time (same as vibrato), am I wrong? Maybe Im missing something.

I was looking at the panning guide by someone on the forums, I believe it is wrong, although still quite useful, should be updated. Didnt take into account that there are 129 points in total including 0x00 as a point?:

These are great tips here, thankyou.

One last question, should I use tracks main panning, or add a gainer and use the panning in that for my panning automations? I guess that way I will be able to offset afterwards if desired?

If you use the Pxx parameter, the range is 0x00 left, 0x80 center, 0xFF rigth. Generally, the value 0 is also a valid value for everything in Renoise, and in mathematics.

Better use the panning in the pre-mixer, and do not use anything else in the chain unless it influences the panorama.

So you have two approaches here. If you use effects in the chain that modify the sound and play with the panorama, a profit at the end will allow you to correct what has been modified before in the chain of that panorama, not afterwards. Although to correct the whole chain you have the panning of the post-mixer, which you can not automate.

If you do not add effects in the chain that influence the scenario, it does not seem reasonable to use a profit to correct the chain. For that it uses the panning of the pre-mixer or post-mixer.

As a general rule, the fewer things you add in the chain, the better.

awesome, thanks. these are great tips…this should be interesting. pulsating, swelling panning stuff…movements in the panning. very cool

I think with the Pxx commmand there is still the problem of panning being handled in 256 values/points, an even number.

80 cannot be true centre…maybe it is both 0L and 0R at the same time?

but with panning sliders and panning column you can still do true centre, because they use an uneven number of values/points.

maybe this is a compatibility feature, so that panning commands from .xm and so on can still be imported.

also, reportedly the J and K panning slide commands work properly only at 8 tick per line.
same problem with vibrato, tremelo and autopan?

maybe these were done very early in renoise development and somehow there was a mistake about basing those commands behaviour on 8 ticks per line instead of 12 ticks per line

This is true. The range should be 0 to 256, that is, 257 values, odd range. The problem is that the decimal value 256 is equivalent to 0x100, the first 3-digit value. To respect the 2-digit value, it is necessary not to leave the range 0 to 255, that is, from 00 to FF.

Renoise is full of details of this type.

The MIDI input only accepts a range of 0 to 127, which is 128 values, from 0x00 to 0x7F. That is, the velocity can not return 0x80, only up to 0x7F. Therefore, 0x80 is like not putting anything in the maximum value of note volume.

A similar case occurs with the panorama of note. The MIDI input only accepts a range of 0 to 127, which is 128 values, from 0x00 to 0x7F, which is an even range. The value 0x80 has been added to complete it, just as in the volume.

They are extreme cases. With the delay of the note the 00 is empty, and the FF is the maximum delay, with an effective range of 0x01 to 0xFF, which is 255 values.

Perhaps in the Pxx effect, the value of 0x00 should be canceled, using a range of only 255 values, odd range, with 128 (0x80) as the center.

That is a little confusing about the volume column, in that the maximum is actually 0x80=127, not 0x80=128.

So, do you think with the Pxx command, if I enter 0x80, its actually setting two panning points, 0L and 0R, rather than true center??

Otherwise, what is the meaning of 0L and 0R? Ive never seen ‘one point away from center’ described in this way before…it must be a fasttracker2/milkytracker compatibility thing I guess?

What do you think about the broken panning slide, autopan, vibrato and tremelo commands?

When I tried them real slow at 32BPM and listened close I think its true that these commands have behaviour based on 8TPL for some reason. Needs to be changed to cycle properly at 12TPL. That is regular panning, volume or pitch variation in time with the song settings, looping perfectly when a pattern loops or is played more than once consecutively in the song.

So this is why all my old modules are lopsided towards one side? Doing stereodetunes by panning 40/C0 like a total No0b!
Maybe it’s dealt with by a multiplication factor on one of the sides? I’m assuming that 00 and FF are truly hardpanned. Gonna check the pattern command ranges with a phase cancellation test in Mxxx later.

If anyone has time, please check on the behaviour of the vibrato, tremelo, autopan, panning slide left and panning slide right commands…

seems like the effect column commands are looping their internal LFO based on cycles of 8 ticks, rather than 12 ticks…for the panning slide left and right commands in the panning column, seems like they will reach hard left or right from centre in time, on the beat only if ‘ticks per line’ is set to 8, not the standard, 12.

Its a shame because this kind of error just seems like it was a simple a ‘typo’ from years ago that hasnt ever been found. Like someone was thinking of ‘Lines Per Beat’ instead of ‘ticks per line’ and somehow entered 8 instead of 12…

vibrato and tremelo commands are nice and expressive, same with autopan…its such a shame not to use them, or to use them but to notice that they are weird…its just a small thing but it would be seriously nice to fix them so they work properly. for example, one vibrato cycle per line, two per line etc…or slow ones, one cycle per 4 lines and so on

Effect command column:

0Vxy - vibrato
0Txy - tremelo
0Nxy - autopan

Panning column:

Jx - Panning slide left with step x (0 - F)
Kx - Panning slide right with step x (0 - F)

Notice this quote from It-alien, from 9 years ago…

"admittedly, vibrato did not get the right attention when we decided, with the release of Renoise 2.0, to redefine the behaviour of tracking commands.

the backward compatibility problem pointed out by dblue is a false problem in my opinion, since we can base the behaviour of vibrato on the version number of the loaded song. Of course, the user should be aware of the fact that saving a song with the new version will break the vibrato behaviour."

Please fix vibrato, autopan, tremelo, panning slide right, panning slide left …:cold_sweat::disappointed_relieved::cry::anguished::frowning:

come on yo! it a small typo-like error

Not forget the most important difference:

When you use the panning column, you pan the instrument “per note”. So you can have multiple notes running in different positions in the panorama.

If you use gain slider somewhere in the mixing context, just the audio stream will be panned.

This is for me the main criterion for choosing which function to use for panning. Like the per note column if I want to do effects like a cloud of notes in the panorama. And the sliders for static panning, or automation of the whole track’s audio.

it is awesome that you can set panning, volume and delay separately for each note in a chord all within one track. the word cloud describes that kind of chord with spatial characteristics perfectly. I just wish the panning slide left and right commands would work out to pan things rythmically in time, so that each note in the cloud can also be moving, same goes for autopan (if each note in the chord was in a separate track). I havent tried it but presumably you can set a panning point with the panning column then add movement around that point with autopan. I think its exactly the same kind of time-error in tremelo and vibrato too. it can all be done with LFOs as a workaround but better, more efficient to fix those few pattern effect commands

for example, with autopan, vibrato and tremelo it is not possible to finish their cycles exactly on a line

with panning column commands it is not possible to pan hard left to hard right and have the whole movement end at a line boundary…it all seems to be based on 8TPL, instead of 12TPL.

Would be cool to have each note in a chord do stuff like head from right and left to center, crossover each other, then hang around a while ‘wobbling’ with an autopan, then head back to their start point and stuff like that…or to have them ‘bursting out’ from central confines to dissolve in the periphery

If you think that vibrato, tremolo and autopan have some problem, you should report it in the forum of bugs.
It is necessary to detail the problem so that it is understood.

There someone will listen. Here probably not…

I will do that, just tested it again…

to see what im describing, just takes two minutes to check it out:

set LPB to 8

pattern length to 16

BPM to 32

add a note

put V all down the pattern effect command column

put 0V1F in the first line’s V command

you can hear as the pattern loops the vibrato cycles out of time.

Try it with 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F.

They are all out of time cycles which you can notice as the pattern loops (although 0V7F and 0VEF are almost in time, still not quite).

Try it with T (tremelo), also out of time

try it with N (autopan), you can watch it cycling out of time in the VU meter at the top

Try the panning column, like J1 and K1…no matter what I do I dont think that its reaching hard left or right from center, exactly by the start of line 8.

When you see the error with those commands youll know what I mean. I would definitely want those cycling in time to be able to use them properly and without those annoying pops when the pattern loops.

I will put it into bug reports

I know there is a problem with Vibrato V, Tremelo T and Autopan N…but if Im just being dumb about the J (slide panning left with step x) and K (slide panning right with step x) please give me some tips. Im guessing that a J1 slides by one panning value per tick, so I gues the way to do these things would be to start with a Pxx command to set the place to pan from, then use a panning column J or K command on the following line, (or can it be done from the same line?), counting out the ticks and panning points to the desired position.

its like you said though, the Pxx panning and panning column panning have different scales (panning column has 129 points, Pxx has 256 points)…but I think it should be possible to just set a position with Pxx and start a slide with J or K on the same line, but it may be I can only do it from the following line.