January 23, 2018, 08:59:33 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
   Home   Help Search Login Register  
Forum for Tune Smithy, Bounce Metronome and other software from Robert Inventor
Pages: 1 ... 4 5 [6] 7 8 ... 10
 on: February 01, 2011, 01:26:10 AM 
Started by Robert Walker - Last post by Robert Walker
I thought it might be good to share with you my thoughts about how I might do the upgrade to version 4.x of Tune Smithy.

Any thoughts or ideas about this do have your say!


You may know that FTS has been stuck at version 3.x for some years now while I work on Bounce Metronome (mainly). The reason is - not really because of Bounce Metronome takes up so much work though it does take a lot of coding. But the thing is that I have introduced many innovations and improvements while working on Bounce Metronome.

These will help a lot with Tune Smithy when I do the upgrade, but also means that the upgrade is going to be a fair amount of work as there is a lot to do to update the whole program in that way.

Hope to update this year

I plan to update Tune Smithy to version 4.x some time this year - time permitting as it is a large task which will require several months of work.

What takes the time

What takes the time is to make sure all the new work I've done with Bounce Metronome including tempo dial, Bounce effects, 3D visuals, skipped beats etc. work properly throughout Tune Smithy. I also have to make sure that they work with the fractal tunes particularly and that it is backwards consistent with FTS 3.x. That's going to be well worth the work for algo-comp and fractal tune enthusiasts as once it is done, you'll be able to use all the new rhythms and rhythm features of Bounce Metronome with the fractal tunes.

Before then though I also plan to release some more of the Tune Smithy tasks as separate programs in their own right like Tune Smithy - it's a good way to check through the program one task at a time, and upgrade it to 4.x rather than to try to do the whole upgrade in one go. I also plan to make all the on-screen keyboards in Tune Smithy multi-touch playable under Windows 7.

If you allow say a month for each major feature in FTS, then that would be one month each for:

  • Music Keyboard and Composition retuning
  • Midi file retuning
  • Lambdoma Music Therapy
  • Fractal Tunes
  • Analyse Recordings and Midi Instruments
  • Audio Pitch Tracer (I think this could be made much easier to use)
  • Find Notes in Recording
  • Use Windows 7 multi-touch to make on-screen playable keyboards with alternative layouts like Janko, hexagonal, diamond, also split keys etc.
  • Chord Player
  • Scales Composer
  • Play from pc keyboard

Though the last three would probably not involve so much work because I expect the FTS 3.x coding to work fine and the programs in 3.x are reasonably okay apart from need to improve the User Interface - maybe one month to do all three. Though I could easily spend one month on each to do a more thorough job of it.

Also not sure if the multi-touch capability for the keyboards will take that long, as I have a fair bit of the actual coding for it already, that's more like it would be nice to spend a month on it and do it properly probably introduce new ideas and see if there is any easy way to add volume sensitivity and / or aftertouch as well with any of the available multi-touch hardware (some vendors might supply a way for programmers can use to access things like the size of the touch region, and time dependent raw data before the touch, that sort of thing which you could perhaps use to add volume sensitivity or aftertouch).

Anyway, if I do it that way then that's an nine month job to update the whole program to 4.x. Plus add say a week gap between each one to tidy up and prepare for next one. So realistically at least eleven months of work and taking account of other stuff likely to need to do for my other programs so can't dedicate myself to it 100% then at least a year perhaps two years more likely to do the whole program if I do the upgrade more like half time instead of full time programming, and spend rest of the time on keeping up to date with my other programs such as Bounce Metronome, the Lambdoma music therapy task, Lissajous 3D and Activity Timer and other related tasks.

Noadays I like to work in short "sprints" of a few weeks, say a month, as in some forms of Agile software development. This task based approach would be ideal for that. I'd take one of those tasks, and spend a month say, with the main goal to get it ready for release as version 4.x including testing to make sure everything is working okay.

In that month I do as much as I can, so basic goal is to just get the FTS 3.x task up to date and check it is bug free and to simplify the UI and release as a separate program. If it takes a long time to do it that might be all I do. And if it takes a very long time I might leave out the newer features so basically I just release an updated and fixed version of the 3.x task and leave out many of the new things introduced with Bounce Metronome.

If it goes quickly then can also do things like make a new searchable wiki dedicated to the program, add new features, and so on.

