AutoFTP - nice util for uploading song info

We already have a connector. It’s the one from mairlist-hardware site.

I just wouldn’t know where to start script wise haha!

Well it’d be a very basic one a bit like this…

[code]begin

sl := TStringList.Create;
sl.Add(‘More music soon…’);
sl.SaveToFile(‘C:\nowplaying.php’);
sl.Free;

HTTPGetAsync(‘http://server:port/admin.cgi?pass=password&mode=updinfo&song=More music soon…’);

SystemLog(‘The microphone is on…’);

end.[/code]

Save that as MicOn.mls and put RUNSCRIPT C:\mAirList\scripts\MicOn.mls as the joystick action. RUNSCRIPT can also be used on keyboard shortcuts and Playlist Command items - it’s very flexible.

Ah right, i understand now.

The signal would run the script, but save to the same file as everything else…i get it!

Brilliant…Thanks for your help Charlie.

Ryan.

Actually, Ryan and Charlie, the best and cheapest mixer-tally-signal-to-PC interface is the guts of a USB game controller pad, preferably one with as many buttons as possible. For example, the Logic3 ten-button USB gamepad I’m sitting looking at now.

Obviously (?) to use this idea, you need to have a mixer which has a connector (or connectors) with pins which echo the mixer switches, such as the ‘mute speakers’ microswitch on the mic. faders, or the channel on/off switches, or the channel PFL switches: whatever it is you need. If the mixer doesn’t have those available, no point in reading further!

You first set up the game controller on your PC as a device as normal, and check it’s all working using the Control Panel, Game Controller, Properties page, Test tab. Forget the pad part, it’s the buttons you’re interested in here. Check that each one lights up properly when pressed, then unplug the controller and take it (in my case) to your chum who’s a whiz with a soldering iron. Get him or her to dismantle the controller without disturbing the existing USB cable (that bit is CRUCIAL!), then solder up wires to the copper pads on the main board originally operated by the buttons, and finally to attach those wires to a suitable external connector (or set of connectors) which suit your mixer’s ‘tally signal’ sockets or similar. Ideally, the game controller internal board would either be nicely fitted into a suitable box, or it could be mounted inside the PC case like the one in the mAirList site pictures. If the latter, you would a) run the mixer-side connections out to a connector on some part of the back of the PC like an unused expansion slot’s plate, and b) you’d finally have a device you could plug in to the INTERNAL socket on your USB card! :smiley:

You then go into mAirList config, Remote Control, and set up the gamepad’s ‘buttons’ (now operated by switches inside your mixer!) to perform the desired function. This might be PFL, start or stop the player assigned to a mixer channel, or (as in this case) run a mAirList script. Because you started with (in my case) a ten-button gamepad, you have up to ten of these ‘tally’ signals to play with. In the unlikely event that ten isn’t enough :o, you can repeat the process with a second gamepad board for another ten ‘remoted switches,’ and so on.

Hope all that makes sense?

BFN
CAD

Re USB Gamepad setup…

I have some questions having used a gamepad externally with automation software and attempting to integrate the PC board into a mixer.

How do you isolate any electronic/electrical noise from the gamepad from leaking into mixer circuitry? Ferrite beads or the like?

Have you come up with a way of sending a tally confirmation back to a visual indicator (LED or similar) acknowledging the required action has taken place?

EG Press button 1 = Start MairList play and simultaneously send back a command back to the gamepad which lights a visual indicator (a user add-on) which extinguishes when another (different) command (button) is requested (pressed).

As an aside I have some gamepad mapping software… Joycur

JoystickCursorTool is a small utility simulating keyboard keys using a joystick. It can be used for keyboardless navigation in browsers and file managers, playing games without native joystick support, using the joystick port for electronic interfaces without needing to write a joystick driver as well as other situations where only a small subset of the keyboard is typically used. It's supported by Windows (installed as primary or secondary joystick). Up to 4 axes, 16 buttons and point-of-view are supported

I think I posted some info on this software around 2 years ago

http://www.deinmeister.de/joycur.zip

