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.
BUGS:
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.
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.
BUGS:
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.