Anyway realistically then it is probably unlikely I'll do the complete upgrade in 2011 unless it goes really quickly. Not if I do everything I want to do.

Another idea is to do a one month sprint to just try to get the whole of FTS up to date at some point. Then the aim would be not to get the whole lot a better user interface etc. like Bounce Metronome. But - just to make sure the whole thing is consistent, integrate the new code into the other tasks. Just make sure it all works.

It would be a tough challenge to do it in one month right away.  But if I do say the two or three most important tasks as one month sprints - then do an FTS 3 to 4 upgrade as another one month sprint, that seems feasible to do. That makes the whole thing possible well within an easy one year time frame.
In that case my to do list would be perhaps:

  • Music Keyboard and Composition retuning
  • Lambdoma Music Therapy
  • Fractal Tunes
  • Midi File Retuning
  • Make first consistent upgrade of the whole of FTS 3.x to 4.x
and spend one month on each and one week extra after each project, total of six  months work perhaps.

So anyway that seems reasonably feasible, so - provisionally that's my plan.

The first of the tasks I'll work on is the Lambdoma Music Therapy mainly because it is in demand for Barbara Hero and her colleagues working with the Lambdoma based music therapy, and an upgrade is needed soon there.

It is also a good task to do first because it introduces some of the main things I have to make sure works throughout FTS in an area which exercises many of the main areas of the program - but at the same time doesn't have quite the full complexity of the program - single tuning system, single keyboard layout (the diamond / square keyboard), only one tuning for all the parts, and so on.

After that could be the music keyboard and composition retuning or the fractal tunes, both seem likely as both have very enthusiastic supporters who use the program some of them pretty much full time for nearly all their music. Also on commercial level, probably the top two selling tasks I'd imagine though hard to tell until I release as separate programs as I don't have any way at the moment to know why someone bought or downloaded Tune Smithy, which task interested them particularly.

Do say if you are interested in a particular feature or task for the upgrade process. Especially also if you are interested in beta testing it do say.

 on: February 01, 2011, 12:53:32 AM 
Started by cloudsquall88 - Last post by Robert Walker
For the record, I've thought of another way to use samples to make swv files. It has the advantage that it would make an instrument which is easily adjusted to play at any frequency.

The idea is - Tune Smithy has a task called "Analyse Midi Instrument". This lets you take any sample and convert it into a highly accurate analysis of the frequencies of all the partials in the frequency spectrum - using standard FFT combined with some techniques to improve accuracy of pitch detection.