Chris: you don’t use the entire gamepad if you’re connecting it to a mixer. You only use the circuit board and USB cable from the gamepad, and throw the case and buttons away. You solder connections to that circuit board and run those connections out to your mixer’s ‘remote’ tally connection sockets.

The point is that the board is used as a cheap and simple way of interfacing your mixer’s tally connections to ‘look like’ a standard gamepad to the PC (and thus to mAirList). Hence it’s very simple to set it up in the Remote tab of mAirList config. So, when you lift a fader or press a ‘start’ button on your mixer, that connects to where one of the gamepad’s buttons was, and hance your PCis ‘tricked’ into thinking it IS a gamepad button being pressed. Within mAirList, using that same example, you would define that ‘button’ as PLAYER 1-1 START, for instance.

Does that explain it better? The idea is to save you having to spend lots of cash buying a specific and usually expensive interface board etc. to hook up your mixer to your PC. Also you can guarantee that it will all work with mAirList! :wink:

There’s a picture somewhere on the main mAirList site which illustrates how it looks if you fit the board inside your PC’s case.

BFN
CAD

Thanks for the more elaborate explanation Cad.

My point is that as most peripheral devices on many computers generate electronic noise and connected to mixers, and there are various ways to deal with this.

I assume your electronic service person/technician has checked for induced interference, and I’m wondering if you had this problem and if so, how it was dealt with.

Opto isolaters, and various other RF supression techniques are employed to stop this problem.

I expect that Charlie knows what I’m referring to.

To further elaborate, I have designed a mixer which has the “guts” of a game pad built into the mixer, and will eventually have a standard USB cable to connect the mixer to the computer, hence my source of interference is close to my mixer circuitry.

I don’t have fader start, just 8 buttons built into the mixer for various actions.

Again I reiterate, have you, or has anyone come up with a visual confirmation, via software and then via RS232 or whatever to send sufficient current and voltage back to a button with a LED in it to confirm an action whether it be from a gamepad or other peripheral device.

Any advice from technically inclined people is welcomed.

Hi Chris,
There is, of course, the IO Warrior which has multiple input/output pins - these could be used to either control mAirList and/or provide feedback of a certain status (Engine OnAir, PlayerEOF etc). I would imagine that the IO Warrior is reasonably EMC-friendly so if you wanted to place it inside your console, you could - However it would be preferable to have a short USB cable and mount the unit in a (metallic) 1U Rack box to avoid long and lossy USB cables. Then simply use screened cables for your I/O connections to the mixer.

Most desks (and hopefully yours, too!) have opto-isolators tied to their remote-starts which totally isolates the computer from the mixer - So, if you’re using the game port, you wouldn’t need to add more optos.

I’ve only used the serial port for external control - DTR goes high when a script is fired (via Actions on Start) and this toggles the RDS’ traffic flag.

Chris: I see what you mean, but no I haven’t needed to do that. Anything I’ve ‘hooked up’ in this way already has its own internal indicator (e.g. a PFL button on a mixer) which ‘lights up’ all by itself.

Admittedly this isn’t quite the same as having mAirList somehow send back a signal or voltage to say ‘yes I “got” that button press, thank you.’ As Charlie said, you would need to use something like an IO-Warrior; and I’m not sure how mAirList could implement a ‘send tally back’ facility other than by Notification script (aka Event Handler). Even that is still not really the same as what you’re asking for.

I think I can see why you would want this, but in purely practical terms, most mixers do the ‘light up’ thing without actually caring about a return tally from external kit as a ‘confirmer.’ Generally speaking, your ears and eyes will tell you whether it’s all working or not; and whilst a ‘return tally’ would be the most bombproof method, I’ve rarely if ever seen that implemented on ANY kit.
[FX: braces self against barrage of ‘but the XYZ MegaFruntlze DOES do that!’ replies :-]

BFN
CAD

Well, of course you can trigger an additional RUNSCRIPT command when the button is pressed, calling a script which provides the visual feedback. So instead of e.g. “PLAYER 1-1 START”, just enter “PLAYER 1-1 START;RUNSCRIPT c:\feedback.mls”.

