(06-30-2020, 05:22 PM)Zubersoft Wrote: Hello Stretti,
Adding support for timed page turns is certainly on my list of things to do. I'm currently working on finishing the new design of the annotations functionality and the upcoming iOS version. After those are finished, then I will be switching gears to working on new features such as this, chord grids, song versioning, etc. It's going to take me a bit to get through everything though, so if you need something in the short term, that's not going to be possible. It's not simple for me to sneak in new UIs to both Android and Windows (and potentially the companion application), update the database to have new fields to store all this, get translations for 15 languages, provide easy ways to cancel/restart the paged time transitions (will it start automatically, with pedal actions, touch actions or MIDI actions, etc) and ensure this works properly when using all supported features such as the "Connect Tablets" feature. While it's simple enough to have a basic UI that accepts a list of times for each page, anything fancier (such as a horizontal list with thumbnails for pages with the assigned time below each), would take more time and planning. If this feature needs to support partial page turns, needs to support triggering link points, or any other more complex mode of navigation through the song, this would obviously take a lot more time than just triggering a simple whole page turn.
I certainly want to provide support for EQ, but I haven't had time to implement the UI for this (I was thinking of a simple 3-band or 5-band eq). Volume envelopes would require a more complex UI where you can assign the volume amount over the period of the entire track. If I wanted to show a preview of the waveforms over the entire duration of the track, I would need to add code for that too.
I currently support up to 6 pedal actions which are nothing more than key bindings. I plan on supporting any number of key bindings in the future on a separate settings screen. I don't currently support MIDI over WiFi as there are no open source libraries available to handle this for Android and Windows (C# UWP). If you know of any libraries that are open source for commercial use, or any that are sold with a fixed price license, please let me know. I may try to implement my own library to handle MIDI over WiFi in the future, but this is not a terribly high priority. There are devices that can convert MIDI over WiFi to USB such as the mioXM. If you can get the MIDI messages into MobileSheets, you can map MIDI messages to actions under Settings->MIDI Settings->MIDI Actions.
As far as licensing goes, your choices are to purchase through an app store such as the Google Play Store or the Microsoft Store. I highly doubt either of those companies will go south. If you purchase through my FastSpring store, it uses a license key and contacts my licensing server for the initial few license checks. There is no offline licensing option. I need to protect my app from piracy (which is a major problem on Android), but I don't believe my implementation is very demanding. If you want more details, contact me directly at mike@zubersoft.com.
Mike
----
Thanks,
Could you give me a rough estimate when you will get to adding an automated page turning feature? E.g., 6months or 4 years. I don't mind waiting a few months or so but years would be a problem.
Maybe you could rig up something, when you get the time of course, where you simply start a "page turn record mode" when playing back an audio file that records the page turns from a foot switch(or possibly swipe). This would be very minimal code(I'll explain it just to get your juices going if you haven't thought about it):
A record button, an enable button, and a remove all button(so if mistakes are made one can start over).
When record is enabled and playing, simply store the page turns with the page number and time in to the song. Might need to remove any burst of changes within some short time such as a few seconds(for mistakes, just keep last one).
Then when enabled, as the song is playing one just polls(or queues up) the page changes(not sure how well this would work on android, in my software I do it in the audio buffer loop so it is quite accurate).
The remove/clear just deletes all the page turns for the song so just a few lines of code.
Such a method would be minimal implementation and function well. Of course it would be nice to be able to edit the timings, pages, etc but it it is not necessary for a simple implementation.
From there you can then expand on it later on.
It's really minimal code, in your code that hands the page turns:
if (RecordPageTurnsEnabled)
{
RecordedPageTurns ~= new RecordedPageTurn(playbackTime, Page);
}
and in your playback thread
if (RecordPageTurnsEnabled)
{
foreach(r; RecordedPageTurns)
if (r.playbackTime ~= time)
changePage(r.Page);
}
or whatever. Probably easily less than 100 lines of code even with some checks and balances.
As far as the wifi stuff, osc could work well, it's just http stuff:
http://opensoundcontrol.org/
This would also let one to control the software using other means easily such as touch osc, reaper, etc. This would get one method
https://www.tobias-erichsen.de/software/rtpmidi.html
https://en.wikipedia.org/wiki/RTP-MIDI
https://en.wikipedia.org/wiki/Bonjour_(software)
https://www.midi.org/articles-old/rtp-mi...r-networks
https://archive.codeplex.com/?p=winrtpmidi
https://dev.to/atsushieno/managed-midi-t...i-api-56hk
I haven't messed with that stuff much lately. I use reaper for most of these things and it automatically has this stuff built in. Once I got it to work I stopped dealing with it. I use touchOsc to control my windows computer and have everything else interfacing through some custom software and reaper. It's mainly hacked together just so I can play back the audio files(using reaper). I also have some self-contained software that does was suppose to be effectively like your software where I have all the bells and whistles but I used the D language and it has just become a pain to maintain after I took a break to do other things. I ultimately just want to do music not write software(although the software is probably 70% done the D language becomes a serious pain because of the bit rot and how often they depreciate or regress and lack of standardized libraries for such work(gui, audio, etc)).
You could write a simple windows utility to do it. Just handle the standard midi port then translate that message in to a wifi message(or even osc) and send it to the ip of the android device and then handle it on android. On your side you just have to capture the messages so it's not that big of a deal. There are no timing issues except for lag which you can't fix anyways. I think osc would be the way to go as it just works and should be quite simple. You are just responding to uri requests. The client side does all the other work which you don't have to mess with unless you want to somehow setup the ability, say to sync multiple MobileSheets Apps(say have everyone's pages change at the same time(e.g., for an orchestra ). Even then, it is just sending a "uri request".
As far as the license, I only worry about if your server goes down... but if if the verification is checked by google on their side then I guess it wouldn't be a big problem.
Thanks for responding.