back to list

Very simple software I would like to see

🔗Jon Wild <wild@music.mcgill.ca>

11/30/2006 8:38:13 AM

Hello all,

I wonder if anyone out there knows of something similar to the software I'll describe below, or if anyone could even create something quickly--in a bare-bones version, it probably would be very easy for the right person to program.

I'm imagining an applet that presents you with two tones, one of which is a drone at constant pitch, and the other you can tune up or down, with crude or fine control. Whenever you wanted, you could click or mouse-over a field that would tell you the current size, in cents, of the interval, you are hearing between the two tones. This field wouldn't display the size of the interval all the time--just when you wanted to check how well you had done. It would be great for ear-training--I bet you could improve your accuracy very quickly this way.

Of course there are lots of ways you could accomplish something equivalent if you have the time and luxury to install a bunch of stuff on your own computer. But I would like to be able to tell students to go to an ordinary library computer and "download this tiny applet and work on your intonation ear-training", instead of expecting them to spend hours setting up.

(In a less bare-bones version of the applet you could do the same thing with a choice of timbres; you could have an optional one or two extra voices you could unmute to practice tuning multi-voice chords; you could specify the pitch of the drone voice; you could have it display the size of the interval in cents discrepancy from a ratio you tell it you're aiming for; you could toggle between constant droning and reiterated tones... and I'm sure folks here could come up with tons of other features. But a quick and dirty version to start with would be very helpful, and if I'm not mistaken, not too hard to set up.)

Many thanks for any insight as to how I could accomplish this for my students.

Jon Wild

🔗Graham Breed <gbreed@gmail.com>

11/30/2006 9:07:10 PM

Jon Wild wrote:
> Hello all,
> > I wonder if anyone out there knows of something similar to the software > I'll describe below, or if anyone could even create something quickly--in > a bare-bones version, it probably would be very easy for the right person > to program.

Yes, it should be easy, if you can find the right person.

> I'm imagining an applet that presents you with two tones, one of which is > a drone at constant pitch, and the other you can tune up or down, with > crude or fine control. Whenever you wanted, you could click or mouse-over > a field that would tell you the current size, in cents, of the interval, > you are hearing between the two tones. This field wouldn't display the > size of the interval all the time--just when you wanted to check how well > you had done. It would be great for ear-training--I bet you could improve > your accuracy very quickly this way.

I'm guessing CSound could do this, and it's something I'd like as well so perhaps I could try. The mouseover might not work as you state but there should be some way of revealing the value when you want it. The problem is ...

> Of course there are lots of ways you could accomplish something equivalent > if you have the time and luxury to install a bunch of stuff on your own > computer. But I would like to be able to tell students to go to an > ordinary library computer and "download this tiny applet and work on your > intonation ear-training", instead of expecting them to spend hours setting > up.

So to use CSound you'd have to install CSound. I don't think it would take hours to set up. But I'm not sure if it's easy to install as a normal user.

> (In a less bare-bones version of the applet you could do the same thing > with a choice of timbres; you could have an optional one or two extra > voices you could unmute to practice tuning multi-voice chords; you could > specify the pitch of the drone voice; you could have it display the size > of the interval in cents discrepancy from a ratio you tell it you're > aiming for; you could toggle between constant droning and reiterated > tones... and I'm sure folks here could come up with tons of other > features. But a quick and dirty version to start with would be very > helpful, and if I'm not mistaken, not too hard to set up.)

Lets do the simple one first, eh?

> Many thanks for any insight as to how I could accomplish this for my > students.

It can certainly be done, but to be small it'd have to be specific to the platform you want it to run on, which you haven't specified. Then you'd have to find somebody who knows that platform's native libraries, in which case it should be an easy project. The problem is that the graphical and audio functionality you want is platform dependent and if a programmer did it in their favorite framework you'd then have the trouble of installing that framework.

Graham

🔗p_heddles <p_heddles@yahoo.com>

12/1/2006 5:21:39 AM

Jon,

I've got a program called Synthedit, a free modular soft-synth. Most
of what you're after could be done by a simple synth setup in that,
although it wouldn't be very elegant. As bonuses, each voice can have
independent control of waveform (sine, sawtooth, triangle, square,
etc) and pan.

Good luck,
Patrick

🔗Jon Wild <wild@music.mcgill.ca>

12/1/2006 9:24:02 AM

Graham wrote (quoting me):

>> I'm imagining an applet that presents you with two tones, one of which >> is a drone at constant pitch, and the other you can tune up or down, >> with crude or fine control. Whenever you wanted, you could click or >> mouse-over a field that would tell you the current size, in cents, of >> the interval you are hearing between the two tones. This field >> wouldn't display the size of the interval all the time--just when you >> wanted to check how well you had done. It would be great for >> ear-training--I bet you could improve your accuracy very quickly this >> way.

[snip]
> So to use CSound you'd have to install CSound. I don't think it would
> take hours to set up. But I'm not sure if it's easy to install as a
> normal user.
[snip]
> It can certainly be done, but to be small it'd have to be specific to
> the platform you want it to run on, which you haven't specified. Then
> you'd have to find somebody who knows that platform's native libraries,
> in which case it should be an easy project. The problem is that the
> graphical and audio functionality you want is platform dependent and if
> a programmer did it in their favorite framework you'd then have the
> trouble of installing that framework.

Thanks Graham. I thought that there were reliable cross platform solutions these days--those little Java-based applets you see a lot on the web--that could potentially work. But maybe there is no way of generating audio on the fly within a Java applet? I know too that different sound cards have different resolution, but I thought that midi with pitch bend could be a possibility too, rather than generating audio.

I've installed Csound on a few machines, some time ago, and unless it's gotten much easier over the last 6 or 7 years I wouldn't wish a whole Csound install on someone hoping for a quick tuning fix. Installing a framework like JRE or .NET would be easier, I would think--is it possible to code audio generation for those frameworks? (The ultimate solution would be truly cross-platform: hardware independent *and* OS-independent, but for now I'd settle for a solution that a "normal" web-capable PC could run, once the appropriate framework was installed.)

Anyway if you did manage to cook up something in Csound, I would love to see it, and I'd work on a way to make it available, relatively painlessly, for students. (For my immediate purposes I could certainly get the library to pre-install Csound on the public machines, for example.)

Thanks again --Jon

🔗Chuckk Hubbard <BadMuthaHubbard@hotmail.com>

12/1/2006 11:08:34 AM

I could do something like this in fifteen minutes using Pure Data.
I could also cook up a self-installer for Windows, though that would
take a little longer.
Pd is pretty simple to set up, but yeah, it's not as simple as a java
applet. I wouldn't know how to do that.

--- In tuning@yahoogroups.com, Jon Wild <wild@...> wrote:
>
>
> Hello all,
>
> I wonder if anyone out there knows of something similar to the software
> I'll describe below, or if anyone could even create something
quickly--in
> a bare-bones version, it probably would be very easy for the right
person
> to program.
>
> I'm imagining an applet that presents you with two tones, one of
which is
> a drone at constant pitch, and the other you can tune up or down, with
> crude or fine control. Whenever you wanted, you could click or
mouse-over
> a field that would tell you the current size, in cents, of the
interval,
> you are hearing between the two tones. This field wouldn't display the
> size of the interval all the time--just when you wanted to check how
well
> you had done. It would be great for ear-training--I bet you could
improve
> your accuracy very quickly this way.
>
> Of course there are lots of ways you could accomplish something
equivalent
> if you have the time and luxury to install a bunch of stuff on your own
> computer. But I would like to be able to tell students to go to an
> ordinary library computer and "download this tiny applet and work on
your
> intonation ear-training", instead of expecting them to spend hours
setting
> up.
>
> (In a less bare-bones version of the applet you could do the same thing
> with a choice of timbres; you could have an optional one or two extra
> voices you could unmute to practice tuning multi-voice chords; you
could
> specify the pitch of the drone voice; you could have it display the
size
> of the interval in cents discrepancy from a ratio you tell it you're
> aiming for; you could toggle between constant droning and reiterated
> tones... and I'm sure folks here could come up with tons of other
> features. But a quick and dirty version to start with would be very
> helpful, and if I'm not mistaken, not too hard to set up.)
>
> Many thanks for any insight as to how I could accomplish this for my
> students.
>
> Jon Wild
>

🔗Carl Lumma <clumma@yahoo.com>

12/1/2006 6:05:07 PM

> Thanks Graham. I thought that there were reliable cross platform
> solutions these days--those little Java-based applets you see a
> lot on the web--that could potentially work. But maybe there is
> no way of generating audio onthe fly within a Java applet?

No, there's tons of audio support. And I think what you want
probably already exists. In fact I think I found it the other
day with a google search, but the applet didn't run on any of
my browsers. That's because Java applets never took off, and
the virtual machines aren't very good, and aren't intercompatible
like they should be. Java wound up being used for server-side
stuff, for some reason.

-Carl

🔗Jon Szanto <jszanto@cox.net>

12/1/2006 8:30:12 PM

--- In tuning@yahoogroups.com, "Carl Lumma" <clumma@...> wrote:
> I think what you want probably already exists.

I think so too.

> ... because Java applets never took off, and
> the virtual machines aren't very good, and aren't intercompatible
> like they should be. Java wound up being used for server-side
> stuff, for some reason.

Well, I don't know about all that. Jon should check out (if he hasn't)
Nick Didkovsky and Larry Burke's JMSL:

http://www.algomusic.com/jmsl/

...along with the Java synth API:

http://www.softsynth.com/jsyn

...and check out the many music composition/applets of Nick's:

http://www.punosmusic.com/pages/punosindex.shtml

I think there are adequate tools there to make it happen. I know that
I've seen Nick create applets where you could interactively change
tunings on the fly, so there is a lot of groundwork already laid.

Cheers,
Jon

🔗Graham Breed <gbreed@gmail.com>

12/1/2006 11:01:03 PM

Jon Wild wrote:

> Thanks Graham. I thought that there were reliable cross platform solutions > these days--those little Java-based applets you see a lot on the web--that > could potentially work. But maybe there is no way of generating audio on > the fly within a Java applet? I know too that different sound cards have > different resolution, but I thought that midi with pitch bend could be a > possibility too, rather than generating audio.

Yes, I believe Java can do it. But first you have to install Java, which is a huge package. And it wouldn't be a trivial applet to write unless you can find somebody who's already done something almost the same.

> I've installed Csound on a few machines, some time ago, and unless it's > gotten much easier over the last 6 or 7 years I wouldn't wish a whole > Csound install on someone hoping for a quick tuning fix. Installing a > framework like JRE or .NET would be easier, I would think--is it possible > to code audio generation for those frameworks? (The ultimate solution > would be truly cross-platform: hardware independent *and* OS-independent, > but for now I'd settle for a solution that a "normal" web-capable PC could > run, once the appropriate framework was installed.)

