Cortina - a Musical Curtain Between Sets

Download and get help for different MediaMonkey Addons.

Moderators: Peke, Gurus

Soren Werk
Posts: 29
Joined: Sat Jan 12, 2008 1:24 pm
Location: Denmark

Cortina - a Musical Curtain Between Sets

Post by Soren Werk » Wed Sep 10, 2008 5:55 pm

I often DJ a tango "milonga" (argentine tango ball).

It is customary for tango dancers to dance three or four tangos with the same partner - and then say "thank you for the dance" - which means "goodbye". To facilitate this the DJ often plays a "tanda" (set) of three or four similar tangoes and then a "cortina" (musical curtain). A cortina is a short piece of "undansable" music - like country or rock. The idea of the cortina is to make people sit down so everyone can find a new partner for the next dance.

I allready worked out how make a short gap between each song. See my article I need a gap!.
But how do I programatically insert a cortina after (say) every third song in a playlist?

Suggestions anyone?

Posts: 14153
Joined: Sat Oct 25, 2003 7:57 am
Location: (Texas)

Re: Cortina - a Musical Curtain Between Sets

Post by rovingcowboy » Thu Sep 11, 2008 10:31 am

no that intails too much hands on stuff to do,

i think peke's windows task scheduler script will do what they want,

they can get it and make playlists, of all the tango's they want to play in a row.
say 4 on each playlist. then make a playlist with the dance break curtain song on it.
and have a copy of the script for each playlist with a set of four songs.
and have the curtian playlist on another script.

then they can set up the task jobs to run the scripts by the known time lenght of the songs.

in order to make the songs end on the minute mark and not the second mark they would need
to make blank silent song wave's of so many seconds not one wav but several of different lengths'
so they could use them to fill in the time to be on the minute of the playlists.

say the songs all play out but stopped at 10 minutes and 39 seconds. then they need a blank wav file
for 21 seconds to fill in. but who wants dead air for that long at one time. so make 3 blank wave files
for 7 and 8 and 6 seconds to use one each between the tango songs. that gives them short times to get
set to start the next dance and the end of the last dance monkey changes to the curtain song.
plays it, there should be 2 blank wav files on that playlist. to fill in the seconds one on the start and one on the end of the curtian song.

but you of course would have to use monkey's player with the shuffle turned OFF so the lists are played in order.
or monkey would shuffle the blank wavs and play two of them or all of them at once. giving you that long dead air anyway.. so turn off shuffle when doing the above playlists style for dances.

the plus to all this is that you can leave the dee jay booth for nature's call and not worry about the songs stopping when your not there.

roving cowboy / keith hall. My skins ... =9&t=16724 for some help check on Monkey's helpful messages at ... 4008#44008 MY SYSTEMS.1.Jukebox WinXp pro sp 3 version 3.5 gigabyte mb. 281 GHz amd athlon x2 240 built by me.) 2.WinXP pro sp3, vers 2.5.5 and vers 3.5 backup storage, shuttle 32a mb,734 MHz amd athlon put together by me.) 3.Dell demension, winxp pro sp3, mm3.5 spare jukebox.) 4.WinXp pro sp3, vers 3.5, dad's computer bought from computer store. )5. Samsung Galaxy 5 Android 5) 6. Proscan tablet Android 4.3 ) 7. amd a8-5600 apu 3.60ghz mm version 4 windows 7 pro bought from computer store.

Posts: 10024
Joined: Fri Aug 26, 2005 3:28 am
Location: Hull, UK

Re: Cortina - a Musical Curtain Between Sets

Post by trixmoto » Fri Sep 12, 2008 8:47 am

Well it's certainly possible to write a script to do this because I've written one very similar. However, this script was commissioned and therefore not for public release.
Download my scripts at my own MediaMonkey fansite.
All the code for my website and scripts is safely backed up immediately and for free using Dropbox.

Posts: 2
Joined: Tue Oct 26, 2010 10:40 am

Re: Cortina - a Musical Curtain Between Sets

Post by CMK » Mon Mar 07, 2016 4:24 pm

Anyone who is interested may use my MediaMonkey Cortina Plugin for free.

Info and download: ... diamonkey/
Source code on GitHub:

