Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fewer Oscillators = More Fun #10

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
546bb61
Added research seminar
nickbailey Jan 26, 2012
fd419f2
Tidy up some links and get ready for some more exciting stuff (fewer …
nickbailey Feb 7, 2017
3fd52a4
Modified Index; wrote hello, world SWIG example program
nickbailey Feb 12, 2017
7330577
Started section on numpy arrays
nickbailey Feb 13, 2017
8aad586
numpy interaction and returning tuples
nickbailey Feb 13, 2017
494cf86
Additional info for lab (and other) machines
nickbailey Feb 16, 2017
6747580
Mac's aren't supported better
nickbailey Feb 21, 2017
3b6c5d9
Silly close-tag typo fixed
nickbailey Feb 21, 2017
d5389e3
numpy.i link and trivial beautification
nickbailey Feb 22, 2017
42f0884
I like coroutines because they is good
nickbailey Feb 27, 2017
d637fef
Philosophical musings on coroutines
nickbailey Feb 27, 2017
1b06b73
Short section on MVC
nickbailey Feb 27, 2017
4cf0951
dunno
nickbailey Feb 28, 2017
2c880d7
Merge branch 'master' of github.com:nickbailey/teaching
nickbailey Feb 28, 2017
334b429
Slight tidy-up and a typo
nickbailey Feb 28, 2017
f78b760
Starting Background
nickbailey Mar 1, 2017
cdf07bb
Simple Qt application with some background notes
nickbailey Mar 2, 2017
01e914e
QtMultimedia and Mido
nickbailey Mar 7, 2017
983a692
QThreads
nickbailey Mar 8, 2017
083e91f
There's always one more ytpo
nickbailey Mar 8, 2017
3fbe1e9
The s and d keys are very close together
nickbailey Mar 9, 2017
2bfdfe7
Fixed conflicts with Graham Percival's git
nickbailey Mar 9, 2017
f7d4669
Fix up index, exercise numbers etc
nickbailey Mar 9, 2017
5a3992c
Fix up index. Edit right file this time
nickbailey Mar 10, 2017
5445e35
Tidy up main index page
nickbailey Mar 10, 2017
8b68fb0
Fixed up section numbering; consolodated labs 3 and 4
nickbailey Oct 4, 2017
5253c33
Update README
nickbailey Apr 2, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@ Disclaimers:
enough to get students started in the right direction, I stopped
working on it. I accept no blame for any faults in the labs.

- I provided some input to the syllabus, but the final call was
always the lecturer, not me. These labs include some stuff
that I don't think is useful; they even include some stuff that
I think is actively harmful to students learning to program.
(e.g. pointers, excessive amounts of sine waves)
Again, I accept no fault for these.
"The Lecturer" has now rewritten a lot of the course with
Python and PyQt, although it's now been replaced by
a completely new course and back to C++ again, as it's for
electronics engineers who will be doing embedded stuff.
This can stay here in case it's of any use to anyone.


This material is dual-licensed under:
Expand Down
124 changes: 41 additions & 83 deletions python/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ <h3>Lab Exercises</h3>
<ul>

<li>
<a href="labs/lab1.html">Lab 1</a>:
<a href="labs/lab1.html">Getting Started with Python</a>:

<ul style="list-style-type:none;">
<li>
Expand All @@ -40,7 +40,7 @@ <h3>Lab Exercises</h3>
</ul>

</li><li>
<a href="labs/lab2.html">Lab 2</a>:
<a href="labs/lab2.html">Basic Flow of Control</a>:

<ul style="list-style-type:none;">
<li>
Expand All @@ -54,137 +54,107 @@ <h3>Lab Exercises</h3>

</li><li>

<a href="labs/lab3.html">Lab 3</a>:
<a href="labs/lab3+4.html">Objects and How to Use them for Audio</a>:

<ul style="list-style-type:none;">
<li>
8. <a href="labs/lab3.html#arrays">Numpy Arrays</a>
8. <a href="labs/lab3+4.html#arrays">Numpy Arrays</a>
</li><li>
9. Reading and writing wav files
</li>
10. Classes and buffer-based audio
</ul>

9. <a href="labs/lab3+4.html#two-d-arrays">Reading and writing wav files</a>
</li><li>

<a href="labs/lab4.html">Lab 4</a>:

<ul style="list-style-type:none;">
<li>
11. Look-up table (full)
10. <a href="labs/lab3+4.html#tic-tac-toe">Classes and buffer-based audio</a>
</li><li>
12. Look-up table (partial)
11. <a href="labs/lab3+4.html#ootone">Object-oriented Tone Generation</a>
</li>
</ul>

</li><li>

<a href="labs/lab5.xhtml">Lab 5</a>:
<a href="labs/lab5.xhtml">Recursive Oscillators</a>:

<ul style="list-style-type:none;">
<li>
13. Small-angle interpolation
</li><li>
14. Recursive oscillator
12. Recursive oscillator
</li>
</ul>

</li><li>

<a href="labs/lab6.html">Lab 6</a>:
<a href="labs/lab6.html">Parameterising Filters</a>:

<ul style="list-style-type:none;">
<li>
15. Complex Arithmetic
<a href="labs/lab6.html#complex">13. Complex Arithmetic</a>
</li><li>
16. Frequency response
<a href="labs/lab6.html#response">14. Frequency response</a>
</li>
</ul>

</li><li>

<a href="labs/lab7.xhtml">Lab 7</a>:
<a href="labs/lab7.xhtml">Filtering Audio</a>:

<ul style="list-style-type:none;">
<li>
17. Manipulating buffers
<a href="labs/lab7.xhtml#buffers">15. Manipulating buffers
</li><li>
18. Filtering with pole and zero placement in the z-plane
<a href="labs/lab7.xhtml#filtering1">16. Filtering with pole and zero placement in the z-plane
</li><li>
19. Filtering to a specification
<a href="labs/lab7.xhtml#filtering2">17. Filtering to a specification
</li><li>
</li>
</ul>

<a href="labs/lab8.html">Lab 8</a>:
<li>
<a href="labs/lab-swig.html">Calling C from Python</a>:

<ul style="list-style-type:none;">
<li>
20. A Grand Challenge
18. A very simple example
</li>
</ul>


<!--
</li><li>

<a href="labs/lab3.html">Lab 3</a>:

<ul style="list-style-type:none;">
<li>
8. <a href="labs/lab3.html#arrays">Arrays</a>
</li><li>
9. <a href="labs/lab3.html#two-d-arrays">Two-dimensional arrays</a>
19. <a href="labs/lab-swig.html#numpy+swig">SWIG and numpy nd-arrays</a>
</li>
</ul>
</li>

</li><li>
<a href="labs/lab4.html">Lab 4</a>:
<li>
<a href="labs/lab-qt.html">Creating a User Interface</a>:

<ul style="list-style-type:none;">
<li>
10. <a href="labs/lab4.html#tic-tac-toe">Tic-Tac-Toe game</a>
</li><li>
11. <a href="labs/lab4.html#string-arrays">Strings are arrays</a>
20. Thinking about GUIs
</li>
</ul>

</li><li>
<a href="labs/lab5.html">Lab 5</a>:

<ul style="list-style-type:none;">
<li>
12. <a href="labs/lab5.html#struct">Combining variables with
<code>struct</code></a>
</li><li>
13. <a href="labs/lab5.html#bit-manipulation">Bit manipulation</a>
</ul>

</li><li>

<a href="labs/lab6.html">Lab 6</a>:

<ul style="list-style-type:none;">
21. <a href="labs/lab-qt.html#very-simple-qt">A(nother) Very Simple Example</a>
</li>
<li>
14. <a href="labs/lab6.html#pointers">Pointers</a>
22. <a href="labs/lab-qt.html#qtmultimedia" >QtMultimedia</a>
</li>
<li>
23. <a href="labs/lab-qt.html#midi" >MIDI</a>
</li>
<li>
24. <a href="labs/lab-qt.html#threads" >QThreads</a>
</li>
</ul>
</li>

<br>
<li>
<a href="labs/lab8.html">Lab 8</a>:

<ul style="list-style-type:none;">
<li>
25. Research Seminar!
</li><li>
<a href="labs/lab-old.html">Misc old labs</a>

26. A Grand Challenge
</li>
</ul>


-->

</li>
</ul>

</li>
</ul>


<!--
Expand Down Expand Up @@ -310,18 +280,6 @@ <h3>General info about the labs</h3>
</ul>


<p>
Later:
</p>

<ul>
<li>
<a href="info/programming-howto.html">How to Think about Programming</a>
</li><li>
<a href="info/grading.html">Unofficial grading scheme</a>
</li>
</ul>

<p>
Reference:
</p>
Expand Down
39 changes: 36 additions & 3 deletions python/info/programming-home.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,23 +31,48 @@ <h1>Programming at Home</h1>


<div class="left">
<h3>Python 2.6 or 2.7</h3>
<h3>Python 3.x</h3>

<div class="warning">
Use python 2.6 or 2.7; do not use python 3.0 or higher.
Use python 3.5 or newer; do not use python 2.x.
</div>

<p>
The language syntax and semantics changed significantly
between versions 2 and 3 of python. As of 2016, we have
switched to python&nbsp;3 for Audio Programming.
There is still a lot of python&nbsp;2 in the world,
but its use is discouraged for new projects.
</p>

<h4>Installation</h4>

<p>
You can choose between downloading the minimum
packages you need for your system, or installing
the Anaconda package which is much bigger but
contains many more, very powerful tools (see
"Other Sofware").
</p>

<p>
For a minumum install:
</p>

<h4>Linux</h4>

<p>
If you're running Ubuntu or Debian, enter:
</p>

<blockquote>
<pre>
sudo apt-get install \
python-scipy python-matplotlib \
python3-scipy \
python3-matplotlib \
audacity
</pre>
</blockquote>

<h4>MacOS X and Windows</h4>

Expand All @@ -66,6 +91,14 @@ <h4>MacOS X and Windows</h4>
<div class="left">
<h3>Other software</h3>

<p>Anaconda IDE</p>
<blockquote>
<pre>
<a href=https://www.continuum.io/anaconda-overview>Anaconda
Home Page and Download</a>
</pre>
</blockquote>

<p>
Geany text editor.
</p>
Expand Down
1 change: 1 addition & 0 deletions python/labs/MVC-basic.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading