Discussion:
[chuck-users] The ChucK Method Book
Zed A. Shaw
2010-11-05 21:23:53 UTC
Permalink
Hi folks, long time lurker, infrequent poster.

I've recently finished a book for Python and I'd like to do a similar
one for ChucK. The Python book is "Learn Python The Hard Way" and it's
written similar to a guitar method book:

http://learnpythonthehardway.org/

What I'd like to do next is a "ChucK Method Book" in a similar style,
but actually make it more like a real method book for an instrument
where the student is learning to "play chuck" like they would an
instrument.

If I were to do this, what do you think it should include? Do you think
it's a good idea? Have you tried teaching ChucK?

Thanks!
--
Zed A. Shaw
http://zedshaw.com/
Nic Freed
2010-11-05 23:12:33 UTC
Permalink
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)

I am only 15, and new to programming, my only prior experience being with
ChucK and with Pure Data, and I love the amount of detail you put in the
python book! It would be awesome if you made something similar for ChucK,
because, as of late, I have been learning through the manual alone, which is
a bit advanced, and lacks any interesting examples for large portions :\

Take it from a fan, PLEASE do this! Keep us updated! :D

--Nic
Post by Zed A. Shaw
Hi folks, long time lurker, infrequent poster.
I've recently finished a book for Python and I'd like to do a similar
one for ChucK. The Python book is "Learn Python The Hard Way" and it's
http://learnpythonthehardway.org/
What I'd like to do next is a "ChucK Method Book" in a similar style,
but actually make it more like a real method book for an instrument
where the student is learning to "play chuck" like they would an
instrument.
If I were to do this, what do you think it should include? Do you think
it's a good idea? Have you tried teaching ChucK?
Thanks!
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Zed A. Shaw
2010-11-06 01:39:06 UTC
Permalink
Post by Nic Freed
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)
Glad you like it. It will definitely help you with ChucK, so let me
know what exercises you found the most useful. Also let me know if you
get stuck at anything and I'll try to help.
--
Zed A. Shaw
http://zedshaw.com/
Nic Freed
2010-11-06 02:38:08 UTC
Permalink
Thanks a lot, awesome to meet you :D

I will let you know once I get further into the book which exercises I found
the most helpful, I will be happy to help :)

--Nic
Post by Zed A. Shaw
Post by Nic Freed
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)
Glad you like it. It will definitely help you with ChucK, so let me
know what exercises you found the most useful. Also let me know if you
get stuck at anything and I'll try to help.
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Nic Freed
2010-11-07 01:22:00 UTC
Permalink
Just wanted to let you know I am still reading, and this book is amazing,
and should be sold for *megabux$$$ *^_^

But seriously, it would be a dream come true for you to release a book like
this for chuck. The severe lack of material on ChucK as a language has led
me to read through a large manual, using it as my only source of
information, and not a reference guide, as it was intended to be. The manual
is a terrible choice for newbies to programming and audio synthesis because:

a. It is very dry and includes almost no examples

b. It assumes prior programming knowledge and understanding of many concepts
in music synthesis as well

For these two reasons alone, I must urge you, PLEASE make this book. It is
very sad that a language as amazing language like chuck lacks a
comprehensive guide for learning the language, from a
complete beginner's point of view.

Thank you so much for considering! :D

--Nic

PS When I finish the book, I will let you know which examples I found most
helpful, and which I think should be included in ChucK's book, if you are to
write it. It may take a while, because of school, but I will get through it
soon enough :)
Post by Nic Freed
Thanks a lot, awesome to meet you :D
I will let you know once I get further into the book which exercises I
found the most helpful, I will be happy to help :)
--Nic
Post by Zed A. Shaw
Post by Nic Freed
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)
Glad you like it. It will definitely help you with ChucK, so let me
know what exercises you found the most useful. Also let me know if you
get stuck at anything and I'll try to help.
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Lucas Zawacki
2010-11-07 02:36:15 UTC
Permalink
I agree with Nic here. I come from a programming background but when I
started using ChucK I has little to no knowledge of audio synthesis,
so while I could extract a lot of knowledge about the language from
the manual and browsing the example code (which is great by the way) I
really don't feel that I'm using all of ChucK's potential to create
interesting audio pieces, mostly beeps and noises and stuff like that.

