OpenLLM-France/wikimedia huggingface dataset:
# Music Theory/Chromaticism

Chromaticism refers to the use of pitches, chords, and keys not associated with diatonic collections. The etymology of the word chromatic, which refers to colour, gives us a clue as to its function is in nineteenth-century music: it provides inflections to diatonic harmonies.
Pitch
A chromatic pitch is any note not contained within a given diatonic collection. For example, in C major, C-sharp, D-flat, D-sharp, E-flat, F-sharp, G-flat, G-sharp, A-flat, A-sharp and B-flat all represent chromatic pitches. For a chromatic pitch to function 'chromatically', however, it must resolve in a logical way to a diatonic pitch, otherwise the overload of 'colour' undermines the integrity of the key and begins to suggest a modulation to a different key or a non-diatonic modality. As a general rule, chromatically raised tones resolve upward while chromatically lowered ones resolve downward. Hence, chromatically introduced A# usually goes to B while Eb would have to go to D.
Chords
In nineteenth-century music there can be no pitches without chords, which more fully suggest harmony. In C major, chromatic chords include all those outside the diatonic framework, including C minor, C-sharp major and minor, D major, E-flat major and minor, E major, F minor, F-sharp major and minor, G minor, A-flat major and minor, A major, B-flat major and minor, and B major and minor. The way these chords are used in nineteenth-century music is not arbitrary and each chord has its own specific quality and compositional implications. Most obviously the level of diatonicism, or its displacement around the cycle of fifths, of a chromatic chord makes it sound more or less nearly-related to the tonic (that is within diatonicism, although other theories exist, notably certain neo-Riemannian theories).
Keys
Finally, keys, which may provide large-scale harmonic structure in nineteenth-century music, may also be chromatic. Given that gamut of keys for most music of the eighteenth century is diatonic - most often creating a tension between tonic and dominant (Charles Rosen, The Classical Style, 1978) - the use of chromatic keys opens up a vista of new tonal possibilities. Composers such as Beethoven and to an even greater extent Schubert, are examples of the first composers to explore this.
After chromaticism
Historically, the prolongations of chromatic pitches, chords, and keys, increasingly undermining a clear diatonic harmonic basis, led it many different directions. Wagner and Strauss pushed to the extreme the tension of prolonging chromatic pitches, whereas other composers, such as Debussy, overstep the boundary and moves towards modality. Composers of the Second Viennese School - Schoenberg, Berg, and Webern - completely eradicate any diatonic basis with atonal and dodecaphonic (twelve-tone serialism) harmony, and can thus be said to have moved through and beyond chromaticism.
# Music Theory/Chinese

Chinese music, unlike western music, uses a five-tone scale known as the pentatonic scale. The easiest way to see this on a piano is to play the black keys only. The scale will sound oriental. This however, is an oversimplification, as in many Chinese instruments, a Western Diatonic scale is achievable, and 7-note scales are frequently used. Also, the music of ethnic minorities in China is often closely related to that of their neighbors, and microtonal adjustments of pitch are also used.
In the Chinese pentatonic, the most commonly used scale is usually D. The notes are then as follows:
D E F# A B D
Contrary to much of Western music, traditional Chinese music based on the pentatonic scale does not emphasize a tonal center as much. As such, listeners can often interpret pieces as essentially bitonal, focusing on two tonal centers simultaneous. A Western analysis will interpret these keys as having a relative major/minor relationship.
# Music Theory/Baroque
## Definition

Baroque music loosely refers to music from around 1600-1750. Baroque music has distinct features to it such as the use of counterpoint and polyphony.

## Notable Features

Baroque music can often be characterised by a number of common features:

### Sonority and Instrumentation

* String instruments usually dominate the sonority. These were the primary instruments available at the time.
* Later in the Baroque period, more woodwind instruments were used, such as the flute, oboe, and bassoon, but strings remained the dominant section.
* Vocal parts. Vocal music was also very popular in the Baroque Era, especially that written for solo voice and SATB choirs.

### Melody

* Repetition. Phrases are often repeated. Indeed, the structure of many Baroque pieces enabled for repeats of sections
* Extensive use of ornamentation. The Baroque period truly began the widespread use of ornamentation of melodies for dramatic effect.

### Harmony

* Diatonic harmony. Harmony is plain and simple, but can still be very effective and passionate. Chord choices are limited.
* High rate of harmonic change. Keys change frequently, and chords are changed rapidly as Baroque pieces progress.

### Tonality

* Unlike in previous Eras, there was a move away from modal music. Major and minor tonalities are used completely.
* The use of cadences became almost clichéd in the Baroque Era, particularly new cadences such as the Phrygian cadence.

### Texture

* 4-part textures for large scale works were a composer's "rite of passage". Every major composer wrote some works for 4 part choir or strings.
* Polyphony was very developed. Fugal writing peaked during the Baroque Era.

### Structure

* Recitative continued to be popular. This would be a vocal part accompanied by interspersed continuo chords.
* Aria. These would have various structures. Some would be in strophic form (verses), although new forms such as ternary (ABA) became popular.

### Tempo, Rhythm, and Metre

* All of tempo, rhythm, and metre were very varied. Often, composers took a particular style.

## Composers

Notable composers include:-
* Gregorio Allegri (1582-1652) Italy
* Johann Pachelbel (1653-1706) Germany Most famous work is the Canon in D
* Arcangelo Corelli (1653-1713) Italy
* Henry Purcell (1659-1695) English
* Tomaso Albinoni (1671-1751) Italy
* Antonio Vivaldi (1678-1741) Italy
* G.P. Telemann (1681-1767) Germany
* Jean-Philippe Rameau (1683-1764) France
* Domenico Scarlatti (1685-1757) Italy
* J.S.Bach (1685-1750) Germany Very prolific composer
* G.F. Handel (1685-1759) Germany Most famous work is the Hallelujah chorus from the Messiah
# Music Theory/Classical

Classical music was a musical style that was popular in Europe in the 18th century. By convention, it begins in 1750, with the death of Johann Sebastian Bach, although "classical" music appeared earlier. The Classical era marked a move away from the intense emotionalism of the Baroque period towards a highly structured, stylistic manner, and was the flowering period of the sonata-allegro form (a three-part structure, with the first movement allegro, a slower second movement, and a faster--often allegro-- third movement). Later Classical-era symphonies often added a minuet-trio section as the third movement, and the faster third movement became the symphonic fourth movement. Popular composers include Haydn and Mozart.
Ludwig van Beethoven is sometimes considered to be a classical composer, but is a special case, as his early music was classical, and his later music romantic. In fact, his Pathetique sonata for piano is sometimes thought of as the piece that ushered in the romantic era.

## Notable Features

Music from the Classical Era took on many defining features.

### Tempo, Rhythm, and Metre
## Composers

* J.S. Bach (1714-1788)
* J. Haydn (1732-1809)
* W.A. Mozart (1756-1791)
* L.V. Beethoven (1770-1827)
# Japanese white book/sound symbolism

* あつあつ Hot
* あっさり Easy
* いじいじ Fear
* いそいそ Hush to do some thing
* いちゃいちゃ Flirt
** いらいら Hurry
** うかうか Confused
** うっかり Mistake
** うっすら Can Barely
** うっとり out focus
** ぱらぱら rain
** ザーザー heavy rain
# JavaScript/Access control
## Access Control

JavaScript does not provide a direct means to control access to internal variables, however, it is possible to restrict access to some variables.
By default, variables within an object are public and can be modified anywhere in the code. As such, any programmer that uses the code in the future may change the internal state of the object unexpectedly, which has the potential for problems. While the easiest protection against this is to properly document your code (e.g. comments showing how to use the object), there are cases where you want to block direct access to a variable.
To declare and use a variable as private, there are two steps required:
* Declare a new variable within the constructor using the var statement.
* Create an anonymous function within the constructor, and assign it as a method for an object.
The example below shows a private field being used:
var privateNumber is normally a local variable that only exists within the function. As you can see, it is accessed in this.getPrivateNumber, which is an anonymous function, attempting to access it directly would result in an error. Since this anonymous function is declared in the constructor, it can use and modify the local variables declared in function MyObject, and keeps a reference to the variable even when the function returns. The anonymous function is bound to an instance of the object, and creating a new MyObject will create a new anonymous function that refers to the new privateNumber.
# Japanese white book/pronounce

| Japanese | Meaning | other |
| はい | Yes,sure | normal conversation with friend |
| はい！ | YES,That right! (more energy way) | Talking with teacher or Boss (upper class of people) |
| ええ | Yes sir | Talking with client (business use) |
| うん | oh | pounce use for normal response |
| はいはい | Yeah Yeah... | Talking with friend (!! kind of not polite for upper class) |
# JavaScript/Adding elements

DOM's Document interface offers - among other things - functions that create new elements, including their attributes and content, and joins them together or into an existing DOM.
createElement creates an element. createAttribute creates an attribute that can be assigned to this new or an already existing element. setAttribute creates an attribute and links it to an existing element. appendChild integrate an element into another.

## Creating elements

Now, the element and its content are created. But until here, they are not part of a DOM. They exist only in the memory of the JavaScript engine.
To integrate them into the page, we retrieve the body or any other element of an existing page and append the new element as its last element.
All in all, the HTML plus JavaScript looks like this:
The original page does not contain a paragraph. But after you click on the button, the paragraph is integrated into the page and is visible. Btw: You can click more than once on the button. What will happen?

## Creating attributes

Attributes are created with either the createAttribute or the setAttribute function. The first of the two acts like the above shown createElement function. It creates the new attribute only in memory without a connection to other elements. Because setAttribute integrates the new attribute directly into an element, we use this variant.
The example uses the a element with its href attribute.
Now, the element, a single attribute, and the element's content are created. Again, we integrate them into the page as we have done above.
All in all, the HTML plus JavaScript looks like this:
The original page does not contain a link. But after you click on the button, the link to the IANA example page is integrated into the page and is usable.

### Alternative syntax

One of the previous pages has explained how to change attributes with a different syntax.
Just use the element plus its attribute name and assign the attribute value to it. If you change the previous example to this syntax, you will reach the same behavior of adding the link.

## Join the puzzles pieces

The shown functions create elements and attributes. Such new objects can be joined together to create huger parts - of course in a nested way. And they can be joined to an already existing HTML page, respectively, the DOM tree.

## 'Misusing' innerHTML

The content of an element can be changed by assigning a new value to its property innerHTML. If this new value contains the string representation of an HTML fragment, the assignment creates child nodes within the element. That's possible but not the intended way of using innerHTML.
.. leads to ..
The JavaScript fragment inserts two more paragraphs, but not behind the first one. They exist within the first one.

## write

The antiquated function document.write was able to insert new elements into an HTML page. Its usage is strongly discouraged nowadays.

## See also

* MDN Create Element
* MDN Set Attribute
* MDN Append Child

## Exercises

    ... are available on another page (click here).
# Japanese white book/Class 9

夢の続き　追いかけていたはずなのに 曲がりくねった　細い道 人につまずく
あの頃にみたいにって　戻りたい訳じゃないの なくしてきた空を 探してる 分かってくれます様に 犠牲になった様な　悲しい顔は やめてよ
罪の最後は涙じゃないよ　ずっと苦しく背負ってくんだ 出口見えない感情迷路に 誰を待ってるの 白いノートに綴った様に　もっと素直に吐き出したいよ 何から逃れたいんだ　...現実ってやつか
叶える為に生きてるんだって 忘れちゃいそうな 夜の真ん中 無難になんてやってられないから 帰る場所もないの この想いを消してしまうには まだ人生長いでしょ

### Translate & explanation

* 夢の続き　追いかけていたはずなのに
** I keep the chasing in the dream
*** Because the whole sentence didn't mention about people, this is the first sentence of the song, so the only noun is "itself"
* 曲がりくねった　細い道 人につまずく
** Been tie over to toruous and narrow road
*** 曲がりくねった mean a twisted thing with complex shape.
* あの頃にみたいにって 戻りたい訳じゃないの
** Don't have any intention return to those moment.
*** 訳じゃない meaning can't translate something out, in this situation are telling people author don't even like to remember those old moment.
* なくしてきた空を 探してる
** looking for that lost sky
* 分かってくれます様に
** like you understand that.
*** continuation of the author seeking for lost sky
* 犠牲になった様な　悲しい顔は やめてよ
** for Sacrificed don't put the sad face out.
* 罪の最後は涙じゃないよ ずっと苦しく背負ってくんだ
** The end of sin is don't need the tear, I have carry this pain for a long time.
* 出口見えない感情迷路に 誰を待ってるの
** Without the end lose in emotion, who are you waiting for in the maze?
* 白いノートに綴った様に　もっと素直に吐き出したいよ
** Writing On the white note , those stuff I want to honesty tell out.
* 何から逃れたいんだ　...現実ってやつか
** What do you want to escape from? can't even tell what the reality.
* 叶える為に生きてるんだって
** I alive because to achieve those dream
* 忘れちゃいそうな 夜の真ん中
** Lost in the middle of a night.
* 無難になんてやってられないから 帰る場所もないの
** with no safety place to return
* この想いを消してしまうには
** How to earse this feeling
* まだ人生長いでしょ
** Still a long life on.

### Keyword

* 人生(じんせい) Life
* 夢(ゆめ) Dream
* 素直(すなお) Honest
* 現実(げんじつ) Reality
* 続き(つづき) Continuation
** 感情的(かんじょてき) Emotional
** 逃れたいん I want to escape
** ノート Note
** 訳じゃない Can't be translate
** 無難 (ぶなん)safety place
# JavaScript/Adding elements/Exercises

Topic: Creating elements and attributes
We use a nearly empty HTML page for the exercises.
1. Modify the function show.
2. Modify the function showin a way that it adds a list to the HTML page.
3. Modify the function showin a way that it adds a list to the HTML page. Implement it in a way that the list may vary in length and in its content over time.
To reach the goal of variable length, you must use a loop over the offered products. Save your product list in an array and loop over it.
4. Modify the function showin a way that it adds a particular image to the HTML page.
Change the image's size by adding the attribute width with a value of "300px". Mark the image with a unique identifier, e.g., "newImage"
5. Extend the previous example. After the image is added to the page, the behavior changes. The second and all further clicks on the button reduce the image's size by 10% - without adding another button.
# JavaScript/Arrays/Exercises

Topic: Arrays
1. What is the output of the following script?
2. Add elements
* Create an array with all odd numbers that are smaller than 10.
* Show the array with the alert command.
* Show how many elements the array contains.
* Add 2, 4, 6, 8 to the end of the array and show it again.
* Insert the value 20 on the 20th array element and show the array again.
3. Remove elements
* Create an array with all numbers from 1 to 6.
* Show the array with the alert command.
* Delete the first and last element and show the resulting array.
4. Combine elements
* Create an empty array.
* Add 0, 1, 2 to the array with the push method and show the array.
* Create the string "0 + 1 + 2" out of the array using the join method and show the string.
# Guide to Game Development/The Programming Language/Xojo
## Abstract

* Mac only
* Console & Form design
* The IDE you'll need to install: Xojo IDE

## External learning resources

* Learning Resource 1 - Youtube Video
* Learning Resource 2 - Online Course
# Guide to Game Development/Theory/Collision detection

Collision detection is split up into two parts: broad-phase and narrow-phase. Broad-phase finds the objects that need to be checked, narrow-phase actually checks for a collision of objects.

## Broad-phase

This is the method of checking which objects need to be checked. This basically means that if an object is too far away, then this test will say that the object doesn't need to be tested for collision detection. This is because the actual collision detect is resource heavy, so eliminating the amount of objects will mean that there are less calculations that need to be made.
Here are the different types:
* Sweep and Prune
* QuadTree partitioning
* BSPTrees
* SphereTrees
* Spatial partitioning
* Object partitioning

## Narrow-phase

This is the accurate collision detection that is resource heavy (compared to broad-phase).
* Discrete vs. Continuous
          Demonstrating the differences between discrete and continuous collision detection.

### Types

* AABB intersection
          Axis-aligned bounding box (only works for items aligned to axes, but you can translate them, perform the test and translate them back).
* OBB intersection
          Oriented bounding box.
* Separating axis theorem
          The idea of creating new virtual axes based upon your geometry and comparing them.
* Circular
          Circular collision detection.
* Ray casting
          A linear vector equation with a limit that goes through the air to check for a collision of sorts.
* Mesh
          This is where you actually test for collisions of an object exactly, you build a mesh of polygons around the object and check for collisions around that.

## External links

* "Collision detection for dummies."
# Guide to Game Development/Theory/Collision detection/AABB intersection

Axis-aligned bounding box (only works for items aligned to axes, but you can translate them, perform the test and translate them back).

## External links

Youtube:
* Math for game developers:
** Bullet collision example
** Trigger areas example
* Bounding box collision detection by Atrixium
Website:
* gamefromscratch's article on AABB intersections
# Guide to Game Development/Theory/Collision detection/Separating axis theorem

The idea of creating new virtual axes based upon your geometry and comparing them.

## External links

Websites:
* gamedevelopment.tutsplus.com's separating axis theorem article
* codezealot's article on the separating axis theorem
Wikipedia:
* Hyperplane separation theorem
# Guide to Game Development/Theory/Game logic/Creating a particle class

Note: the following code uses a Vector3 class.
This is an outline for what a particle class could look like written in C++:
Particle.h:
Particle.cpp:
# Guide to Game Development/Theory/Game logic
## Categories

* Setting up ticks and frames
          Ticks: called at a constant rate, Frames: called as fast as the computer can call it.
* Activating the entities' tick and render functions
          How to activate all of the entities' render and tick functions in a neat way.
* Creating a Vector3 class
          This is how you implement vectors into your game. In this example we'll be implementing a vector 3, but the same principles can be used to create a vector 2.
* Creating a Quaternion class
          This is how you implement quaternions into your game. This is more than just adding an extra dimension onto a vector3.
* Creating a Matrix4x4 class
          This is how you implement a matrix class into your game. In this example we'll be implementing a 4x4 matrix, but the same principles can be used to create other matrix sizes.
* Creating a particle class
          This is where all of the physics are used as a parent object for all other entities to inherit.
* Creating an entity class
          This is will inherit particle and will be used as a parent for all other physical objects in the game.
# Guide to Game Development/Theory/Game logic/Activating the entities' tick and render functions

Note: This code uses Entity and how you can set up your tick and render functions.
Main.cpp:
# Guide to Game Development/Theory/Game logic/Creating a Vector3 class

This is an outline of what a Vector3 class could look like, written in C++:
Vector3.h:
Vector3.cpp:
# Guide to Game Development/Theory
## Categories

* Game logic
          The general set up that most games fit around
* Mathematics
          Basic Math, Vectors, Matrices, Trigonometry, Calculus, Quaternions
* Geometry
          The drawing of the objects in the scene, e.g. the player, enemies, terrain, boxes
* Transformations
          Translation, Scale, Rotation
** Pose
                Poses and Coordinate frames
* Camera
          The view-port that the game is viewed from. Perspective & Orthographic projects.
* Lighting
          The Lighting that's cast onto the scene. Ambient, Diffuse, Specular lighting, Normal vectors and Lightmaps.
* Graphical User Interfaces (GUI) and Heads-up-displays (HUD)
          The menus that the user navigates and the displays that appear on top of the game to display statistics like health.
* Collision detection
          How all of the entities in the game collide with each other and the terrain.
* Physical motion
          The physics/mechanics behind the motion, forces and gravity.
* Textures
          How textures are loaded, stored and placed onto geometry.
* Shaders and Graphic pipelines
          How the geometry, camera and lighting in a scene gets processed from the scene to the screen.
* Artificial Intelligence
          Programming of intelligence into a computer/bot/enemy.
** Path Finding
                Path finding algorithms used by AI
* Animations
          In game animations
* User inputs
          How you handle user inputs and how they affect things in the game
* Viewing angles
          The topic of different types of game genres and how to create for that genre
* Miscellaneous theory
          Everything else to do with theory

## External Links

Youtube:
* Math for Game Developers by Jorge Rodriguez - A Youtube series teaching you about the maths behind game development.
* 3D Physics Engine Tutorial by thebennybox
* Coding Math - A Youtube channel that links mathematics with coding.
* Extra Credits - A Youtube channel that discusses the theory of games and game design/development.
Wikipedia:
* List of Mathematical Symbols