Bounce Metronome Pro Wish List

Intro
This is the wish list for Bounce Metronome Pro. These features will also get incorporated into the rhythms and polyrhythms task for Tune Smithy 3.2 when it is released and features that apply to the whole program will get incorporated into Tune Smithy as a whole. 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

NB when I mention particular windows in this wish list, the links will 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.

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.

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

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, 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 ). 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

Main issue here is - what should the shortcuts be. Implementation would be trivial.

Play a midi file through bounce metronome pro and synchronise the bounces with the midi file - FEASIBLE
Status: 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 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.

google_translate