Bounce Metronome Wiki- Bounce helps you keep time

Bounce Metronome Pro Wish List

From Bounce Metronome

(Redirected from Wish list)
Jump to: navigation, search
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.

See also: Selected wishes, also Bounce Metronome Jottings for my own notes about things I'm about to do or would like to do some time if possible. See also the Tune Smithy Wish List

I have recently started to add names and dates to the new wishes. If you contributed one of the earlier wishes and wish your name and the date to be added do let me know.

One of the motivations is in case of patents. I found out recently that there are a couple of patents for conducting metronome type software - luckily Bounce seems to be okay - but it's good to have an on-line record of when things were invented or suggested in case of future patents - assuming you don't want to patent them yourselves of course. Here in the UK the country doesn't recognise software patents so I can't patent my software even if I wanted to.

Also its nice to see who suggested what when, and a way to acknowledge your contributions and thank you for them.

Contents

Intro

There are so many wishes, that to do them all would take many months probably. Nevertheless, I expect most will get implemented eventually if all goes well, at least of the ones that are feasible and not too hard to do.

If any of these are important wishes for you, do let me know. You can add a list using the Make a Wish for Bounce Metronome page.

For more about this see What is the wish list for

You can discuss it in the Bounce Metronome Forum

Many of these features will also get incorporated into Tune Smithy 3.2 when it is released - either to the polyrhythms metronome task or the program as a whole as appropriate. See also the Tune Smithy Wish List

Make online polyrhythmic bounce metronome

Just that it would be nice to have a free online version like the many free online metronomes there are. I'd do it as a bounce metronome with polyrhythms, and the idea is to introduce the idea of a bouncing ball metronome, simple version, which you could also perhaps use on mobile devices.

The applet here could be a starting point Interval based animation with sound

I'm not that familiar with development of this type. But have done a bit of javascript programming in the past. The soundmanager project looks like it might be a good way to add sound in javascript synchronized with the bounces using an invisible hidden Flash window (and other fallbacks if Flash not supported).

Status - probably not that hard to do

Spiral version of the bouncing balls display following John Whitney's visual approach

Idea to do something like this:

whitney music box idea from [John Whitney]

Main reason to do it is just because it is visually fascinating.

You can do soemthing a bit like it already. The only thing is - the spiral of dots you see in that animation stays still in Bounce Metronome, and you have an extra set of bouncing balls that go around in a circle hitting each one of the balls in the spiral in turn.

To set it up like that then choose Bounce Inside Oval. For the 3D bounce then you probably want to unselect "Show blocks in front of all the bounces" in the More version of 3D Bouncing Ball Visuals (Ctrl + 257) as otherwise the ovals will be a long way away in the distance so look small.

Then go to Bounce Patterns (Ctrl + 227) and in the More version of that window, you have an option "Skip bounces - just go around the oval.

So, you need to make it so the ovals turn around and the row of bouncing balls stays still, and replace the row of bouncing balls with a single straight line. This would require an option to rotate the ovals and keep the bouncing balls still.

This can be done with an extra reverse rotation of the entire scene in the opposite direction. I've added this experimentally to the debug build and will explore it some more.

I thought this would give the same effect, but now after programming it and then looking at the Whitney version more closely I see it is different.

Nevertheless the Bounce version is also quite nice to look at :).


Status - can something bit like this already with the spiral fixed and balls rotating - rotating spiral - NOT QUITE THE SAME

Add an option to import midi percussion loops

Import midi groove templates in the form of midi files, and convert them into a bunch of timings - could also set the volumes and the instruments for individual beats as well. This is also something you can make from a recording with many DAWs.

The idea is that it is a way you could get more of a human feel to the rhythms. It is a lot easier than attempting to analyse the audio recordings in Bounce - it is easy to get the timings from a midi file because the events are recorded to the file with time stamps anyway, each midi event is a "note on" at a particular moment of time.

Status - reasonably straightforward, not sure how long it would take

Add Non Melodic Percussion Sample Pack Player to Bounce

The reason for doing this is for precision, as it would create all the sound as a continuous audio stream (including silences) so you would be able to play each sound at the precise moment of time desired to the sample, so not depending on the Windows timers for sub millisecond timing, and not needing to send the notes to another synth via midi for playing.

There's an option in Bounce already to play samples, with a couple of example waveforms - water drops - but it is programmed using a "quick and dirty" method that doesn't do very accurate timing. It uses a Windows routine that is normally used just to start and stop playback of an audio recording. It is just a "proof of concept" kind of thing.

If all that is required is to play the sample "as is" - with a quick fade away when the note is released if still sounding - then that is reasonably straightforward to do.

Reasonably routine programming, not hard to do but would take a little while

Add option to count out loud in selected counting system

This could either use synthesized voices, or use pre-recorded samples. Perhaps the simplest way is to do it just like the non melodic percussion sample player idea. So you provide a recording of all the numbers 1 to say 20 and of commonly needed syllables like "and", "la", "li", "te", "ta", "ti", "and", "a" etc. and the sample player then just plays those at the right times for the beats.

Status - would be easy to do once the non melodic sample player is done

Add the Takadimi counting system

See Takadimi: A Beat-Oriented System of Rhythm Pedagogy

I can add Edwin Gordon’s system as well and other systems in that article, and let the user set their own system.

The simplest way to do this is to do it like the custom counting system. The main thing is to make sure that I understand the systems clearly to program them.

You can try out the Ta ka di mi system right away yourself.

To do that go to Beats Counting System (Ctrl + 246). Then choose Label as: Beats and subdivsions, and then for the Counting system for beat subdivsions, choose "Custom"

Then enter this as the list of syllables:

Ta, Ta di, Ta ki da,Ta ka di mi, Ta ka di mi ti, Ta va ki di da mi, Ta va ki di da mi ti, Ta ka di mi te ka di mi

where you need to have the commas exactly as shown there (see the tip for the control for explanation).

I could add this as a preset to that drop list very easily.

Status - very easy to do

Add in the Indian Talas counting system

See: Indian Rhythmic Cycles. There the main difference is that you need the system

The main difference here is that the counting system is for the entire measure, and you have different choices for the same number of beats in the measure, so this is probably best handled as a custom drop list of talas. When you select the tala it changes the choice of syllables for each beat, silences some of them, and sets the total number of beats per measure.

It would work more like the rhythm editor, where you enter the syllables for the tala into the editor, or select from pre-selected talas from the drop list. This then gets converted into a rhythm, but with a simple method, that all beats are played apart from ones marked as * which are silenced.

Straightforward to program, reasonably easy to do

Use Michael Stewart's Grid Notation to show if you are ahead, behind or on the beat for tap timing

Wish made: 15th March 2013

This is a visual version of Michael Stewart's "Grid notation" - he puts vertical lines through the musical notes as a way to indicate if they are ahead, behind or on the beat.

For his notation see J.A. Progler Searching for Swing: Participatory Discrepancies in the Jazz Rhythm Section Ethnomuiscology Vol 39 No 1, Winter, 1995 - also available as download from the author's academic page here: Searching for Swing