This plugin does several things that are helpful for Tango DJs:
  • It can make any song into a fully configurable cortina on-the-fly. You can configure the plugin to search for the word "cortina" (case-insensitive) in any combination of the file path, the song title, the genre (this is what I use), or any of the custom tags.
  • Cortina length is configurable. The length automatically takes into account the fade-in and fade-out times. In other words, Cortina Length = Fade-in time + Cortina maximum volume time + Fade-out time.
  • Fade-in is a linear fade-in, configurable from 0 to 10 seconds.
  • Fade-out is a smooth cosine fade-out, configurable from 0 to 15 seconds.
  • Full Cortina length (which includes Fade-in and Fade-out time) is configurable from 15 to 240 seconds. If the song being used for a cortina is shorter than the configured cortina length, the plugin will automatically adjust the timing to fit the actual length of the song.
  • The maximum volume part of the cortina is configured as a percentage of the main volume (the volume tandas are played at), configurable from 0% to 100% (75% works well).
  • A silence gap, from 0 to 5 seconds, can be added to the end of all songs, including cortinas. You can set MediaMonkey to remove silence from the beginning and end of songs (which varies drastically from source to source) and then let the plugin add a precise amount of silence back in at the end of every song.
All these settings can be changed on-the-fly to allow you to adjust to changing milonga conditions. However, once a cortina has started going through it's cycle, changes to the settings will not be noticed, but the next cortina will be effected by the changes. For example, at the start of the evening, or for practicas, you might want short cortinas, then as the floor gets crowded you can increase the length of the tanda. I have DJed at milongas with such high energy, and so much talking between songs, that I really needed to increase the silence gap between songs to 5 seconds.

If you use the "Analyze Volume" feature (R128 ReplayGain) of MediaMonkey on all your music and switch on the "per Track" Volume Leveling, you will have excellent volume control of both tandas and cortinas. Less time wasted dealing with big changes in volume through-out the evening.

WARNING: This plugin, combined with MediaMonkey's Volume Leveling, will eliminate many of errors that most Tango DJs commit. But your lack of errors will go unnoticed and your excellence in good DJing will soon be taken for granted. :lol:


Re: Cortina - a Musical Curtain Between Sets

Post by CaloFan » Sat Mar 12, 2016 2:21 pm

This is just what tango DJs need. Sadly, it doesn't install on my system.
MM Gold, MM run as administrator, on a Windows 10 fresh install.
The install seems to work and gives the successful install message.
Cortina is visible under Extensions, when selected only the Uninstall is active, others grayed out.
But there's no trace in the Extensions or Scripts folder or any visible change in the skin.


Re: Cortina - a Musical Curtain Between Sets

Post by CaloFan » Sat Mar 12, 2016 2:24 pm

Gah. Cold boot and it's there. Sorry.


Re: Cortina - a Musical Curtain Between Sets

Post by Spiky » Tue Dec 13, 2016 6:12 am

This is very nice, I love the concept and especially the gap setting (which I think is mislabelled in the settings screen, as I think it applies to all tracks, not just after the cortina). A great timesaver.

It installs fine for me, but the cortina part doesn't work as expected. I set 45 seconds. It detects and starts playing the cortina, and starts counting down the number of seconds left (showing the number I set), but regardless of the setting, the cortina fades out after just a few seconds and the next track begins.

In fact, it seems to be actually using the same number of seconds as the gap - not the number set for the cortina.

Windows 10, MM Gold

Posts: 3
Joined: Tue Dec 13, 2016 7:24 pm

Re: Cortina - a Musical Curtain Between Sets

Post by spiky » Fri Dec 16, 2016 4:45 am

This is brilliant and does simplify the task quite a lot, leaving us free to concentrate on other things.

I have found a couple of bugs. Windows 10, MM

If I set the "fade in" time to 0, then the cortina does not play properly. Instead of using the length setting for the cortina, it plays the cortina only for a few seconds (I think the same number of seconds as the between-track silence). On the other hand, a fade in of 1 second either does not work or is not too perceptible, so it's easy to work around.

The cortina volume setting does not seem to do anything, and the setting also does not remain as you set it. It seems to be affected by the fade-out process and it drifts downwards. When I re-open the configuration window having set it at 100% I find it at 27% or 17%. However, it does not actually seem to do anything to the volume of the cortina. On one test I think it may have drifted to zero (and the cortina was skipped), but I haven't reproduced this yet.

And I already have a wish list: I'd like the silence between tracks and the silence after the cortina to be different. Because the cortina fades out, the same value doesn't actually quite work there, and I think this would be more of a problem in a noisy environment.


Re: Cortina - a Musical Curtain Between Sets

Post by syslogs » Thu May 24, 2018 4:06 am

I too am having the problem with volume. I dove more into the plug in and found the config filed for it, opened it in notepad, but wasn't sure which setting to modify

Posts: 2
Joined: Tue Oct 26, 2010 10:40 am

Re: Cortina - a Musical Curtain Between Sets

Post by CMK » Tue Jul 17, 2018 4:59 pm

Some more info about what happens inside the cortina plugin.

* This was designed for use on full length songs. The plugin retrieves the song length before playing. If the song is shorter than the current cortina length setting, then the plugin will automatically change the cortina length to the length of that song, just for that song. So if you set the cortina length to 50 seconds, but you give it a 20 second song as a cortina, it will play it as a 20 second cortina instead of 20 seconds plus 30 seconds of silence.

