Help for Tune Smithy
Bounce Metronome Pro Wish List
From Tune Smithy
This is the wish list for Bounce Metronome Pro. To add your own wishes, post about it to the Bounce Metronome Forum. You can also e-mail me about it or edit this page directly. If you want to edit this page, contact me again, as I have to approve new editors manually.
AS you can see though many of the individual features are pretty easy to do like a day or two of work some of them - there are so many that to do them all would take many months probably. Nevertheless, I expect most will get implemented eventually if all goes well. But if anything is particularly high priority for you do let me know as then I'll be more likely to do it sooner.
For more about this see What is the wish list for
See also the Tune Smithy Wish List
You can discuss it in the Bounce Metronome Forum
These features will also get incorporated into the rhythms and polyrhythms task for Tune Smithy 3.2 when it is released. Features that apply to the whole program will get incorporated into Tune Smithy as a whole.
NB This is the wiki for Tune Smithy - only this page is for Bounce Metronome Pro. Some of the help applies to both - but when I mention particular windows in this wiki, the links take you to the screen shots for Tune Smithy 3.0 so may look a bit different from the windows in Bounce Metronome Pro. I can update those links later when I update Tune Smithy as a whole, or if I make a separate Bounce Metronome Pro wiki.
With the mixed meters like 4/4 + 7/8 have an option to set how many times to play each of the time signatures - Status EASY TO DO
You can already do this by just entering the same time signature several times over (with up to 34 time signatures total). There's also an option to eg. play every time signature twice, or as many times as you like - but same number of times for each one. Or if you edit the script you can set how many times to play each of them.
But the idea here is to add a text field after each time signature with a number, preset to 1. When you adjust the number for the first time signature, then all the others update to the same number as it. But then if you adjust the other numbers then they can be set independently (same way the subdivisions work for the mixed meters if you want different numbers of subdivisions for each one).
So you could do e.g. 4/4 5 times 3/4 7 times 7/8 3 times or whatever - those are just made up numbers but whatever is useful in that way you could do very simply and would save a lot of time entering rhythms for complex rhytms like talas if they have the same beats with many repeats of the same time signature.
This is a dead easy option to add. Though might be worth while thinking over it a bit first, about how it might relate to possible future developments.
Status EASY - may be an idea to think it over a little first though.
Make it easy to enter triplets and other n-tuplets and nested ntuplets in the rhythm editor - FEASIBLE AND FAIRLY EASY
This should be easy to do and is on my wish list for the reasonably near future.
Maybe something like this:
[3 [5 O O O O] [5 O O O O] [6 O O O O O O] ] Where the Os there are the notes to make into n-tuplets and where optionally you can do e.g. 5/16 if you want 5 16th notes when you'd normaly expect it to be an n-tuplet of e.g. eighth notes.
The way I'd probably do it is to adjust the timing of the individual notes. Has the advantage you can easily mix n-tuplets of different sizes.
E.g. if you want to make three notes into a triplet right now, you could do it by entering the times as 2/3 2/3 2/3 instead of 1 1 1. Timing would be okay. But wouldn't behave as expected if you swing it. To deal with that I'd add a new "swing weights" field which lets you say how to adjust notes when they are swing so a note that needs to be shorter than usual would be weighted to a smaller amount e.g. 2/3 for a triplet note.
Then the [3 [5 ...] ] type rhythm notation would work by automatically setting the desired file times and then automatically making appropriate swing weights to get them to work. So - this doesn't seem that hard to do when I think about it, maybe two or three days work and could go more quickly depending.
Status - FEASIBLE AND PROBABLY REASONABLY STRAIGHTFORWARD
Add rhythm notation for grace notes + option to configure size of the grace note - Status probably not hard to do
Not sure how I'd do it exactly so main thing that would involve work would be think about how to present it in the GUI and integrate it with other options. Don't know how I'd do it yet. Could cobble together something that would work but probably better to wait until I have a clearer idea of how to do it - maybe combined with other related options.
Option to show Tempo as ms per beat instead of beats per minute - TRIVIAL TO DO
Dead easy to implement. I noticed this as a feature in another metronome I tried out, and wondered if it is useful for something. Does anyone need this option?
I do already have a "seconds per beat" option which is hidden in Bounce Metronome Pro - just not exposed in the user interface but there in the code. It is available in Tune Smithy. So if anyone needs it you could have options to display Seconds per beat, milliseconds per beat and the current and more usual BPM.
I'd just have a text area somewhere in one of the windows which shows the tempo in seconds per beat and ms per beat, doubt if anyone would need the tempo dial to show those units as well though if anyone does that also would be dead easy to implement.
Custom conductor patterns - FEASIBLE AND EASY
I used the conductor patterns from Brock McElheran because his system is comprehensive, covers all the rhythms and is easy to program. I know it is only one of several ways of conducting. So idea is to add the option to enter your own conductor patterns - perhaps as an editable list.
E.g. you could enter alternative conducting patterns for 2/4 up to 7/4 as a list like this:
2 1 2 3 1 3 1 4 2 4 5 1 2 3 5 4 6 1 2 3 6 5 7 1 2 3 4
Also could e.g. have option to set spacing and height for each one if you want the "bounce" to happen above the baseline or close to another bounce.
Also could let user draw a conducting pattern with numbered points on it for each bounce - then FTS can follow it in such a way that it hits each bounce point in time, and speeds up as it approaches each bounce - or let you just conduct with the mouse on a flat surface in real time once, click with left button for each "bounce" as you hit it - then it follows your conducting pattern by just playing back your mouse movements.
All this is very easy to program, needs a bit of thought for the user interface, nice clean ways of doing it. Will probably start with the list first as the easiest to do, and can do it in the near future. Let me know if you are particularly keen to see this implemented as I can them move it up to the top of my "to do" list and do it sooner.
Status - easy to do and will do it some time.
Get Conducting Pattern from a Movie - Status FEASIBLE
Here the idea is, you start with a video of a conductor conducting some music. Then you need to go through it frame by frame and mark the tip of the baton in each frame by hand - just have a special colour, e.g. magenta, and change the colour of one pixel in each frame to that colour to mark the tip of the baton.
You also need to mark the down beat, and the start of every beat, which you could do with more special colours, e.g. different shades of magenta again. Colour doesn't matter so long as it is a colour that doesn't appear anywhere else in the frame. So for instance you could use a slightly darker shade of magenta for each frame that marks the start of a beat.
As an alternative, if it is a video you make especially for this feature, you could attach a coloured ball to the end of the baton or coloured strip of paper or whatever - coloured in some distinctive way that is very different from any other colour in the video (again say magenta and make sure the conductor isn't wearing any clothes in that colour) - and then BM Pro could detect it to within a given level of tolerance - and use the centre of the coloured patch in each frame of the video as the baton tip pixel. Then when you go through the movie by hand, you just need to change the baton tip colour for the first frame for each beat.
Then it would be easy to program BM Pro to locate the coloured pixel in each frame and use that to make a conducting pattern, which you can then play back at any speed.
Or - you could use the motion capture methods used for recording actor's movements for computer games. I don't know how those work exactly but could research into it - maybe you can use an "off the shelf" method for detecting the movement of the baton tip and converting it into data you can import into BM Pro for this feature, once it is programmed.
Status - FEASIBLE - straightforward as far as I can see and may be quite easy, hard to tell until I give it a go.
Pitch Bounces - FEASIBLE AND EASY
Here the idea is that along with the rhythm you have a continuous background note which rises in pitch and gets quieter between the notes and falls and gets louder on the note. So it's an aural version of the visual bounces and should help you to hear where the next beat will be before it happens.
This could be useful for blind users particularly. But may also be of general use too so you can hear the beat before it happens without looking at the visuals e.g. when reading music.
If it is quiet most of the time and gets louder only on the beat, and depending on the instrument sound I think it could be reasonably unobtrusive. Hard to tell how well it will work as I don't know of any other hardware or software that does this.
As an alternative, you could also use it as a feature for the pitched instruments - to let the pitch bounce - have an option to let any pitched instrument bounce in pitch to follow the bouncing balls - which it would do using pitch bends.
I could take the custom pitch variation and custom amplitude variation windows as a starting point - and either add this as a feature to those windows to let the pitch and amplitude follow the bouncing balls instead of using a formula - or else could add it as a new window with that feature which would be used in addition to any other custom pitch or amplitude variation you already have.
Probably the easiest way to get started on programming this feature would be to add it as an option to the custom pitch and amplitude variation windows - then would be able to listen to it and hear what it sounds like.
So a possible roadmap for this feature is to do that first - and then if it is promising, then could go on and add it as a separate window or as a background instrument etc. at a later stage.
Easy to program and will do it in near future when I get a bit of time to work on it.
Make it possible to run Bounce Metronome Pro on a mobile device - CAN DO ALREADY IF DEVICE SUPPORTS XP - NO PLANS FOR IPHONE, SMARTPHONE, BLACKBERRY ETC. FOR NEAR FUTURE
I have no plans for an iphone app. for techy reasons. I'd need to recode it from scratch. Same applies to the blackberry, both iphone and blackberrry have their own operating system.
Similarly for smartphone ,although many run Windows, it is based on a stripped down version called Windows CE and I looked into that, to make it compatible with Windows CE I would have to do very extensive recoding, so have no plans to do that either in the near future.
It can run on any device with XP or later
However it can run on any device that can run Windows XP or later. So smallest device it can run on is probably a netbook PC or net tablet PC. There is also talk recently of an XP or even Windows 7 based touch phone but don't think it is available yet.
If the screen is very small, then it has an option to split the main window, which you access via "SPLIT MAIN WINDOW" in the options drop menu. You can then run it on 800 by 600 displays or even smaller. If it needs to run on a very small display for some reason I could look into ways of making the user interface more compact. That's not tricky to do. The tricky thing with the iphone etc is just that I would need to recode it for the new operating system.
Can export animations to run on a mobile device
You can export the metronome animations as movies, and should be able to play those on a mobile device such as the IPhone - especially since the IPhone supports seamless looping then if it is for a steady tempo just need to do an animation for one bar. To try the same section at many tempi just do animations for each tempo of interest.
I can also add an option to make a list of tempi and then automatically export the same rhythm at all those tempi and make a web page for them all so you can just click on the tempo in the web page to play the animation at the desired tempo, e.g. for every tempo in BPM in some particular range or whatever.
Status - CAN DO ALREADY IF DEVICE SUPPORTS XP - OTHERWISE NO PLANS FOR NEAR FUTURE - Sorry. But can play the web animations on a web enabled mobile device
But may revist this. Had new ideas about how to approach it
- the idea there of developing a lightweight version of BM Pro - with as much as possible of same rhythm capabilities but simpler interface and less of the other features for mobile devices and the Mac.
I don't know how easy or hard it will be but plan to investigate it and try to do it some time when I have a bit of time to work on it.
Play notes from midi in - FEASIBLE AND EASY TO DO
The idea is just to let you play midi notes from a midi keyboard. You could use this for instance to compare the times of your notes played via midi in with the bouncing balls and the beats played in Bounce Metronome Pro with the Tap Timing strip.
This is easy to do, main thing is, how to select the Midi In device in the user interface. Tune Smithy has an In menu with the In devices in it. Here it would probably be more appropriate to have a separate window with a list of In devices, then you highlight the one you want to do just as for the Out devices.
Everything else is already programmed so it is just a matter of permitting the windows to be displayed in Bounce Metronoem Pro, and to add them to the menus somewhere, possibly as a separate In drop menu.
Main thing to do: Decide where to add the Midi In windows to the menus - and make a new In devices window.
Status - can add this in the near future. FEASIBLE AND EASY.
Option to start with Windows with a tray icon - FEASIBLE AND EASY TO DO
I already have this in other programs and it will be easy to add to Bounce Metronome Pro - will add it soon.
Does already have option to start with Windows in Tune Smithy - so I've added it to the More version of the File menu for upload of BM Pro for Nov 23rd 09. But not yet the option to start minimised to the tray so will add that.
Status - can add this in the near future. FEASIBLE AND EASY.
Play any animation in the background of the bouncing balls - DONE
The idea is to play an animation simultaneously while you have the bouncing balls or conducting visuals in front. The challenge here is to do it in real time, and to do it smoothly.
The problem is that the bouncing ball frames are done in real time with a variable frame rate - each frame is done at exactly the moment when the computer is ready to do the next frame. So the timings of the frames can be vary a fair amount at times depending on what's going on on your computer - but it still looks smooth because the program draws the animation frame at the position it should be at the time when it is drawn.
UPDATE - I just tried the simple method of using the nearest animation frame in the movie to the current time - and it is working just fine on my computer bought last year. So on a reasonably new computer it should be just fine.
It works in the beta for avi files. There are free utilities to convert other formats to avi so that's not too much of a restriction.
UPDATE 2 - It is now included in the release.
Status - IMPLEMENTED
Show visually whether you are on the beat, ahead of it or behind it - DONE
The idea is to help you play exactly in time with the beat - or to help you play always ahead or always behind the beat if that's what you want to do.
You could tap with the mouse, or press any key e.g. the backspace key (say) on the keyboard - or play a note via midi in (midi keyboard or any other midi device such as a drum pad etc.
It could then display whether your note was ahead or behind the visual beat, and by how much as a number or the position of a pointer on a dial.
You could also set limits, and if it is outside those limits, it plays a sound. You could set a different sound for ahead of the beat or behind the beat so you get immediate feedback of which way to adjust.
An attractive feature, not too hard to program. The basics to get it started, just to display how far ahead or behind the beat you are as a number is very easy programmatically. I have the timing for the visuals and can measure the time of any event such as tap with mouse etc so just have to display the difference between the two.
Main thing to think about is how to do the visuals e.g. pointer on a dial such as the tempo dial perhaps, and details like how to let the user set the tolerance, and sounds if you are ahead or behind the beat etc.
- Did it as a strip that you can add to the bottom of the 2D bouncing balls display which shows how far ahead or behind the beat your tap is. I can add it to the 3D bouncing balls in the same way.
You can switch on this feature in the Tap Timing (Ctrl + 237) window in the Tempo drop menu.
Status - IMPLEMENTED
Add motion such as coupled double pendulum visuals - FEASIBLE, NEEDS MORE THOUGHT
Introduction - chaotic motion, the double pendulum, and rhythm
This is an example of "Chaotic motion" - there Chaos is a mathematical term and doesn't mean totally random. Rather it's predictable in the short term - but over a longer time period totally unpredictable. The reason is that even very small changes in the initial conditions get amplified as time goes on. Classical example is the weather. If a butterfly flaps its wings and you don't include that motion into your model, then the idea is that eventually over a fairly short time-scale, your model may diverge from the actual weather by enough to be a difference between a hurricane warning and calm weather. So we can very successfully predict weather over a few days, and give general ideas over longer timescales e.g. can say things maybe about the number of hurricanes to expect in a year, but can't predict a hurricane e.g. several months in advance because we just don't have enough information in enough detail about all the possible influences on the weather. So - it seems from the maths that it will never be possible to have 100% accurate long range weather forecasts (except by controlling the weather perhaps).
So similarly, a chaotic pendulum motion is predictable in the short term but not long term (where of course here long term means say a minute or two rather than several weeks). The short term predictability should make it possible to play along with it as a rhythm for music. So this should be a way to make rhythms which have that element of longer term unpredictability like the weather.
Status and issues
STATUS: Feasible - but needs thought about how to do it
First, it is feasible to do the animation. There are many animations of double pendulums on the web. So should be feasible to do it - though the maths is tricky so I'd need to spend some time reading up on how to do it before I start on the programming - or use already existing free source code if available.
However the main question is how to link it in to the program. The thing is that to practice with it as a source of rhythm ideas, you would normally need the animation to have a "click moment" - like the bounce moment of the bouncing ball or conductor's baton in Bounce Metronome Pro. The obvious time for this is when the pendulum is at the top of its swing to either side - but the problem is that at that point the pendulum is moving at its slowest.
What is the issue with the click moment for a double pendulum?
This may not be obvious if you try playing along and in time with one of the animations or a real physical double pendulum with no sound track. You may well be able to feel a particular moment in the rhythm to play your notes.
The problem though is that if you had several people playing with it at once they would feel it at different times probably. The reason is because the pendulum is moving at its slowest when it changes direction (unlike the bounce where the ball is moving at its fastest when it changes direction). As a thought experiment, imagine if you are on a train and ask the passengers all to clap at the moment when the train stops moving as it pulls into the station. The moment is so indiscernible, one minute it is moving and a bit later it is definitely stopped - but when did it stop exactly? You would expect the claps to be very ragged.
So, that's like the pendulum issue at a much slower scale. The pendulum motion is faster than that - but you are still using the slowest part of the motion when the pendulum slows to a halt and reverses - and the click moment has to be timed very exactly if it is to be useful musical practice and for metronome work.
So - playing at the moment when a pendulum changes direction has the same kind of an issue as that - if you add clicks to the visuals, then you can expect it to be next to impossible to play so that your beats are exactly in time with the clicks generated by the software - making for a frustrating experience for the user.
How can this issue be solved?
So - what to do about it? One idea is to use it only as a silent metronome. Another idea is to add a separate animation to show the user when exactly to play - e.g. a bouncing ball that bounces away from the pendulum bob and hits it exactly at the moment the swing changes direction. Another idea is to use the double pendulum to change something else in the program such as volume, pan location, other controller etc. Or have it as a separate display so that you have the bouncing balls to show you the moment of the beat - and in a separate display, the double pendulum which controls the timing of the bounces.
Another problem with some versions of the chaotic pendulum is that you get occasional very short beats like less than a tenth of a second, and with no warning to the user that it is about to happen - this is impossible to play along with unless you can learn to anticipate it since our reaction time is to slow to react in time. So one may need to make sure in some way that the beats are long enough. Maybe you just don't play clicks for the very short beats, so that the user isn't expected to synchronise with those.
Status: FEASIBLE, NEEDS MORE THOUGHT
Here are some links showing a variety of chaotic pendulum motions:
Double sprung pendulum This is particularly interesting for rhythms
2D sprung pendulum - would be easier to program probably.
Chaotic pendulum - this is an ordinary single pendulum but with a forcing motion applied which leads to it moving chaotically - a bit like pushing a child on a swing but with your pushes at a different frequency to the swing so that sometimes you stop the pendulum instead of push it.
Looks like a useful maths reference: Introduction to Chaos : physics and mathematics of chaotic phenomena
Assign stereo pan location and other controller individually to each beat in the rhythm - FEASIBLE
The idea is to take the Auto pan by position in measure option in Stereo Pan (Ctrl + 50), and extend it so that you can set the stereo pan individually for each beat in the rhythm.
Then you could do the same also for any controller e.g. reverb, tremelo, modulation (vibrato) etc. This could be done by taking the display for Adjust Swing or Individual Beats for part 1 (Ctrl + 76) (Tune Smithy 3 version is Seed as bar charts (Ctrl + 76)). It would look like that but have a drop list of controllers at the top so you can adjust the controller for each beat, or adjust the volume. Probably also let the user show several copies of the window at once one for each controller.
Status - feasible. May take a while to do. Will investigate further later on.
Reorder the parts by the number of beats - PARTLY DONE
Order the parts strips in the Bounce Metronome Pro bouncing balls display so that the one with most beats is at the top. Optionally let the user also move one of the parts up or down e.g. with the up / down arrows.
Status: feasible. Will think it over some more then implement it, not sure when.
- I've added an option to Bounce Preferences (Ctrl + 220) Reverse order time signature parts. You can use this to change the order of the parts you get when you use a time signature with subdivisions. It doesn't yet let you re-order the parts after you make a new rhythm or if you make it by adjusting the parts yourself - so that's still for the future.
Click on a beat to accent it as well as skip the beat - DONE
- IMPLEMENTED(June 09)AS Right click anywhere on the beat to cycle through the accent levels
Click on the diamond to skip a beat could cycle through:
skipped, normal volume, accented.
This should be easy to program. Main thing is to think through how the accents would interact with the user edited volumes e.g. in Adjust seed or individual beats (Ctrl + 76).
Keyboard shortcuts to mute individual parts - DONE
- IMPLEMENTED (June 09) use 1 2 3 etc to silence or play parts, if editing text use SHIFT + Space to switch on / off the silence shortcuts
Add option to time shift the video or audio, preserving pitch - MAY BE FEASIBLE
This is clearly useful if you want to play the video or audio more slowly to help with practicing the rhythms. It is probably quite hard to code from scratch but perhaps there are "plug ins" I can use to do it for me. Will investigate later on.
Print Preview for the Export Animation, Print or Copy window (Ctrl + 234) - FEASIBLE AND EASY
I'll add this when I get some time for it. There are a few gotchas - easiest way around them and easiest thing to program is to make the print preview the actual image used for the printed page just rescaled to fit the preview pane.
It may be a bit slower to refresh than an image made to the right size for the preview pane - but faster to refresh than it is to print it, saves paper, and will be exactly what you get when you print it out. On a modern computer the slightly slower refresh you get if you do it that way probably won't be much of an issue.
So I'll probably do that. Done that way then it is a pretty easy thing to add. Let me know if you need it especially for some reason. I will do it anyway some time when I get around to it but if someone particularly needs it then I can move it up my "to do" list and do it sooner.
Add option to get the instrument names from a sound font - POSSIBLE
Should be possible, depends how easy the Creative Soundfont SDK is to implement, will look into it to find out more.
Status - possible, don't know how easy
Get a rhythm from a midi file recording - FEASIBLE
Idea is the midi file would have just the beats of the rhythm as previously recorded. It could be just the beats for a single bar, then the program repeats it.
Or if it is a pattern for several bars, if one of the instruments plays the bar beat then it can be just treated similarly to a single bar, as a pattern to repeat endlessly.
Status: feasible, not that hard to do.
Add option to get the rhythm and lyrics from a midi file - FEASIBLE AND STRAIGHTFORWARD
Straightforward but may take a bit of time to do it properly.
I could start by getting it to play midi karaoke files:
Play the tune using abc notation at same time as the bouncing balls - FEASIBLE AND STRAIGHTFORWARD
This is another way to play the tune, and this would work well as far as synchronisation is concerned. Similar to the midi approach - but using abc notation instead of midi - this makes the tune easy to edit by hand to enter your own tunes.
Again like the midi approach - could certainly do it though it may take a while.
See next wish for details
Add abc notation so that Bounce Metronome Pro can play melodies - FEASIBLE
The idea here is that it would be nice to be able to play the tunes as well as show the rhythm with the bouncing balls, baton or drumstick. This could be useful for the sound car-tunes bouncing balls for instance, or if you use the swing metronome to practice jigs and reels, or other situations where you want to use the metronome to practice a tune.
The abc notation is a notation that's widely used for music where you most often only need a single melody line such as traditional music (although it can also handle chords) and is easy enough to use so that you can enter it by hand, just type in the notes of the tune. For the programmer, this sort of thing is far easier to program than a fully featured music notation type editor.
This would combine the rhythm and pitch capabilities of the fractal tunes and harmonic metronomes with the abc notation to let you play any tune not just algorithmically generated ones. So for instance you'd also be able to play the tunes in just intonation scales or any temperament etc. You'd also be able to use the abc notation to make seed phrases for the fractal tunes.
It is certainly possible to add this to Bounce Metronome Pro. One could do it as a hack with basic functionality probably quite quickly - follow the same approach as the drum and dance rhythms but with pitch added as well. However, it is the sort of thing that will probably work better with some thought about how best to do it and integrate it with the other parts of the program.
Definitely on my to do list for the not too distant future.
Status - FEASIBLE
Unicode for lyrics and special characters - STATUS SIMPLE TO DO
Feasible. Just a matter of whether anyone wants it enough. Could program it in a few days of work possibly sooner
Let words and symbols bounce elastically like the bouncing balls (visual effect)
Could do that, just not got around to it yet.
To play an audio recording through the program and synchronise the bounces - FEASIBLE
I have had a few ideas but basically it's not yet clear to me how best to do it. Probably can be done in one way or another, but with limitations.
If what you want is a Karaoke machine - then there is karaoke software on the web, such as KaraFun. Maybe one of those will do what you want?
I think this will require preparation of the mp3 to get the rhythm from it probably by hand.
I'm not sure how to do this yet. Even finding the main beat in a tune never mind the measure is quite a hard thing to program in software.
I know it is easy for a human musician listener. The software could do it easily if the main beat is the loudest beat all the way through the tune but you can't rely on that, and it's hard to program in a "sense of rhythm" which is based on what humans find helps them keep time with music - rather different from the things you can easily pick out from an audio recording using software.
So I think the feature would probably require someone to go through the mp3 first and "preprocess it". One way might be to tap out the beats and the measures by hand. BM Pro then records those taps, turns them into bounces and then plays back the mp3 and the recorded bounces simultaneously.
For more about this see the next section Let user record beats and bars for bounces for video or audio file to play whenever the file is played- FEASIBLE
The other idea is to work on the backspace tempo tap and try to find a way to use that to keep the . You can do that already after a fashion, but it is unsatisfactory.
There the idea is you tap along with the mp3 at the same tempo as the mp3 with the backspace key. If the two are at just a slightly different tempo to start with, then they will soon drift far apart, so you have to keep tapping to keep them in sync. E.g. if you tap at 60.5 bpm and the tune is 61 bpm, then you will be out of sync by half a second after a minute if you don't do anything to compensate.
Also unless the tune was recorded to a click track or played over looped audio, it is likely to vary in tempo slightly as well, and the bouncing ball would need to follow any slight changes in tempo in the mp3.
So this idea of using the backspace tap to keep the mp3 and lyrics in time with each other might work after a fashion but I think not very satisfactory.
Maybe the backspace could be combined with some auto detection of the rhythm - don't expect the software to find the main beat by itself - but after user gives it a hint - e.g. say that it is a 4/4 piece at approximately 60 bpm - then maybe the software could then detect the main beat - probably you still need to tell it where the first beat in the measure is to get it started - then it can search for other beats every second (in that case) - would then be fairly easy to find the exact moment of the attack of each note (especially if there is a drum or other instrument with a clear attack playing the notes - harder if it is a more subtle instrument such as wind or voice).
Status - FEASIBLE - BUT RATHER TRICKY TO IMPLEMENT
Add option to make "Car Tune" type videos - MAY BE RATHER EASY
Idea is to make videos like this:
So, the ball bounces on the lyrics - but on every word, and sometimes twice on the same word. Also to bounce "as the word is sung" rather than on the beat - sometimes at the start of the syllable, sometimes in the middle of the syllable sung, as seems most natural.
This seems likely to be easy to do. Would use the "Tap out a rhythm" feature and add option to play mp3 at same time as you tap out the rhythm - and do it all as "one measure" because you don't need to know where the measures are for the ball bouncing on lyrics - all you need to do is to scroll to the next line when you need to, which it already does automatically.
Then as the mp3 plays you need to tap out for the bounces for every single syllable in the tune. Since all the work is done by the human user - the programming is likely to be quite easy.
Later could add an option to show images or animations behind the lyrics which is already possible with the bouncing balls windows so probably fairly easy to do again.
So - will give this a go some time soon hopefully, if I have the time.
Let user record beats and bars for bounces for video or audio file to play whenever the file is played- FEASIBLE
Idea here is, you play a video or audio file through and as it plays, tap out the bar beats with one key, and the individual beats with another. Your taps get recorded by Bounce Metronome (probably to another file with same file name different extension). Then whenever you play that file in the future, the bounces are played synchronised with your pre-recorded taps.
Or you supply a midi file with the timings of the taps obtained using whatever method you like, and those are used for the tap timings.
Once you have recorded the tap timings for a particular video you'd also be able to share it with others who want to play it in Bounce Metronome Pro.
This is completetly straightforward though as there is a fair bit of coding involved, I'll probably break it up into a number of subsidiary goals to achieve one at a time rather than do it all in one go.
Play a midi file through bounce metronome pro and synchronise the bounces with the midi file - FEASIBLE
Ideally - to read in any midi file e.g. for an orchestral work and auto detect the changes of time signature and show bounce or conducting patterns for them accordingly as it plays.
If possible, do any time signature changes as a script which the user can edit once it is auto detected.
Probably you would read the entire midi file in two passes, so first pass, you work out the time signature for every bar, then second pass to play it.
I think definitely feasible if the midi file is recorded with a tempo track so that the program can keep track of where the bar lines are. Not sure how hard or easy it would be to program - auto detecting the time signature by the note patterns in each bar is likely to be tricky, unless it is specified in the midi file.
Would need to think through it in detail, and maybe some simpler but useful objective could be achieved first as a step towards the goal.
If the midi file is recorded in real time without a tempo track to pin down the bar lines, it is then likely to be very hard.
Status: Feasible probably for some limited goals. Full objective may be quite hard to do and may require user interaction to maybe add events to the midi file to help pick out the start of each bar and set the time signature for each one etc.
Improve the way the bounces are found from a recording so that the program finds the beats automatically more easily - FEASIBLE
This part of the program is derived from some code I did for pitch tracing so doesn't work so well with percussion and it would work better if the tracing took more account of the volume at the start of the note and attempted to locate when the volume envelope starts.
Add an export option to export the visuals as a loopable animation - DONE
- i.e. for exactly one cycle to the next repeat of the animation. This would make them suitable for looping graphics on web sites such as my web page here: Bounce Metronome Visuals
Status: implemented in Export Animation, Print or Copy (Ctrl + 234)
Add a feature to let a conductor conduct a conducting pattern with the mouse or in some other way - FEASIBLE
Idea is, the program records it so you can then play it back for your practice session.
Status: should be feasible if there is a demand for it, let me know if you want this and what features you would like it to have.