diff options
Diffstat (limited to 'notes')
-rw-r--r-- | notes/adhd.md | 11 | ||||
-rw-r--r-- | notes/art.md | 17 | ||||
-rw-r--r-- | notes/colour.md | 49 | ||||
-rw-r--r-- | notes/computing.md | 12 | ||||
-rw-r--r-- | notes/functional.md | 9 | ||||
-rw-r--r-- | notes/haskell.md | 118 | ||||
-rw-r--r-- | notes/index.md | 18 | ||||
-rw-r--r-- | notes/kcp.md | 12 | ||||
-rw-r--r-- | notes/lambda-calculus.md | 29 | ||||
-rw-r--r-- | notes/music.md | 14 | ||||
-rw-r--r-- | notes/operating-system.md | 23 | ||||
-rw-r--r-- | notes/perspective.md | 30 | ||||
-rw-r--r-- | notes/renoise.md | 107 | ||||
-rw-r--r-- | notes/sable.md | 32 | ||||
-rw-r--r-- | notes/scales.md | 23 | ||||
-rw-r--r-- | notes/software.md | 42 | ||||
-rw-r--r-- | notes/visual-art.md | 27 |
17 files changed, 573 insertions, 0 deletions
diff --git a/notes/adhd.md b/notes/adhd.md new file mode 100644 index 0000000..8c12e16 --- /dev/null +++ b/notes/adhd.md @@ -0,0 +1,11 @@ +--- +title: adhd +published: 2024-06-23T08:11:57+0100 +--- + +## a neurodevelopmental disorder that causes executive dysfunction + +::::: {.links} +- [additude magazine sleep guide](https://www.additudemag.com/download/how-to-sleep-better-adhd/) +- [diagnosis pathways for adult adhd (uk)](https://adhduk.co.uk/diagnosis-pathways/) +::::: diff --git a/notes/art.md b/notes/art.md new file mode 100644 index 0000000..0ca9142 --- /dev/null +++ b/notes/art.md @@ -0,0 +1,17 @@ +--- +title: art +published: 2024-06-23T07:28:48+0100 +children: + - music + - visual-art +--- + +<p class="notice">Art variously involves creating beauty, expressing emotion, and representating conceptual ideas. This is a **section** that contains my personal notes on creating different forms of it.</p> + +### Ephemeral +![This wall will be painted over or demolished](/images/art-tampere.jpg) + +## Out +:::::{.links} +- ["The Death of the Author" by Roland Barthes](https://www.ubu.com/aspen/aspen5and6/threeEssays.html#barthes) +::::: diff --git a/notes/colour.md b/notes/colour.md new file mode 100644 index 0000000..818b26d --- /dev/null +++ b/notes/colour.md @@ -0,0 +1,49 @@ +--- +title: colour +published: 2024-06-23T07:28:48+0100 +--- + +<style>.md45{width:47.5%}</style> + +<p class="notice"> +Colour is a very powerful visual element. Understanding it can enable more effective composition in your art. +</p> + +<details> +<summary>Hues are biased toward certain values</summary> +<p> +<img class="md45" src="/images/colour-beach-hue.jpg"> +<img class="md45" src="/images/colour-beach-monochrome.jpg"> +</p> +<p>Due to the way human eyes perceive light, [value] is dependent on [hue].</p> +</details> + +<details> +<summary>Krita tips</summary> +<p>You can preview a perceptually monochrome version of your illustration under the **softproofing** tab in the image properties.</p> +<p><img src="/images/colour-krita.webp"></p> +</details> + +<section> +- [Properties] + - [Value] + - [Hue] + - [Saturation] +</section> + +<section> +## Properties + +### Value +Simply how light or dark a given colour is. Value is mostly what creates contrast in a drawing. + +### Hue +The pure pigment, without any tint or shading. + +### Saturation +The intensity of the colour, i.e. it's difference from greyscale. +![](/images/colour-saturation.png){.md45} + + +</section> + diff --git a/notes/computing.md b/notes/computing.md new file mode 100644 index 0000000..b1ab149 --- /dev/null +++ b/notes/computing.md @@ -0,0 +1,12 @@ +--- +title: computing +published: 2024-07-22T15:34:49+0100 +children: + - functional + - operating-system + - software +--- + +## A computer is a machine that carries out a sequence of math and logic operations + +Computing involves the use of a computer to do a task. Machine code commands the computer, and is used to manipulate its data (memory, i/o, etc). A list of instructions that the computer runs is called a program. diff --git a/notes/functional.md b/notes/functional.md new file mode 100644 index 0000000..057b2a2 --- /dev/null +++ b/notes/functional.md @@ -0,0 +1,9 @@ +--- +title: functional programming +published: 2024-07-22T15:34:49+0100 +children: + - lambda-calculus + - haskell +--- + +## A programming paradigm that models computation as the evaluation of expressions, and avoids mutable state diff --git a/notes/haskell.md b/notes/haskell.md new file mode 100644 index 0000000..a810a0e --- /dev/null +++ b/notes/haskell.md @@ -0,0 +1,118 @@ +--- +title: haskell +published: 2024-09-12T23:42:45+0100 +--- + +## Static typing, pure functions, and lazy evaluation + +I use GHC2010 with a number of extra extensions, so code on this card may not be compliant with Haskell2010. + +## Index +- [Generic types] +- [Abstractions] + - [Semigroup] + - [Monoid: A Semigroup with an identity element] + - [Functor: A computation whose values can be mapped over] + - [Applicative: A functor with expression embedding and sequencing] + - [Monad: An applicative functor that can be flattened] +- [Out] + +# Generic types +Haskell has *parametric polymorphism*, meaning a function or datatype can handle multiple input types. +```hs +-- Polymorphic function with type variable `a' +id ∷ a → a +id x = x + +-- Also works with datatypes +data Tree = Leaf | Node a (Tree a) (Tree a) +``` + +# Abstractions +Haskell includes a lot of useful abstractions, some of which draw from **category theory**, a branch of maths. This might sound scary if you're unfamiliar, but you don't need to know category theory to know the language. These abstractions can be extremely useful, and without them, purely functional programming would be a pain in the ass!! + +## Semigroup +An abstract representation of an object that has 1 associative binary operation. Yeah, that is it! +```hs +class Semigroup m where + (<>) ∷ m → m → m +``` + +Laws: +```hs +x <> (y <> z) == (x <> y) <> z +``` + +## Monoid: A semigroup with an identity element +```hs +class Semigroup m ⇒ Monoid m where + mempty ∷ m -- Identity element + mappend ∷ m → m → m -- Synonym for `<>' +``` + +Laws: +```hs +x <> mempty == x +mempty <> x == x +``` + +## Functor: A computation whose values can be mapped over +The functor **f β** is made from **f α** by transforming all of its values **(α → β)** while leaving the structure **f** itself unmodified. +```hs +class Functor f where + fmap ∷ (a → b) → f a → f b +``` + +Laws: +```hs +fmap id == id +fmap (f . g) x == fmap f (fmap f x) +``` + +Extra methods: +```hs +(<$>) = fmap +(<$) ∷ a → f b → f a +($>) ∷ f a → b → f b +void ∷ f a → f () +``` + +## Applicative: A functor with expression embedding and sequencing +```hs +class Functor m ⇒ Applicative f where + (<*>) ∷ f (a → b) → f a → f b -- Sequencing + pure ∷ a → f a -- Expression embedding +``` + +Laws: +```hs +fmap f x == pure f <*> x + +pure id <*> v == x +pure (.) <*> u <*> v <*> w == u <*> (v <*> w) +u <*> pure y == pure ($ y) <*> u +``` + +## Monad: An applicative functor that can be flattened +'>>=' could be named 'flatMap', as it's the equivelant of mapping **m α → m (m β)** and then flattening **m (m β) → m β**. + +```hs +class Applicative m ⇒ Monad m where + (>>=) ∷ m a → (a → m b) → m b -- Flat map + (>>) ∷ m a → m b → m b -- Sequence and discard + return ∷ a → m a -- Synonym for `pure' +``` + +Laws: +```hs +pure a >>= f == f a +m >>= pure == m +(m >>= f) >>= g == m >>= (\x → f x >>= g) +``` + +# Out +:::::{.links} +- [mooc.fi's free online Haskell course](https://haskell.mooc.fi/) +- [haskellbyexample](https://lotz84.github.io/haskellbyexample/) +- [module organization guidelines for haskell projects](https://www.haskellforall.com/2021/05/module-organization-guidelines-for.html) +::::: diff --git a/notes/index.md b/notes/index.md new file mode 100644 index 0000000..f503ac9 --- /dev/null +++ b/notes/index.md @@ -0,0 +1,18 @@ +--- +title: digital garden +published: 2024-09-19T08:55:57+0100 +children: + - art + - computing + - kcp +--- + +This is a hierarchy of note cards that are connected together with hyperlinks, and organized for convenient navigation. +The notes are intended to be brief, and contain links out to further resources. + +### History +date comment +------------- ----------------------------------- +20 Sep 2024 new website generator +28 May 2024 markup → HTML compiler +27 May 2024 first content diff --git a/notes/kcp.md b/notes/kcp.md new file mode 100644 index 0000000..e09e6c0 --- /dev/null +++ b/notes/kcp.md @@ -0,0 +1,12 @@ +--- +title: ~kcp +published: 2024-09-26T00:13:02+0100 +children: + - sable +--- + +<p class="notice"> +This is a **section** that is used for notes regarding personal projects before documentation is properly made. +</p> + +![Self-portrait](/images/kcp-boxed-in.jpg) diff --git a/notes/lambda-calculus.md b/notes/lambda-calculus.md new file mode 100644 index 0000000..98221eb --- /dev/null +++ b/notes/lambda-calculus.md @@ -0,0 +1,29 @@ +--- +title: lambda calculus +published: 2024-09-26T00:54:15+0100 +--- + +:::::{.notice} +**Lambda calculus** is a turing-complete system for expressing computations using only **[functions]** and **[application]**. Expressions can be one of a few elements: + +Syntax Description Example +---------------- ------------ -------- +VAR Variable `x` +(λVAR.expr) Function `λx.x` +(FUNCTION expr) [Application] `(λx.x)a` + +Parentheses can be removed when it doesn't introduce ambiguity. +::::: + +### Application +Evaluation is done via substitution. + +When the expression `(λx.x)a` is evaluated, all occurences of **x** in the function's body are replaced with **a**. So, `(λx.x)a` evaluates to **a**. + +### Functions +<details> +<summary>The most basic function is the **identity function**, `λx.x`.</summary> +<p>The function `λx.x` binds the variable "x" in the definition `λx` to the body `.x`. You can think of it like the function `f(x) = x`.</p> +</details> + + diff --git a/notes/music.md b/notes/music.md new file mode 100644 index 0000000..45c2d65 --- /dev/null +++ b/notes/music.md @@ -0,0 +1,14 @@ +--- +title: music +published: 2024-06-23T07:28:48+0100 +--- + +## An art form that uses sound to create harmony, melody, rhythm, and structure + +### Key signatures + +It's easy to tell key signatures from sheet music; the **last sharp** is the **7th**, and the **last flat** is the **4th**. + +![](/images/music-key-signatures.webp) + +![© piano-music-theory.com](/images/music-circle-of-fifths.webp) diff --git a/notes/operating-system.md b/notes/operating-system.md new file mode 100644 index 0000000..16d8733 --- /dev/null +++ b/notes/operating-system.md @@ -0,0 +1,23 @@ +--- +title: operating system +published: 2024-07-22T15:34:49+0100 +--- + +## An operating system manages a computers's hardware and software resources + +### OpenBSD: Free, multi-platform, 4.4BSD-based, UNIX-like operating system +:::::{.links} +- [openbsd.org](https://www.openbsd.org/) +- [man.openbsd.org](https://man.openbsd.org/) +- [soure tree (github mirror)](https://github.com/openbsd/src) +- [ports tree (github mirror)](https://github.com/openbsd/ports) +::::: + +### Linux: Free, multi-platform, UNIX-like kernel +Linux is a free kernel created by Linus Torvalds. The term "Linux" sometimes describes a UNIX-like operating systems that use the Linux kernel. Software in these operating systems is often provided by the GNU project, so "GNU/Linux" is sometimes used to refer to a distro. + +:::::{.links} +- [kernel.org](https://kernel.org) +- [major distributions](https://distrowatch.com/dwres.php?resource=major) +- [Paging in Linux: understanding the linux kernel](https://www.oreilly.com/library/view/understanding-the-linux/0596000022/0596000022_ch02-77938.html) +::::: diff --git a/notes/perspective.md b/notes/perspective.md new file mode 100644 index 0000000..fc492f8 --- /dev/null +++ b/notes/perspective.md @@ -0,0 +1,30 @@ +--- +title: point-projection perspective +published: 2024-06-23T07:28:48+0100 +--- + +<p class="notice">This is a technique used to represent 3d objects on 2d surfaces in a way that approximates human vision. It relies on the fact that objects become N times smaller as they get N times further from the eye.</p> + +<section> +- [Horizon line] +- [Vanishing point] + - [1 point] + - [2 points] +</section> + +<section> +## Horizon line +![Roughly where the sky meets the land](/images/perspective-horizon.jpg) +</section> + +<section> +## Vanishing point +A [vanishing point] is a place on the image where perspective projections of parallel lines in 3d space converge. On flat planes, vanishing points will always lie on the [horizon line]. Traditionally, illustrations will use 1-3 vanishing points. + +### 1 point +![](/images/perspective-single-point.jpg) + +### 2 points +![](/images/perspective-double-point.jpg) + +</section> diff --git a/notes/renoise.md b/notes/renoise.md new file mode 100644 index 0000000..c190ce7 --- /dev/null +++ b/notes/renoise.md @@ -0,0 +1,107 @@ +--- +title: renoise +published: 2024-09-30T05:25:45+0100 +--- + +<p class="notice">Renoise is proprietary software, but offers a generous [free trial].</p> +<style>.inline{display:inline-block;padding-right:1rem;}</style> +<section> + +- [Effect commands] + - [Global] + - [Samples only] + - [Any instrument] + - [Retrigger volume factor] + - [Volume column] + - [Panning column] + +</section> +<section> + +## Effect commands +[Renoise wiki](https://tutorials.renoise.com/wiki/Effect_Commands){.button} + +### Global + +command meaning comment +-------- -------------------- -------- +`ZTxx` **T**empo in BPM +`ZLxx` **L**ines per beat +`ZKxx` Tic**k**s per line +`ZGxx` Toggle **g**roove +`ZBxx` **B**reak pattern goto **line xx** (?) +`ZDxx` **D**elay pattern pause for **xx lines** + +### Samples only +These work in the local FX columns for samples. + +command meaning comment +-------- --------------------- -------- +`-Axy` **A**rpeggio x,y **first, second semitone** +`-Uxx` Slide pitch **u**p xx **1/16th of semitone** +`-Dxx` Slide pitch **d**own xx **1/16th of semitone** +`-Gxx` **G**lide xx **1/16th of semitone** +`-Vsd` **V**ibrato s,d **speed, depth** +`-Ixx` Fade **i**n xx **1/256th of volume** +`-Oxx` Fade **o**ut xx **1/256th of volume** +`-Tsd` **T**remelo s,d **speed,depth** +`-Cxt` **C**ut volume=**x** after **t** ticks +`-Sxx` **S**lice number +`-Bxx` **B**ackwards +`-Exx` **E**nvelope offset set envelope, ahdsr, fader, & stepper offset +`-Nsd` Auto pa**n** s,d **speed,depth** + +### Any instrument +These work in the local FX columns for any instrument. + +command meaning comment +-------- -------------------- -------- +`-Mxx` Channel volu**m**e `00` = -60dB, `FF` = +3dB +`-Qxx` Delay playback Delay playback **xx ticks** +`-Yxx` Ma**y**be retrigger Trigger with **xx probability** +`-Rxt` **R**etrigger [Retrigger volume factor] every **t**ick + +#### Retrigger volume factor +:::::{.inline} +x change in volume +--- ----------------- +`0` No change +`1` 3% lower +`2` 6% lower +`3` 12% lower +`4` 25% lower +`5` 50% lower +`6` 33% lower cumulatively +`7` 50% lower cumulatively +::::: + +:::::{.inline} +x change in volume +--- ---------------- +`8` No change +`9` 3% higher +`a` 6% higher +`b` 12% higher +`c` 25% higher +`d` 50% higher +`e` 33% higher cumulatively +`f` 50% higher cumulatively +::::: + +### Volume column +command meaning comment +---------- -------------------- -------- +`00`-`7f` Volume/velocity +`Ix` Volume fade in step **x * 10** +`Ox` Volume fade out step **x * 10** + +### Panning column +command meaning comment +---------- -------------------- -------- +`00`-`80` Panning 00 = left, 40 = centre, 80 = right +`Jx` Slide left +`Kx` Slide right + +</section> + +[free trial]: https://www.renoise.com/download diff --git a/notes/sable.md b/notes/sable.md new file mode 100644 index 0000000..ca1915f --- /dev/null +++ b/notes/sable.md @@ -0,0 +1,32 @@ +--- +title: sable +published: 2024-09-23T22:12:19+0100 +--- + +<section> +## Strictly evaluated, purely functional programming + +- [Syntax] + - [Comments] + - [Literals] + - [Definitions] +</section> + +<section> +## Syntax + +### Comments +``` +-- There are only line comments for neow +``` + +### Literals +``` +true: bool +false: bool +123: int +\x: char + + +</section> +<!-- todo any documentation for the compiler --> diff --git a/notes/scales.md b/notes/scales.md new file mode 100644 index 0000000..9c45d95 --- /dev/null +++ b/notes/scales.md @@ -0,0 +1,23 @@ +--- +title: scales +published: 2024-10-02T05:46:22+0100 +--- +<section> + +- [Western scales] + - [Diatonic] + - [Harmonic minor] + - [Melodic minor] + +</section> +<section> + +## Western scales + +### Diatonic + +### Harmonic minor + +### Melodic minor + +</section> diff --git a/notes/software.md b/notes/software.md new file mode 100644 index 0000000..a29bb9b --- /dev/null +++ b/notes/software.md @@ -0,0 +1,42 @@ +--- +title: software +published: 2024-07-22T15:34:49+0100 +children: + - renoise +--- + +<p class="notice"> +This is a collection of (mostly free) software that runs natively on x86-64 linux. +</p> + +<section> +- Free + - [Audio plugins] + - [Video] + - [Visual media] +- [Proprietary] +</section> + +<section> +### Audio plugins +- [CHOW Tape](https://github.com/jatinchowdhury18/AnalogTapeModel) - analog tape model +- [Surge XT](https://surge-synthesizer.github.io/) - hybrid synthesizer + - [Why Surge XT is a fantastic free synth... and how to use it](https://www.youtube.com/watch?v=oeamVu1qY-g) +- [RaveGenerator 2](https://blog.wavosaur.com/rave-generator-2-vst-audiounit-the-stab-machine-is-back-in-the-house/) - stab machine + +### Video +- [OBS](https://obsproject.com) - record videos or live stream +- [Olive](https://www.olivevideoeditor.org) - configurable video editor +- [Shotcut](https://www.shotcut.org) - video editor + +### Visual media +- [Krita](https://krita.org/en/) - painting and photo editing +- [Opentoonz](https://opentoonz.github.io/e) - 2d animation software + - [Tahoma2d](https://tahoma2d.org) - fork of Opentoonz, supposedly with a simpler interface +</section> + +<section> +## Proprietary +- [Renoise](https://renoise.com) - a digital audio workstation +- [TVPaint](https://tvpaint.com/en) - 2d animation software +</section> diff --git a/notes/visual-art.md b/notes/visual-art.md new file mode 100644 index 0000000..05485d5 --- /dev/null +++ b/notes/visual-art.md @@ -0,0 +1,27 @@ +--- +title: visual art +published: 2024-06-23T07:28:48+0100 +children: + - colour + - perspective +--- + +## A diverse class of art forms that utilize imagery + +### Animation + +A technique used to create the illusion of movement from still images. +Disney's twelve principles: + +- Squash and stretch +- Anticipation +- Staging +- Straight ahead action OR pose to pose +- Follow through and overlapping action +- Slow in and slow out +- Arc +- Secondary action +- Timing +- Exaggeration +- Solid drawing +- Appeal |