About this project
- Project is now fully funded, stretch goal also, thanks everyone!
- After project closes, you can support via PayPal - same reward, unlock key for all my software. I'll keep paypal payments open for anyone who misses the deadline, and for a while longer. After that, you buy unlock keys normally.
- Please check Updates for progress on new Mac versions of these programs (I can't update this page once the project closes).
Here I talk about the programs and project in more detail - for sub-titles, click its captions button and choose English (United Kingdom)
Review of Bounce Metronome and Tune Smithy in Sound on Sound Magazine (scroll down the linked pages to find the reviews)
I've already got Bounce Metronome working on Linux - and it works really well now. With the same technique (using "Wine") there is an excellent chance of doing the same for Macs!
The method will not work on iPhone, iPad, Android, Blackberry etc. It's for Intel Macs only. For reasons and details, see the FAQ Is this just for OSX or will it work under iOS on the iPhone and iPad?
The aim of this project is to get a Mac to get them running on it. Your reward is an unlock key for all the programs for all future time. .
WHAT CAN THE PROGRAMS DO?
First, all my programs are fully accessible to blind, deaf, and visually impaired users, Bounce Metronome, particularly, has many blind users.
Let's look at some videos and screen shots of them in action.
Many Drum rudiments
- Other rhythms with mixtures of beats of different note value
- Including nested tuplets for any of the rhythms, as in the music of Frank Zappa and Brian Ferneyhough
- and fragmentary tuplets
- Polyrhythmic buzz rolls
Here is one of the pendulum wave videos which inspired it
Another way of showing these "sonified pendulum waves"
Bounce has an audible version of the bounce as well, for blind users, "bounces" in pitch and volume.
Bounce metronome can play many other rhythms, also with accelerating tempo, go silent briefly, able to play rhythms in sequence, with automatic changes of tempo and rhythm, and many other features.
For details see Amazing Rhythms and Tempo Features of Bounce Metronome Pro.
TUNE SMITHY FOR FRACTAL TUNES
I would also port Tune Smithy
Here is an endless tune for unaccompanied violin, shows how the melody line goes on and on with no exact repetition. It's based on a strict sloth canon though don't expect to spot that easily.
You hear the tuning first (which switches direction and repeats at the harmonic fourth 4/3 instead of the usual octave),
Then you hear a short seed phrase, and the tune you get when you put it through the magic of the Tune Smithy sloth canon process.
And this one, where I've used Lissajous 3D for the animation
This is the one that ends the intro video
Create your own music in an automagical way from a tiny seed phrase or number pattern, Or play the example tunes that come with the program, and randomize them. See Play & Create Tunes as intricate as Snowflakes - First steps
TUNE SMITHY FOR MUSIC THERAPY
Tune Smithy is also used for music therapy and I'd port the FTS Lambdoma so music therapists can use it on a Mac
which shows these lovely patterns as you play complex chords the Lissajous patterns give a visual representation of the frequency relations between the notes in the chords.
I'd port Lissajous 3D as well, which gives another visual representation, this time in 3D, and is also used simply for creating interesting visual patterns in 3D (including spirographs, textures, gravity and magnetism effects on the Lissajous patterns, and other things mainly there for visual appeal).
Here is the Lissajous 3D pattern from the intro video - pattern for a just intonation major chord 1/1 5/4 3/2 https://www.youtube.com/watch?v=HtqExbXsMZ8
Here is Lissajous 3D again, showing some of its capabilities as a 3D pattern generating tool.
Music here retuned with Tune Smithy, in 17 divisions of the octave instead of usual 12, a nice "scrunchy" tuning. Played in real time from a music keyboard split in Tune Smithy, right half violin and left half viola..
Transitions with Windows Movie Maker.
TUNE SMITHY FOR MICROTONAL EXPLORATIONS
Here is the mouse theremin
You can also retune your midi keyboard to any tuning
Or retune scores. Here is how you set up Tune Smithy to work with Sibelius on Windows to retune your own compositions. I'll need to find out how you set this up on a Mac
LISSAJOUS 3D AS A SCREENSAVER
This shows Lissajous 3D as a screen saver on Windows - again I'll need to find out if you can run it as a screensaver on a Mac. It shows some of its capabilities. The Windows screensaver, also lets you choose music on your computer to accompany it, including on CD. I don't know how that would work on a Mac. This video has no sound.
When it comes to Virtual Flower, I don't have youtube animations to share at present but lots of images.
It's used to make virtual flowers for 3D scenes - exports them as VRML though you can get converters to convert to other formats.
This is that same scene in the Cortona VRML viewer after it's exported as a VRML file
Here is another one with fractal galaxies in the background also created with Virtual Flower (they are geometrical shapes if you go close to them rather than conventional galaxy shaped)
An example of one of the many 3D shapes it can make.
Higher dimensions of space
Anaglyph of a hypercube made with Virtual Flower - find out more. It can also make 24 cell, 120 cell, 600 cell etc. and other higher dimensional shapes.
Note, Virtual Flower is not yet optimized for 3D graphics display (this is something I plan to do in the future).
It's no problem for simpler shapes, such as the trees and flowers with not too many levels of branching.
For more complex shapes, you output them as VRML and then view them in the Cortona plugin or similar.
MUSICAL GEOMETRIES IN VIRTUAL FLOWER
Virtual flower can also be used to create 3D "musical geometries" when combined with Tune Smithy (though this usage of it is a bit techy).
You can try them out here, though you may need to give permission for the app to run in your Java settings. It's using an unsigned app by Blaxxun from many years ago.
Activity Timer is a program to keep track of time spent on projects. It can also give you reminders to rest your eyes, not to spend too long at the computer in a single session.
I haven't done a new release for Activity Timer, for years, but have a beta in preparation when I get the time to test and debug it.
My priority is to get Tune Smithy , Bounce Metronome and LIssajous 3D on the Mac. However, I expect it to be easy to get Activity Timer running under Wine when the time comes.
WILL THIS WORK?
It's pretty certain that I'll get something to run on a Mac. If anything is problematical, as developer of the software, I can remove code that doesn't work, or replace it by other code.
This Linux version looks much like it does on Windows, and works the same, main difference you notice is just that the X to close the window is on the left of the title bar instead of the right as it is in windows.
Here is the complete desktop in Linux,
The programs at the bottom in the screenshot are used to get default midi instruments on Linux. I may have to install them in the Wineskin also. But you won't see them, they will be pre-configured and hidden inside the skin.
I expect 2D and 3D graphics performance to be excellent, same as for native programs. Many games have been ported to the Mac using Wineskins and a similar commercial solution. There are techy reasons also to expect excellent graphics performance.
There are some possible issues, mainly minor, see What might not work?
TIMING OF NOTES SENT VIA MIDI IN REAL TIME (for musicians)
Of course, timing is of great importance to a musician. The problem is, that I don't know how accurately my programs will know the time, inside of a Wineskin on a Mac. If they can tell it to the nearest millisecond, fine. If they only know it to the nearest 10 ms or worse, that's not much use as a metronome.
If this happens, I can probably fix the timing with Wine RT, as for Linux
In worst case, you can play precise rhythms using the beeps metronome - and a new feature just added with samples of drums and other percussion, including your own recordings.
All this is sample precise, well sub millisecond precision, via audio streaming. Here it is in action:
You will also be able to export midi files to disk, for other programs to use or to convert directly into a precise audio file.
For more, see What about timing issues and performance?
HOW DOES IT WORK
I wrap the programs in a "WineSkin". This makes them look like a native Mac program to your computer.
It's size will be about 150 MB. Will be available on CD also if you have a slow connection.
For techy details of what I'll need to do: see How will you make the wineskin? which has a couple of videos I found on youtube showing how you make a wineskin on a Mac.
You won't need to do any of that, You just download the program when it's done, and run it like any Mac program.
REACHED 100% TARGET £550
Well we got there - thanks everyone! You can follow progress via the Kicktraq statistics.
We reached the stretch goal also. I have already ordered the heavily discounted Macbook Air with 11 inch screen and 128 GB hard drive - selling on amazon at a huge discount as it's last year's model.
It will do me fine, especially since it supports an external VGA monitor (which I have). Detailed specs here
We should see Bounce Metronome, Tune Smithy and these other programs on the Mac in the near future!
WEBSITES FOR THE SOFTWARE
BACKGROUND MATERIAL FOR INTRO VIDEO
- Article on Science20: Pure Tones For Healing, Harmonious Lissajous Knots, Pendulum Waves, - And Sloth Canon Music From Numbers
Another article on Science20 Music And Mathematics Of Fractal-Like Sloth Canon Number Sequences.
- Also on Science20 Metronomes - Do You Need Them? And A Metronome Using Conducting Techniques For Visual Precision
PER NØRGÅRD's entry in Denmark.dk - the official website of Denmark - where I got his photo for the video. His entry in the On Line Encyclopedia of Integer Sequences,
His own website on the infinity series, and my article Self Similar Sloth Canon Number Sequences with detailed mathematical proofs for his results (I couldn't find them available online anywhere) plus results about Tune Smithy sloth canon sequences
Charles Lucy's website about his Lucy Tuned Lullabies - he is the composer who suggested I program Lissajous patterns in 3D.
Sorlo the funny sorcerer, which I use in the animation.
Barbara Hero's Lambdoma home page - she's the one who brought the Pythagorean pitches into modern times, and made the connection with harmonic polyrhythms, Lissajous patterns, the colours of the keyboard and other details, for music therapists, and musicians and composers to use however they like.
Erv Wilson's musical geometries made with Virtual Flower - with an applet you can click on to try them for yourself. You will need to permit an unsigned java application to run to use it.
- If you are interested in the maths behind the musical geometries I mentioned, see the Wikipedia article on the Hexany and other musical geometries.
- Wikipedia article about the La Folia
- Wikipedia article about Henry Cowell, the twentieth century composer who came up with the idea of matching tempo to pitch, which lead him to commission Theremin to make the Rhythmicon. He wrote a famous book called New Musical Resources where he talks a lot about these relationships of pitch and tempo.
Microsoft Accessibility Guidelines
- Though many music programs are inaccessible to the blind, there are a few accessible modern ones
bestmetronome.com is a basic accessible metronome on any operating system. Cakewalk's Sonar gets mentioned by blind musicians as a good accessible DAW, with Jaws scripts e.g. from JSonar.
- I used the free Windows Movie Maker to put the intro video together, and for transitions.
Risks and challenges
First, I might not be able to get them to work at all.
However I think the chance of that is minute, as I've already got Bounce running on Linux with Wine.
If Wine is new to you, or for techy details of how it works on the Mac, see What is Wine in the FAQ
The main challenges are, that some features may not work and have to be removed or changed, and that I may need to fix bugs and sort out performance issues.
This makes it hard to estimate a completion date, but it's unlikely that I won't be able to get them working at all on the Mac.
Also, you get your unlock key no matter what happens, which you can use right away on any Windows machine, I'll be able to advise on how best to get it to work on Parallels desktop / VMWare as well if we meet the target.
For more techy details see the FAQLearn about accountability on Kickstarter
1. Can I support the project if I'm not a Mac user?
Yes. The keys will work on Windows or Linux as well, also you can fund it without claiming a reward, See https://www.kickstarter.com/projects/130375104/bounce-metronome-tune-smithy-lissajous-3d-on-intel#project_faq_89124
2. What if I already have the programs?
Your existing keys will unlock them on a Mac. However, your support can help make it happen, and you get an unlock key for all my other programs.
3. I'm only interested in one of the programs or Bounce Metronome Basic. does that matter?
That's okay. Choose a lower pledge level as appropriate. You will still get unlock keys for them all,
4. Can I change the pledge amount?
Yes, fine, at any time until the end of the kickstarter. See Kickstarter FAQ How can I change my pledge amount?
5. Can I pledge with Paypal?
- note - this doesn't add to the Kickstarter total,
6. Does it work on iPhone or iPad? No it's only for Intel Macs, because they use Intel processors. It won't work for Android either (same reason).
7. Why do you need a hardware Mac?
The license for OSX restricts it to machines made by Apple and it checks to make sure it runs on Apple hardware
For more questions and answers, rest of the FAQ below.
It will not work on iPad or iPhone, as these require Arm instructions and the software is compiled in x86 code.
Wine is not a virtual machine, and doesn't use one.
Now technically there are possible work arounds here. But none of them seem promising in the near future.
There's also the idea of a multi-platform app, that is feasiblle at soem point, in not too distant future and I will investigate it.
MULTIPLATFORM APP - FOR ANOTHER KICKSTARTER LATER ON
The plan is to write a multi-platform app for iPad / iPhone / Android / Linux / Windows / Windows RT / Blackberry etc. It will be very simple to start with, and gradually add capabilities to it, is the only way I can do it. Optimized for small display or seeing at a distance also.
t would probably use Unity3D though there are other solutions to explore. It is a multi-platform games engine so 3D performance is excellent, and works across an amazing range of platforms. The price per platform is high, but it's free for any business earning less than $100,000 a year if you don't mind a splash for their company when your app starts up..
It won't have anything like the capability of Bounce Metronome, however which I've been working on for over 5 years full time, since 2008. If you include the code from Tune Smithy I think would be more like 10 years of someone's time to rewrite it from scratch. Certainly well over 10 years of work to do all of my programs again, or a team of ten programmers for over 1 year.
TECHY DETAILS - WHAT YOU COULD POSSIBLY DO ON AN IPHONE / IPAD IN THEORY
First, you can use a cpu emulator. There's a project for Wine on Android which is using this approach. It's making slow progress, but can run the Windows solitaire program on Android. I know that's not the iPad - but it's an ARM chip like the iPad.
It uses the open source processor emulator called QEMU
Then another possiblity is, that I could rebuild the program - exactly the same instructions at a higher level - but compiled into ARM machine code. I don't know if that is possible, if there is a compiler that will take Windows C code and compile it into ARM instructions - there is an ARM compilation option in the latest MSVC compiler - but I think it is probably just for Windows RT Apps (Windows RT runs on Wine).
Anyway - it's an idea that is mentioned in the Wine on Android video. So perhaps some day down the road it might give a way of running Bounce on Android, and if so, maybe eventually on iPad also?
Well not sure about iPad there.
About 4 years back, then Apple approved a DOS emulator iDOS on the apps store. And for a short while enthusiasts found they could install Windows 3.0 on it and play decade old Windows games on their iPad. But soon Apple pulled the app from their store and the fun was over. I'm not sure I really understand why? Would a cpu emulator running Wine very slowly on an iPad also be pulled? Why on iOS when it is fine to have virtual machines on OSX?
WHATEVER THE POSSIBILITIES, THIS SEEMS YEARS INTO THE FUTURE AT PRESENT
Though they are working on it, nobody right now has demo'd any actual Windows programs of interest running on an Android as far as I know, just the Solitaire card game.
If that is ever possible, you are talking about something that might be an option some years down the road most likely and probably for Android. And no idea if it is a possibility at all for iPad / iPhone
What about using a virtual machine such as Parallels Desktop or VMWare on my Mac to run the software
Some people have tried this, with some reporting success, but generally, mixed results, and the ones that succeed may find it takes a fair bit of work and configuring to get it running. So far I haven't been able to help with advice on this, though I can explore that also if I have a Mac to test it on.
The main disadvantage are, first the expense. Most Mac users don't have a virtual machine so you'd have to pay for the machine, and also for Windows itself .
Wine as an open source project doesn't add any extra expense.
You will also have to install the virtual machines (another thing you don't have to do with the Wineskin). Though I think they have improved how they work, it is still a major addition to your computer.You might be nervous about adding a virtual machine if you aren't particularly techy yourself. Windows do provide pre-configured Virtual machines for the Mac for testing.
Then, you may get performance issues virtual machines may have performance issues. For instance one user found he could run Bounce on a Macbook air in VMWare but only if he used XP, it was too slow on Windows 7 (this was some years back).
So far a few have tried this with mixed results, and I'm reluctant to recommend it because one user actually had issues as a result of installing the Parallels trial to run Bounce (can't remember if he got as far as actually installing Bounce itself). He had some difficulty getting his Mac to boot after installing the virtual machine, though he did get it sorted out eventually..
But with a Mac to test it on, can try this out and see what are recommended settings and how easy it is and what the issues are.
COST OF VIRTUAL MACHINE
Then there's the matter of cost. If you have Parallels desktop and Windows already then of course this is not an issue. But if you get them in order to run Bounce, then it's quite a major outlay.
You can try out both Parallels Desktop and Windows before you buy to make sure it works on your computer as desired. Parallels offers a 14 day trial. And Microsoft offer trial versions of their operating systems as Parallels desktop virtual machines, for download, each with a 90 day trial, which you can use to test for free to see if Bounce can run on your computer in a virtual machine under Parallels.
If you decide to buy, though, Parallels Desktop is £64.99, and Windows 8.1 is £99.99 from the MIcrosoft store, for a total of £164.98,
BUYING A SMALL BUDGET WINDOWS NETBOOK / /TABLET AS AN ALTERNATIVE TO A VIRTUAL MACHINE
You can get a touchscreen laptop on Amazon,new, for Windows, for £249 right now, and a used one, there, for £130.
Either of those would be a better way to spend the money in my view - especially for a metronome where a small netbook gives the advantage of portability. Several Mac users have told me that they bought themselves netbooks or similar just to run Bounce Metronome.
For anyone who wants to show support but doesn't have a Mac or isn't interested themselves in getting Bounce Metronome Pro or my other programs on a Mac - well first - it is a great help just to like my posts about the kickstarter, or do google +1s, or share the link, or tell people about it who would be interested etc
I mean just in natural course of events. All helps create a bit of a buzz and means musicians may find about it who would never know otherwise.
Then, if anyone wants to show support with the minimum amount that's also absolutely fine . Please don't hesitate if you want to do that.
You don't HAVE to be a Mac user to claim the reward also, as after all you do get an unlock key for all my software on Windows, as a result of supporting it. The main difference from getting it on the bounce metronome website, is that it's delayed to 14 days after the end of the kickstarter and don't get it at all if the project fails.
And also - you can contribute to a kickstarter without claiming any of the rewards. When you contribute, one option is to just add funds without claiming a reward.
I wondered what to do about the way this kickstarter lets you get the Windows unlock keys for much lower than you would otherwise - but in practise, most people who buy my programs buy them the very day they download them, often within minutes, or buy before downloading. So they aren't likely to want to wait for 14 days to get it, so I don't think it's an issue (even though technically the 14 days is less than the test drive).
Also - you can get Bounce Metronome complete for $2.49 anyway from the bouncemetronome.com website paypal page - so if that was an issue for someone, they can get it at a reasonably low price easily enough.
Not so easy to get discounts for Virtual Flower / Lissajous 3D, just not got around to doing them like that, but I get hardly any sales of them at present, and almost none of Activity Timer maybe once or twice a year or so at present for that one (don't make any attempt to promote it).
So in practice I think I'll only get people coming here if they want to support the kickstarter, and not as a way to get low price unlock keys.
I've set the goal to £550 as a minimum price for a decent system for testing purposes. This is for a second hand Mac, but reasonably new, running the latest operating system Mavericks, and the price includes a 1 or 2 year warranty from ebay. It also includes £25 Kickstarter fees and £25 approx for processing of payments and VAT, see Fees - UK.
If it goes over £650, I'll get new Mac, which, at a discount, is about, £600 - £700, here in the UK.(computers cost more here than in the US).
If I get more than £750, it's like advance sales of the unlock keys, at a discount. That's acceptable and common in kickstarter technology projects. It will also show that there is demand for Bounce on a Mac.
One of the projects I might do if I had lots of income is to try developing multi-platform apps for iPad / iPhone / Android (as well as Windows and LInux) using the same Bounce ideas and methods though not the same code. Some of those tools are free, others are commercial, and also ideally you'd want to get the hardware for testing to make sure it works rather than rely on bug reports from users.
But it's best not to put that as a goal for this project. The FAQs suggest that "stretchy" goals like that are confusing. Instead, I'll do a new kickstarter if it turns out I need funds e.g. to get a hardware iPhone / iPad for testing and such like.
See the Kickstarter FAQ about what happens if a project is overfunded.
First, the chances of success seem excellent so I don't think this is going to happen.
However, If I can't get them to work, you still have the unlock keys
Then you have options, if you want to explore them, to get a small netbook / tablet, or to get Parallels or VMWare and Windows, and run it that way (if that turns out to be a good way to run Bounce on a Mac) or multi-boot to Windows on your Mac to run them.
With a Mac myself to test it on, I can advise you about performance and feasibility and techy issues running it on a virtual machine, and advise which works best for Bounce of Parallels desktop or VMWare, and whether the performance is okay or if you are better off multi-booting or getting a Windows tablet / netbook.
Also - note that the keys are not tied down to any hardware. You can run the programs on any computer you have access to, including e.g. a friend's computer, if it's for your own use.
Yes! You can change it at any time. See the Kickstarter FAQ here
Yes, you can, the paypal page is here
I've added this because Kickstarter does not let you pay via Paypal, which may make it impossible to pledge in some countries, or depending on your situation.
The amount raised this way doesn't add to the total on Kickstarter, also you get debited straight away unlike Kickstarter, where your credit card only gets debited when the project is completed.
However, I'll keep you all updated with numbers of backers and the amount in the updates for the kickstarter. Also, I will refund the paypal pledges if the kickstarter fails to reach its target.
This is a method used by many projects on Kickstarter to handle paypal pledges.
Your unlock keys will work on the Mac as well. Your unlock key unlocks the program on any computer you use, and all updates are free.
So there is no need to buy it again to use the program on a Mac or Linux or in any other way that it can run.
However your support is much appreciated if you want to donate to the kickstarter. And you will also get an unlock key for all of my other programs as your reward.
If you use it on a friend's computer, or at work or whatever, the only restriction is that it's for your own use so you remove the unlock key when you are done if necessary
(of course friends can try it out and members of your family who want to try it for fun etc)
There are no hardware checks, and no need to renew the unlock key or anything like that. I rely on the integrity of the users.
If you share your unlock key by mistake, e..g post it to a public forum or some such, just let me know and I'll mark it as invalid, and send you a new one.
It might be such an easy conversion it needs hardly any testing. But most likely the programs will be a bit rough around the edges and need testing.
If so, when it's ready, then for Bounce Metronome especially, I have many musicians now in the Bounce Metronome mailing list who have said they want to beta test anything I create for a Mac,
So, probably I'll ask them to try it out as a private beta first. Then - I may do a public beta for a short while, especially if there were any major issues to fix - and then when I'm reasonably sure everything is fixed, will do a release.
If you are interested in beta testing yourself do say - you can fill in the form here, and say you want to be a beta tester, either through the Multi-Platform Contact Form at bouncemetronome.com
- Or just contact me and say you want to be a beta tester. You can contact me at email@example.com
First, I have no idea how long it will take to sort everything out. It may go so quickly and work so well that there is hardly any beta testing phase at all.
If so, the earliest I could have a release ready would be, perhaps six weeks, rough estimate for the first two programs Bounce Metronome and FTS Lambdoma.
Allow two weeks to get the funds, another 14 days to get the Mac, get used to how it works, install the Wineskins software and make and configure my first Wineskins. Then maybe another two weeks beta testing the first program to release.
However, I expect it to take a lot longer than that. Judging by the time it took for the Linux project last year - it could be several months. Though in that case I had to get it running on Wine in the first place, as I know it is already running on Wine that may save some time.
I'd be surprised though if it takes longer than six months, and so have put December 2014 as the completion date for the rewards, it's just an estimate though. You can't give hard fixed timetables for a project like this, as there might be highly technical issues crop up that take a lot of time to fix, and you have no idea whether that will happen until you hit them.
TIMETABLE IN DETAIL
I expect it to go something like this:
14 days after the kickstarter ends, I get the funds. I then send unlock keys immediately to everyone who claimed the rewards.
I then order a Mac.
Next stage, getting used to the Mac, as I've never had one before, installing the software needed to create a Wineskin, and making first test wineskins for my program, and learning how to configure the Wineskin to work with my program..
Then testing. If I'm really lucky, they just run right away. But chances are they won't, and will almost certainly need debugging just to run.
Then create a beta for more thorough testing and debugging. This involves thoroughly testing all the features in the programs, starting with Bounce Metronome and the FTS Lambdoma and noting down anything that doesn't work or any performance issues, and debugging.
I may also have to do some work on the Wine engine itself, see if I can compile the patches for WineRT at this stage.
Then when I've done reasonable amount of testing myself, make it available for beta testing. Usually first a private beta build for anyone who has said they want to help - and then a public one that anyone can download even without contacting me first.
Finally, then the release, when everyone gets the program.
With the Mac, Wine is working on a different operating system from Linux - so the Windows calls are translated into different routines at a lower level, That would include for instance graphics drawing, font loading, midi routines and so on.
As a result, my success on Linux doesn't guarantee that it will work on a Mac.
However, it's a good beginning, It's got a good chance of success I think. At least, with some work, surely I can get it to run. If there are any issues I can alter or even remove any code that causes problems.
On Linux, after I fixed all the bugs, a few things don't work, of minor importance to most users. These probably won't work on a Mac either:
Edge smoothing. Straight lines and circles are pixelated if you look at them closely. It's not that noticeable on a HD display
Direct export to video files doesn't work. You'll need to use screen recording programs instead if you want a video of the rhythms..
There were some issues with midi timing originally but those all got sorted out with Wine RT on the Linux. That's the biggest question for the Mac, as I anticipate it, what the midi timing would be like.
This of course is of vital importance for a metronome. It was a big issue when I first tested it on Linux on a virtual machine.
But Bounce on LInux was okay in the end - after a fair amount of programming to optimize it for Wine - and after following Aaron Wolf's recommendation to use WineRT instead of the normal Wine (which is better anyway for music work on Linux).
The most significant and hardest to fix issue was the one with the midi timing, which was eventually fixed with WineRT, more about that below.
If I use a WineSkin - then the way it works is that you bundle a copy of Wine around your application. So is no need for the end user to get involved in any technical configuring of Wine. I'd just set it up as is needed to work optimally with Bounce, and you don't need to do any more tinkering with it yourself.
WINDOWS CODE RUNNING ON WINE IN ANOTHER OPERATING SYSTEM CAN BE AS FAST, EVEN FASTER, THAN NATIVE CODE ON WNDOWS
Wine is a rewrite of Windows on a new platform, not an emulator or a virtual machine. So, there is no reason particularly why programs need to be slower on Wine than they are on Windows.
Any calculations that Bounce does itself are native x86 code, so the instructions are identical - so they will run at pretty much identical speeds speed on a Mac as on Windows or Linux machines with the same or similar processor.
The 3D graphics programming uses Open GL and that means it just calls native OpenGL routines on the Mac through the Wine interface.
Those would run at the same speed as native OpenGL programming on a Mac.
The 2D graphics spends most of its time drawing primitives such as rectangles, gradient fills, circles and so on. Again those should run at the same speed on a Mac as native code to draw graphics primitives. For routines like that, typically most of the time is spent in the actual graphics drawing itself.
For midi, then sending a midi message on a Mac would probably take the same amount of time as it does with native code, and in any case, is not normally a significant thing for a metronome except at extraordinary high tempi if you try to play the notes so fast that they turn into a pitch, e.g. hundreds of beats per minute.
So, basic performance of the thing you are trying to achieve is not likely to be an issue.
WHAT CAN CAUSE ISSUES - MORE TECHY
You can get an idea of the sort of things I might need to work on to get Bounce to work well on a Mac from my experience with Mac on Linux.
Some of these of course, are issues with compatibility with Wine itself, and now that they are fixed on Linux, would probably be fixed on the Mac also.
What did cause issues on Linux were
1. Access violations. These are due to programming errors in the original code that for some reason had no effect on Windows. Normally easy to fix.
2. Visual glitches. Originally it couldn't display textures on the screen and the windows just all showed up black and unreadable. This was probably a side effect of some of the other bugs, I never found out in detail why it happened, as it just got cleared up as a result of fixing the other bugs.
3. Font issues, wasn't displaying notes in the Bach music notation font, and couldn't access any of the other fonts either. I can't remember now how I fixed that one.
4. An issue in loading the context sensitive help and tool tips into the program during start up. Turned out that for some reason the imported rich text gets changed in Wine before the program sees it. This slowed down processing of the text for the tooltips hugely during start up. I found a way to fix that.
5. For some reason the routines to set process and thread priority in Wine took hugely longer, several milliseconds on Linux, while on native Windows they are almost instantaneous. This was fixed by removing unnecessary duplicate calls of these routines, just optimizing to use them as seldom as possible..
6. Techy issues to do with interfacing with the Linux clocks via Windows. It turned out to be impossible to do that with normal Wine, you got huge errors of the order of tens of milliseconds in the timing, and a horribly noticeable uneven beat for the metronome.
That last one, interface with the hardware clocks, was the last remaining major issue, and was fixed mainly by using Wine RT (as well as dealing with the profiling issues mentioned) and in the end it was fine, acceptable accuracy for a metronome.
So, am hopeful about that on a Mac also. But no guarantees of course.
On the timing issue and possibility of Wine RT on WineSkin I posted a question about this to the Wineskins Forum, with one reply so far, from a Wineskins developer, who didn't know the answer
But he suggested I try compiling the Wine RT patches for WineSkin as something that could be explored if it turns out to be an issue, if they are compatible.
This has no effect on the Beeps metronome, as that uses streaming audio, which, basically, relies on the clocks in your soundcard which are very accurate (otherwise music would noticeably slip in pitch).. I also plan to add a sample playing feature to Bounce Metronome, already working in the beta. Again this shouldn't have any timing issues on the Mac.
So that's my fall-back plan if I do have midi issues on the Mac.
Note the midi issues only arise when playing notes in a sequence, as for a metronome - they could also be an issue for the fractal tunes.
You can get around them by saving the midi to a file, and then either rendering that to audio - or playing the midi file in some native windows app which doesn't have the same issues.
If you can play midi files in Wine with accurate timing then there should be no problems playing midi with good timing in Bounce Metronome also. But I don't know if you can.
I'm hopeful that I can fix it whatever happens, if necessary by compiling the Wine RT patches into WineSkins.
However, there's a fallback which should work no matter what the midi does.
Bounce has a "Beeps metronome" which as it works by continuously creating an audio stream to play, and does timing by counting the number of samples sent in the stream, is not impacted by any midi timing issues at all.
I'm also in the middle of programming Bounce so it can play samples for the notes - including a "speaking metronome" to count out loud, also you'll be able to e.g. play drum kit samples and so on. It's already working in the beta - the sample player - enough to see it's feasible.
This would give a way to have sample perfect timing on any operating system no matter how easy or hard it is to interface with the most accurate hardware clocks. That's because the audio is created by continuous streaming, and to get sample accurate times, you just need to keep track of the number of samples played so far.
So this part of it should work with perfect timing anyway, assuming I can get it all to work of course.
This is the new feature, I've got multitouch playing working in the debug build of Bounce Metronome - both for the on screen keyboards - and for the mouse theremin too, and hope to release this soon.
It's a lot of fun, you get a different pitch for each of your ten fingers as they move around on the screen.
I don't know if that will be possible on the Mac, but will find out. The Mac OSX - I don't think it has support for multi-touch screens yet iike the iOS for iPad and iPhone (do correct me if I'm wrong here) - but it does have a multi-touch touch pad with up to ten finger multi-touch. Also native Mac apps programmed at a low level can access each of those ten touch points individually on OSX (techy details)..
What I don't know is if there is any way to get those touches into Wine. I can think of some ways you could do it as a work around, by writing a native Mac app that then sends the touch messages to your program, e.g. via midi undefined controllers, say. Anyway I'll look into this, but can't say if it will work or not.
The reason is just the sheer amount of time involved. I've been working on the software since the late 1990s, pretty much full time. I've been working on Bounce Metronome since 2008, again full time, except for a few months spent on other projects.
I'm generally considered a fast programmer. So anyone else would take a similar amount of time.
And most of the code is low level techy Windows specific stuff that couldn't be ported to another OS.
So to duplicate Bounce for the Mac, you need perhaps 5 to 10 programmer years. That's about £250,000 to £500,000 at typical wages for a programmer. There's also a major issue getting hold of a programmer with the necessary expertise to do it. Would need to be knowledgeable in mathematics, technical details of musical rhythms and music notation, details of how midi works, be familiar with 3D graphics programming, and various other areas of expert knowledge like that.
They would probably be already employed as a music programmer, or developing their own music software.
And many big software projects fail, also, so there is no guarantee that you'd end up with a useful functional program at the end of it all. Unless the programmers have an excellent track record, that is, and again, if they do, are probably fully employed doing their own programming.
I can't do it myself either, I don't have the expertise to program for a Mac and it would probably take a year or two before I did - and then also, I have more productive things to do with five to ten years of my life than to attempt to exactly duplicate work I've already done for Windows on a Mac.
At any rate, whether this ever happens, it's a no brainer that a £500 project with pretty good chance of success within a month or two of completion is a better kickstarter to attempt than a £250,000 to £500,000 project that quite possibly wouldn't succeed and would take several years to complete.
The short answer as I said in the mini FAQ is, that the OSX operating system checks the hardware and will only run on an Apple Mac machine. That's why I can't just buy the Mac OSX and run it in a Windows computer.
LONGER ANSWER AND TECHY DETAILS
There is only one version of the Mac OSX that you can legally run in a Virtual Machine, that's OSX Server. And that capability is added for Mac developers, and you are only permitted to run it on a machine running OSX, so, a Mac machine.
For details see Virtual Leopard Server, Uncaged: Virtualized Mac OS X Leopard Server on VMware Fusion 2.0 http://blogs.vmware.com/teamfusion/2008/06/virtual-leopard.html
TECHNICALLY THERE IS NO REASON WHY THE OSX WOULDN'T RUN ON AN INTEL MACHINE
Indeed some hackers have got this to work, with mixed success. It's for hardcore hackers only. The Mac machine may be very slow, and some of your hardware may not work.
I don't want to do that obviously. It breaks the Apple EULA. Just mentioning because it shows clearly how the main issue is the EULA not the hardware.
It's completely understandable that they have this requirement, because they are a hardware company and rely on sales of their computers. If they'd permitted OSX to run on any Intel machine they'd not be where they are today and probably wouldn't have developed the iPad etc. It also lets them have quality control on the hardware that runs their OS as they make it all themselves.
HACKER DISCUSSION ON STACK OVERFLOW
If you are interested to know more, have a look at the wikipedia page on OSx86 about the various ways hackers have done this, and about the techy, and legal situation for a "hackintosh". According to the wikipedia page, some ideas for ways to do it may fall into a legal gray area not yet contested in the courts, but I don't know details about that myself.
And see this discussion on Stack overflow
And this article on PC Perspective about building a Hackintosh computer.
Just including it for informational purposes for those interested in an intellectual way about what is involved. Anyway is pretty clear the whole thing is for hardcore crackers only!
I'm going to add links to some of the posts linking here, well at least to start with unless it becomes too many - not including facebook or Google + posts or twitter, but will include forum posts, for now anyway.
So, my story on Science20
Jim Hurley posting to Reactor forums
and to Native Instruments
Do let me know if you have any others, to feature here.
I expect the size to be about 140 MB plus whatever is needed to get the program to work, maybe 150 MB.
That's rather amazing actually when you think it's got the equivalent of the entire Windows operating system in it - though of course, stripped of all the "bells and whistles" extra programs you have in the Microsoft version of Windows.
I'll make it available for download.
You will also be able to get it on CD if you are on a slow internet connection.
Wine is a software compatibility layer which lets programs written for Windows run on a Mac, Linux or other operating system.
As such, it is legal, and protected under legislation about interoperability. It is also free, since it is open source.
The name originally stood for "Windows emulator" - but now is understood as the recursive acronym, "Wine Is Not an Emulator" to make it clear that it is not a virtual machine.
HOW IT WORKS IN DETAIL
First, the legal requirements mean that the Wine developers have to be extremely careful not to let any Microsoft source code into the project. As a result, it's developed completely from scratch, only referring to the Microsoft documentation, and also by testing programs written for Windows on Wine. That's why there are certain to be subtle differences in how it works on a low level, and they can't guarantee that every Windows program will run on Wine.
That's why I need to spend a fair bit of time testing and debugging my programs on Wine and tweaking performance..
It runs any Intel (x86) code just as is on the processor. But translates any Windows calls into native routines in the operating system.
As such it provides a very thin compatibility layer between the program code and the hardware, so performance can be excellent.
The downside is that it can only run x86 code on an x86 compatible processor. This means it can't run my programs "as is" on an Arm chip.
For more details about Wine see the Wikipedia page
TECHY DETAILS - WHY WINESKIN IS SO FAST FOR 2D AND 3D GRAPHICS ON A MAC
On Mac, then the WineSkin uses Wineskinx11, a modification of XQuartz, which is an implementation of the X-Window system for Linux on an Intel Mac. That's how it's able to do both 2D graphics, and any 3D graphics done in Open GL directly using your graphics card, and why I expect 3D graphics to be as fast on the Mac as on Windows with Wine.
Developers can actually, optionally, run their apps using the unmodified version of XQuartz, but the modified version in Wineskin gives better compatibility.
WINE ON ARM - ANDROID ETC
There are plans to fix the restriction to x86 machines with a version of Wine running on a open source virtual CPU, but it is at very early stages so far. As some news stories reported, you can run a Windows program on Android using Wine so long as it is Windows Solitaire :).
I've already mentioned that in the iPhone and iPad FAQ.
This is only for Android so far, and the only program they've got going on Android so far, at least in the news stories, is Windows Solitaire. So obviously at an early stage yet.
It uses the open source processor emulator called QEMU
You won't have to do this yourself, but if you just want to know a bit about how it works, here goes.
Here are a couple of videos showing the basics of how you make a WineSkin - this is what I'd do on the Mac. You won't need to do this yourself.
Here is another slightly more complex example with a Japanese game. I know nothing about this game, just that it's one of the better example videos on youtube for WineSkin - reasonably clear diction and easy to understand.
Notice how she chooses which Wine engine to install, and then installs the program itself, and also various other things into the wrapper, and configures it - the end result is a program that looks like an ordinary Mac program and you click on the icon to start it up - and jump right into the Windows game.
That would just be the starting point, because then I would need to look for any issues, anything that doesn't work quite as it should on the Mac - and then see why it's not working and what I can do in the code to get it to work okay.
It might just work right away, but I'm expecting at least to need to do some tweaking. This could take anything from a few days or a week, up several months - it took some months with Linux - but a fair bit of that work was to do with getting it to run on Wine rather than Linux, so it may go more quickly on the Mac..
You won't need to do any of that stuff yourself, though, just download the final result which I'd make myself.
More about this on the Wineskins website.
Okay, the first thing I'll do is to try out all my programs quickly in WineSkins to get a first impression of how they are working.
If any of them work fine right away, or need only a few days work, will prioritize them, and release them right away.
Then after that, - that is if not released already of course - I plan to get Bounce Metronome, and the Tune Smithy Lambdoma running first.
This might take just days or weeks, or might take months.
Next stage would be, Lissajous 3D if I think it can be done in, say, a few days, or a week (quite likely, because it makes so much use of OpenGL and I expect support for OpenGL in a WineSkin to be excellent for techy reasons)
Next stage then is to get Tune Smithy working for the fractal tunes, and for the music keyboard retuning, on the Mac. I could do this with Tune Smithy 3.0. But it will be better to move the beta of Tune Smithy 4.5 to release first, since otherwise it's extra work to make both the old and the new versions Mac compatible.
So that might be another few months - but if it is going to take too long, I can do Tune Smithy 3.0 first.
Timing might be a major issue with Tune Smithy (or may be a non problem) - just as for Bounce Metronome - but more important because with Tune Smithy then you need it to work with any of the instruments on your computer, and support for midi is rather important.
So, as for Linux, there might be issues of midi timing to work around, depending on how time on the Mac is reported to the program within the WineSkin.
Finally, Virtual Flower and Activity Timer - that is if they turn out to be tricky.
With Virtual Flower, I also plan a major overhaul of the program, and hopefully also, get it so it draws the 3D graphics using OpenGL so much faster to draw the shapes within the program.
Activity Timer is also due a major upgrade. I may well do that before its release as a Mac app as I think there is probably only a week or two work left to finish the update, so could combine that with the Mac compatibility testing.
Hope to complete all of this by the end of this year, starting in mid June. I'll keep everyone updated with progress reports.
Please be aware though - this is only provisional. I might change this timetable at any time depending on circumstances.
My first priority is Bounce Metronome, then Tune Smithy but depending on circumstances, might release the apps in any order.
Support this project
- (34 days)