Anyway, in Window 67 (which isn't yet upgraded to work with Bounce Metronome) there's an option to save the frequency spectrum as a Wave Shape Instrument. Not sure if it also includes the volume envelope of the original sound, but if not could easily add that.

So - then the idea is you do a frequency analysis of the sound sample of a beep you want to emulate (or any other sound for that matter though better if it is a sound with the same constant partials throughout the sample rather than varying spectrum analysis  depending where in time you do the analysis).

Then combine that with the volume envelope - getting the volume envelope right can make a big difference to the fidelity.

Then the advantage over just direct playing of the sample is that you don't have to do interpolation between sample points to play it, so can easily play at any frequencies.

Would work best for harmonic timbres as then even if the analysis turns up quite a few partials you can combine them all together to make a single wave shape which is then very efficient to play, uses less CPU. If you have an inharmonic sound like gongs etc, then each partial basically needs to be played like a separate instrument, so adds a lot to the effective polyphony.

Though I have an idea that could help there too. Idea is to add a kind of higher level audio "caching" to the player. The first time it plays a note at any pitch, it records the waveform it generates, for just that note, to disk. Then after that rather than re-calculate all the partials, it would just stream the previous recording from disk like a sample player (obviously could cache in memory as well) - since generally not varying depending on volume you just need one sample like that for each midi instrument. Could automatically generate all the samples up to say one second each first time you select the instrument into the parts window if they don't yet exist. And if you play any longer notes, then generates the rest of the sample "on the fly" as you play and save that to disk as well for future use.

It already does a kind of "caching" like that for the harmonic series based notes, but just of a single wave and using a function table of say 1024 or 10240 samples or whatever. That's necessary as otherwise some of the mathematical functions it uses to make the notes would take up so much CPU to calculate "on the fly" that it would be difficult to sustain much polyphony at all even on a modern machine.

So anyway basically one way or another could be efficient to play like that if coded properly - as efficient as a sample player. And would get better results probably than just playing the original sample with interpolation at different pitches. And also would be a proper swv file so you could go into it and adjust e.g. the pitch of any of the partials in it, or play all the partials on a different instrument e.g. try it with triangle waves for all the partials instead of sine waves, adjust the volume envelope (I hope to make a click and drag user editable volume envelope at some point) and so on.

Anyway that is like wish list stuff, probably, not to do right away probably, but for the future when I have time to work on it, could be a nice idea to do that.

I'll add this all to the wish list proper but will wait until I've done the day of programming first in case I manage to do some of it right away.

 on: January 31, 2011, 04:29:40 PM 
Started by cloudsquall88 - Last post by Robert Walker
Okay had a first look at the beep. There's really not much wrong there, more that the controls aren't explained properly plus I should add a check box to make it clearer what one of the things does.

Plus the beep volume envelope is currently time limited and at the end of the envelope even if faded to near 0 volume by then, it jumps up to 1 outside the interval so e.g. you have say a one minute note but beep is only for the first fraction of a second and at the end of the minute then suddenly jumps up to full volume. Not really sure why it does that yet, or whether it is a bug, or what but will sort that out.

Anyway simple fixes. Have made a list of half a dozen minor things to fix and then take a look and see if I can make the user interface a bit clearer, then upload it and can also do you an explanation - or perhaps I'll do a video demo, just do a video recording as I go through the process of making a beep instrument, save it as swv, add it to menu, etc. Plus can include a "beep" instrument preset or maybe a menu of beeps in the wave shape player.

So pretty straightforward, and will set aside - perhaps a day or so - to do it hopefully some time this week or next week, that sort of time scale, and just see how far I get, then can add stuff I can't do right away to the wish list.

Haven't yet looked into the sample playing, as altenative way to do beeps, will look into that when I do the work on it hopefully later this week - hopefully anyway.

 on: January 31, 2011, 04:17:39 AM 
Started by cloudsquall88 - Last post by Robert Walker
Oh right, should be able to do that with a bit more coding. Since you'd only use it for short samples would make sense to include the sample as binary data as part of the swv file itself. Then e.g. if you want to share a swv insrument you have made, you can send attach. upload, or e-mail etc the swv file on its own no need to attach anything else, ditto for backup etc.

I can do it like that, when I fix and update the sample playing code.

BTW somewhere, probably hidden in the user interface for Bounce Metronome, but it is a feature of this in Tune Smithy - there's also an option to go the other way - to output the audio from the player as whole bunch of samples, one for every midi note, which you can then import into e.g. Vienna to make a sound font. I remember programming that and testing it but not sure where it is right now.

Anyway when I work on this will add and update the help for those windows too which is rather sparse, and do some tutorials or examples of how to work with it.

Thanks again!


 on: January 31, 2011, 02:02:08 AM 
Started by cloudsquall88 - Last post by cloudsquall88
Basically what I asked was if you could open a wav file somewhere and save it as a swv file. Either within the program, or using another program.

Pretty nice bit of information you gave me though Cheesy.

 on: January 30, 2011, 02:08:10 PM 
Started by cloudsquall88 - Last post by Robert Walker
Yes - if you do it via the .wav perc route then at present you need a different audio file for each pitch.

It would be a fairly simple thing though to let it adjust in pitch as well, once you have it playing samples at all, simple type of pitch adjustment where to go higher you just play the sample faster.

With the waveform player with a sine wave version with volume envelope then that will be a melodic instrument like all the other wave shape instruments. So can set a different pitch for each part in the rhythm as for the harmonic metronomes.

You can open and save the swv files in the Waveform Instrument window (Ctrl + 166). You set the volume envelope in window 190 (that's the one I tried to use yesterday and found it was buggy for some combinations of the parameters).

Those two windows are also where you edit them - by varying the parameters in the windows.

(BTW a bit awkward at the moment the way that you can only really navigate between those three windows by going via window 196 (at least until you know the window numbers). Well another way to navigate to that (or any other window) - you can also use the right clicik on the Organise Windows O icon and then choose Instruments >> Wave Shape Instruments - but that too is a little awkwad. Will see if I can do anything about it.)

Anyway to try it out right away use Select in Parts in that window. But once you decide it is an instrument you want to keep and use along with other instruments then you will probably want to add it to the menu for easy access.

So after you save a new .swv file, to add it to the menu you use Modify Wave Shape Instruments Menu (Ctrl + 189).

So - those are the basics but I'd better do the bug fixing of the wave shape instruments editor before doing any detailed expo - maybe then I can put something about it in the wiki (One of the things I'm working on right now is a new wiki for Bounce Metronome which hopefully can go live fairly soon - with on-line searchable version of the tool tips help and to which I'll add tutorials, resources and other things, so could explain stuff like this there when ready).

So anyway should be able to do what you want once I fix the bugs, basically.

Does this answer your questions?


 on: January 30, 2011, 02:30:47 AM 
Started by cloudsquall88 - Last post by cloudsquall88
I tried making one in Audacity, and found that simply by Generating a sine tone at the frequency of 440Hz produces a pretty nice beep result. I think the ideal duration should be between 0.05 and 0.1 seconds. So I made three different wavs, a 440Hz one (low), a 880Hz one (mid) and a 1760Hz one (high).Seemed to do the job, but was a bit slow in bounce metronome with the wavs (that's how the other question came up).
I would suggest making a low, mid and high version of every pitch and not just A as I did, because then you could produce results like in Korg's Beatlab metronome (I have BTL-1).It has sliders for every subdivision till 9 subdivisions and each of them is a different pitch for a very clear result.

How can you make and save swv files?

 on: January 29, 2011, 07:50:31 PM 
Started by cloudsquall88 - Last post by Robert Walker
Great question again.

Can't think of anything. There isn't  any beep in the standard GM Midi sound set anyway though may be in other ones.

You can get almost any sound by playing the midi ou (routed via virtual midi cable) to a soundfont player such as SynthFont or Kontakt player and a suitable sound font, so I'm pretty sure you could do it that way though might need to hunt around to find a soundfont with the sound you need.

But anyway, need something simpler than that.

With Bounce Metronome the obvious place to look is the wave shape player. No beep as such there yet though, just plucked notes or steady pitched notes. It is a legacy from Tune Smithy so most of the example instruments are for listening to just intonation chords, useful for e.g. the tunes or harmonic metronomes perhaps. Will  have a bit of an attach but not enough for the "blip" type beep you expect from a metronome.

Anyway likely way to do it is to just make a new "Beep" instrument for the Wave Shape Player. So just had a try at that. It shouldn't be hard to do  - except, that I found some bugs in it when you edit the sounds and the volume envelope. It's a long time since I made any new instruments for it and not had anyone asking how to do it either.

So - anyway - need to take a look at that. I got a beep of sorts but it had a slow attack, so no good for this as obviously you want a fast attack for a  metronome beep.

I'll look into it some more and get back to you about it. May be able to do it quickly, if the bugs are easy to fix which they may be. If it is a bit tricky, then natural to add to wish list and do at the same time as I do the sample player programming. BTW I noticed that there is a kind of sample playing  option in the wave shape player already - option to open an audio file and use that as the instrument - except - as a repeating waveform but not that much to go from there to a one off waveform - though when I tried to make one of those instruments, was buggy too.

Basically - the Wave Shape Player is playing it's instruments fine, but the editor you use to make new instruments is buggy, at least I expect that's what it is. Will see what I can do to fix it, more later.


 on: January 29, 2011, 09:35:57 AM 
Started by cloudsquall88 - Last post by cloudsquall88
Hello again. I just have a little question to ask.
Is there a beep sound to use somewhere within the program?I mean a short beep sound, not like the sin(x^y) one.
I must have searched through all of the pitched and non-pitched instruments and also through the wave sounds, but can't seem to find it.
Preferrably with the option to choose its pitch, in order to have different pitches between polyrrhythms and subdivisions.

 on: January 28, 2011, 08:30:49 PM 
Started by cloudsquall88 - Last post by Robert Walker
Great, thanks for your recommendations!

Just did a bit more research into the Microsoft TTS and modified that codeproject demo to convert text into a .wav file. So can easily make a small 50Kb or so command line tool I could easily ship with Bounce Metronome. Plus could do so user can change selection of narrator, text speed etc I'm sure, not much more work probably. Anyway so can see how to do that part and it is very easy indeed, maybe a few hours work at most to get something usable for the program.

So - just the sample player to program, that will be more work, will leave that for now (as I have other things I really must do right now) and come back to it later.

Thanks again for the idea. Nice thought and will help many other users I expect once it is done.


Pages: 1 ... 4 5 [6] 7 8 ... 10
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!