Does your PC have a parallel (LPT) port? It’s fairly easy to use drive LEDs from its 8 available outputs. It can be operated from a script with the IOPort() command. There’s a forum post somewhere which explains how to use it.

I suspect Chris might also be looking at having his mixer LEDS light-up when mAirList is in automation - so that each player triggers the start LED on that particular mixer channel… ?

The Denon DN-9xxx CD+MD machines are good examples of where the tally signals are used - With the right mixer, you can wire-up the Denon’s LED voltages to your mixing desk and have the Play, Cue and flashing EOM indicator right under your nose as opposed to 90’ to your left/right :slight_smile:

Hi Charley,

I am after a simple script that will export the now playing Artist and Title information to a php file which can then be uploaded for use on a website. I noticed this thread and used the example script that you postd in your orgional post, but I am gtting an error when it runs.

Error executing Action run script (C:\Program Files\mAirList 3.0\nowplaying.mls): [Error] (5:15): Unknown identifier

Is ther something that needs to be modified now as this is an old post?

Any help appreciated :slight_smile:
Chris.

GetArtist needs to be changed to GetArtistsString. This has been the case since Torben added support for multiple artists per item. :wink:

Glad to help.

BFN
CAD

Thanks, that has cleared the error howver it doesn’t seem to be doing anything.

I have created a new timed event to run the script, however after it has run the nowplaying.php file is not created in the specified location. I have tried creating a blank nowplaying.php for it to overwrite with the correct info but nothing.

Once this script has run once does it have to run again?
I’m sure it’s something simple but I’m not sure where I am going wrong.

This type of script really should be set up as a Notification Script - to run when a particular event occurs (ie: OnPlayerStart) rather than, say, every 3 minutes. It means that you only update the information when it’s required. I think 99% of the scripts that I’ve posted here are v2 ones so as Cad says, some of the functions will need to be converted over to v3.

It would help if you could post the full script rather than “it don’t work” :wink:

Hi Charlie, this is the script I have used…

[code]procedure OnPlayerStart(PlayerControl: IPlayerControl; Item: IPlaylistItem);
var sl: TStringList;
begin
sl := TStringList.Create;
sl.Add(Item.GetArtistsString + ’ - ’ + Item.GetTitle);
sl.SaveToFile(‘D:\nowplaying\nowplaying.php’);
sl.Free;
end;

begin
end.[/code]

I think I may be getting the wrong idea of how to run this to achieve the rersult. How would I set it to run as a notification script?

Many Thanks.
Chris.

Ah. OK, your script looks fine, but you need to close mAirList and then go into Config, where you’ll see Notification Scripts as one of the main nodes in the tree in the left-hand pane. Click that node in the tree, then Add… your script so it appears in the list in the right-hand pane, Save the config, then open mAirList again. Simples! ;D Your script should now work as intended: let us know if it doesn’t.

PS: An arguably easier and more flexible way to do this would be to use Config to create a Logging file (click Logging, then Add, Log file, which will be a text file) which is overwritten each time. In the Configure Logging dialog, type D:\nowplaying\nowplaying.php as filename (or use the … button if the file already exists ;)), tick the Overwrite existing log file checkbox, type %a - %b in Start Entry Format, leave Stop Entry Format blank, then click OK. That will do exactly the same as your notification script does. 8)

BFN
CAD

Just thought I’d throw this into the pot, I’ve been using ‘Fling File Transfer’ (its free) to update our now playing info and webcams for aaaages now and it has proved itself as a reliable tool on our server.

http://www.nchsoftware.com/ftp/index.html

As an alternative, you can use the FTP_engine.exe and its .ini included in my Shoutcast title update package available @:
http://homepage.internet.lu/radiorom/SC_Interface/V3_3/SC_Interface.rar

V4.1 is ready for release. I just have to finish the doc. New is support for VDJ logging files and real manual mode.

regards:
-Serge-

Nice find: thanks for that!

Though, for ‘standard’ FTP, it’s hard (impossible?) to beat FileZilla IMHO. :wink:

BFN
CAD