The latest version, either last year or this, should be a lot easier. You might need to be an administrator to install it, that's the only likely problem, but I think it's shared with the JRE. CSound, Java, and PD are all hardware and OS independent.

> Anyway if you did manage to cook up something in Csound, I would love to > see it, and I'd work on a way to make it available, relatively painlessly, > for students. (For my immediate purposes I could certainly get the library > to pre-install Csound on the public machines, for example.)

Okay, I'll have a try.

Graham

🔗Graham Breed <gbreed@gmail.com>

12/2/2006 4:15:25 AM

Jon Wild wrote:

> Anyway if you did manage to cook up something in Csound, I would love to > see it, and I'd work on a way to make it available, relatively painlessly, > for students. (For my immediate purposes I could certainly get the library > to pre-install Csound on the public machines, for example.)

I worked out the following. Not quite what you asked, partly because I decided to do it differently, and partly because I didn't have your message open when I wrote it. Save it as a .csd file.

<CsoundSynthesizer>
<CsOptions>
-odac -Wd
</CsOptions>
<CsInstruments>
nchnls = 1

FLpanel "Ear", 550, 550, 100, 100
gkdrone, ih1 FLslider "Drone Tune", 100, 1000, 0, 1, -1, 500, 15, 20, 10
gkcoarse, ih2 FLslider "Coarse Tune", 100, 1000, 0, 1, -1, 500, 15, 20, 50
gkfine, ih3 FLslider "Fine Tune", -10, 10, 0, 1, -1, 500, 15, 20, 90
gkgnat, ih4 FLslider "Gnat Tune", -1, 1, 0, 1, -1, 500, 15, 20, 130