In my opinion the pragmatic possibilities of such a book can be very
interesting here in the ChucK universe. So please write this book and
keep us posted!
Post by Nic Freed
Just wanted to let you know I am still reading, and this book is amazing,
and should be sold for megabux$$$ ^_^
But seriously, it would be a dream come true for you to release a book like
this for chuck. The severe lack of material on ChucK as a language has led
me to read through a large manual, using it as my only source of
information, and not a reference guide, as it was intended to be. The manual
a. It is very dry and includes almost no examples
b. It assumes prior programming knowledge and understanding of many concepts
in music synthesis as well
For these two reasons alone, I must urge you, PLEASE make this book. It is
very sad that a language as amazing language like chuck lacks a
comprehensive guide for learning the language, from a
complete beginner's point of view.
Thank you so much for considering! :D
--Nic
PS When I finish the book, I will let you know which examples I found most
helpful, and which I think should be included in ChucK's book, if you are to
write it. It may take a while, because of school, but I will get through it
soon enough :)
Post by Nic Freed
Thanks a lot, awesome to meet you :D
I will let you know once I get further into the book which exercises I
found the most helpful, I will be happy to help :)
--Nic
Post by Nic Freed
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)
Glad you like it.  It will definitely help you with ChucK, so let me
know what exercises you found the most useful.  Also let me know if you
get stuck at anything and I'll try to help.
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
--
http://www.twitter.com/lfzawacki
http://www.linesocode.wordpress.com
http://www.umblag.wordpress.com
Nic Freed
2010-11-07 04:26:36 UTC
Permalink
Interesting, I was the exact opposite! I started with a whole lot of
knowledge of sound synthesis from my time with Pure Data, but barely
anything in terms of programming! Either way, whether the people new to
chuck are beginners to programming, audio synthesis, or both, I think it
would be an extremely useful book ^_^

Also, I don't know how the book writing process works, but if it is anything
like the game making process, I will love to "beta test" your book for you,
so you can see how it works from a near-noob's perspective, and maybe
correct a few spelling errors. Let me know! :)

--Nic
Post by Lucas Zawacki
I agree with Nic here. I come from a programming background but when I
started using ChucK I has little to no knowledge of audio synthesis,
so while I could extract a lot of knowledge about the language from
the manual and browsing the example code (which is great by the way) I
really don't feel that I'm using all of ChucK's potential to create
interesting audio pieces, mostly beeps and noises and stuff like that.
In my opinion the pragmatic possibilities of such a book can be very
interesting here in the ChucK universe. So please write this book and
keep us posted!
Post by Nic Freed
Just wanted to let you know I am still reading, and this book is amazing,
and should be sold for megabux$$$ ^_^
But seriously, it would be a dream come true for you to release a book
like
Post by Nic Freed
this for chuck. The severe lack of material on ChucK as a language has
led
Post by Nic Freed
me to read through a large manual, using it as my only source of
information, and not a reference guide, as it was intended to be. The
manual
Post by Nic Freed
is a terrible choice for newbies to programming and audio synthesis
a. It is very dry and includes almost no examples
b. It assumes prior programming knowledge and understanding of many
concepts
Post by Nic Freed
in music synthesis as well
For these two reasons alone, I must urge you, PLEASE make this book. It
is
Post by Nic Freed
very sad that a language as amazing language like chuck lacks a
comprehensive guide for learning the language, from a
complete beginner's point of view.
Thank you so much for considering! :D
--Nic
PS When I finish the book, I will let you know which examples I found
most
Post by Nic Freed
helpful, and which I think should be included in ChucK's book, if you are
to
Post by Nic Freed
write it. It may take a while, because of school, but I will get through
it
Post by Nic Freed
soon enough :)
Post by Nic Freed
Thanks a lot, awesome to meet you :D
I will let you know once I get further into the book which exercises I
found the most helpful, I will be happy to help :)
--Nic
Post by Zed A. Shaw
Post by Nic Freed
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)
Glad you like it. It will definitely help you with ChucK, so let me
know what exercises you found the most useful. Also let me know if you
get stuck at anything and I'll try to help.
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
--
http://www.twitter.com/lfzawacki
http://www.linesocode.wordpress.com
http://www.umblag.wordpress.com
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Kassen
2010-11-07 12:25:19 UTC
Permalink
Lucas;

I agree with Nic here. I come from a programming background but when I
Post by Lucas Zawacki
started using ChucK I has little to no knowledge of audio synthesis,
so while I could extract a lot of knowledge about the language from
the manual and browsing the example code (which is great by the way) I
really don't feel that I'm using all of ChucK's potential to create
interesting audio pieces, mostly beeps and noises and stuff like that.
That's a huge subject and whole volumes could (and have!) been written even
on small parts of it. One good place to get ideas is this series;
http://www.soundonsound.com/sos/allsynthsecrets.htm (early parts are on the
bottom of the page).

