Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-07 Thread Anthony Walter via lazarus
Thanks, but I think I've decided what I am going to do is allow for sounds
to be applied to a virtual keyboard interface. Each sound might be
different both in pitch and in actual sound. So are far as reading standard
music file formats that won't work.

Also along these lines, I will also want to allow for sound files such as
wav or mp3 files to be used as sources, much like I allow for pictures to
be used as sources in my Image Shop program. This will be in addition to
tone generation sources which will be purely grammatically generated. The
tones will then optionally be able to route through effect functions such
as attack, sustain, pan, reverb, flanger, echo and so on to manipulate the
tone before it reached the virtual keyboard. All the sources and effects
will appear in the user interface as nodes with the end point being a
specific virtual keyboard key. The layout of the keyboard to node binding
will be able to be saved and loaded. Also users will be able to map virtual
keyboard keys to their actual computer keys so that they can play the
different node series using their computer keyboard.

I do have one request though, which I shall make a new thread for. And that
request is to ask for help from someone in writing an mp3 decoder with a
few requirements. If anyone is interested helping me with in this project,
the help with and an mp3 and wav decoder would be much appreciated. See the
other thread for details.
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-07 Thread Koenraad Lelong via lazarus

Op 6/05/19 om 00:44 schreef Anthony Walter via lazarus:


Does anyone care to provide any feedback on this idea before I implement it?

You could implement reading midi-files. So no need to "compose" your own 
tunes ;-)


Koenraad.

--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-06 Thread Anthony Walter via lazarus
Thanks, those are some good ideas. I'll look at PicoScope.

For the students I am going concentrate on having them writing tone
functions and effect functions. Tones will return a left and right SmallInt
given a time, and effects will have access to a history of the sound
samples to alter the current left and right sample. Again the students will
be able to connect tones to effects to generate an output, but in this case
I think the output kill be a virtual on screen representation of black and
white piano keys, such that each key can generate the tone / effect
assigned to it through a chain of inputs and outputs.

I believe having the wave form graphed above as you play the keys is still
something I'll put into it.
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-06 Thread Paul Breneman via lazarus

On 5/5/2019 6:44 PM, Anthony Walter via lazarus wrote:

Here is my idea:

I want to design an example project that allows students to write functions
that generate musical tones. These tones...



... They will also have the
ability visual the tones through an oscilloscope like graph that I draw. As
tones are played they can see the graph chance in real time.

Types of tones that students might create include square wave, saw wave,
sin wave, and other wave types.


That sounds *very* good to me!  This would be nice to use to learn how 
to use a PicoScope by hooking it up to display the same graph.  You get 
*fantastic* software for an inexpensive price:

https://www.picotech.com/oscilloscope/2000/picoscope-2000-overview

There are a few ideas and PicoScope links here:
http://controlpascal.com/tutorial.htm

Best Regards,
Paul
--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-06 Thread Howard Page-Clark via lazarus

On 06/05/2019 01:32, Anthony Walter via lazarus wrote:
Regarding the next project, I think I am going to concentrate two 
different programming tasks for my students. One task is to create 
various tones through simple functions, and the other is to create 
effects (again through simple functions) which manipulate a sound 
source. Examples of effects might include a chorus effect, pan effect, 
flanger effect, reverb effect, echo effect, and probably a few crazy 
original sounding effects that don't make much sense for musicians to 
use. In any case, I suspect that I will allow the user to again hook 
effects up together in a chain, possibly using the same node type user 
interface where one effect outputs samples that can be fed into other 
effects.


And in place of the image drawn above like in the Image Shop example, 
I might just make the rendering take the shape of graphing real time 
wave forms and cut back slightly on the musical staff, at least until 
another point in time.


As well as effects to alter the tones, you could consider adding a 
repetitive mode in which beats/rhythm is introduced for one or more 
tones, such as various drumming styles, pizzicato, rock rhythms, hip 
hop, waltz and other dance beats etc. If the tones sounded concurrently 
this could add a ground bass effect.


--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-05 Thread Anthony Walter via lazarus
You can view the logic related to both drawing the nodes and handling how
they can connect to one another in the unit below. Note that I also check
for circular references so that one node cannot indirectly lead back to
itself. Also, the rendering only hits the nodes that are connected to the
final output node TDisplayNode or FDisplay in the TNodeList by working its
way backwards from it to only connected nodes.