kt, gitexth FLtext "Interval", 0, 100, 0, 1, 100, 20, 20, 180
kc, gicenth FLtext "Cents", 0, 100, 0, 1, 100, 20, 120, 180
gkbutt, ibh FLbutton "Calculate", 1, 0, 2, 100, 20, 320, 180, -1

FLpanelEnd
FLrun

gi_sine_wave ftgen 0, 0, 8192, 10, 1

gi_square_wave ftgen 0, 0, 8192, 7, -1, 4096, -1, 0, 1, 4096, 1

gi_harmonic ftgen 0, 0, 8192, 10, \
1, 1/4, 1/9, 1/16, 1/25, 1/36, 1/49, \
1/64, 1/81, 1/100, 1/121, 1/144, 1/169, 1/196, 1/225, 1/256

instr Oscillator
iamp init ampdbfs(-10)

kfreq = gkcoarse + gkfine + gkgnat
FLsetVal gkbutt, kfreq/gkdrone, gitexth
FLsetVal gkbutt, 1200*log(kfreq/gkdrone)/log(2), gicenth
aout oscil iamp, kfreq, gi_harmonic
out aout
endin

instr Drone
iamp init ampdbfs(-10)

kfreq = gkdrone
aout oscil iamp, kfreq, gi_harmonic
out aout
endin
; vim: tabstop=16 listchars=tab\:>\ ,trail\:. :
</CsInstruments>
<CsScore>
i "Drone" 0 3600
i "Oscillator" 0 3600
</CsScore>
</CsoundSynthesizer>

🔗yahya_melb <yahya@melbpc.org.au>

12/3/2006 4:04:10 AM

--- In tuning@yahoogroups.com, "p_heddles" wrote:
>
> Jon,
>
> I've got a program called Synthedit, a free modular soft-synth. Most
> of what you're after could be done by a simple synth setup in that,
> although it wouldn't be very elegant. As bonuses, each voice can
have
> independent control of waveform (sine, sawtooth, triangle, square,
> etc) and pan.
>
> Good luck,
> Patrick

Hi Patty,

Did you mean you have written a free program called SynthEdit? I
couldn't find SynthEdit on your (most excellent, dude!) equation art
website:
http://www.pheddles.com

However, there is a shareware program designed by Jeff McClintock
called SynthEdit, which is a modular VSTi synth builder app,
available from:
http://www.synthedit.com/

SynthEdit also has several support groups and sites, including:
- a Yahoo!Group at:
/syntheditusers/
- a wiki at:
http://synthedit.xwiki.com/
- third-party providers of modules and tutorials, eg:
http://www.la-la.com/synthedit/ and
http://www.dehaupt.com/SynthEdit/
- and a whole webring of SynthEdit sites at:
http://e.webring.com/hub?ring=synthedit

I'm guessing you simply meant you have a copy of this program?

Because it's so modular and visual, SynthEdit certainly looks like it
might be a quick and easy way of achieving Jon Wild's goal of setting
up a simple ear-training app.

Regards,
Yahya

🔗yahya_melb <yahya@melbpc.org.au>

12/3/2006 9:25:19 AM

--- In tuning@yahoogroups.com, Graham Breed wrote:
>
> Jon Wild wrote:
>
> > Anyway if you did manage to cook up something in Csound, I would
love to see it, and I'd work on a way to make it available, relatively
painlessly, for students. (For my immediate purposes I could certainly
get the library to pre-install Csound on the public machines, for
example.)
>
> I worked out the following. Not quite what you asked, partly because
I decided to do it differently, and partly because I didn't have your
message open when I wrote it. Save it as a .csd file.
>
[program source snipt]

Hi Graham,

I saved the source as "Eartest.csd", opened Csound and
compiled it. This produced a file called "Eartest.wav",
as well as an interactive window with three sliders.
Moving the sliders seemed to achieve nothing; no sound
was heard. But I played the wav file, which was 60.0
(minutes?) long, a fixed pitch drone which started at an
inaudible volume that gradually increased.

Is this what should happen?

How is one supposed to use the program?

Regards,
Yahya

🔗Graham Breed <gbreed@gmail.com>

12/4/2006 12:48:07 AM

yahya_melb wrote:
> Hi Graham,
> > I saved the source as "Eartest.csd", opened Csound and > compiled it. This produced a file called "Eartest.wav", > as well as an interactive window with three sliders. > Moving the sliders seemed to achieve nothing; no sound > was heard. But I played the wav file, which was 60.0 > (minutes?) long, a fixed pitch drone which started at an > inaudible volume that gradually increased.
> > Is this what should happen? > > How is one supposed to use the program?

You should set the output to "dac" (which I set as the default) so that you can listen to it in real time.

Graham

🔗p_heddles <p_heddles@yahoo.com>

12/4/2006 4:58:52 AM

Yahya,

Yes, that's what I mean. I had absolutely nothing to do with writing
SynthEdit; I just use it. Those links you posted should be useful for
anyone wanting to use SE for this 'very simple software', so thanks
for posting them. I'd have posted them myself, but I didn't know most
of them ;)

I'm glad you like my pretty pictures, too - thank you :)

Patty

--- In tuning@yahoogroups.com, "yahya_melb" <yahya@...> wrote:
>
>
> Hi Patty,
>
> Did you mean you have written a free program called SynthEdit? I
> couldn't find SynthEdit on your (most excellent, dude!) equation art
> website:
> http://www.pheddles.com
>
> However, there is a shareware program designed by Jeff McClintock
> called SynthEdit, which is a modular VSTi synth builder app,
> available from:
> http://www.synthedit.com/
>
> SynthEdit also has several support groups and sites, including:
> - a Yahoo!Group at:
> /syntheditusers/
> - a wiki at:
> http://synthedit.xwiki.com/
> - third-party providers of modules and tutorials, eg:
> http://www.la-la.com/synthedit/ and
> http://www.dehaupt.com/SynthEdit/
> - and a whole webring of SynthEdit sites at:
> http://e.webring.com/hub?ring=synthedit
>
> I'm guessing you simply meant you have a copy of this program?
>
> Because it's so modular and visual, SynthEdit certainly looks like it
> might be a quick and easy way of achieving Jon Wild's goal of setting
> up a simple ear-training app.
>
> Regards,
> Yahya