Thanks for trying it out.
Thank you for sharing it!
What formats are your music files in? Any music files with embedded metadata should have their metadata loaded from the files after they are queued up.
I'm kind of illiterate when it comes to media formats, but the container is Ogg (originally I ripped to M4A using iTunes in Windows, and converted using ffmpeg, but these days I rip directly to Ogg using "Sound Juicer")..
When I load the library up in cmus (my preferred music player because it's console-based) it recognizes the metadata.
While I'm on the subject of metadata, one of my biggest gripes about music players is grouping music by "artist" instead of "album artist" (or just general fuckups with the artist data). For example, if I'm listening to an "Eminem" album I don't want the songs featuring other artists to be grouped separately. They should all be grouped together as a fucking album. I don't know who would want to listen to a particular artist + artist grouping separately. There's always playlists for doing that anyway. The general index should group by album/CD/distribution/primary artist.
If you can solve that problem better than other media players then I think you'll have a real "selling" point, even if you don't plan to sell it. At least you'll give people a reason to use it. With that in mind, a lot of people acquire (or at least used to) their music from "unofficial" steams that often had mislabeled or no metadata, but the metadata was usually available in the file names. Having a way to easily update the metadata from formatted filenames would also be another strong selling point. Nobody likes to edit metadata song-by-song. Ideally, the computer should be taught to infer it the same way people do, and then have fallback interactive measures for situations where the computer cannot figure it out or gets it wrong. Something extensible and dynamic allows the user to write their own programs to solve the problem. The easiest way to do that is probably to just allow them to shell out to a system command to do the work. A scripting language is another answer, but requires more work from you.
The library view won't show anything unless you set up some library folders. Click Library->Add Library Folder and select a folder.
I don't really understand what the panes are so that's probably the first thing I need to learn. I'm finding it hard to find documentation for this though. Here's what I currently have (I assume this is added to the library because when I started OMO back up this is how it came up):
I wanted to start "fresh" so I tried to delete all of these files. In cmus I can just hold down the "D" key ("d") and it will delete one by one near instantly until the entire library is empty (there may be more direct ways with a command line, but this is nearly instant anyway). In OMO, pressing "delete" appears to remove the currently selected song, but then it seems to lock up (or at least do nothing else) until I release the key. It should probably support a repeat mechanism that is intuitive (i.e., don't delete 100 files when I press it instantaneously, but if I hold it for more than say 250 ms then start deleting them faster).
I'm guessing the best way for me to start fresh now is to find its storage directory/file and remove it from the file system.
You can access the folder selector by holding Shift while pressing the + or ^ button in the player. Not sure if there is a such thing as a file selector that can open files and folders. I don't think Allegro's file selector supports it.
I'm pretty sure I have used GUI software that would allow you to choose either. Probably an "archiving" tool would be a candidate for that since you might want to add a single file or a whole directory/folder to the archive. I don't know if Allegro's API supports it, but it might be something to extend Allegro (or might require you to write platform specific code if you want OMO to be the best it can be).
That's a good point. I hadn't really thought about making all the features available with keyboard only.
You can navigate the UI with the keyboard using the arrow keys and Tab, but if you aren't using the library features, you will certainly be reaching for the mouse when the file dialog pops up.
I'll keep the keyboard in mind when I'm working on the next version.
The best way to do it (though it would probably require quite a lot of work upfront) is with a command interpreter and command line. Once every function of the UI is implemented with a command interpreter you can easily expose all functionality to the keyboard without any custom keybindings. And you can also expose an API with the command interpreter to remap keybindings without having to develop a GUI to manage it. Which means somebody can map any key to any command (or combination of commands, if your command language supports it) to a single input [sequence]. Very powerful indeed.
No matter what bindings you think to implement by default, users will be used to different ones and want to remap them. For example, I'm used to vi/Vim so I would love to move through the library using hjkl and /regex or something along those lines. An Emacs user might prefer Ctrl/Alt chords. And individuals might want to automate repeated tasks with custom keys that no other user would want.
A mouse and GUI are good for graphics, but the keyboard is the most accurate and efficient input you can get from the user currently. Sound doesn't really benefit from visuals as much as graphics do. Make the keyboard powerful and you'll make manipulating your music playback (and metadata editing!) efficient and powerful.
On second glance of that screenshot it looks like OMO might be displaying the metadata after all, but probably I assumed they were filenames because it's all just strung together. Separating the artist from the title may or may not help, but it's not clear what you're trying to accomplish with the panes. What I'm used to is cmus:
I think it's easier to read the metadata when it's separated. I'm not sure what those 4 panes in OMO are for, but I wonder if it's wasted screen real-estate for nothing.