I’ve added a new feature that allows for slide timers. This will be useful for image presentations, and announcements. It’s a timer on the presentation, not the slide, so each slide will be timed the same.

One thing that is limited, is that if you switch the presentation, but not the slide, the timer stops. I don’t really know how people plan to use the program, or if they will want to switch the presentation, but I may add some sort of icon indicating that a timer is running.

I’ve also switched the shortcuts to use Control-Left, Control-Right for moving slides, or Control-Shift-Left and Control-Shift-Right to switch presentations. I figure that’s eaiser for people to remember, and I couldn’t get Control-Shift-Period/Comma to work anyways (probably have to use Greater-Than symbol, but this seemed more intuitive).

I think that covers all the necessary things to use it as a presentation program on a single computer. All other features seem like good things to have, but not necessarily must-haves.

Announcing the newest version of Exposong! It now has on-screen notification, show logo, and some major bug fixes.

I’ve removed the BETA status, because I think it’s ready for production usage in certain situations. It might be easier for those who have good experience with computers, because there’s not an actual installer, and it requires a few extra programs (See Installation). Maybe by next version I’ll have at least a Windows installer. The NSIS installer is plenty confusing, but I’ll take a shot at making it.

If you need lyrics, Christian Devotional Lyrics is a good resource.

A lot of presentation programs has animation. One good thing about animation is that the movement signals a slide change. A lot of times, I notice when I follow along with a song while someone is presenting, if my eyes move at the same time that the screen changes, then I don’t realize it’s changed, and I’m lost for a bit. Animations solves that, and as long as they’re not so crazy that they distract from the purpose of presenting content, I think animations can be good.

I think Clutter would be a good option to create animations. It has some built in stuff, and uses OpenGL to render these. I’ve just looked at some of the docs and stuff, so I don’t quite get it all yet, but the built-in animations look good, and the videos I’ve seen are impressive. I may have to take a look at some of the examples to see what exactly can be done.

One issue that I have is that there is no windows executable. I may have to create a fallback, just in case the user doesn’t have it installed, or doesn’t have 3D available (or some may not even want animation).

Clutter looks pretty exciting, and maybe it will have matured a bit by the time I get Exposong 1.0 released.

New Release of Exposong. New in this release is image presentations, and information is shown on lyrics presentations.

Exposong Background Select

If you’ll look at the bottom, beside the preview, you can see the new background selector. You can use both images, or plain gradients.

I would dare to say that ExpoSong might even be ready for actual use. Of course, you can’t do much more than plain-text slides (lyrics too, but it’s plain-text as well), but there’s nothing wrong with an assembly without images/videos.

Announcing version 0.3 of Exposong! With custom schedules, presentation backgrounds, plugins, faster screen rendering, and a major overhaul of all the source code, it’s an estimated 250% more usable than the previous version! There’s even a German translation for native speakers (we’ll be needing more translators for other languages, for anyone who wishes to be involved).

For plugins in ExpoSong, I’ve gone mostly the route that was in the tutorial at pocoo.org. It’s helped me in understanding it a lot, but I decided to go the route of abstract classes, instead of a capabilities list. This helps documentation, and lets the developer know exactly what needs to be implemented without searching through developer documents.

There’s so much I’m learning about programming while making ExpoSong. A lot of it would have been nice to know while I was making the bulk of it, but I’m learning as I go. Instead of having the classes be attributes of the main class, from what I’ve figured out, I think it’s going to be best to put the class attributes in the module that the class is defined (e.g. schedule.py, Schedule (class), schedule (attribute)). Hopefully, this will allow me to cut down the 400 lines of code in the application.py file. We’ll see.

I’m going to have to do some major changes before I can get 0.3 pumped out, so I’m going to see what I can get done in the next couple of weeks. I’m just now starting to get some motivation after Spring Break (time off always kills me when I have to come back). Once I get plugins working, I should be able to pump out new features a little bit easier, so we’ll see what happens.

Edit 12:02am: I may start pumping out code for my boss, so I can get paid. It is more important to pay the rent than to get ExpoSong further along, so that’s where my priorities lie. I’ve got a paper due on Thursday as well, so that’s also very important. I may have to remove all signs of games from this computer so I can get something done.

I’ve taken a dive into creating a plugin system for ExpoSong. It’s been a ride, because I’ve never built anything like this before, and had no training on how to do so. I had to do quite a bit of research, and used a lot of the information from pocoo.org (that’s actually the 2nd tutorial from that site that has helped me with my program). I’ve moved some code over to a plugin, but haven’t actually tested it out yet, which is usually a bad idea, but I hope that it will work.

The tutorial uses a `capabilities` attribute to show what a class can do, but I modified it so that instead of using an attribute, it is a subclass of another class. This helps with documentation, and seems like a more intuitive way to do things as well.

I’m just now getting it going, but soon I hope to get it integrated so that I can get more done.

I’ve gotten schedules fully implemented, (knock on wood). Drag ‘n Drop goodness, right click menus, and a lot more. I’ve also started a little bit on preparing the program for translations into other languages, but I don’t think it’s quite there yet.

I’m trying to figure out how to shorten main.py. It had over 500 lines of code, but I just got it down to a little less. The farther this program gets, if I don’t figure something out, it will be much longer than it should be. I may have to create a bootstrap file to get everything set up like I want.

I’m glad I could get a lot done today. Usually on days where I don’t have anything to do, I put off everything I could do, and don’t get anything done at all, if that makes any sense at all. Maybe I’ll have ExpoSong 0.3 in a couple of weeks.

Exposong 0.2 has been released!

Changes:

  • Presentation type is denoted by an icon.
  • Preferences dialog to set presentation background, ccli#, etc.
  • Scedules: No custom schedules yet, but can filter by presentation type.