The same could be done in Bounce - with the bouncing balls, every time you play a beat, could draw a line through the ball as it rebounds from that bounce, with the vertical line dead centre if you were exactly on the beat, or to left or to right if you were ahead or behind. Would do it so that the user can set the sensitivity so if you want it very sensitive you could make it so that the line is moved by the width of the bouncing ball if you are ahead or behind by as little as say 1 or 2 ms or by as much as say 100 ms or more depending how you want to use it.

Could also add special markers for his "Feel spectrum" in the tap timing strip at the positions for "nervous", "drive", "snap", "groove", "in the pocket" (which he puts at -10 behind the beat interestingly), and "dragging" - user customizable so you can choose where you want to put these marks.

Audio representation of the position in the beat

At the same time, could also add pitch and audio cues. These are of especial interest to blind users but could help all users of the feature.

It could play a different instrument depending on whether you hit your note ahead or behind the click - even a different instrument depending on whether you hit close to one of the special points in time in Michael Stewart's "Feel Spectrum".

Bounce could also play a different pitch or also vary the stereo pan position as well. So there are many ways you could provide audio feedback.

Other visual ways of showing position in the beat

Also visually change colour of the ball depending on your position, change its shape (diamond shaped if ahead say, and round if behind) etc, or flatten it vertically if ahead, and horizontally if behind, all ways to reinforce with immediate feedback your perception of whether you are behind or ahead of the beat.

All of this is easy to program. I just need a few days free some time to work on it to do it properly.

Status - feasible, and most of these options wouldn't take much work

Count In Option

Wish made: 19th February 2013
Suggested by: Jared Hinton

The idea is to switch off all the special features such as gradual tempo changes, skipped beats, accents etc, and just count in for a couple of measures (say). Either you use the current rhythm whatever it is, or set a rhythm to use (e.g. 2/4 or 4/4) just for the count in.

This is probably easy to program. It's a bit like the rhythm progressions except that you have to switch off the gradual tempo changes, Go silent briefly etc. as well.

The main thing that needs thought for the coding is how to do that and how to make sure that when features like the gradual tempo changes switch on, that they time themselves from the end of the count in rather than backdate to the beginning of the count in - which is what they would do naturally at present.

Meanwhile there are a few workarounds you can use depending on what you want to do.

For Gradually Changing Tempo etc (Ctrl + 42) if you go to More enough times, you eventually get to a window that lets you program in as many tempo changes as you like one after another so can program in a short count in steady tempo at the beginning.

The only problem is that if your gradual tempo change is a short one which you want to repeat, something like e.g. increase and decrease over several minutes and repeat the whole thing, it will also repeat the count in as well. There is no true work around for that, but for practical purposes, you can handle that too by just adding the same gradual tempo change over and over to that list until you have enough there for your session.

For Automatic Tempo and Rhythm Changes (Ctrl + 245), you can just set a different rhythm for the first couple of measures or so.

With the Go SILENT Briefly (Ctrl + 260) there isn't really a true work around again, but you could set a count in like this e.g. 8 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 (repeat the 2s as many times as you need for the practise session, it's quite easy to do that if you keep highlighting all the numbers you have typed in so far and use copy and paste to get twice as many of them and do that until you have enough for the entire session, will just take a few seconds to do).

That doesn't deal with the skipped beats, accents etc. For those you would need to use scripting at the moment. You can explore Tune Script (Ctrl + 171) for that.

Anyway that's for now, and certainly, it should be made much easier than this!

I'll take a look at this in the near future, may be easy to program. As it does require some thought, probably will be a couple of weeks or so before I start on it, especially as I also have other things to work on as well.

Status - feasible, probably fairly easy

Rewire Support

This is something I might look into in a future beta / release cycle for Bounce Metronome and Tune Smithy.

As a sole trader I'm legally permitted to add rewire support according to Propellerhead. But I haven't yet looked into the details of how it would need to be coded, or how easy it is to do. So can't really comment at this stage on how feasible it is.

Meanwhile if you want to route midi notes from Bounce to your DAW, e.g. to play the instruments on your DAW, then you can use a virtual cable such as Loopbe1 or Midi Yoke NT. Midi works fine for program to program relaying in Windows through a virtual cable - typically at rates of thousands of messages per millisecond. It's not limited by the slower standard rate of the midi cable protocol.

For more about this see Virtual midi cable

Possibly feasible, needs research. Meanwhile you can use virtual midi cables such as Loopbe1

Bounce as a VST

I had a go some years ago at doing Tune Smithy as an MFX plugin. The way the MFX plugin worked was that it called the stand alone program which ran as a hidden process and the plugin interacted with it directly via shared memory. It worked, sort of, but there were a few issues and I was never very satisfied with it though a few users did make use of it.

So, maybe the same idea could work for Bounce as a VST. All the code is still there in Bounce for the interaction. Everything worked fine from the FTS side of things. The problem was on the UI side in the plugin itself - I just wasn't sufficiently familiar with the architecture of MFX or the coding methods to do a good job there - there were latency issues, and the UI was rudimentary and not so easy to use.

I probably won't explore this in the near future, sorry, just feel it is probably not the best use of my time. It would take longer than most for me to code it, and the result likely to be not particularly satisfactory unless I put a fair bit of time into it, learning how to do it.

Long term it is possible, especially if I can employ someone else to do it.

Again you may find you can do much of what you want to do using [Virtual midi cables] to connect the stand alone program Bounce Metronome with your DAW.

Probably feasible long term, especially if someone else does it - not likely to do it in the near future

Export Midi in Format 1 - multi-track - for import into a DAW

If you look at the midi files created by Bounce Metronome then all the notes are put into a single "track" - though possibly into many channels in the case of melodic instruments.

Sometimes musicians want to work with the midi exported from Bounce in a multi-track way - so want a format 1 midi file with a separate track in it for each of the parts in Bounce.

At the moment the only thing you can do is to mute all the parts and then set it to play just the parts you want - and export each part as a separate midi file. You can mute the parts in Show All Parts (Ctrl + 9) or use the keyboard shortcuts (A to mute all the parts, and press the numbers 1 to 9, 0 q w e r t y to play each part).

I can easily add an option to export one separate format 0 midi file for each part in the current rhythm all in one go, if anyone wants that.

For techy reasons, it's not so easy to export the whole thing as a format 1 multi-track part.

One idea is to export a bunch of format 0 files and then see if there is any software available that can merge a bunch of format 0 files which are intended to be played simultaneously into a single multitrack format 1 file.

Export as a bunch of format 0 files is now done

It's in Midi File Options (Ctrl + 12) choose "Seperate File for Each Part" (see the Save Single Midi File droplist). See Change Log#Monday 18th February 2013

So - if there is any way to automatically merge all these files into a single midi format 1 file, that would sort it out.

I haven't found anything yet but maybe there is. Anyone know of anything that can do that? Especially, are there any command line utilities to do it which I can bundle with Bounce Metronome (if so the whole thing could be automated)?

Feasible but technically hard to do directly, however can now export as a bunch of format 0 files