https://github.com/sysrpl/ImageShop/blob/master/src/imagenodes.pas

Regarding the next project, I think I am going to concentrate two different
programming tasks for my students. One task is to create various tones
through simple functions, and the other is to create effects (again through
simple functions) which manipulate a sound source. Examples of effects
might include a chorus effect, pan effect, flanger effect, reverb effect,
echo effect, and probably a few crazy original sounding effects that don't
make much sense for musicians to use. In any case, I suspect that I will
allow the user to again hook effects up together in a chain, possibly using
the same node type user interface where one effect outputs samples that can
be fed into other effects.

And in place of the image drawn above like in the Image Shop example, I
might just make the rendering take the shape of graphing real time wave
forms and cut back slightly on the musical staff, at least until another
point in time.
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Feedback Wanted: Next tutoring project

2019-05-05 Thread Travis Ayres via lazarus
Off topic:
You seem to have nailed wire drawing algorithms - do you have a good
resource for that? I have to do something similar.
On topic:
Bravo on the previous project, looking forward to the next one. Was shocked
at how complete and awesome it was. By all means, continue.


On Sun, May 5, 2019 at 3:44 PM Anthony Walter via lazarus <
lazarus@lists.lazarus-ide.org> wrote:

> As some of you may have been following, a little more than a week ago I
> asked for community feedback on an a project I was planning. The project
> turned out very well and if you haven't seen yet, or haven't checked out
> the git repository, I've made a few enhancements including fixing a few
> cross platform bugs and enhancing the way the node wires are drawn:
>
> https://www.getlazarus.org/learn/tutorials/examples/imageshop/
>
> Now I am starting on a new project in the same vein , and that is to
> design an example program were students I am teaching can get immediate
> feedback on the functions they add to the project. I'd like to submit my
> new project idea to you again in the hopes that you can make some good
> suggestions before I start implementing it.
>
> Here is my idea:
>
> I want to design an example project that allows students to write
> functions that generate musical tones. These tones can then be mapped to
> their keyboard where they can play it like a piano. They will also have the
> ability visual the tones through an oscilloscope like graph that I draw. As
> tones are played they can see the graph chance in real time.
>
> Types of tones that students might create include square wave, saw wave,
> sin wave, and other wave types.
>
> I am also considering a simplified musical staff where tones can be placed
> on it, drags to be resized or move, and a lasso select can alter the tonal
> properties of their selections.
>
> Finally I might add the ability to save and load tones to and from musical
> staff so that songs can be created or loaded and played using their tones.
>
> Does anyone care to provide any feedback on this idea before I implement
> it?
>
> Thanks again.
> Anthony
> --
> ___
> lazarus mailing list
> lazarus@lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
>
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


[Lazarus] Feedback Wanted: Next tutoring project

2019-05-05 Thread Anthony Walter via lazarus
As some of you may have been following, a little more than a week ago I
asked for community feedback on an a project I was planning. The project
turned out very well and if you haven't seen yet, or haven't checked out
the git repository, I've made a few enhancements including fixing a few
cross platform bugs and enhancing the way the node wires are drawn:

https://www.getlazarus.org/learn/tutorials/examples/imageshop/

Now I am starting on a new project in the same vein , and that is to design
an example program were students I am teaching can get immediate feedback
on the functions they add to the project. I'd like to submit my new project
idea to you again in the hopes that you can make some good suggestions
before I start implementing it.

Here is my idea:

I want to design an example project that allows students to write functions
that generate musical tones. These tones can then be mapped to their
keyboard where they can play it like a piano. They will also have the
ability visual the tones through an oscilloscope like graph that I draw. As
tones are played they can see the graph chance in real time.

Types of tones that students might create include square wave, saw wave,
sin wave, and other wave types.

I am also considering a simplified musical staff where tones can be placed
on it, drags to be resized or move, and a lasso select can alter the tonal
properties of their selections.

Finally I might add the ability to save and load tones to and from musical
staff so that songs can be created or loaded and played using their tones.

Does anyone care to provide any feedback on this idea before I implement it?

Thanks again.
Anthony
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus