Help for Tune Smithy Image:koch_snowflake_icon.gif

Bounce Metronome Pro Wish List

From Tune Smithy

Jump to: navigation, search

#Auto Translate

Contents

Intro

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.

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.

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.

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.


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.

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

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 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

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

Links

LINKS:

Here are some links showing a variety of chaotic pendulum motions:

Double pendulum

Coupled pendula of same length

Double pendulum with maths.

Page of links to many physics animations

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.

Double square pendulum

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

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.

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.


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.

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.

To play an audio recording through the program and synchronise the bounces - FEASIBLE

This is likely to be very tricky unless the audio recording uses a steady beat. You can synchronise with an audio recording with a steady beat by hand by tapping on the tempo dial or with the backspace key in time with the beats.

However it would be possible to do it interactively though not in real time. Idea is to use the option to find the beats from a recording - find the beats automatically or mark the notes by hand on the recording - then have an option to play the recording simultaneously with the bouncing balls and synchronise the bounces with the marked notes on the recording

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.


Personal tools