Off-line Version of this Wiki - Ideally Searchable with an Index

You can make an off-line version already with a website copier such as the free httrack Website Copier. Just set it to download from http://robertinventor.com/bmwiki.

On the second page under Set Options then Scan Rules, set it to:

-* +*/bmwiki/* +*.png +*.gif +*.jpg +*.css +*.js -*/archive/* 

What that does is to make sure it only downloads pages with the folders /bmwiki/ in it (otherwise it will attempt to download the entire robertinventor.com site). It also leaves out the folder /archive/ which includes old versions of the images.

The main problem is that it isn't searchable offline - if you use the search box it takes you to the online version of the site instead. Also it is rather a large download.

There are various ways to add a search to an off-line archive like this commercially. For instance AFSearch, or Likse or Zoom or Help and Manual. Comparision of some of them

So - might well be possible to do this at some point in the future. But at present it's not clear that many users will need the feature, enough for it to be worth the work involved (and the expense if it is a paid for solution). It might be that most users will just use it on-line. After all even if you have a music computer that you never connect to the internet, you may well be able to view the on-line website on something else - an iPad or Android tablet or netbook or whatever.

Also one issue for any of these approaches is to try to find a way to trim the size of the archive as it is rather large.

Another idea is to add an option to the wiki to export individual pages or groups of pages as documents or pdf etc. This is a feature that got added to wikipedia recently. See Wikipedia Book creator. If you visit a category page you get an option to add everything in the category to your book in one go (with wikipedia you can also save your book to your public profile).

So I could make a "help pages" category say or a "how to use a metronome" category and you could download just that help as an e-book.

The only thing is - that this option, the Collection extension, requires a more recent version of MediaWiki.

Upgrading a wiki requires care, especially if you have many plugins or custom skins as with this one. The upgrade can break these - requiring you to go in and edit the raw code to fix any issues that arise. Also sometimes you have to fix the databases as well because occasionally mediawiki changes the format of the databases in some important way - which may get dealt with automatically but might cause issues.

So - some time I'll probably need to update this wiki but not right now.

Status - Can download entire site with website copier. Adding search and export of individual pages feasible but lots of work

Option to set the notes to play staccato

This is especially relevant for the harmonic metronomes and other options that use pitched instruments, which often have a continuous sound. The idea is to add an option to play the notes staccato.

Not sure how you would do it in the UI. Could be an option set individually for each note - the amount of "staccato" similarly to the volumes in Beats volumes and times (Ctrl + 76). Or it could be an overall option to make all the notes in a part or in all the parts staccato.

There is an option in Tune Smithy actually to make all the notes in all the parts staccato but it is only available for some of the fractal tunes. For techy reasons it is not available for the rhythms used in Bounce Metronome Pro.

So - this would need some thought. Especially if set on a note per note basis it might need a lot of thought. I'm not sure how best to do it right now, and may leave it for the next beta / release cycle.

Meanwhile there is a workaround you can do - for some rhythms anyway. With the Drum & Dance rhythms notate the staccato notes using shorter notes and rests. E.g. for quarter notes staccato alternate eighth notes with eighth note rests.

With the other rhythms, you can use a similar approach - set it to play twice the desired number of notes. Then silence every second note (by setting its volume to 0). That gives you notes that play for exactly half of each beat.

You can similarly do a staccato quarter of a beat (very staccato notes) by using four times the desired number of beats, and silencing all except the first in four notes.

With most rhytms, you can then fine adjust the duration of the notes to make the notes more or less staccato.

Status - feasible certainly - not sure how much work is involved - as a work around can alternate played and silenced notes instead

Option to play a single measure only for one of the Drum & Dance rhythms

This is for rhythms that run over several measures.

The idea is while practising you might want to practise just one of the measures at a time. So you might want to play that measure around in a loop .

Status - feasible, probably reasonably easy to do

For drum & dance rhythms, count individual measures of multi-measure rhythms for go silent briefly

Wen the width of the window consists of several measures, say 2 measures - the go silent briefly option counts the entire rhythm as a single extended "measure". It would be good to have an option to instead work with the individual measures in the rhythm.

You can do that already now with the #Let the Go Silent Briefly option work over fractions of a measure. But that requires you to work out what fraction of the total measure to use for the "Go silent briefly" okay if it is say 1/2 (you can use fractions BTW in the go silent briefly window)- but requires some calculation if the component measures of the rhythm have different numbers of notes in them. Basically if you count the total number of (say) eighth notes you could use that, so if it is say 17 eighth notes, of two measures of 9 and 8 eighth notes respectively you want to use the fractions 9/16 and 8/17 so 9/17 1 8/17 1 for instance would play the first measure, skip two measures, play the second measure, skip two measures, and repeat.

So - could be nice to have a way to do that in the ui without needing to work out and type in the fractions there.

Programming reasonably easy probably, not sure how to do it in the UI yet.

Status - feasible

Option to vary tempo gradually in different directions in each of the parts

This would be an option to independently vary the tempo so e.g. the first part speeds up from 60 to 72 while at the same time the second part slows down from say 30 to 20 or whatever

Technically hard to do in Bounce Metronome right now

There are technical reasons why that is hard to do with the existing code unfortunately, and it will need to wait for a major update or a new program.

If I do the muti-platform version then I'll see if I can design it from scratch so that all the parts can be controlled in a completely independent way if desired - option to "unlink" the parts from each other completely.

Make a simple LED type display suitable for viewing from a great distance

Date wished for: June 2012

Suggested by: J-Man

Suggested by J-Man (June 2012) - a Salsa drummer who plays in big bands with sometimes as many as 1000 members

The idea is that if seen from a great distance the bounce type visuals may be hard to follow. So it might be preferable to show simpler LED style visuals where you just get a light flashing for each beat, a different position for each one. Rather than LEDs as such you could flash up part of the screen in colour against a black background.

Here - it's a nice idea but before going ahead and implementing it, need to think about the motivation some more.

First, the bounce visuals do work up to a fair distance, as the eye is very sensitive to this sort of movement, I find you can easily follow it e.g. out of the corner of your eye while reading music. Also conductors do regularly conduct large orchestras and typical orchestras of 100 or more players, so if you put the bounce visuals on a large screen you should be able to follow them from a fair distance.

But if you are a really long distance from the screen the LED type display may help. Also it would help if it is displayed on a small device seen closer up and may also help musicians who are more familiar with this type of display.

So - can see that, the next thing is, can it achieve the same micro-second type precision visual cue as Bounce. I don't mean the actual timing of the lights, but whether a human eye can actually follow the timing of them with that level of precision. Is there something like the Bounce effect you can use to make it easier for a human eye to follow a flashing light with really high precision.

J-man assures me that that level of visual tracking precision isn't really needed for the application he has in mind - but all the same I would like to program it like that if possible.

So - the idea is to use visual shading cues. Maybe have like a vertical bar of duller colour that descends just like the bounce does, getting darker, and then at the bottom it flashes to full brightness again (like the splash) so showing the moment really clearly, then in some way "bounces back again". I'm not sure how this will work exactly but does seem possible that through light and colour transitions, and through some element of motion too that is visible even at a really great distance you could get it to work. It's a matter of experimenting until you find something that looks good, is easy on the eye, doesn't complicate things, and is easy to follow with great visual precision like the bounce.

A natural place to put it in Bounce Metronome is in the drop list at top right of the bouncing balls display. Where it says bounce back and forth, conducting patterns, inside oval, etc. add a new option "LED style"

Then what that would do is to put the LED visuals behind the bouncing ball. Optionally you hide the bouncing balls and have just the LED visuals on their own, but optionally you also have a bouncing ball bouncing from one beat to the next as it lights up. That then would also work in 3D as well as 2D - in 3D put the LED lights in the "Sky" or else positioned just behind the 3D bouncing ball where they land on the beats.

Later if / when I do mobile / mac versions of Bounce, then it would be a natural to do this as a separate app. But in Bounce it is more natural to do it as a new feature, easily to find for anyone who wants it.

Status - feasible, lots of ideas to explore, needs to be tested to see which work best

Add more Latin American Rhythms

I've included a few in the Drum and Dance section (select Drum & Dance in the main window drop list) and you can make other rhythms with varying beat sizes like that yourself. They need tweaking though to sound good.

More programming needed before it is easy to make them sound really good - though with care you can probably make them already by hand.

Two main things, need to do the accents and instrumentation right, and then there's the subtle timing.

The instrumentation is easiest to address, as you can already set a different instrument for each beat in the rhythm and set a level of accent for each beat too. That is a bit of a cumbersome process, so some way of indicating the instruments for each note in the rhythm editor would be nice, perhaps some kind of drum tab notation.

For the subtle timing then I plan an option to let the user get the rhythm from a groove by clicking on the start of each beat in a large visual display of the rhythm.

You can already tap out a rhythm by hand for each part but that doesn't work so well as you need to use the mouse to do it, and I plan also to make that work a bit better with midi keyboard input.

Status - feasible, several updates needed to make it easier to enter the rhythms

Add more Flamenco Rhythms

Something I plan to do at some point. There are several good Flamenco programs available already (see my List of Windows Flamenco Metronomes here) but it seems there might still be some interest in a bounce version as well:

See this discussion at floro flamenco What is your weapon of choice: Metronome, Drum Machine, Compás CDs, or Software? - Foro Flamenco

So - plan to add some of those rhythms when I get a bit of time. Meanwhile you can do custom rhythms yourself by hand using the drum & dance rhythms editor.

The thing is I'm not a Flamenco player myself. If you want to help with adding Flamenco rhythms to Bounce metronome or are keen on this feature to be implemented, do let me know.

E.g. if you have suggestions of which are the best rhythms to add, how best to present them visually and how best to count them visually, and so on.

Status - feasible

More drum rudiments

Add many more drum rudiments. Maybe do as a separate drum rudiment bounce metronome in the drop list in the main window - or as a separate program altogether.

hybrid rudiments Percussion Arts Society standard list of 40 Drum Rudiments 40 essential snare rudiments

Some of the rudiments will need new coding e.g. grace notes - you can do them individually by adjusting the beat times by hand but at present there is no grace notes notation in the rhythm editor

Status: feasible, some easy, some need extra coding

Add option to automatically read Drum Tabs

The idea is you just copy / paste a drum tab into a text area in Bounce Metronome and it automatically plays it on the correct instruments.

Similar idea to the Beat Boxing preset.

Background: Wikipedia article on drum tablature, Links to Drum tabs sites Middle Eastern Rhythms drum tabs

Status for: Ascii version of drum tabs - feasible, depending on features required

The simplest approach is to implement the ascii notation for tabs. That should be feasible, There are some things might be hard to do in midi, but can probably do a version flexible enough to be useful fairly easily.

Status for: Music notation version of drum tabs - probably harder to do

For techy reasons it is hard to do adding music notation to the software on a staff. It was okay to do the rhythm editor because that is basically just linear, can use the Bach typographical font and the notes in the different parts don't need to line up or be shown on a score.

What is hard to do is to make a score that lets you line up the notes well, and with the right spacing between the notes (so e.g. if you have a quarter note on one line and two eighth notes on the next line then the quarter notes are shown further apart from each other) - and also to have it so that when note are simultaneous they share the same stem as a chord - or at least some of them do - and at the same time editable.

All that - plus the need to place the notes on a music staff - that all adds to the complexity of the programming, and I don't know of any "ready to use" components I can use to add this facility to Bounce.

So - this is one of the things that seems easy but programatically is likely to be hard to do.

It could become much easier if someone creates a music notation "control". It would be something like the richedit control used in Bounce Metronome (and many other programs) to display text with varying fonts, bold, sizes etc all in the same document.

There is Vexflow for web pages. The only thing is, I don't know if it is possible to embed it in a program like Bounce Metronome, if it was that would be a good starting point.

Make a rhythm exercise randomizer similar to the Flamtastic Drumputer

You can find the program here:

http://www.drumputer.com/

The idea is to do something like that in Bounce, a way of randomising the rhythm for rhythm exercises. Also if the drum tabs were implemented as well, could have a drum tab randomiser where you have a series of drum tabs you combine at random in a similar way to drumputer's randomiser.

This would need thought, but could be done. If it combines simple rhythms e.g. 4/4 type rhythms or whatever doesn't seem too hard to do - combining complex polyrhythms in a similar way might be much harder.

The actual combining of the rhythms probably isn't that hard. The main challenge might be working out a good user interface so it is easy to use. Anyway hard to say for sure as it is the sort of thing that needs a fair bit of thought to do a good job of it.

Feasible depending on the features - but needs thought, can't say at present how easy or hard it is to do

Use of controller pedal to start / stop the tune, vary tempo etc, start and stop bounce etc

J-Man, June 2012

The idea is to provide a way to control important things in the user interface via a midi controller controlled for instance by a pedal board - so you don't need to use your hands.

Suitable things to control in this way could include the main keyboard shortcuts such as the return key to stop / start, the arrow key to adjust the tempo, and so on, all controlled via midi.

The easiest way to do this is to just hard code in some particular midi events to do this, I could do that very quickly.

The better way to do it is to provide some way for the user to make their own mapping from the midi to the user interface - e.g. they press a pedal and then choose which parameter they want to control with that pedal.

What I could do is take the easy option first, and hard code it all, just as an option you can switch on with a check box. This needs some suitable default to be worked out.

Then I can add the option to configure it in the user interface later on.

This is comparatively easy to program. Maybe a few days of work getting it polished, testing etc.

Status - Feasible and likely to be easy to do

Midi Sync so that the Bounce Metronome Animations can be synchronised with midi notes in other applications

First of all, it is a feasible feature for the future as there is a Midi Sync protocol designed for this. It works by sending intermediate messages between the actual notes played which programs use to help them synchronise with each other.

I have done some work on it in BM Pro - there is a Midi Sync feature but it is WORK IN PROGRESS and at present doesn't track very well and may well have bugs in it.

Some time I need to do more work on this. If you want to take a look, you can find it as the Midi Sync. Receive option in the program (Ctrl + 177).

The other option is to do it the other way around and drive Sonar from Bounce Metronome Pro.

This is the Midi Sync Send & Misc. (Ctrl + 175). The programming isn't quite so complex that way around, less likely to be buggy so may possibly work already in some cases.

Status - FEASIBLE AND PARTLY CODED BUT TESTING AND FINE TUNING WILL TAKE SOME TIME

Add separate chord progression player as a main window "Metronome Type"

The idea here is that Bounce Metronome now has most of the capabilities of Tune Smithy's chord progression player - so would be fairly easy to add the entire player in as a new "metronome type"

Status - feasible

Add strumming patterns to the chord progressions

The chord progressions already have broken chords as an option. The idea is to add strumming patterns as well so that instead of e.g. playing all the chords strummed upwards you can e.g. alternately strum up / down etc.

The main thing that needs thought here is the notation - how to notate it. Perhaps using / and \ but that conflicts with the existing chord progressions notation so needs thought

Status - feasible, needs some extra thought though about how to do it =

Add separate "tuner" to play reference pitches

This is a feature of some hardware metronomes so seems like a natural thing to add to Bounce.

I mean just the type where the program plays reference tones you can use for tuning your instrument. Bounce Metronome can do this easily, so just a matter of a nice UI for it.

Getting Bounce Metronome to auto detect the pitch you play to help you to tune would be a lot more work. It can do that already actually, but not in real time, and it doesn't always get it right depending on the instrument timbre, so I need another solution there, coding has moved on in this area, with highly accurate pitch detection available for microtonal use - and I rather expect that using other third party code to do it might be the best way ahead nowadays.

Status - easy to do to play reference pitches - detecting pitches requires more work and research=

Add separate main window for Pitch sensitivity, harmonic interval training and ear training and testing

Following on from that, this is something I've explored in Tune Smithy a bit, and have some features in Bounce Metronome mainly to do with hearing beating partials, and pitch sensitivity see Harmonic Interval Trainer (Ctrl + 253) and Pitch Senstivity Tester (Ctrl + 255). So the idea is to put all of those into a new "metronome type" in the main window, "Ear training and testing" (say).

That's for pitch recognition, could also have a rhythm recognition feature as well maybe too.

So - some of this is already included in those two windows mentioned. Other things would require a lot of work to do well. Could get it started with just the things that are in Bounce Metronome already, and add to it later on.

Status - Feasible

Add option to show 2D graphics in the 3D window for more efficient drawing

Background to this idea: the 3D graphics though more complex in appearance puts less stress on your computer since all the work is done in the GPU. Also the GPU is designed for graphics operations and so is often faster at doing them than the CPU, so may be able to achieve a higher frame rate (so smoother appearance to the graphics).

So if you like the appearance of the 2D window - but want to reduce the load on your CPU and possibly increase the frame rate as well - then the idea is to see if you can show the 3D window in 2D. The Direct2D option in Windows 7 addresses this but is probably still not as efficient as a similar option could be in the OpenGL window because of the way it is done at present integrated with other 2D non accelerated graphics.

This is feasible and a nice idea to explore. But it is more work than just a check box. The 3D window is done in a different way from the 2D window. So instead would probably do it step by step. E.g. add an option for circles rather than spheres for the bouncing balls etc.

Status - FEASIBLE in the future - but more work involved than you would expect. To get started on the idea have added an option to show 2D shapes bouncing in the 3D window

Enable Anti-Aliasing for the 2D and 3D graphics in the program

This is now done - using Direct2D for the 2D graphics - and Open GL antialiasing in 3D - but the 2D anti-aliasing is slow on most computers for some reason (I use Direct2D within a normal non accelerated environment, and I suspect the slow down is to do with switching between the two systems) so defaults to switched off.

The 2D and 3D graphics currently have anti-aliasing (i.e. edge smoothing) disabled. So if you look in detail e.g. at the tempo dial here: Bounce Metronome Pro Tempo Features then you see the "jaggedy" pixelated effects if you look closely at the lines. Same happens with the edges of the 3D shapes in 3D.

Actually technically these are two different issues. In 3D then I need to enable anti-aliasing for OpenGL. This is more tricky than you would expect. Probably would use the method described here: NeHe tutorial Different ways of achieveing antialiasing in OpenGL - idea is to use the multisampling extension approach

TECHY NOTES (for any OpenGL Windows programmers reading this). For techy reasons this involves making a hidden OpenGL window with anti-aliasing disabled, which you then destroy in order to remake it again with the anti-aliasing enabled to show to the user. It sounds like a roundabout way to do things, but you have to do that because in Windows the OpenGL graphics context is associated with a window and once the window is made the pixel format can't be changed - but you can only find out pixel format capabilities within a graphic context and you can only do that by making a window with OpenGL.

In 2D then there are two solutions, to use GDIplus or to use Direct2D. The Direct2D approach will only work in Windows 7, but is much faster, and also technically may be easier for me to program. So anyway that's what I'll probably do, and to make it backward compatible for XP and Vista will do it in a dll, with routines to draw lines, polygons and ellipses in Direct2D, using an option that lets you draw to Direct2D within the "Device Context" of the normal GDI operations. So if Direct2D is present can just draw to the same device context as before, and if Direct2D is unavailable will then just do it as it does now - at least that's the idea, if it works. Will use the Microsoft GdiInteropSample as a basis.

Status - DONE - though needs optimising to make the Direct2D drawing faster

Cope with a fermata, accelerando or ritartando

See Question about Advanced Metronomes - in ABRSM General Music Forum

The accelerando and ritartando - already possible using the script - if you do it according to the elapsed time.

But it is more natural to e.g. do it for a particular number of measures. For that see the next wish: #Let the Morph = Tempo and similar script instructions work for measures as well as for time

For a fermata - should be possible again, but need to think about how best to do it, again maybe best way to do it is in the script.

Status - Should be FEASIBLE, needs a little thought

Add some kind of a visual cue for the Morph = Tempo instruction

The idea here is to show visually that the tempo is about to change (colour change, size of baton, or something), in some way - conductors do this.

Status - FEASIBLE, needs thought

For option to set the instrument separately for each beat of the rhythm - let you set the midi note number to play individually as well

This may be needed for some soundfonts which treat melodic instruments like a non melodic percussion drum kit.

Here is an example:

http://soundfonts.homemusician.net/drum_kits_and_percussive_kits_soundfonts/rcubero_percusion_flamenca.html

The three instruments, palmas, Tinaja and CajĂłn in this soundfont are mapped to notes above and below middle C on midi instruments 0 to 2.

They are not pitched to match the pitch of the note they are mapped to - instead gives many different ways of playing the notes - style of playing as well as variations in the overall pitch of the percussion (to the extent the percussion has pitch).

Essentially it's a non melodic percussion type font but played from midi instruments 0 to 2 instead of using the more usual drum kit. Not unusual to do this, also seen a tabla font like this if I remember rightly.

So would be a good feature to be able to do this.

You could do a work around already using the Custom Voice Instruments window (Ctrl + 37) and the option to transpose by ET semitones using the Customize Instrument (Ctrl + 44) window, but it would be fiddly to do especially if you want to change the instruments for individual beats frequently as you'd have to highlight the correct "instrument" in window 37 then go to window 44 and change it's transposition in semitones, meanwhile bearing in mind what the current 1/1 pitch is so that you know how far to transpose it (e.g. -1 semitone from 60 to play midi note 59).

With a bit of thought I should be able to add an option to just right click on the beat and select from a list of midi note numbers instead of, or as well as the more usual instruments list - or perhaps click and enter the number as text - or maybe let user label individual midi notes with instrument names if they need that. Anyway will give it some thought and see what happens.

Status - certainly feasible and reaonably straightforward, needs some thought about how best to do it

With the mixed meters like 4/4 + 7/8 have an option to set how many times to play each of the time signatures

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.

Status EASY TO DO

Make it easy to enter triplets and other n-tuplets and nested ntuplets in the rhythm editor

This should be easy to do for a single part and is on my wish list for the reasonably near future.

But it's a bit trickier than I expected.

Triplets work around

Note - you can already do triplets using a work around. That is, to dot all the non triplet notes. It will look a bit strange, but will work since triplet eighth notes (say) are two thirds of the time of a normal eighth note and a normal eighth note is two thirds of the time of a dotted eighth note.

Notation

Notation isn't that hard to sort out.

Could use abc notation for tuplets abc notation tuplets examples and Triplets, quadruplets, and the various other tuplets

Or alternatively,

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

Programming issues

The problem is the programming.

The easy way 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.

triplet then quintuplet eample

It is trickier to do polyrhythmically however. The problem is, how to align the tuplets in the different polyrhythmic parts with each other, especially if you also have swing and lilt applied as well.

You also get issues even without polyrhythmic tuplets, just aligning say triplet + quintuplet in one part with 2 beats to the measure in another part.

That's partly why I haven't done it yet. You can see the problem if you try e.g. a triplet followed by a quintuplet.

You can set it up easily enough as e.g 4/3 4/3 4/3 4/5 4/5 4/5 4/5 4/5 (enter these as the times in Beats As Text (Ctrl + 77)

The problem is, how to do the alignments

The problem is if the next part has two beats, the second beat will align itself with the second note of the quintuplet rather than the first note as we would wish, because it aligns itself with the middle of the eight beats counted numerically rather than by time, i.e. always aligns with the fifth beat.

Doesn't seem much you can do about that, as that is what you generally want if e.g. you add a gentle lilt to a rhythm. When you adjust the lilt or swing or adjust individual beats in each of the parts, you want the notes in the other parts to remain aligned together, so doesn't seem a good idea to completely uncouple the parts from each other as far as timing is concerned.

So you want alignment - but you align the notes differently depending on whether they are tuplets, or the are just plain notes swung or lilted or timing adjusted. So if you interpret the tuplet notation by adjusting the timing of individual notes, then that is likely to cause alignment problems of this sort unless you can somehow also change how they align with the other parts.

Attempted solutions

You can fix that in this case by putting eight beats into the second part - so it has the same number of beats as the first part. Then to play two beats in the second part, skip all except first and fourth beats (instead of all except first and fifth beats).

It would be possible to program Bounce Metronome to do that automatically for simple cases like this one.

But it's hard to see how to generalise that work around to all cases. E.g. in this case, what if the second part has 4 beats e.g. for eighth note divisions of 2/4 - what do you do about the alignment there when some of the beats don't align with anything in the first part.

If you then have polyrhythmic ntuplets in the various parts, it gets even harder.

What you can do is to divide into smaller visible subdivisions which you treat as separate beats skipped in the user interface - so you have e.g. 60 subdivisions if you want to permit 3, 4 and 5 note ntuplets.

That's not too hard programmatically probably (and also something you can do by hand as a work around) but the problem now is you'll get loads of subdivisions on the screen so hard to work with and also it's harder to do things like e.g. skip beats and accent beats by hand. So it is visually more complex than it needs to be, and a bit unintuitive for the user as well.

So - not sure what to do. But probably will just do a version of the timing approach as that's the easiest to program and will be useful for many examples - and warn user that it is not really perfect and leads to some situations that are unintuitive.

But will continue to think about it maybe there is some other approach that somehow combines the best of both these ideas ??

Maybe there is some natural way to change the way the alignment works when you have n-tuplets?

I think this should be possible, with some careful work - the program itself would do basically that division into 60 subdivisions or whatever is needed, same as the previous idea, but the difference is, it wouldn't show it to the user, only use it internally as a way to figure out where the beats align. And would figure that out somehow using the swing weights idea, maybe. Kind of handwaving, I can't really see it yet but maybe with some thought will get a solution.

Status - SEEMS FEASIBLE AND PROBABLY REASONABLY STRAIGHTFORWARD AT FIRST SIGHT, BUT MORE INVOLVED THAN YOU EXPECT

Add rhythm notation for grace notes + option to configure size of the grace note

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.

Status probably not hard to do

Option to show Tempo as ms per beat instead of beats per minute

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.

TRIVIAL TO DO - anyone want this?

Get Conducting Pattern from a Movie

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.

Status FEASIBLE

Pitch Bounces

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.

Ideally could do it as a pitched white noise or some such, some instrument with a discernible pitch but not too obtrusive. Lilke the multiply resonated white noise CSound instrument perhaps or similar.

Easy to program and will do it in near future when I get a bit of time to work on it.

FEASIBLE AND EASY

Export the 3D animations IN 3D for use in other programs

Not sure if anyone needs it - but the idea is you could export a BM Pro movie which could then be imported into a scene in another 3D Program. It would be true 3D, not just a movie - so you can e.g. move around, see it from all angles etc.

One thing I can do fairly easily is to add an option to export individual frames as .OBJ files - a 3D file format recognised by many 3D programs. I could also add an option to export all the frames of a movie as separate .obj files for each frame.

What I'm not sure about is if I can export it as a 3D animation as such. Need to research into file formats used for animation saves.

PART OF THIS IS FEASIBLE AND EASY, NOT SURE ABOUT REST

Import 3D animations from another program into BM Pro

This might be nice if e.g. you have an animated character or creature from another 3D animation program which you would like to use in the scene in BM Pro in some way. Either as the bouncing balls themselves as animated 3D characters - or as other characters that interact with the animation in some way.

I have no idea how easy or hard this is to do. Since I work at a low level, I would probably have to write some kind of importer to import the animation into the scene - unless there is some library available that can do the same thing.

NO IDEA HOW EASY OR HARD IT IS, NEEDS RESEARCH TO FIND OUT

Version for a Mac

This is tricky to do because of the way the software is written. Probably best bet is to write a new version from scratch which is smaller and focuses on the rhythm capabilities, for phones and portable devices - and incidentally also do it so it can run on a Mac as well.

Meanwhile you can try running it on your Windows partition on a Mac, it might also be able to run in a Virtual Machine (not sure about this) - and a new Windows PC costs remarkably little these days, anything which can run Windows XP, Vista or Windows 7 will do fine.

For details see:

No support for native Mac or Linux

Quite hard but may be FEASIBLE

Make it possible to run Bounce Metronome Pro on a mobile device

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.

See though: #But may revist this. Had new ideas about how to approach it

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

See More about why it is so difficult to port Bounce Metronome Pro to a Mac

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

It may be Flash - or WebGL - or might be something else, so far just investigating possibilities.

STATUS - CAN DO ALREADY IF DEVICE SUPPORTS XP - have some new ideas to investigate in the future for other devices

Play notes from midi in

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 - DONE. See In Devices (Ctrl + 249)

However, there is still a lot to be done by way of thought about how to use this new feature. For instance you would like to use it to silence / play parts for the rhythmicon, to tap at tempo, tap at rhythm etc, all of those and more could be done from the midi in keyboard with a bit of thought. Those are like the "natural ideas" to follow up.

Also, things one mightn't think of but could be useful to some users - things like change the tempo of the metronome, change time signature and so on - you could do those directly from the keyboard either using controllers for keyboards that have integrated controller wheels - or by assigning particular seldome used keys on the keyboard to particular functions.

DONE - but lots still to do by way of figuring out how best to use this new feature in the rest of the program

Option to start with Windows with a tray icon

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.

- Just added to the Options - General (Ctrl + 202)

Status - DONE THE START WITH WINDOWS, but no tray icon yet - FEASIBLE AND EASY

Add option to use space bar to stop / start play instead of return

So - idea is wherever the space bar is used as a tempo tap, instead can use it as a start / stop play button. You still have the back space tempo tap.

Feasible. Needs a little thought.

Status - FEASIBLE

Add option to show the "bounce" as a pendulum motion

This is for the sonified pendulum waves such as


.

The original pendulum wave looks like this:


So to get similar visuals would be good to have an option to show the bouncing balls moving in a pendulum motion. Probably not that hard to do though low priority, because musically it is much easier to synchronze with a bouncing ball - and a pendulum motion has no obvious advantages for the musician.

None of the moments in a pendulum motion is particularly easy to spot visually and synchronise with as a musician. At both ends of the swing the movement slows to a stop making it hard to see it as an exact moment in time - and in the middle of the swing it moves so quickly again it is hard to see it as an exact moment in time at the millisecond level.

Do let me know if you particularly want this - will probably do it eventually but have other things with much higher priority to do first.

Status - feasible

Add motion like a traditional metronome

Probably not that hard to do though low priority, because musically it is much easier to synchronze with a bouncing ball. The traditional pendulum motion has the advantage of familiarity but doesn't have any advantages as far as ease of syncrhonisation - because it is hard to see the moment when the bar crosses the center line as an exact moment with millisecond precision. Our eyes are more attuned with bounce motions, like those of a bouncing ball or a conductor's baton.

Do let me know if you particularly want this - will probably do it eventually but have other things with much higher priority to do first.

Status - feasible

Add motion such as coupled double pendulum visuals

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 for chaotic pendulum motions

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

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 Beats volumes and times (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.

FEASIBLE

Reorder the parts by the number of beats

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.

PARTLY DONE

Add option to time shift the video or audio, preserving pitch

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.

MAY BE FEASIBLE

Print Preview for the Export Animation, Print or Copy window (Ctrl + 234)

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.

UPDATE (aug. 2010)

You can already do this if you find out the resolution of the printed page - and then set the image size to the same resolution and copy it to the clipboard and look at it in another program.

Maybe not that important now unless someone is going to do lots of printing of the images. Let me know if you need this feature.

FEASIBLE AND EASY

Add option to get the instrument names from a sound font

Should be possible, depends how easy the Creative Soundfont SDK is to implement, will look into it to find out more.

Creative SDK

Status - possible, don't know how easy

POSSIBLE

Get a rhythm for a single measure from a midi file recording

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 measure, then the program repeats it.

Or if it is a pattern for several bars, with one instrument already set to play the measure beat - the whole thing can be just treated similarly to a mixed meter consisting of several rhythms, as a pattern to repeat endlessly.

Status: feasible, not that hard to do.

FEASIBLE

Add option to get the rhythm and lyrics for an entire piece from a midi file

Straightforward but may take a bit of time to do it properly.

I could start by getting it to play midi karaoke files:

http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#MIDI_Karaoke_.28.kar.29

FEASIBLE AND STRAIGHTFORWARD

Play the tune using abc notation at same time as the bouncing balls

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

FEASIBLE AND STRAIGHTFORWARD but may take a while

Add abc notation so that Bounce Metronome Pro can play melodies

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.

Bounce Metronome can play melodies already - but they are fractal tunes, so that means that they never repeat exactly and you can enter a tune for the first few measures - but when it repeats it, it will transform it, shift it up or down in the scale or arpeggio.

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.

One idea I just had (feb 2013) was to use chord progressions, and use the notation C1, G1 etc for a chord consisting of just the root note of the chord, i.e. a single note. This makes a non fractal melody line, exactly what we need. Just need to figure out how to automatically convert abc notation into a single notes chord progression + skips and it will have the capability. I.e. that would be what it does "behind the scenes" for techy users, and normally just enter in abc notation if you prefer.

Definitely on my to do list for the not too distant future, though whether that means in a few months time, or more like a year or two or whatever, I don't know, depends on amount of interest and what else I am doing, and how it fits in with other things.

Status - FEASIBLE

FEASIBLE

Unicode for lyrics and special characters

Feasible. Just a matter of whether anyone wants it enough. Could program it in a few days of work possibly sooner.

The program itself isn't unicode, can't show unicode characters in the titles or the dialog text. But you can put unicode into rich edit text, and can draw unicode characters into the bouncing balls display (as already can be done with e.g. the bouncing heart option which was a test of the possibility).

so - it would be easy to do. If you want this just ask and I can do it pretty soon.

STATUS SIMPLE TO DO

Let words and symbols bounce elastically like the bouncing balls (visual effect)

Could do that, just not got around to it yet.

STRAIGHTFORWARD

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

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

FEASIBLE

Add option to make "Follow the Bouncing Ball" type videos synchronised with an audio file such as mp3

Idea is to make videos like this:

Follow The Bouncing Ball And Sing Along

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.

STOP PRESS - have already done this by hand, to help someone who wanted bouncing balls for an audio recording to sing along to - and will be adding it as a feature in near future. Instead of using tap at tempo, you use the option to open an audio file in Bounce Metronome Pro - and then there's an option to click on the notes in the audio file to say where you want the balls to bounce - find the start of each word which is usually easily visible in the audio file - and click on that, adjust if necessary.

This is a feature in the beta of Bounce Metronome Pro - and at the moment it is a bit too complicated and a bit confusing in the way it is set out to include in the release right away.

I found it pretty easy to do by hand. I anticipate that with a few tweaks to make it more user friendly then should be good enough to release as a useful feature for anyone who wants to add bouncing balls to their audio recordings of lyrics.

PLANNED FOR NEAR FUTURE

Bounce on any video including bounce on the notes of a previously made video of scrolling sheet music

Here the idea is - like a video editing program - you present both video and audio tracks to the user. Then in the audio track you click at the start of each note you want the bounce synchronised with.

This then will show the frame for that moment of time in the video track. You then click on the video frame at the exact point where you want the ball to bounce at that moment in time in the movie.

Repeat that for all the notes in the song throughout the video.

Once I have the bounce on lyrics in time with audio (previous wish) worked out then this is something to explore as the next step.

On the face of it then it seems reasonably straightforward. But I have never programmed any video editing software so don't know for sure how easy it will be to do when I get down to it.

STATUS - PROBABLY FEASIBLE - NO IDEA YET HOW EASY OR HARD

First thought about how one might do it is to let the user click on the video for the start of each note so you have video and recording both presented to user and user clicks on the recording for the time - and on the video frame for that moment of the recording for the position of the bounce.

That could be done but the extra video element adds an extra layer of complexity. So - I don't know how to do it yet, and have no idea how easy or hard it is.

Add author's image maybe as jpeg with a few lines of text at end of the video

Easy feature to add once you have done the rest

Easy to do

Let user record beats and bars for bounces for video or audio file to play whenever the file is played

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.

FEASIBLE

Play a midi file through bounce metronome pro and synchronise the bounces with the midi file

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.


FEASIBLE

Improve the way the bounces are found from a recording so that the program finds the beats automatically more easily

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.

FEASIBLE

Add a feature to let a conductor conduct a conducting pattern with the mouse or in some other way

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.


FEASIBLE

Previous Wishes Completed

Let the Go Silent Briefly option work over fractions of a measure

This is now done, see Change Log#Tuesday 5th February 2013

The idea is you could set it to e.g. 0.5 0.5

This doesn't look too hard to do, can take a closer look in the next beta / release cycle whenever it is.

Status - DONE

Let the Morph = Tempo and similar script instructions work for measures as well as for time

Currently the

Morph = Tempo

instruction in the script can be used in a situation like this:

time 0
 
Tempo = 60
Morph = Tempo
 
time 60
Tempo = 90

Idea is to do a simlar thing with bars, so you can do:

bar = 1
Tempo = 60
morph = tempo
 
bar = 8
Tempo = 90

What makes this a bit of a challenge is that the property being morphed also changes the time it takes to play a single measure. Might have to treat Tempo as a special case there - as the main property you are likely to want to morph that changes the length of a measure.

Status - DONE

Separate Bounce Metronome Pro wiki with the tool tip extra help for all the windows, searchable

Idea was to make something like the Tune Smithy help. Since that is currently for version 3.x and needs to be kept for users of Tune Smithy, was necessary to make a new wiki to upload the tips to, which was the main issue to be sorted out.

This required work on setting up the wiki so I can run multiple wikis from the same code - a bit techy but it is all done now.

UPDATE: I have sorted out those issues now and am in process of testing it and uploading content.

After sorting out various other techy details: here it is: All Windows

Status - This is it!: All Windows - DONE

Do the gradually changing tempo window over measures (instead of time)

Instead of changing gradually over a fixed period of time like say 30 seconds, could change gradually over a fixed number of measures, say 20 measures or whatever.

(N.B> what makes it tricky in that window is the option to vary tempo continuously - you could do it very easily with that option switched off so as an interim measure I might add an option to show measures instead of times in that window -but only for vary tempo continuously switched off - until this option is programmed for changing tempo).

- I found a way to do it for this window so it is now done

Status - DONE

Add an export option to export the visuals as a loopable animation

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

DONE

Play any animation in the background of the bouncing balls

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

Custom conductor patterns

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.

- THIS IS NOW PART OF BOUNCE METRONOME PRO - see Conducting Patterns (Ctrl + 247)

DONE

Show visually whether you are on the beat, ahead of it or behind it

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

Click on a beat to accent it as well as skip the beat

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

DONE

Keyboard shortcuts to mute individual parts

- 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

DONE

Add in option to make Fibonacci rhythms as for David Canright's Fibonacci Gamelan Patterns

Tune Smithy can play these - so playing them isn't the problem. The thing is - the bounce visuals are based around a fixed measure size for the width of the window which the balls bounce back and forth within. But the Fibonacci rhythms, by their nature, have no natural repeating unit at any time scale that can be used like that.

So there is no immediately obvious way to convert a Fibonacci Rhythm into the type of rhythm that Bounce Metronome uses. Techy - BM uses the polyrhythms feature of Tune Smithy for the bounces - and to do the Fibonacci rhythms need a way to convert the Fibonacci Rhythm into a polyrhythm type notation (you can do that with time signatures, e.g. 6:2:1 for 9/8 time which is how BM does them - but you can't do the same trick for a Fibonacci rhythm).

The only solution I can think of is to make the Fibonacci rhythm as one big measure. So - I'd do it like the triplet rhythmicon - user chooses how many parts they want to do it for, and then have an option "Make Fibonacci Rhythm" similarly to Make Triplet Rhythmicon - but with more customizations available. That then will make one very long measure to play your Fibonacci rhythm.

That will work fine if you just want to play the rhythm for half a minute, or possibly even a minute or two, but not sure how well it will work if you want it to play for longer time periods as the fastest bounces in the rhythm would end up being very small and hard to distinguish on the screen.

But anyway - it would get the feature underway and the other problems can be met with later, will already be an interesting feature to have to explore. If there was the interest, or I had the time to work on it further after that - possibly use a "Scrolling window" view on the 3D bounce and 2D bounce so you only see part of the measure in the window at a time?

As for how to make it similarly to the triplet rhythmicon, it is reasonably straightforward to do that. I would get Bounce Metronome to generate the pattern of L and S beats for all the parts, in much the same way it does already for the fractal tune fibonacci rhythms. Then for the fastest part, would convert the L and S into beat sizes, e.g. for the Penrose ones into g (golden ratio) and 1.

For all the other parts, would set to the same number of beats as the fastest part, and skip beats to make the Ls and Ss e.g. for second fastest part translate L into * - and S into * where - means to skip a beat. Then next part it is L -> * - - (L + S of previous part) and S -> * - (L of previous part) and next part, L -> * - - - - (L + S on previous part) and S -> * - - and so on.

Not that hard to do so far. Maybe two or three days work - possibly faster even less than a day if it goes particularly well, guess

- Have done this now, see the blog: Fibonacci rhythms, sonified pendulum waves, options of interest to instrument tuners, and other new options and bug fixes

Status for limited version for up to say a minute or two of the rhythm - DONE

Views
Personal tools
Check out the Astonishing Bounce Metronome Pro

Beginners find the bounce wonderfully easy to work with.

Professional musicians are amazed by its advanced rhythm capabilities

Buy Now

box shot for Bounce Metronome

Or, get your free download
Free 30-day trial
Free taster bounce metronome, yours to keep

Or, find out more:
bouncemetronome.com

(By Robert Walker)