This is mostly about creating sounds with traditional synths, but it is
abstracted far enough to be useful anywhere. I think the main reason why
that series has such a good reputation is that it's very accessible (no
higher math or physics needed) yet doesn't sacrifice depth. The diagrams are
nice and clear too.

Yours,
Kas.
Adolfo Fitoria
2010-11-07 14:31:03 UTC
Permalink
Post by Lucas Zawacki
I agree with Nic here. I come from a programming background but when I
started using ChucK I has little to no knowledge of audio synthesis,
so while I could extract a lot of knowledge about the language from
the manual and browsing the example code (which is great by the way) I
really don't feel that I'm using all of ChucK's potential to create
interesting audio pieces, mostly beeps and noises and stuff like that.
In my opinion the pragmatic possibilities of such a book can be very
interesting here in the ChucK universe. So please write this book and
keep us posted!
Hi Zed!

Please do this! I have both programming and musical(classical guitar)
knowledge but I am having a hard time understanding chuck and sound
synthesis. LPTHW was a great book, I wish I could have it when I
started to learn Python.


Thanks!
Post by Lucas Zawacki
Post by Nic Freed
Just wanted to let you know I am still reading, and this book is amazing,
and should be sold for megabux$$$ ^_^
But seriously, it would be a dream come true for you to release a book like
this for chuck. The severe lack of material on ChucK as a language has led
me to read through a large manual, using it as my only source of
information, and not a reference guide, as it was intended to be. The manual
a. It is very dry and includes almost no examples
b. It assumes prior programming knowledge and understanding of many concepts
in music synthesis as well
For these two reasons alone, I must urge you, PLEASE make this book. It is
very sad that a language as amazing language like chuck lacks a
comprehensive guide for learning the language, from a
complete beginner's point of view.
Thank you so much for considering! :D
--Nic
PS When I finish the book, I will let you know which examples I found most
helpful, and which I think should be included in ChucK's book, if you are to
write it. It may take a while, because of school, but I will get through it
soon enough :)
Post by Nic Freed
Thanks a lot, awesome to meet you :D
I will let you know once I get further into the book which exercises I
found the most helpful, I will be happy to help :)
--Nic
Post by Nic Freed
Oh my gosh, I am reading that book now! You did an amazing job, and I am
learning tons, thank you so much :)
Glad you like it.  It will definitely help you with ChucK, so let me
know what exercises you found the most useful.  Also let me know if you
get stuck at anything and I'll try to help.
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
--
http://www.twitter.com/lfzawacki
http://www.linesocode.wordpress.com
http://www.umblag.wordpress.com
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
--
Adolfo Fitoria
http://fitoria.net
Alan Yoder
2011-01-28 18:42:02 UTC
Permalink
what is the status of this?
i'd jum on it if it were an accessible thing for me. that is to say,
print bad.
can handle some pdf stuff, though i just drop that out to plaintext anyway.
Post by Zed A. Shaw
Hi folks, long time lurker, infrequent poster.
I've recently finished a book for Python and I'd like to do a similar
one for ChucK. The Python book is "Learn Python The Hard Way" and it's
http://learnpythonthehardway.org/
What I'd like to do next is a "ChucK Method Book" in a similar style,
but actually make it more like a real method book for an instrument
where the student is learning to "play chuck" like they would an
instrument.
If I were to do this, what do you think it should include? Do you think
it's a good idea? Have you tried teaching ChucK?
Thanks!
mike clemow
2011-01-28 19:06:59 UTC
Permalink
If I might opine upon this subject. I think that a community-written
manual/usage document is a great idea. I think for something open
source like Chuck, we ought to spearhead an effort to both document as
well as proselytize using Floss Manuals - http://en.flossmanuals.net/

I know we've had this discussion before, but if this is to be a method
book, or something like that, I don't see why it should be there
instead of some pdf. Sharing a document is so hard that way.

thoughts?

mike
Post by Alan Yoder
what is the status of this?
i'd jum on it if it were an accessible thing for me. that is to say, print
bad.
can handle some pdf stuff, though i just drop that out to plaintext anyway.
Post by Zed A. Shaw
Hi folks, long time lurker, infrequent poster.
I've recently finished a book for Python and I'd like to do a similar
one for ChucK.  The Python book is "Learn Python The Hard Way" and it's
http://learnpythonthehardway.org/
What I'd like to do next is a "ChucK Method Book" in a similar style,
but actually make it more like a real method book for an instrument
where the student is learning to "play chuck" like they would an
instrument.
If I were to do this, what do you think it should include?  Do you think
it's a good idea?  Have you tried teaching ChucK?
Thanks!
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
--
http://michaelclemow.com
http://semiotech.org
Kassen
2011-01-28 20:19:25 UTC
Permalink
Post by mike clemow
If I might opine upon this subject. I think that a community-written
manual/usage document is a great idea. I think for something open
source like Chuck, we ought to spearhead an effort to both document as
well as proselytize using Floss Manuals - http://en.flossmanuals.net/
I agree with this sentiment. I don't mean to say that a single author
writing his own book is a bad idea; it's not a either/or thing, I just like
creating stuff together.

Yours,
Kas.
Zed A. Shaw
2011-01-28 20:52:28 UTC
Permalink
Post by mike clemow
If I might opine upon this subject. I think that a community-written
manual/usage document is a great idea. I think for something open
source like Chuck, we ought to spearhead an effort to both document as
well as proselytize using Floss Manuals - http://en.flossmanuals.net/
I know we've had this discussion before, but if this is to be a method
book, or something like that, I don't see why it should be there
instead of some pdf. Sharing a document is so hard that way.
So, writing one of these isn't hard. For me it was a piece of cake to
write http://learnpythonthehardway.org/ and really the only thing
holding me back on The Chuck Method Book is time. If people wanted to
do a community version of it I have a some suggestions that will help
make it actually work.

You'd think writing a book with a bunch of people is as fun as writing
software but it's actually a lot more difficult. The problem is that
everyone has their own voice and while source code forces everyone to
basically talk the same way, with English even slight variations can be
irritating to a reader. The other problem with completely community
based books is they become disorganized and are never finished, so you
have these half-done and highly flawed works out there confusing people.

On the flip side, there the problem of an author not having enough time
or not being enough of an expert to generate source material and copy.
A community can produce a lot more material than one person.

What I suggest you do is you combine the two. You have a wiki of "ChucK
Recipes" or similar that people can just go crazy with and write up how
to do anything. They need to rate them by difficulty and whether it's
say a tip/trick or an exercise type of tip. The model to follow is
http://vim.wikia.com/wiki/Vim_Tips_Wiki to see how this is done right.

Now, this ChucK Tips wiki is allowed to be disorganized and have a loose
structure, so that let's everyone contribute material. Choose a
consistent Wiki format that supports code. The tips wiki purpose is to
*not educate or guide* but instead to be a *reference* for getting
things done.

You then have the "official" ChucK Method Book. This book should be
collected and edited/written by one or two people. I prefer one person
who can write since then the book has one voice and can be finely
crafted. The job of the CMB editor is to take tips and exercises from
the Tips wiki, combine them with a guided set of exercises with the goal
of taking someone from nothing to capable in play ChucK music in 1 year.

Of course, some people will go through the book faster than a year. But
if you plan on 52 exercises, 1 per week, then people can structure that
any way they need. It then gives you a solid guide for how the book is
built, and sets up all your topics and an end point.

After you've got this editor in place, and the tips wiki filling up,
writing the book is literally a couple hours an evening of cleaning up
tips and putting them in the right lessons. I did this and wrote LPTHW
in about 3 months, with maybe 2 months of real work on it.

One word of warning though: People will scream up and down that they'll
contribute to the book and that they know exactly how to teach people.
99% of these people are completely full of it. They'll write little
tips, they'll write code, but most of them don't know the first thing
about teaching a concept or really even writing about it. Don't get
your hopes up that you'll have hordes of really great lessons just
handed to you. You will have to finely craft the manual if you want it
to be good.

The editor will have to focus on really getting the voice, structure,
and flow right and shouldn't assume anyone else is going to help unless
they prove themselves over and over.

If you want help getting a sphinx setup going (that's what I used on
LPTHW) I can give some pointers.
--
Zed A. Shaw
http://zedshaw.com/
mike clemow
2011-01-28 22:04:20 UTC
Permalink
Hey Zed,

I think your idea is great and I really appreciate your advice about
how to write a decent educational book. I have never written an
educational book--although I have experience doing tech documentation,
which I know is a different animal but should help with the clarity
thing. Also, I have enough experience teaching to know that I have a
lot more to learn about educating people. I think that's what makes
teaching so hard.