* Fade-in is linear, as it was expected to be short. This is mainly to mask any sudden changes in volume if you are setting the start-time of a song sometime after 0:00.00 in the song's Properties=>Details. Due to the logarithmic nature of human hearing, you may not notice short fade-ins like 1 second, but it will still mask any initial pops if you are starting a song some time other than the beginning of a song. I recommend a minimum of 1 second for fade-in at all times.

* Fade-out is a cosine function and will sound more like a natural fade-out to the ear. But the longer the fade-out time and the noisier the venue is, the more it will sound like the silence after the cortina is too long. I would not recommend setting this to anything longer than about 8 seconds.

* The cortina length setting is for the entire cortina. In other words, if the fade-in time is 5 seconds, and the fade-out time is 5 seconds, and the cortina length is 20 seconds, then the full volume portion of the cortina is 20seconds - 5seconds - 5seconds, or, 10 seconds long. If fade-in + fade-out > cortina-length, then the behavior most likely is not going to be what you want. I did not see the need to bog-down the code with more error checking on this. Users should just be careful not to do this.

* The plugin tries to capture the current volume setting at the start of each non-cortina song and saves it. When a cortina is encountered in the playlist, its volume is calculated as a percentage of the last non-cortina song volume captured. After the cortina finishes, the player volume is reset to the last non-cortina song volume captured.

* Cortina volume is a straight percentage calculation. Human hearing is logarithmic. A cortina volume of 90% may not sound like any change at all, while a cortina volume of 50% will most likely sound too quiet. I recommend 75%. If you are in a noisy venue, you will probably need to set that higher. If you are using an audio compressor on the output, you will probably need to set it lower. The main idea is to make sure your cortinas never sound louder than the tandas. Dancers are there for the tandas, not the cortinas, right? Music produced after the 50's is often compressed and sounds louder than Golden Era tango music. This setting lets you compensate for that.

* There should be no reason to mess with the plug-in's .ini file. All settings are available from the Play=>Cortinas menu item.

* You can change the cortina settings on-the-fly, while music is playing. However, the new settings will not take effect until the next song plays. In other words, if a 30 seconds cortina is currently playing, and you change the cortina length to 40 seconds, it will have no effect on the currently playing cortina. But it will effect the next cortina played.

* All time settings are implemented with the VBScript SetTimer function. It works "good enough"(tm). Do not expect microsecond accuracy.

* The plugin needs to use the Stop After Current setting of the Player on all songs. Do not mess with this setting if you want the plugin to function correctly.

* Crossfade must be set to off at all times. But Smooth Start, Smooth Stop, and Remove Silence settings are all fine, and recommended to be set to on.

There are some odd conditions that the plugin can get into. I am working on a new version to fix these problems, but here are some work-arounds.

* VERY IMPORTANT: I highly recommend a player skin that displays both a Stop and a Pause button. I recommend the VitreousDark skin. If you do not want to do this, and you need to stop the music for some reason, please use the Play=>Stop menu item instead of pressing the Pause button. Not doing so could lead to strange behavior of the plugin because of the use of timers. This should be fixed in the next version.

* Non-cortina songs start playing at cortina volume, changing the volume in MediaMonkey works for the current song, but the next song will go back to the lower volume. Work-around: Stop playback, set volume, resume playback on non-cortina song. Tip: Add a file that is just silence after the currently playing song. When that silence file starts playing, click Stop, set the volume, double-click on the next song.

* Cortina volume doesn't seem to be calculated properly for main volume settings that are less than 100%. This is a bug in the calculation. Work-around: Always use 100% volume. There is some wisdom from iTunes users that using 100% volume can lead to problems, but this is not true of MediaMonkey if you are using ReplayGain on all songs (and you should be, it is infinitely better than iTunes SoundCheck(tm) volume control).

* Depending on the fade-out setting and how noisy the venue is, people may perceive the silence after the cortina as too long. I recommend short fade-out times in these conditions. However, the new version of the plugin will have separate settings for Silence between songs (non-cortinas), silence before a cortina, and silence after a cortina.

* There used to be a bug where using more than one method of tagging a cortina might result in some cortinas not being recognized. For example, if you check-marked looking in both Filename and Genre, then only songs with the word "cortina" in the filename would be recognized. This bug has been fixed. Make sure you have the latest version.

* The plug-in was tested with the waveOut, DirectSound, and WASAPI output plugins. DirectSound and waveOut should work fine with default settings. WASAPI could cause problems, try messing with the Advanced settings to see if you can make it work better. Setting the buffer size very high or very low could cause problems. Make sure crossfade is disabled.

Post Reply