Anyway, I would love to contribute little lesson seeds to a growing
garden of possibilities that will later be collected, curated and
organized by an official author (or two) into some coherent text.
Another thing that this collection would be really helpful for is
generation of lesson plans for people who are using Chuck in a
classroom setting (specifically outside of Princeton and Stanford,
since they have well-developed curricula already).

Sphinx... you mean this? http://sphinx.pocoo.org/index.html

At first glance it seems to be Python specific. Can you explain how
will that help us with Chuck examples?

Best,
Mike
If I might opine upon this subject.  I think that a community-written
manual/usage document is a great idea.  I think for something open
source like Chuck, we ought to spearhead an effort to both document as
well as proselytize using Floss Manuals - http://en.flossmanuals.net/
I know we've had this discussion before, but if this is to be a method
book, or something like that, I don't see why it should be there
instead of some pdf.  Sharing a document is so hard that way.
So, writing one of these isn't hard.  For me it was a piece of cake to
write http://learnpythonthehardway.org/ and really the only thing
holding me back on The Chuck Method Book is time.  If people wanted to
do a community version of it I have a some suggestions that will help
make it actually work.
You'd think writing a book with a bunch of people is as fun as writing
software but it's actually a lot more difficult.  The problem is that
everyone has their own voice and while source code forces everyone to
basically talk the same way, with English even slight variations can be
irritating to a reader.  The other problem with completely community
based books is they become disorganized and are never finished, so you
have these half-done and highly flawed works out there confusing people.
On the flip side, there the problem of an author not having enough time
or not being enough of an expert to generate source material and copy.
A community can produce a lot more material than one person.
What I suggest you do is you combine the two.  You have a wiki of "ChucK
Recipes" or similar that people can just go crazy with and write up how
to do anything.  They need to rate them by difficulty and whether it's
say a tip/trick or an exercise type of tip.  The model to follow is
http://vim.wikia.com/wiki/Vim_Tips_Wiki to see how this is done right.
Now, this ChucK Tips wiki is allowed to be disorganized and have a loose
structure, so that let's everyone contribute material.  Choose a
consistent Wiki format that supports code.  The tips wiki purpose is to
*not educate or guide* but instead to be a *reference* for getting
things done.
You then have the "official" ChucK Method Book.  This book should be
collected and edited/written by one or two people.  I prefer one person
who can write since then the book has one voice and can be finely
crafted.  The job of the CMB editor is to take tips and exercises from
the Tips wiki, combine them with a guided set of exercises with the goal
of taking someone from nothing to capable in play ChucK music in 1 year.
Of course, some people will go through the book faster than a year.  But
if you plan on 52 exercises, 1 per week, then people can structure that
any way they need.  It then gives you a solid guide for how the book is
built, and sets up all your topics and an end point.
After you've got this editor in place, and the tips wiki filling up,
writing the book is literally a couple hours an evening of cleaning up
tips and putting them in the right lessons.  I did this and wrote LPTHW
in about 3 months, with maybe 2 months of real work on it.
One word of warning though:  People will scream up and down that they'll
contribute to the book and that they know exactly how to teach people.
99% of these people are completely full of it.  They'll write little
tips, they'll write code, but most of them don't know the first thing
about teaching a concept or really even writing about it.  Don't get
your hopes up that you'll have hordes of really great lessons just
handed to you.  You will have to finely craft the manual if you want it
to be good.
The editor will have to focus on really getting the voice, structure,
and flow right and shouldn't assume anyone else is going to help unless
they prove themselves over and over.
If you want help getting a sphinx setup going (that's what I used on
LPTHW) I can give some pointers.
--
Zed A. Shaw
http://zedshaw.com/
_______________________________________________
chuck-users mailing list
https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
--
http://michaelclemow.com
http://semiotech.org
Zed A. Shaw
2011-01-28 23:13:10 UTC
Permalink
Post by mike clemow
Hey Zed,
Sphinx... you mean this? http://sphinx.pocoo.org/index.html
Yep, it works. It's good for making the book, not so good for the wiki.
Post by mike clemow
At first glance it seems to be Python specific. Can you explain how
will that help us with Chuck examples?
It's not Python specific. It uses python, but you can put any language
in it. It's just a good wiki format with the ability to typeset source
code with/without color and produce PDF or HTML output.
--
Zed A. Shaw
http://zedshaw.com/
Continue reading on narkive:
Loading...